Add configurable multi-Oracle groups - #796
Conversation
Audit disposition — preferred Oracle successor, with two blockers (2026-08-14)This should supersede #782 and the Oracle portion of #775, but two authority issues remain before merge. First, artifact reservations are stored in a process-local registry while the conversation store and claims are shared across processes. Another app/headless process can delete an artifact between reservation and durable conversation linkage. Use a durable/file-locked lease or make artifact creation and prepared-conversation publication one atomic transaction. Second, the UI derives lane failure by inspecting assistant text for an |
Deep-review assessment — 2026-08-14Disposition: preferred Oracle successor, but two correctness issues remain. The shared roster/lane contracts, independent ordered execution, partial-failure preservation, durable group history, app/direct-headless adapters, single-Oracle bypass, green exact-head CI, and live four-lane canary make this the branch to continue. It should supersede #782 and the Oracle half of #775. Before merge, replace the process-local artifact reservation registry with a durable/file-locked lease or make artifact publication and prepared-conversation linkage one atomic store transaction; another process sharing the store can otherwise delete an artifact between reservation and durable reference. Also project lane success/failure from structured |
This adds configurable multi-Oracle groups across the macOS app, Context Builder, and direct headless MCP. A permanent Primary Oracle can be joined by up to four ordered additional Oracles; every lane receives the same frozen context and returns an independent, unsynthesized response.
Summary
app_settingssurface.Implementation Notes
Scope
This PR is intentionally limited to multiple-Oracle configuration, execution, persistence, presentation, and the tests required for those boundaries. It does not redesign unrelated Agent Mode workflows, provider selection, general chat, file selection, or MCP tool behavior.
Review Approach
main, not only the last commit.Validation
af733abbdebug app bundle; its embedded MCP helper smoke passed. CUA Driver then launched that exact executable background-only and preserved the user's foreground app.af733abbran four concurrent Oracle lanes. Primary Oracle, Oracle 2, Oracle 3, and Oracle 4 each returnedPR796_AF733ABB_FOUR_ORACLE_OK; group46F0B699-9604-457F-AFAC-2343571824E0completed.ContextBuilderStrictFinalizationTestspass 7/7, including the deterministic post-reservation replacement race;ContextBuilderOracleGroupStateTestspass 2/2;SettingsJSONOnlyPersistenceTestspass 101/101, includingtestWorktreeVisualIdentitySavesAndLoads; strict SwiftFormat/SwiftLint checks pass.rpce-review-clireview at exact headaf733abbreportsNO MUST-FIXES, no defensibly unrelated or overengineered committed hunk, and merge-ready.af733abbis fully green across Style, all four app-test shards, Sentry-enabled build, provider tests, and secret scan. Shard 3 specifically passed the complete Settings persistence partition, includingSettingsJSONOnlyPersistenceTests.testWorktreeVisualIdentitySavesAndLoads.PersistentAgentModeMCPReadFileConnectionTests.testPairAgentOwnedNoRangeReadSelectsNonEmptyWorktreeLogicalFileworkspace-selection failure in isolation. Its unrelated stabilization remains deliberately excluded from this PR.Screenshots