Repository navigation
Port Promachos mode #175
Description
Activity
What: #175 is owned by one dispatcher/writer in the assigned clean worktree, created from landed foundation
6e1653b6719565db2cc5094670e19e6efd3fc1ce.
Why: Promachos home, launch routing and bubble timeline need the approved V2 port; upstream has no Promachos implementation.
So what: Implement and prove against exact WIP dependencies, keep blockers open, then rebase after their landing and deliver one independently reviewed #175-only PR intofork/v2.Durable state
Workspace
/Users/lukaszmaj/dev/toolboxmd/chromeria-worktrees/175-v2, branchfeat/175-promachos-v2; sole writer is this dispatcher. Created through the full clone's exact fetch/worktree-add commands; no files changed in 166-absorb or any main checkout. Foundation #178 is merged; live fork/v2 verified at 6e1653b. Live #168 WIP 90c5381 and #169 WIP e49d356 are not reviewed landed dependencies. #170 has no live remote branch/PR yet; its local clean committed checkpoint is available read-only. Blockers remain open.Read full PORT-BRIEF, #175, #166 with all comments, g3 assessment, repo AGENTS, fork docs and glossary. Upstream search: git grep on upstream/main finds no Promachos references; GitHub open-PR and Issue searches for Promachos return no results. No candidate adopted. Keep #125 initial-only restriction and D5′ shared Prism service/launch-time kit. Native V2 lineage replaces old prefix helper; no old thread tools are ported.
Visible read-only worker
sub.sub.sub.thread-9c8e27a973f0.dispatcher-c1e9a4151064.dispatcher-1f9eb305fe57.worker-4e2a3c513c00inspects UI seams only, never authors. Router chose its model/effort. Independent exact-head reviewer will be a separate visible T3 reviewer.Authority: #175 implementation, Issue record, task commits/push and one fork/v2 PR. No merge/main push/version bump/install/deploy/browser/computer use/desktop build. UI images and integrated pass deferred to planner; no visual-proof claim. Focused behavior tests and scoped lint/typecheck in host-neutral supported Node24 environment. Receipts/effect drains only, no sleeps. Dependencies will be staged for local proof only and removed from the final diff by rebase onto landed fork/v2. Any consequential choice or non-trivial conflict pauses for options/evidence/choice and user reply.
Requirements and who asked: User/#175 and #166 approved home ProjectService port, initial launchThread Prism selection/kit and V2 run-based bubble timeline, one PR and focused proof.
Deleted: V1 orchestration/dispatch hook and queued-message assumptions; no duplicate Prism router, hidden agent runs, versions or UI proof claim.
Bottleneck: Published WIP dependency composition followed by their reviewed landing; UI integration can proceed against checkpoints without clearing blockers.
Checked myself: Required records and source seams read, exact full-clone worktree creation/base and live dependency refs checked, upstream searches empty, assigned workspace initially clean.What: Dependency staging is paused before resolving #168/#169 non-trivial conflicts.
Why: The published Prism checkpoint predates the latest child retirement/cross-project contract and the landed typed/opaque settings boundary.
So what: Await the user’s A/B decision; do not resolve or continue the cherry-pick until approved.Canonical continuation state
Assigned worktree
/Users/lukaszmaj/dev/toolboxmd/chromeria-worktrees/175-v2, sole-owned branchfeat/175-promachos-v2. Foundation base6e1653b6719565db2cc5094670e19e6efd3fc1ce; all #168-only commits staged cleanly, HEAD83af2a38ce(last source checkpoint90c538120e). In-progress cherry-pick sequence367ac77965, thene49d356bf2. Eight unresolved files: OrchestratorMcpService.ts, its activity/test/integration fixtures, core.test.ts, Orchestrator.ts, orchestratorMcp.ts, settings.ts. No conflict resolution or #175 implementation authored yet. No push/PR/review/proof claim. Dependency deltas are temporary local proof staging, never final #175 scope.Decision requested in this T3 thread:
- A (recommended): compose already-approved behaviors locally.
forkPlans: [...(plan.forkPlans ?? []), ...prismRecovery.commitPlans(command)]in the one approved list, retirement first; keep destination project/workspace forwarding and use Prism kit plus task prompt; union service/test dependencies; preserve foundation autoUpdateProviders/wightModes while overriding only opaque prismRoles with typed PrismRoleKits. Rebase away all predecessor deltas after their merges. - B: abort current Port Prism as a service behind upstream delegation #169 cherry-pick and wait for its published rebased dependency.
Evidence: actual combined diff has competing forkPlans, task/input fields and settings schema plus layer fixtures. D5′/D14/D16 already approve their behavior and shared seam, but PORT-BRIEF requires decision review before non-trivial resolution. User reply is pending.
Setup uses existing pnpm store, no downloads observed, no tracked lockfile diff. Disk after setup is 2.3 GiB free; no clone or desktop build. Scoped proof will use installed Node24.13.1 from ~/.nvm/versions/node/v24.13.1/bin with the prescribed host-neutral environment. UI evidence remains deferred to planner. Read-only UI worker is still active; it cannot author changes.
Requirements and who asked: User requires local dependency proof and final #175-only PR; PORT-BRIEF requires waiting for non-trivial conflict decisions.
Deleted: No dependency behavior dropped and no decision acted on; no duplicate commit seam or router proposed.
Bottleneck: User choice A/B before dependent staging continues.
Checked myself: Inspected actual eight-file conflict output and source APIs, preserved all staged predecessor code and confirmed only task workspace was changed.- A (recommended): compose already-approved behaviors locally.
What: PR187 is refreshed onto merged recovery-history base
4c2b38436fat73435bedda993ddc954347ce79072caad93ba1c9, preserving all approved #175 behavior.
Why: A real-receipt regression found kit loss between accepted creation and initial-message acceptance; the successor restores the current kit without changing the stored model.
So what: Current734 affected server proof and exact-head review pass; CI is running; unchanged proof is reused, and planner owns the deferred UI/live-provider pass and merge/cutover.Current durable handoff, 2026-10-09
- ONE PR feat(promachos): port persona home and bubble chats to v2 #187, OPEN/non-draft/base
fork/v2, T3 registration verified. Sole writer workspace/Users/lukaszmaj/dev/toolboxmd/chromeria-worktrees/175-v2, branchfeat/175-promachos-v2, clean and retained. - Exact pushed HEAD 73435be, live base 4c2b384. Seven Port Promachos mode #175-only commits,38 files. Six original port patches retained plus one owned retry fix; no Port Prism as a service behind upstream delegation #169 predecessor, ACP or Wight implementation in the diff. Dependencies foundation/people/child/feat(server): route native agents through shared Prism service #183/Port the Prism stream clock and stale-turn detector #172/feat(wight): continue v2 threads within timer and quota limits #188/test(server): prevent worker PID collisions in ACP rotation fixture #190 merged.
- Rebase conflicts were additive Wight/Promachos contract exports and append-only feature-map/allowlist entries; both complete groups preserved mechanically. No consequential conflict. MODULAR table covers16 upstream files with verified +/- counts, three >~15line MessagesTimeline hunk justifications; counts unchanged by fork-only retry fix. Inventory21 features.
- No active Port Promachos mode #175 proof process. All local heavy commands were serial with immediate uptime1m<8 and actual shared-slot release, Port Prism as a service behind upstream delegation #169 priority. No overlap; slot released to174/Port Prism as a service behind upstream delegation #169. No browser/computer use, local/desktop builds, installs, versions, main/direction writes, merge or live-userdata changes. No unrelated user-owned dirty work touched.
Implementation and authorized decisions
- Home creation uses ProjectService, stable identity/retry registration, preserves existing persona files, and creates the absent CLAUDE persona link. Environment-scoped homes and native people/child lineage filtering retained; saved multiple-model choices restore on return to standard mode.
- Initial-only Promachos bootstrap calls upstream launchThread. Shared Prism resolves configured model/effort and D5′ launch-time kit once; receipt replay preserves accepted model/message and avoids new routing. No eligibility duplication or persisted routing state.
- Timeline approved A: retain HTML-render/MCP-app outputs and runtime-error/usage-limit notices, collapse technical work and reasoning, retain upstream queue controls. Actual V2 error work entries are retained; paragraphs use the real Markdown parser. Inline question/approval hosts preserve upstream handlers and scope to the displayed thread.
- Dependency composition approved B: abort only this dispatcher's old cherry-pick; no self-composition or dependency repair. Consumer approved A: use corrected shared
Prism.validateLaunchSelectionthrough existing resolve.validate, providing BOTH ProviderAdapterRegistryV2 and ProviderRegistry. First unavailable candidate falls back before any thread creation. This now consumes merged feat(server): route native agents through shared Prism service #183, not speculative heads. - MODULAR rule applied: fork behavior/RPC/error mapping/fanout/scroll/test cases live in owned modules; upstream has small hooks. PR lists all 16 upstream-owned file +/- counts and explains the three MessagesTimeline hunks exceeding about 15 lines with context. No copied upstream implementation. Full Port the Prism stream clock and stale-turn detector #172/Port Promachos mode #175 append-only feature-map/allowlist entries retained mechanically during rebase, no product/policy choice.
- Routine Port Promachos mode #175 CI fixes: authorization test primary owner/allowlist registration, then removal of three unused export modifiers in owned modules. No body/caller/API changes; current Fork Stack Model and Lint succeed.
- Original upstream search found no upstream Promachos implementation in main or matching Issues/PRs. Full Port Promachos mode #175/Absorb upstream main (533 commits behind) #166/comments/PORT-BRIEF/g3-promachos, repo rules/fork docs/MODULAR and current triad inspected. This advances the Promachos Objective; no feature cut for patch size.
Explicit partial-launch decision A
Planner expressly approvedA before implementation: accepted thread.create + initial message NOT accepted =>existing shared Prism.resolve with stored model as explicit selection rebuilds the current Promachos kit. No validation, fallback, reroute, model change or new durable routing state. Accepted initial-message receipt =>receipt-only retry. Settings when the first message is submitted/accepted are acceptable. B, durable immutable first-preparation kit snapshot, was not selected. Original PORT-BRIEF consequential gate satisfied; no extra authority inferred.
Implementation reads${commandId}:initial-messagereceipt inside the accepted-create branch. Stored model is always returned. Current kit is loaded only if that message has not been accepted. Upstream launch and accepted-message dedupe remain unchanged.Executed and reused proof
Supported Node24.13.1, ELECTRON_RUN_AS_NODE unset, physical TMPDIR, no Homebrew proof PATH. Each batch checked immediate uptime; current-base proof loads6.30/6.63/5.24/6.20/6.65/6.83/7.59, retry proof loads3.58red/2.58green/2.91initialtypes/3.43greentypes/7.62lint+finaltests, all below8 and serial. Logs append exit codes;
/tmp/175-portpaths are scratch, this Issue retains reproducible commands/results.- Current-base seven-file command:
pnpm exec vp test run apps/server/src/promachos/PromachosHome.test.ts apps/server/src/auth/RpcAuthorization.test.ts apps/web/src/components/promachos/promachosBubbles.test.tsx apps/web/src/components/promachos/promachosConversations.test.ts apps/web/src/components/promachos/promachosStart.test.ts apps/web/src/components/promachos/promachosTimeline.test.ts packages/client-runtime/src/operations/commands.test.ts --maxWorkers 1:72 pass/7 files, exit0 on840 with unchanged relevant inputs in5315, reused. Covers home/filesystem, authorization, actual parser, native people filtering, initial-only/saved-fanout behavior, real V2 error projection and client mapping. - Fresh
pnpm exec vp test run apps/server/src/orchestration-v2/ThreadLaunchService.test.ts -t 'Promachos launch' --maxWorkers 1:5 pass,47 unrelated skipped, exit0 after approved fix. Together77 focused cases. Real SQL/Prism/upstream receipts prove model/effort/kit, no eligible-model creation, initial-only refusal, adapter fallback BEFORE creation, full accepted replay and partial-create recovery. - Partial receipt regression RED before fix: accepted real create/absent initial-message receipt, original input retry persistsHello instead ofpersona+Hello;1 failed/51 skipped, exit1. Green extends the same boundary with changed kit/model preferences: current kit, stored model preserved; subsequent kit change/accepted replay remains one message/run. The initial exact-optional test fixture error was fixed by omitting initialMessage rather than settingundefined; server types and final5 tests rerun green. No oracle weakening.
pnpm --dir apps/server exec tsc --noEmit:fresh exit0 after retry fix. apps/web,packages/contracts,packages/client-runtime same command each exit0 oncurrent base840, reused with unchanged relevant inputs. Effect suggestions are non-failing.- Fresh
pnpm exec vp lint apps/server/src/promachos/PromachosLaunch.ts apps/server/src/promachos/PromachosLaunch.tests.ts:exit0 afterfix. Changed contract index/orchestrationV2 lint exit0 onbase840; other30 unchanged TS/TSX lint receipts reused.34 changed TS/TSX files covered. Commit hook only wraps formatting after proof, no semantic/input change; reviewer inspected exact committed result. node scripts/fork-features.mjs check:21 features pass;git diff --check:pass. Earlier typed-error projection regression2 red→5 green retained historically.- New tests use typed receipts, no sleeps/polling; provider execution is disabled by harness. No live-provider verification. Scoped local proof is feedback, not repo-wide coverage; CI owns full checks.
- Integrated UI, screenshots/video and live-provider proof explicitly deferred by user to planner. Web/desktop share the web presentation; mobile stays standard view as authorized. Remote/environment identity and native people/provider contracts retained.
Independent exact-head review
READ-ONLY visible Prism-routed GPT-6-Luna/Codex reviewer thread
sub.sub.sub.thread-9c8e27a973f0.dispatcher-c1e9a4151064.dispatcher-1f9eb305fe57.reviewer-3ddbf2b39baf, no authoring or proof reruns. Exact5315 PASS, no other material findings. Findings relayed unchanged on PR first: #187 (comment). Newest review/independent success bylukemaj on5315, target those PR findings. Prior840 requestchanges/failure recorded #187 (comment); historical pending-choice wording superseded by approvedA and successorfix, not waived.PASS:
5315c2a7a96d42183fbbacf9c04a40b0277df706on basec87ee8c84eb901f5c8abbd24b54a6a7becdecea7The two-file successor fixes the partial-receipt gap: after an accepted create with no accepted initial-message receipt, it resolves the current kit using the stored model; once the message receipt is accepted, replay does not reload the kit or change the model. The real-receipt regression covers both paths and passes (5 tests); the server typecheck and focused lint also pass. The earlier red receipt reproduces the missing-kit failure.
No other material findings in the reviewed scope. Previous unchanged proof is reused; CI for this head is still rerunning, and UI/live-provider verification remains deferred.
Current recovery-history base maintenance and delivery
Rootconditionalapplied:927 TestServer2 stillRUNNING atactualstatecheck when192mergeinstructionarrived, so samePRrebased onto verifiedlive4c, newhead734. Allseven175commits preserved, no conflicts. Only2PRblobs incorporatebasechanges (docsmap,orchestrationV2); other36identical. No192repair/sourceincludedin175diff,16upstreamcountsunchanged.
Inspectedfullmergedhooks: normalPromachos initial-message has no forkPrismRetryOfRunId/usageLimitContinuationOfRunId, so continuationRunFields{} / continuationAdmissionnull. ProjectionStorekeepContinuationSource preservesonlyexistingfield. SharedPrismService/validator/ThreadLaunch unchanged; recoveryreaderAPI unchanged. CommonOrchestrator/ProjectionStore/run schema inputs changed, so fresh5launchcases+server/contracts types PASS after174actualrelease/freshload<8; noactive175heavy. Logs4c-launch.txt,4c-server-types.txt,4c-contracts-types.txt exit0. Otherunchangedmoduleproof/scopedlint reused; currentCITypecheck will freshlycoverallpackages rather thanclaimoldweb/clienttypes currentunderchangedschema.
Current734 independent READ-ONLY reviewer PASS; unchanged findings #187 (comment) posted before newest review/independent success by lukemaj, linked to those PR findings. Automatic CI running. Costrepublishfor734; body/handoffcurrentbase/headupdated. Prior5315/927PASS andCIproof historical, notcurrent734status. No current readiness claim pending full CI. No newproductchoice beyondalreadyapprovedpartialkitA/timelineA; no sourceauthoringneededforbasechange.
Next finishaffectedfeedback, reportactualslotrelease, exactheadfindings/status, currentCI/cost/body/handoff finalstate. PlannerUI/liveproviderpass remainsdeferred; no merge/version/localbuild/install/browser/mainpush authority.
Websiteimpact:none. Model/harness GPT-6.1-Sol/Codex inT3Code; independentvisiblePrism-routedGPT-6-Luna/Codex reviewer.Requirements and who asked: User/root authorizedsamePRlatest4cbase, affectedrevalidation, approvedkitAandalloriginal175behavior, exactheadreview/CI/modularity/cost/handoff.
Deleted: No192repair, newdurablestate orrouting/eligibilityduplication; no localrepo-wide runs.
Bottleneck: Current734CI completion; plannerUI/liveproviderpass deferred.
Checked myself: Verifiedlive4c/refandconditionalstill-running927CI, inspectedmergedcontinuation/ProjectionStore/contracthooks, exact36unchangedblobs/sevenownpatches andno175diffexpansion; fresh affected proof completed serial after actual174release; load3.42/3.55/3.56, actualreleaseposted.Current734 reviewer verdict relayed unchanged
PASS for
73435bedda993ddc954347ce79072caad93ba1c9on base4c2b38436fda0fef5bb2b101d52f90d7ed831df0. The worktree is clean, local and remote heads match, and all seven rebased patches compare equal; the fresh launch and server/contracts typechecks pass.The new continuation marker is inert for Promachos’s ordinary initial dispatch: it supplies neither source ID, so the run fields are empty and recovery admission returns null. Projection storage preserves the marker only when a run already has one; Prism and ThreadLaunch APIs are unchanged across the base update. No new findings; CI is still running, and the approved UI/live-provider deferral remains.
- ONE PR feat(promachos): port persona home and bubble chats to v2 #187, OPEN/non-draft/base
What: #175 is merged through #187 and its task resources are retired.
Why: The delivered branch is fully published and the task is closed.
So what: No #175 work remains active; integrated UI verification continues under the planner’s existing acceptance scope.Finalization verified:
- PR feat(promachos): port persona home and bubble chats to v2 #187 merged as
6eb69fe607c3940f20faa6ee9a8c4c9457e91af5. - Before cleanup, worktree status was clean, HEAD and remote task branch were both
73435bedda993ddc954347ce79072caad93ba1c9, and divergence was0 0. Nothing was unpushed. - Removed
/Users/lukaszmaj/dev/toolboxmd/chromeria-worktrees/175-v2and disposable scratch/tmp/175-port; verified both absent. - Deleted local and remote
feat/175-promachos-v2; verified absence from branch/worktree listings and the exact remote ref query. - No task snapshot copies were found. No live userdata, shared pnpm store, or unrelated worktrees were removed.
- Child subtree was intentionally stopped after merge. No heavy task process remains active.
Implementation, proof and review remain preserved in #187 and the durable handoff.
- PR feat(promachos): port persona home and bubble chats to v2 #187 merged as
What: #175 is delivered and merged through the single PR #187 into fork/v2.
Why: The final Promachos port preserves the approved launch, kit recovery and timeline behavior on the merged dependency base.
So what: No #175 source or CI blocker remains; integrated UI/live-provider acceptance stays with the planner, and task resources are already retired.Final state supersedes the running-CI/open-worktree wording in the earlier durable handoff:
- Reviewed head:
73435bedda993ddc954347ce79072caad93ba1c9; reviewed base:4c2b38436fda0fef5bb2b101d52f90d7ed831df0. - PR feat(promachos): port persona home and bubble chats to v2 #187 merged as
6eb69fe607c3940f20faa6ee9a8c4c9457e91af5; Issue closed. Seven Port Promachos mode #175-only commits, 38 files; modularity counts and larger hook justifications are in the PR body. - Current-head CI passes, including Check, all six server shards, Web, Typecheck, Lint, Build and Fork Stack Model: https://github.com/toolboxmd/chromeria/actions/runs/37852574222. Configured skipped jobs are not waived failures.
- Independent exact-head PASS and success status point to PR findings: feat(promachos): port persona home and bubble chats to v2 #187 (comment).
- 77 focused behavior cases are covered by executed/reused proof; five launch cases and server/contracts typechecks were refreshed on the final base. Detailed commands, red/green receipt regression and reuse limits remain in the earlier handoff and PR.
- Approved choices remain timeline A, shared Prism validator consumer A, abort self-composition B, and partial-launch recovery A: current kit only before initial-message acceptance, stored explicit model, no validation/fallback/reroute/new durable state; accepted-message replay remains receipt-only.
- Cost report publication succeeded: feat(promachos): port persona home and bubble chats to v2 #187 (comment). Attribution is incomplete, so cost remains unknown, not zero.
- Cleanup was independently recorded at Port Promachos mode #175 (comment); the task worktree and scratch paths are now absent. No additional cleanup or heavy proof was run during this final reconciliation.
Requirements and who asked: User requires one #175-only PR, approved behavior, exact-head review, proof, modularity accounting and durable handoff.
Deleted: No dependency repair, duplicate eligibility logic, persistent kit snapshot or additional PR.
Bottleneck: Only the explicitly deferred planner UI/live-provider acceptance remains outside this delivered Issue.
Checked myself: Rechecked live merged PR/closed Issue, exact reviewed head, all current-head check results, PR findings/status, published cost report and recorded resource retirement.Model/harness: GPT-6.1-Sol through Codex in T3 Code; independent visible Prism-routed reviewer.
- Reviewed head:
What: Promachos mode chats in bubbles on v2, with his persona loaded from his home.
Why: Upstream has no chat mode; the fork's start hook and timeline filter use deleted code (#166 assessment g3).
So what: An agent ports it into
fork/v2after the Prism service and thread people.Part of #166 (port 9 of 11). Plan and decision table: #166.
Contribution to the Objective
Promachos mode chats in bubbles, with his persona loaded from his home.
Acceptance criteria
ProjectService; the feat(prism): select the initial Promachos conversation model #125 model hook moves tolaunchThread.Non-goals
main(only Issue 11 lands the port, with human approval).Blockers
Earlier port Issues per the order in #166 (D3').
Proof
Focused launch test; web logic tests.
Elon record
launchThreadatws.ts:1949.