# 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`. Browse and edit it at `/todos` in the app. **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 - **due 2026-08-22** — **Settings to choose which server each feature uses** — [fleet/settings-to-choose-which-server-each-feature](todo/fleet/settings-to-choose-which-server-each-feature.md) - **An affordance: a scoped agent warns when a request lands outside its scope** — [affordances/an-affordance-a-scoped-agent-warns-on-the](todo/affordances/an-affordance-a-scoped-agent-warns-on-the.md) - **A commander's watcher does not survive a reboot, and nothing says so** — [agent-coordination/a-commander-s-watcher-does-not-survive-a-reboot](todo/agent-coordination/a-commander-s-watcher-does-not-survive-a-reboot.md) ## Themes **107 open, 31 closed**, across 33 themes. | Theme | Open | Closed | | ------------------------------------------------------------------------------------------ | ---- | ------ | | [Affordances](todo/affordances/) | 2 | 0 | | [Agents coordinating agents](todo/agent-coordination/) | 5 | 0 | | [Speaking into a session from the backend](todo/agent-delivery/) | 1 | 1 | | [Backburner](todo/backburner/) | 3 | 0 | | [Background jobs](todo/background-jobs/) | 2 | 1 | | [Chat interface](todo/chat/) | 1 | 0 | | [Code editor](todo/code-editor/) | 1 | 0 | | [Components — the shared UI layer](todo/components/) | 1 | 0 | | [Documentation conventions — AGENTS.md vs CLAUDE.md](todo/docs-conventions/) | 2 | 0 | | [File watchers](todo/file-watchers/) | 1 | 0 | | [Fleet — one command across every server](todo/fleet/) | 6 | 2 | | [Headscale](todo/headscale/) | 0 | 5 | | [Infra (alpha)](todo/infra/) | 7 | 0 | | [Known bugs](todo/known-bugs/) | 6 | 4 | | [Memory — one store instead of per-harness files](todo/memory/) | 1 | 0 | | [Mobile apps](todo/mobile-apps/) | 5 | 0 | | [Multi-user](todo/multi-user/) | 17 | 5 | | [Notifications](todo/notifications/) | 1 | 0 | | [Plugin ecosystem — before it opens to third parties (2026-08-18)](todo/plugin-ecosystem/) | 5 | 0 | | [Plugin infrastructure](todo/plugin-infrastructure/) | 3 | 0 | | [Plugin repos — what writing their READMEs turned up](todo/plugin-repos/) | 10 | 9 | | [Plugin system — gaps the email extraction found (2026-08-18)](todo/plugin-system/) | 3 | 0 | | [Prompt library](todo/prompt-library/) | 1 | 0 | | [SendOff](todo/sendoff/) | 1 | 0 | | [Settings — portable, and readable by an agent](todo/settings/) | 2 | 0 | | [Shell — spotlight and the dock](todo/shell/) | 4 | 1 | | [Sub-agents — agents spawning agents](todo/sub-agents/) | 0 | 2 | | [Sudo terminal modal](todo/sudo-terminal-modal/) | 1 | 0 | | [Tooling — the list about the list](todo/tooling/) | 0 | 1 | | [Transmission](todo/transmission/) | 6 | 0 | | [URL state — routing, query strings and selection](todo/url-state/) | 4 | 0 | | [Waiting on the owner to run it](todo/waiting-on-owner/) | 3 | 0 | | [Workspaces & Panels](todo/workspaces-panels/) | 2 | 0 | ## Records — no items, kept for the reasoning - [Affordances (2026-08-19)](todo/affordances-runtime/_index.md) - [Email](todo/email/_index.md) - [Inputs outside forms (2026-08-19) — swept, fixed, closed](todo/inputs-outside-forms/_index.md) - [Release-binary dependencies (2026-08-19)](todo/release-binaries/_index.md) ## Newest ten - `2026-08-27` **Turn an ordinary chat into a commander or a bot, carrying its context along** — [agent-coordination/turn-a-chat-into-a-commander-or-a-bot](todo/agent-coordination/turn-a-chat-into-a-commander-or-a-bot.md) - `2026-08-27` **AGENTS.md sweep — what is left after the static docs landed** — [docs-conventions/agents-md-remaining](todo/docs-conventions/agents-md-remaining.md) - `2026-08-27` **The calendar/contacts skill has never been exercised by an actual agent** — [known-bugs/calendar-skill-never-used-by-an-agent](todo/known-bugs/calendar-skill-never-used-by-an-agent.md) - `2026-08-27` **Setting up a phone for calendar and contacts should be one link inside Officer, not a manual account form** — [mobile-apps/setting-up-a-phone-should-be-a-link-in-the-app](todo/mobile-apps/setting-up-a-phone-should-be-a-link-in-the-app.md) - `2026-08-27` **Marketplace: browse by tag — filter list, card grid, detail with a back button** — [plugin-ecosystem/marketplace-browse-by-tag](todo/plugin-ecosystem/marketplace-browse-by-tag.md) - `2026-08-27` **A plugin that has a sidecar proxy loses the request body on its OWN routes** — [plugin-infrastructure/a-plugin-s-own-routes-lose-their-request-body](todo/plugin-infrastructure/a-plugin-s-own-routes-lose-their-request-body.md) - `2026-08-25` **An affordance: a scoped agent warns when a request lands outside its scope** — [affordances/an-affordance-a-scoped-agent-warns-on-the](todo/affordances/an-affordance-a-scoped-agent-warns-on-the.md) - `2026-08-25` **Commit signing is inconsistent across harnesses — Claude names itself, opencode names nothing** — [agent-coordination/commit-signing-is-inconsistent-across-harnesses](todo/agent-coordination/commit-signing-is-inconsistent-across-harnesses.md) - `2026-08-25` **A commander's watcher does not survive a reboot, and nothing says so** — [agent-coordination/a-commander-s-watcher-does-not-survive-a-reboot](todo/agent-coordination/a-commander-s-watcher-does-not-survive-a-reboot.md) - `2026-08-25` **Resurrect Projects/Apps** — [backburner/resurrect-projects-apps](todo/backburner/resurrect-projects-apps.md)