Design decisions 2026-10-05 (fresh start) #1

Open
opened 2026-10-05 14:17:07 +00:00 by kayg · 0 comments
Owner

Record of the design grill held on 2026-10-05. The owner (kayg) restarted infraternal as a new project. The old history is archived as kayg/infraternal-v0.

The decisions are in DECISIONS.md (commit d8f7a82). The overview is in docs/ARCHITECTURE.md. To change a decision, the owner must approve it. Record each change here and in DECISIONS.md.

Areas that were decided:

  • Product: all-in-one, self-hosted only, everything is a plugin, SSH first, performance first (1–6)
  • Architecture: one binary with two modes, a trusted server, an embedded agent as a subprocess, always relay, QUIC legs, a custom wire format, session shim, ghostty-web, plugins, one action with many adapters, lockstep upgrades, rootful and rootless agents, single node, platforms (7–20)
  • SSH and hosts: inventory sources, auth methods, passkey-sealed keys (21–23)
  • Identity and access: passkeys, recovery key, setup token, device keys, sessions, tag-scoped roles, OIDC (24–30)
  • Licensing and pricing: AGPL core and ee/, tiers, no paid work before users (31–33)
  • Slice order and the metrics plugin (34–35)
  • UI: floating sidebar with a tree, search capsule, mobile key bar (36–38)
  • Engineering: process, strictness, performance budgets, CI, repo (39–43)
  • Website (44–47)

Still open:

  • Prices for each tier (keep them out of the repo)
  • KCP for server ↔ agent (decide by benchmark)
  • Snapshot resume against state-diff resume (decide by benchmark)
  • S1 details (see the S1 grill issue)
Record of the design grill held on 2026-10-05. The owner (kayg) restarted infraternal as a new project. The old history is archived as `kayg/infraternal-v0`. The decisions are in [`DECISIONS.md`](https://git.kayg.org/kayg/infraternal/src/branch/main/DECISIONS.md) (commit `d8f7a82`). The overview is in [`docs/ARCHITECTURE.md`](https://git.kayg.org/kayg/infraternal/src/branch/main/docs/ARCHITECTURE.md). To change a decision, the owner must approve it. Record each change here and in `DECISIONS.md`. Areas that were decided: - [x] Product: all-in-one, self-hosted only, everything is a plugin, SSH first, performance first (1–6) - [x] Architecture: one binary with two modes, a trusted server, an embedded agent as a subprocess, always relay, QUIC legs, a custom wire format, session shim, ghostty-web, plugins, one action with many adapters, lockstep upgrades, rootful and rootless agents, single node, platforms (7–20) - [x] SSH and hosts: inventory sources, auth methods, passkey-sealed keys (21–23) - [x] Identity and access: passkeys, recovery key, setup token, device keys, sessions, tag-scoped roles, OIDC (24–30) - [x] Licensing and pricing: AGPL core and `ee/`, tiers, no paid work before users (31–33) - [x] Slice order and the metrics plugin (34–35) - [x] UI: floating sidebar with a tree, search capsule, mobile key bar (36–38) - [x] Engineering: process, strictness, performance budgets, CI, repo (39–43) - [x] Website (44–47) Still open: - [ ] Prices for each tier (keep them out of the repo) - [ ] KCP for server ↔ agent (decide by benchmark) - [ ] Snapshot resume against state-diff resume (decide by benchmark) - [ ] S1 details (see the S1 grill issue)
Sign in to join this conversation.
No labels
launch-qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/infraternal#1
No description provided.