Repository navigation
feat(server): route native agents through shared Prism service - #183
Conversation
Agent work on this PREstimated cost unknown · 0 responses · 42 sessions · 5.6 h wall time
Flags: 3 human corrections · 68 large tool outputs · 50 repeated commands · 9 repeated failures · 65 repeated reads · 8 repeated skill loads · 41 sessions with usage bound to no task · 1 session without usage records Details: snapshot, prices, coverage, counters
Token counters by model (native counter semantics; never added across semantics): Selected rates (USD per million tokens). These rates value the report at the selected schedule date; they do not establish historical prices or subscription spending.
Other output and reasoning are priced without double counting inclusive native output. Missing rates remain unknown. Local measurement from native records; usage totals are not billing. Updated in place by |
|
What: Independent exact-head review of PR #183 found no supported blocking finding in the inspected source scope. Exact review
VerdictNo supported actionable blocker remains in this source-review scope. The prior For configured preferences, Earlier failed reviews remain on their original SHAs: Requirements and who asked: User and #169 require ordered D5 pre-start fallback in |
0c790af to
a052dbe
Compare
|
What: Independent exact-head review of PR #183 at Reviewed base The current PR body lists all 22 upstream-owned paths in separate production, existing-test, and generated sections. I compared its counts to the exact The unchanged source review found no actionable defect: provider guidance covers same-provider and cross-provider work; the recovery test database is no longer exported without consumers; Prism constants remain used locally; the removed stream activity constant has no repository consumer; and restore/cancel fixtures invert the actual defaults while keeping assertions unchanged. D32 remains a separately approved follow-up and is not included. No tests, typechecks, lint, browser, or dev server were run by the reviewer. Existing author proof was reused only where code and inputs were unchanged. At review time the fresh GitHub run had multiple jobs pending; CI is not claimed green. The prior Reviewer: |
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: unavailable · PR result: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
|
What: Independent source review of PR #183 at Reviewed base The Muse materializer changes only the leading input block of a The existing replay matcher is unchanged and retains exact array length and recursive value matching. The materializer is test-only. The refreshed PR body lists 23 upstream-owned paths; the counts match the current diff, including this helper at +49/-3 with its hunk rationale. The feature map assigns the helper and oracle test to one owner, and the upstream edit allowlist includes the helper. No production Prism behavior changed in this successor. D32 remains a separate follow-up. I ran no tests, typechecks, lint, browser, or dev server; author-reported proof was read without reruns. At review time several fresh CI test jobs were pending. The a052 CI cancellation and earlier red review evidence were left unchanged. Reviewer: |
* wip: port shared Prism routing settings and persisted recovery * wip: wire persisted Prism recovery and approved kit semantics * wip: prove recovery survives stale propagated Stop * wip: inventory Prism port and prove complete saved kit preservation * wip: correct Prism integration fixture and typed saved settings proof * wip: retain landed ownership while composing Prism imports * wip: validate Prism launch admission and refresh configured providers * fix(server): revalidate stale Prism launch providers * fix(prism): satisfy CI exports and default restore coverage * fix(test): refresh recorded Muse runtime guidance for Prism
What: Route upstream delegation and thread launches through one Prism service, with scoped kits and persisted same-model recovery.
Why: The v2 port must retain Prism without duplicating upstream agent handlers or delivering a failed child result while recovery is pending.
So what: Review this single #169 PR into
fork/v2; the planner will capture deferred UI evidence in the authorized integrated pass after the ports land.Closes #169. Part of #166; advances the Objective by routing Drafters through visible native T3 threads. Based on merged #168/#181 at
6627c1afe97378cd0c2e4528dec20e8177acd133, including the landed #167 foundation, #170 people and #171 issue links. The diff contains only #169, with staged predecessor copies removed.The shared resolver serves both
delegate_taskandt3_thread_launch. Explicit selections take precedence; optional role/lane inputs select ordered kit models and instructions. Selection checks capacity and availability before start and falls back on provider/model unavailability. Provider runtime guidance uses upstream tool names.A fork-owned reactor persists original-run and deterministic command/message identities. Retryable machine failures receive one retry on the same provider, model and options. Reset waits reuse upstream usage-limit recovery. Finalization holds until recovery settles; actual dispatch composes the landed retirement admission and retry guard in the same SQLite commit. Stop releases the hold, while stale propagated Stop remains a receipt-only no-op.
The settings page preserves complete saved v1 kits at environment and project scopes. User decision D26 hides inert Retry/Escalation enable switches and removes skip-step claims: their model lists are used when the planner explicitly requests
prismRole. Saved flags still decode, with no disabled-kit refusal. Automatic recovery remains independent. #169 owns Chromeria'sautoResumeLimitedThreads=truedefault; Wight consumes it, and saved false overrides are preserved.The existing
prism-toolkit,prism-settingsandtool-instructionsfeature IDs retain one primary owner per upstream path. Foundation, child-thread, people and issue-link ownership is preserved; overlaps usesharedFiles. No version bump, merge, installation, deployment or main push.Proof and reuse binding on head
1e9d17a28f28e28f28df618c73a8a1b5a2a73859against base8fc40da4fd603f343f13d6e51676b6f1e091b555, all commands serial:apps/server/src/serverSettings.test.tsrun alone: 63 passed, including all seven saved roles, fields, lists, instructions and project overrides through an unrelated disk write, retained Wight assertions and true-default/false-override behavior.apps/server/src/mcp/OrchestratorMcpToolkit.integration.test.tsrun alone: 2 passed.pnpm --filter t3 exec tsc --noEmit, contracts and web scoped typechecks: exit 0.fork-check.sh --base 12069eefd707f78eafc27812027c994eea0613cf: 17 feature owners, allowlist and inventory pass;git diff --checkpasses.Full commands, failed checks and corrected results, dependency/rebase identities, fixed decisions and durable continuation are in the canonical #169 handoff. The earlier nonexistent server-package filter was a no-op and is not accepted proof; the actual
t3check passes. Missing settings in one MCP test layer and branded fixture values were corrected locally. An unchanged settings watcher timeout during an earlier combined run is retained in the record; its complete file passes alone without changing the watcher or skipping a case.Independent exact-head review: success on current successor
1e9d17a28f28e28f28df618c73a8a1b5a2a73859, by lukemaj, GPT-6-Luna through Codex in T3 Code: exact-head findings. Source-only review; no author proof independently rerun. Prior a052 source review passed, but its CI Server1 exceeded the 10-minute job limit after MuseReplayMismatchError: legacy recorded runtime guidance lacked Prism text. The existing replay materializer now refreshes only Muse's first runtime block using current model/effort, preserving user inputs and exact structural matching. No timeout increase, skip, broad sanitization or waiver. Prior cd6 source review passed, but CI found unused exports, two restore fixtures still assuming default=false, and omitted cross-provider guidance. All red CI evidence remains in the failed run; no failure is accepted or waived. The successor makes only unused constants private/deletes unused v1 stream activity metadata, uses nondefault fixture values with unchanged assertions, restores truthful cross-provider guidance, and updates ownership/allowlist. #172 confirmed no consumer of the removed stream constant.Current affected proof: scoped server/contracts Knip exit0; Prism/contracts/guidance 46 passed, full settings restore file alone 4 passed; actual server/contracts/web typechecks, scoped lint and inventory exit0. Routing/recovery/settings behavior is unchanged in this CI-only successor, so the composed245, full settings63 and MCP2 results above are reused from cd6 with the unchanged behavioral inputs. No local full suite or unnecessary repetition. Current fresh GitHub CI must be all green before merge. The approved documentation-only base advance to
8fc40da4fd603f343f13d6e51676b6f1e091b555was mechanically rebased with no conflicts: all nine patches have identical range-diff, and only MISSION.md/docs/fork.md differ between the pre/post rebase trees. Every code, test and compiler input is unchanged; local proof is explicitly reused, and fork inventory/diff checks were renewed. No heavy tests were repeated.Commands:
Root-approved D32 is excluded from this candidate. The user requires a separate small follow-up PR for immutable continuation source links and conclusive outcomes keyed by failed RunId, before #174 consumes that interface. See the decision and the consumer contract. This PR adds no scheduler logic or report registry.
Agent cost published with Agent Observer, publication and successor republication exit0. Coverage is incomplete: 41 sessions have unbound usage and one lacks usage records; estimated cost is unknown, not zero. No failed publication or cost waiver. Fresh successor GitHub CI is running and is not claimed green. Muse fix proof: real simple/muse failed before then passed; all five Muse fixture cases passed; runtime/materializer tests 10 passed; actual t3 compiler, scoped lint, inventory17 and diffcheck exit0. Author test fixture import/brand/manual-runtime errors were corrected and rerun; no failure accepted. Earlier local routing/settings/recovery proof is reused with unchanged production inputs.
UI evidence is explicitly deferred by the user: no browser or dev server was authorized. The planner owns one integrated settings/UI pass and before/after images after ports land. Focused logic and disk replay tests are complete. No full suite or live-provider verification is claimed; adapter-boundary lifecycle tests do not prove real provider execution. Recovery scan overhead has not been measured. Website/SEO impact: none, this changes the app and adds no public marketing page or URL.
Requirements and who asked: User/#169 and fixed #166 D4.1/D5′/D6′ require shared Prism, settings replay and coordinated one-retry/reset behavior; user also fixes D26, default ownership and deferred UI proof.
Deleted: Parallel spawn path, mid-run model switching, disabled-kit refusal, unknown-role passthrough, second transaction seam, duplicate primary ownership and failed-check waivers.
Bottleneck: Exact-head independent review and the single PR; the predecessor is merged and focused proof is complete.
Checked myself: Verified live predecessor merge/review and current Git identities, #169-only range-diff, ownership map, serial actual compiler/test outputs and real persisted receipts/settings behavior.
Implemented with GPT-6.1-Sol through Codex in T3 Code; independent reviewer routed through Prism to GPT-6-Luna through Codex.
Upstream edit inventory (user modularity rule)
Counts are candidate
1e9d17a28f28e28f28df618c73a8a1b5a2a73859against live intended base8fc40da4fd603f343f13d6e51676b6f1e091b555. Ownership classification checks file existence at upstream base12069eefd707f78eafc27812027c994eea0613cf; new fork files are excluded. Test fixtures are listed separately from production hooks. All edited upstream paths are allowlisted with one primary owner, and overlaps are sharedFiles.Production hooks and contract registration
apps/server/src/mcp/OrchestratorMcpService.tsapps/server/src/mcp/toolkits/orchestrator/tools.tsapps/server/src/mcp/toolkits/project/handlers.tsapps/server/src/mcp/toolkits/project/tools.tsapps/server/src/orchestration-v2/Orchestrator.tsapps/server/src/orchestration-v2/runtimeLayer.tsapps/server/src/provider/RuntimeInstructions.tsapps/server/src/provider/T3OrchestrationInstructions.tsapps/web/src/components/settings/SettingsSidebarNav.tsxapps/web/src/components/settings/settingsSearch.tspackages/contracts/src/index.tspackages/contracts/src/orchestrationV2.tspackages/contracts/src/orchestratorMcp.tspackages/contracts/src/settings.tsExisting upstream tests
apps/server/src/mcp/OrchestratorMcpService.activity.test.tsapps/server/src/mcp/OrchestratorMcpService.test.tsapps/server/src/mcp/OrchestratorMcpToolkit.integration.test.tsapps/server/src/mcp/toolkits/core.test.tsapps/server/src/mcp/toolkits/project/handlers.test.tsapps/server/src/serverSettings.test.tsapps/web/src/components/settings/SettingsPanels.restore.test.tsx|
apps/server/src/orchestration-v2/testkit/ReplayTranscriptNdjson.ts| +49 | -3 | Test-only helper: materialize current Muse runtime context in legacy exact outbound expectations. The larger hunk validates the typed turn/start shape and replaces only the first runtime block, preserving user/image input, IDs, effort and every other field; no replay matcher weakening. |Generated registration
apps/web/src/routeTree.gen.tsFork-owned behavior lives in new Prism service/settings/recovery modules. The larger production hook hunks consist of call arguments and layer registrations, not copies or restructuring of upstream implementations. No consequential modularity redesign is needed.