Files
platform/TODO.md
T
pastilhasandClaude Opus 5 530e5880e1 todo: what tonight's deploy work left behind, and two items it closed
Closed:

- fleet/an-orchestrator-that-acts-on-every-server-at — built, and as none of the three shapes it
  proposed. Not a script, not a screen, not a chat capability: an agent handed a written procedure and a
  server list it has to read rather than one baked into it. All three verified facts in the item earned
  their place; two things it did not anticipate are now new items.
- fleet/a-way-to-mark-a-commit-this-one-ships-so-a — built as a TAG, which the item explicitly ruled out.
  The owner reversed it, and the argument that changed his mind is recorded: a codeword can be written by
  accident, because every document about deploying contains it, so the trigger needs rules about where in
  a subject line it sits and a rule like that is one somebody eventually gets wrong.

Opened, all from tonight and all with the evidence attached:

- a deploy verifies pm2 and not that the app serves anything — the commander raised this against itself
- the commander cannot finish its own host, so one machine is always a build behind
- the watcher loop is rewritten by an agent every arming, so its correctness is re-rolled each time
- plugins:update restarts every sidecar, so a report naming only officer understates what moved
- an agent spawned by a background job is invisible in the UI while being perfectly readable
- AskUserQuestion can fail to parse its own call
- a commander opened from /chat loses its commander controls, because isCommander comes from the screen
  rather than the session

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 20:27:00 +00:00

5.3 KiB

TODO — the index

Deferred work. The items live in todo/, one file each, grouped by theme; this file is the map over them and is GENERATED — run bun run todo:index after any change rather than editing it here. Format and the two-way-sync contract: todo/README.md.

Context, corrected 2026-08-07. This list used to open by saying Officer was "collapsing from multi-tenant / open-source-ready to a single-user platform", and told you to treat multi-tenant indirection as accidental complexity. That direction was reversed. The permission model shipped on 2026-08-07 to serve a real goal — deploy to the company server, onboard people, give each one their own Gitea account through the platform. Per-user scoping is now a requirement, and the items that proposed deleting it have been removed rather than left to mislead the next reader.

What did NOT reverse: execution permissions (terminal, chat, tasks, files, desktop, browser) run as the owner's OS user and can never be granted. Indirection there really is accidental complexity.

Urgent

Themes

84 open, 22 closed, across 28 themes.

Theme Open Closed
Affordances 1 0
Speaking into a session from the backend 2 0
Backburner 2 0
Background jobs 2 0
Chat interface 1 0
Code editor 1 0
Components — the shared UI layer 1 0
File watchers 1 0
Fleet — one command across every server 5 2
Headscale 0 5
Infra (alpha) 6 0
Known bugs 4 1
Mobile apps 3 0
Multi-user 17 3
Notifications 1 0
Plugin ecosystem — before it opens to third parties (2026-08-18) 3 0
Plugin infrastructure 2 0
Plugin repos — what writing their READMEs turned up 10 9
Plugin system — gaps the email extraction found (2026-08-18) 3 0
Prompt library 1 0
Shell — spotlight and the dock 1 1
Sub-agents — agents spawning agents 1 1
Sudo terminal modal 1 0
Tooling — the list about the list 1 0
Transmission 6 0
URL state — routing, query strings and selection 4 0
Waiting on the owner to run it 2 0
Workspaces & Panels 2 0

Records — no items, kept for the reasoning

Newest ten