Skip to content

Commit 3374f7b

Browse files
author
pavelhov
committed
chore: clean multi-agent workstation handoff
1 parent 4066649 commit 3374f7b

37 files changed

Lines changed: 298 additions & 957 deletions
Lines changed: 60 additions & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -1,129 +1,67 @@
11
# 000 — Multi-agent workstation and self-contained macOS app
22

3-
Status: IMPLEMENTED — TARGET RUNTIME GATE INCOMPLETE ON HOST TIMING
3+
Status: IMPLEMENTED — LIVE MIXED-PROVIDER V2 ACCEPTANCE GREEN; SIGNED DISTRIBUTION OPEN
4+
45
Created: 2026-08-08
6+
Updated: 2026-08-08
57
Branch: `codex/multi-agent-workstation`
6-
Base: `main` at `6f88fc3f101d32947ebf11a25c33640ff50a313e`
7-
Integration target: `dev` for review, then maintainer promotion to `main`
8+
Base: fork `main` at `6f88fc3f101d32947ebf11a25c33640ff50a313e`
89

910
## Objective
1011

11-
Turn the existing OpenCodex provider proxy into a dependable multi-model
12-
workstation without inventing a second orchestration engine:
13-
14-
1. make the Agent Command Center explain the behavior it already owns;
15-
2. keep the five-model roster as advertised worker guidance, while every
16-
catalog model remains callable by exact id;
17-
3. prevent automatic V2 guidance from recommending child routes whose native
18-
encrypted task payload cannot cross the provider boundary;
19-
4. retain the current fail-closed guard for explicit incompatible overrides;
20-
5. provide an explicit product-owned plaintext compatibility contract for
21-
heterogeneous V2 trees while retaining encrypted fail-closed behavior; and
22-
6. ship a macOS app that contains the runtime and dashboard instead of
23-
requiring a separate npm/Bun/OpenCodex installation.
24-
25-
This unit does **not** add role graphs, team profiles, game-development
26-
workflows, prompt templates, file inboxes, guessed decryption, proxy
27-
re-encryption, or a blanket `agent_message` rewrite.
28-
29-
## Verified starting state
30-
31-
- The active roster is capped at five because Codex advertises the first five
32-
featured picker-visible rows to `spawn_agent`; catalog models outside the
33-
roster remain callable by exact id.
34-
- V2 guidance already includes the effective roster when
35-
`multiAgentGuidanceEnabled` is on. The UI hides that fact under an advanced
36-
toggle and overstates the preferred/fallback relationship.
37-
- `multiAgentMode = default` restores upstream model pins and the current
38-
Codex feature setting. It does not select a worker.
39-
- V2 is selected by the root task and inherited by its tree. Changing the
40-
setting does not retrofit an already-running task.
41-
- Issue #92 is reproducible: a native Sol parent can select a routed child,
42-
but the child assignment arrives only as backend ciphertext. OpenCodex
43-
correctly refuses to dispatch an empty task or leak the ciphertext.
44-
- The Swift menu-bar bundle is a companion only. It finds an external `ocx`
45-
and Bun runtime; it does not contain the proxy, CLI, dependencies, or
46-
`gui/dist`.
47-
- A temporary `bun build --compile` probe bundled 769 modules, but
48-
`--version` failed because runtime metadata resolved `/package.json` from
49-
the compiled `$bunfs` layout. Dynamic workers, subprocesses, GUI assets,
50-
services, and npm updater assumptions make a compiled helper a later
51-
refactor rather than the first reliable app release.
52-
53-
## Workstream map
54-
55-
| ID | Workstream | Primary scope | Terminal gate |
56-
|---|---|---|---|
57-
| WS-01 | Truthful Agent Command Center | `gui/`, docs locales | COMPLETE — GUI tests, lint, i18n lint, build, and retained visual QA |
58-
| WS-02 | Compatibility-aware roster guidance | `src/server/responses/`, catalog helpers, runtime tests | COMPLETE — native V2 guidance excludes unreadable routed children; exact overrides still fail closed |
59-
| WS-03 | Product-owned plaintext V2 compatibility | native Responses request/response wire, Run Policy, docs | INTEGRATED — focused, GUI, docs, typecheck, privacy, and diff gates pass; required full runtime invocation is red only on four pre-existing cold-subprocess files under current host load |
60-
| WS-04 | Self-contained macOS runtime | `app/`, `scripts/`, runtime resource resolution, docs | COMPLETE FOR TEST DISTRIBUTION — bundled-runtime lifecycle smoke passed without global Bun/npm/ocx |
61-
| WS-05 | Distribution hardening | packaging/release follow-up | Developer ID signing, notarization, stapling, DMG, updater, clean-VM gate |
62-
63-
WS-05 is a separately credentialed release phase. No publish, deployment,
64-
version bump, signing credential use, notarization submission, or App Store
65-
submission is authorized by this unit.
66-
67-
## Commit and review strategy
68-
69-
Work stays on one delivery branch but lands as scoped checkpoint commits:
70-
71-
1. `13eccd9b` — `docs(plan): track multi-agent workstation delivery`
72-
2. `aebd7278` — `fix(agents): filter encrypted v2 worker guidance`
73-
3. `0cfe71f4` — `docs(agents): propose provider-aware v2 delivery`
74-
4. `f9ac7819` — `feat(gui): make agent command center truthful`
75-
5. `108752a9` — `docs(plan): retain agent command center qa`
76-
6. `1b8e2f6e` — `test(agents): cover mixed roster protocol modes`
77-
7. `0ca85586` — `feat(macos): bundle self-contained universal runtime`
78-
8. `0df6a52f` — `test: keep prepush expectations deterministic`
79-
9. `33425358` — `fix(gui): clear command center review findings`
80-
10. `bef7c19a` — `feat(agents): enable plaintext mixed-provider v2`
81-
11. `796a7b02` — `test: make subprocess output reads single-owner`
82-
12. `f0962e42` — `fix(agents): harden plaintext v2 integration`
83-
84-
Commits may be split further when review boundaries demand it. A checkpoint is
85-
created only after its focused tests pass. The branch is not merged directly
86-
to `main`: repository policy requires review against `dev`, followed by the
87-
maintainer-controlled `dev` to `main` promotion.
88-
89-
## Global acceptance gates
90-
91-
Completed target-integration gates:
92-
93-
1. `bun run typecheck`
94-
2. focused plaintext/V2/fail-closed runtime suites
95-
3. `bun run privacy:scan`
96-
4. `cd gui && bun test tests && bun run lint:i18n && bun run lint && bun run build`
97-
5. `cd docs-site && bunx --bun astro build`
98-
6. `git diff --check`
99-
100-
The exact required `OCX_TEST_SHARD_SIZE=1 bun run test` target gate remains
101-
red. Shards 1-153 passed before shard 154 stopped the runner. Continued
102-
one-file coverage exercised shards 155-602; every file passed except four
103-
pre-existing cold-subprocess suites whose fixed 5-10 second deadlines expired
104-
under sustained host load. Targeted retries reproduced the same delays without
105-
touching feature code. No timeout, fixture boundary, or assertion was changed.
106-
107-
Earlier branch gates retained by this integration:
108-
109-
1. `bun run test:macos`
110-
2. `bun run build:macos`
111-
3. packaged-app smoke from a sanitized environment with no usable global
112-
`bun`, `node`, `npm`, or `ocx`
113-
114-
Remaining review-readiness gates are an idle-host rerun of the full runtime
115-
command and a fresh Codex task after catalog sync for the live model matrix:
116-
Sol/Luna parents with Kimi, Grok, and DeepSeek children.
117-
118-
The fresh-session matrix is intentionally last: the protocol and catalog are
119-
sticky for an existing task, so running it inside the task that changed the
120-
setting would produce false evidence.
121-
122-
## Branch completion
123-
124-
The pre-feature repository-wide pre-push gate is green. The product-owned
125-
plaintext V2 feature was verified in its isolated worktree and is now integrated
126-
here. Keep this unit open until the idle-host runtime gate and fresh-task
127-
mixed-roster run are recorded. Then move this unit to
128-
`devlog/_fin/260808_multi_agent_workstation/` and record the remaining
129-
upstream/distribution dependencies and review/promotion path.
12+
Make OpenCodex a dependable multi-model workstation without adding a second
13+
orchestration engine:
14+
15+
1. explain the five-model roster and Run Policy truthfully;
16+
2. keep automatic guidance compatible with the resolved parent route;
17+
3. support explicit, fail-closed plaintext V2 delivery for mixed providers;
18+
4. keep routed catalogs durable and make stale Codex workers easy to refresh;
19+
5. ship a macOS app containing the Bun runtime, OpenCodex source, production
20+
dependencies, and dashboard.
21+
22+
The unit deliberately excludes role graphs, team profiles, prompt templates,
23+
file inboxes, guessed decryption, proxy re-encryption, blanket
24+
`agent_message` rewriting, silent worker restarts, and silent plaintext
25+
activation.
26+
27+
## Delivered workstreams
28+
29+
| ID | Result |
30+
| --- | --- |
31+
| WS-01 Agent Command Center | The Subagents page now exposes Active Roster, Agent Library, and Run Policy with truthful copy and six synchronized GUI locales. |
32+
| WS-02 Compatibility-aware guidance | Encrypted native V2 guidance excludes unreadable external routes while exact overrides retain the existing fail-closed behavior. |
33+
| WS-03 Plaintext V2 compatibility | Explicit `multiAgentV2MessageDelivery: "plaintext"` enables the recognized mixed-provider V2 contract; encrypted delivery remains the default. |
34+
| WS-04 Self-contained macOS app | The application bundles its runtime and dashboard, auto-syncs the catalog, and offers a confirmed **Apply agent catalog** action for stale Codex workers. |
35+
| WS-05 Signed distribution | Developer ID signing, notarization, stapling, quarantine testing, and the public updater remain a separately credentialed release phase. |
36+
37+
## Verification retained for the functional branch
38+
39+
- All 604 one-file runtime shards were exercised on the same functional
40+
revision and worktree. A contention-only serialization shard was rerun with
41+
the repository fixture and the continuation completed green; no assertion,
42+
production timeout, or safety guard was weakened.
43+
- The full GUI suite passed 715 tests, localization lint, ESLint, React Doctor,
44+
and the production build.
45+
- The documentation site built all 226 pages. Typecheck, privacy scan, and
46+
`git diff --check` passed.
47+
- The native macOS suites passed 95 core and 31 UI tests. The bundled app
48+
started the proxy without a global `bun`, `npm`, or `ocx`, and the dashboard
49+
returned HTTP 200.
50+
- A fresh Sol V2 parent dispatched the exact models
51+
`opencode-go/deepseek-v4-flash`, `kimi/k3[1m]`,
52+
`opencode-go/glm-5.2`, and `xai/grok-4.5`. All four completed with their
53+
required markers, and a Kimi follow-up completed without substitution,
54+
timeout, or catalog exclusion.
55+
56+
## Remaining release work
57+
58+
- Run the signed/notarized build and clean-machine quarantine matrix when the
59+
required Apple credentials are available.
60+
- Add a signed app update and rollback channel before calling the macOS bundle
61+
a public auto-updating release.
62+
- Keep plaintext V2 explicit and experimental until additional client-schema
63+
versions are feature-detected in production.
64+
65+
Repository policy targets feature review at `dev` followed by maintainer
66+
promotion to `main`. A fork owner may still use a direct fork-main comparison
67+
for private integration review.

0 commit comments

Comments
 (0)