MDietermann
ffd18c5382
feat(config): add typed module-input fields with defaults
2026-04-14 08:40:29 +02:00
MDietermann
fcc24b99b2
feat(platform): add AURHelper with yay bootstrap and install
2026-04-14 08:35:46 +02:00
MDietermann
1903217b5f
feat(platform): add GitClient helper with idempotent EnsureRepo
2026-04-14 08:32:04 +02:00
MDietermann
3f4223879b
feat(platform): add tar.gz and zip extract helpers with traversal guard
2026-04-14 08:29:42 +02:00
MDietermann
2d73114b5f
feat(platform): add atomic HTTP download helper
2026-04-14 08:25:22 +02:00
MDietermann
afed8ab600
feat(platform): add textblock helper for idempotent config-file blocks
2026-04-14 08:21:38 +02:00
MDietermann
83bb622232
perf(tui): cache Detect+Plan results in wizard renderPlan
2026-04-14 08:18:38 +02:00
MDietermann
05dc8aa7f5
chore: ignore .worktrees
2026-04-14 08:13:47 +02:00
MDietermann
42dabf85a5
docs(plans): add Plan 3a install-modules implementation plan
2026-04-14 08:11:03 +02:00
MDietermann
6318362e99
docs(specs): add Plan 3a install-modules design
2026-04-14 08:03:17 +02:00
MDietermann
2ebaa6b5c6
fix: address Plan 2 final-review findings
...
- tui/doc.go: remove teatest blank import (test harness in prod binary)
- cmd: honor wizard HaltOnError toggle in addition to --halt-on-error flag
- cmd: wire SIGINT/SIGTERM to root context via signal.NotifyContext
- dashboard/run: derive engine context and cancel on tea.Program exit
so the engine goroutine does not outlive Run
2026-04-13 22:26:54 +02:00
MDietermann
ea5667e040
test(tui): integration smoke — dashboard runs hello module end-to-end
2026-04-13 22:20:08 +02:00
MDietermann
4f3d736bd7
refactor(cmd): drop err=runErr reassignment, return runErr directly
2026-04-13 22:19:09 +02:00
MDietermann
341250d8f4
feat(cmd): wire TUI wizard and dashboard into install subcommand
2026-04-13 22:13:52 +02:00
MDietermann
7baf0fceaa
feat(tui): add dashboard.Run bridging engine to Bubble Tea
2026-04-13 22:11:54 +02:00
MDietermann
5c5076f1f1
fix(tui): guard against late Progress/Log after DoneMsg; drop dead quitting field
2026-04-13 22:09:08 +02:00
MDietermann
feb01242f2
feat(tui): add Bubble Tea dashboard model for Apply phase
2026-04-13 22:02:38 +02:00
MDietermann
e7aa75735d
refactor(tui): use strconv.Atoi in parseIntClamp, drop spurious error return
2026-04-13 22:00:49 +02:00
MDietermann
394fb33d0c
fix(tui): short-circuit wizard.Run on cancelled context before opening TTY
2026-04-13 21:52:50 +02:00
MDietermann
d21ab3fd30
feat(tui): add six-screen Huh wizard for installer input
2026-04-13 21:52:17 +02:00
MDietermann
c0983284b3
feat(tui): add TeaReporter forwarding engine events to bubbletea
2026-04-13 21:49:14 +02:00
MDietermann
258b53b6a0
feat(tui): add shared WizardState seeded from config and registry
2026-04-13 21:48:12 +02:00
MDietermann
777a3fe49b
chore(tui): add Charm dependencies and package skeleton
2026-04-13 21:47:02 +02:00
MDietermann
07c13551ce
docs: add Plan 2 (TUI) implementation plan
2026-04-13 21:40:44 +02:00
MDietermann
8b43a0f273
fix: address final-review findings before closing Plan 1
...
- privilege: wire sudo -v to real stdin/stdout/stderr so it can prompt
- cmd: validate --only/--skip IDs against registry (prevents silent
run-all on typo); gate install to Arch-only (spec requirement);
mark --only and --skip mutually exclusive
- platform: Pacman.Update now runs -Syu --noconfirm, not -Sy (avoids
Arch partial-upgrade anti-pattern)
- test/integration: trap-clean the named docker volume on any exit
- go.mod: tidy — yaml.v3 is a direct dep
2026-04-13 21:35:14 +02:00
MDietermann
40ac730719
test(integration): run archduino install end-to-end on archlinux:base
2026-04-13 21:22:29 +02:00
MDietermann
3a4855b92a
feat(modules): add hello toy module as engine smoke test
2026-04-13 20:31:43 +02:00
MDietermann
7a3ebbb146
docs(cmd): clarify why !noTUI branch prints the fallback notice
2026-04-13 20:18:07 +02:00
MDietermann
7a382c9bdd
feat(cmd): wire install subcommand to engine with plain reporter
2026-04-13 20:13:50 +02:00
MDietermann
e4f945146b
feat(state): persist per-run logs with rotation and last-run pointer
2026-04-13 20:02:48 +02:00
MDietermann
8f9e34174c
feat(privilege): acquire sudo and keep timestamp fresh via goroutine
2026-04-13 20:01:34 +02:00
MDietermann
83cf7f0e72
feat(platform): add PackageManager interface and Pacman implementation
2026-04-13 20:00:11 +02:00
MDietermann
3b666615d7
feat(platform): detect distro, WSL, and architecture
2026-04-13 19:59:04 +02:00
MDietermann
ea0d793461
feat(config): load embedded defaults and merge optional overlay
2026-04-13 19:56:53 +02:00
MDietermann
0f0ea7e925
refactor(engine): remove dead failed map from markFailed
2026-04-13 19:55:41 +02:00
MDietermann
94c7084ec3
feat(engine): run modules through Detect/Plan/Apply/Verify with DAG + skip-on-failure
2026-04-13 19:49:52 +02:00
MDietermann
37761e017e
feat(engine): add topological sort and descendants for module DAG
2026-04-13 19:39:35 +02:00
MDietermann
30643e385d
feat(engine): add Reporter with buffered and plain implementations
2026-04-13 19:37:51 +02:00
MDietermann
eb54225ad3
feat(module): add four-phase Module interface and registry
2026-04-13 19:29:18 +02:00
MDietermann
5b5e677749
chore: go mod tidy, pin go 1.22, clarify module path in plan
2026-04-13 19:21:13 +02:00
MDietermann
94dbea001c
docs: add Plan 1 (Foundation) implementation plan
2026-04-13 18:44:47 +02:00
MDietermann
b952704be5
docs: add installer architecture redesign spec
...
Design for Go rewrite of the Bash installer: single static binary with
Bubble Tea + Huh TUI, four-phase module contract, DAG execution engine,
embedded config + optional overlay, and a minimal Bash pre-install shim.
Scoped to installer architecture only; toolset overhaul, CLI browser,
and TTY Nerd Font support are queued as follow-up specs.
2026-04-13 18:44:47 +02:00
MDietermann
5b8de40b4c
chore: bootstrap Go project with cobra skeleton
2026-04-13 18:24:37 +02:00
MDietermann
897dc424dc
Updated Gitignore
2026-04-13 17:40:22 +02:00
MDietermann
9c3cdbc90f
Updated Gitignore
2026-04-13 17:39:18 +02:00
MDietermann
f53663298e
fix(wokwi): add serial monitor config and USB_SERIAL_JTAG for ESP32-S3
...
- Add serialMonitor display config to all diagram templates
- Set USB_SERIAL_JTAG attr on ESP32-S3 for built-in USB serial
- Add TX/RX → $serialMonitor wiring for ESP32 (UART-based serial)
- Remove disconnected breadboard parts (wired directly to MCU pins)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-10 16:40:42 +02:00
MDietermann
33f1112bf8
fix(renode): wokwi-cli releases are plain binaries, not tarballs
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-10 16:27:07 +02:00
MDietermann
9bec4660f6
feat: add Wokwi CLI for visual breadboard simulation
...
- Install wokwi-cli binary from GitHub releases
- Generate wokwi.toml and board-specific diagram.json in arduino-new
with a button + LED breadboard layout for each supported board
- Add <leader>aw keybinding in nvim to run Wokwi simulation
- Diagram templates for: uno, mega, nano, esp32, esp32s3 (+ default)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-10 16:05:24 +02:00
MDietermann
9c38a8414e
fix(neovim): only remove lspconfig config, keep conform and other starter plugins
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-10 15:27:06 +02:00
MDietermann
b512d41dc8
feat: add Renode emulator, nvim-dap debugging, and backup collision fix
...
- Add Renode installation (AUR/deb) with arduino-sim helper script
supporting STM32F4, RP2040, and nRF52840 (USB HID) platforms
- Add nvim-dap + nvim-dap-ui with GDB remote adapter for Renode debugging
- Add debug keybindings under <leader>d prefix
- Fix backup_config() path collisions when multiple sources share a
basename (e.g. ~/.config/nvim and ~/.local/share/nvim)
- Strip NvChad starter's nvim-lspconfig block that conflicts with
native vim.lsp.config, preserving configs/lazy.lua
- Update step counts from 11 to 12 (TOTAL_STEPS 12→13, 13→14 on WSL)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-10 15:23:57 +02:00