write down the north star: agents coordinating with each other

docs/agent-coordination.md is the objective the workspace/panel work serves —
several agents on one dashboard handing work to each other instead of routing
every step through the human, with the human authoring the workflow at the top.
Written from the owner's own words during the 2026-08-07 conversation; where a
section records a decision, that decision is his.

It settles the questions that were blocking: sessions may be reaped and resumed
from the durable sessionKey→claudeSessionId map (no heartbeat), the address is
the human-assigned panel name rather than the panel id, roles are prompts rather
than features, and the protocol is turn-boundary-only by construction — which
routes around the mid-output restart failure instead of fixing it.

Cross-referenced from CLAUDE.md, workspace-panels.md and workspace-panel-todo.md
so it is findable from any of them. The todo is still ordered by defect severity
and now says so; the re-rank against the objective is deferred, not forgotten.

Also corrects two items dated 2026-08-08 to the day they were actually found.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-07 06:58:01 +00:00
co-authored by Claude Opus 5
parent 5bdb2474ea
commit 7c99429872
4 changed files with 726 additions and 3 deletions
+7 -3
View File
@@ -7,6 +7,10 @@ Move anything fully settled to §7.
**How the framework actually works is documented separately, in `workspace-panels.md`** — read that
first if you are new to it. This file is only the defect list and the work queue.
**Why any of it matters is in `agent-coordination.md`** — the north star. This list is currently ordered
by defect severity; it is to be **re-ranked against that objective**, and until that happens an item's
position here says nothing about its importance to the goal.
Findings and full reasoning: `COMMS/workspace-panel-framework-analysis-2026-08-07.md`. Every `file:line`
below was opened; DB claims were run against live `officer_dev`. Paths are relative to
`platform/src/workspaces/officerdev/src/` unless they start with `servers/`, `databases/` or `sidecars/`.
@@ -61,7 +65,7 @@ Both are two-line fixes, and without them you cannot tell whether any later fix
(`databases/officer_db/src/queries/dashboards.ts:70`) → 23502.
- [ ] **`HostTerminalWrapper` never strips the prefix, so it mints phantom dashboards.** *(found
2026-08-08, latent — `dashboards` is still 0 rows)*
2026-08-07, latent — `dashboards` is still 0 rows)*
`apps/Terminal/HostTerminalWrapper.tsx:12` is `` `ws-host-terminals-${dashboardId}` `` with **no
regex**, while its sibling `TerminalWrapper.tsx:13-14` correctly matches `^ws-layout-(.+)$` first.
So the key becomes `ws-host-terminals-ws-layout-<id>` or `ws-host-terminals-screens/terminal`, the
@@ -327,7 +331,7 @@ All the same bug: an app guessing "am I being closed?" from an unmount, or payin
(`frontend.tsx:15-21`) with no per-route scoping, and `reset` is called nowhere.
Authority: `docs/navigation-audit.md`.
### 5.9 The context has grown an app-config section — *(found 2026-08-08)*
### 5.9 The context has grown an app-config section — *(found 2026-08-07)*
`WorkspaceContext` is 18 fields, of which the framework itself reads none of the first six. Apps never
touch the framework half, so the abstraction holds in one direction; the leak is entirely outbound.
@@ -354,7 +358,7 @@ touch the framework half, so the abstraction holds in one direction; the leak is
inside a `DashboardPreview` fall through to the `createContext` defaults. Whatever survives the
three items above should be constructed in one place, not twice by hand.
### 5.10 Channel hygiene — *(found 2026-08-08)*
### 5.10 Channel hygiene — *(found 2026-08-07)*
Cheap to fix, and prerequisites for the 5.8 migration rather than alternatives to it.