One decision per file. Append-only: never edit or delete an existing record — if a decision is reversed, add a new one that says which record it supersedes.
Adding a record
- Copy
_TEMPLATE.md→docs/decisions/YYYY-MM-DD-short-slug.mdand fill it in. - Add one line to this index.
- Do not paste the record body into
AGENTS.md.
- 2026-09-24 — Adopt atomic-chat-core as an embedded library and single binary — the core is an exactly pinned dependency compiled into
atc; never copy its logic, request an export. - 2026-09-24 — Embed the admin UI as a generated module — gzipped assets in
static-assets.generated.ts, a placeholder when the SPA is not built. - 2026-09-24 — Hand-rolled command specs on parseArgs — help, docs and completion render from one spec; stubs exit 3.
- 2026-09-24 — Copy and adapt the desktop web app for the admin UI — provenance headers instead of a shared package, with the trigger for revisiting.
- 2026-09-24 — The CLI is the host for managed runtimes — the helper is the same binary, file-based request and result, elevation strategies, never the control API.
- 2026-09-24 — Add an optional terminal UI —
atc tuion Ink as a second front end over the daemon, plain commands stay primary; narrows the TUI exclusion in the parseArgs record. - 2026-09-24 — Use Bun as the package manager —
bun.lockandbun install --frozen-lockfileas in the core; Node 22 still runs the tests, scripts staynpm run. - 2026-09-25 — Open the terminal UI by default on a terminal — bare
atcon an interactive terminal opens the Ink UI (Overview, Logs, Config, Doctor now; more screens per iteration), help everywhere else; supersedes the optional-TUI record.