Commit Graph

75 Commits

Author SHA1 Message Date
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
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
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
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
3a4855b92a feat(modules): add hello toy module as engine smoke test 2026-04-13 20:31:43 +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