apps/mobile/src/components/AppSymbol.tsx | 2 + apps/mobile/src/features/archive/archivedThreadList.test.ts | 1 + apps/mobile/src/features/home/homeListItems.test.ts | 1 + apps/mobile/src/features/home/homeThreadList.test.ts | 1 + apps/mobile/src/features/keyboard/HardwareKeyboardCommandProvider.tsx | 1 + apps/mobile/src/features/threads/git/GitOverviewSheet.tsx | 59 ++- apps/mobile/src/features/threads/thread-list-items.tsx | 34 +- apps/mobile/src/features/threads/thread-list-v2-items.tsx | 43 +- apps/mobile/src/features/threads/threadListV2.test.ts | 1 + apps/mobile/src/lib/threadActivity.test.ts | 1 + apps/mobile/src/state/pending-thread-creation.ts | 1 + apps/mobile/src/state/thread-pr-presentation.ts | 66 ++- apps/mobile/src/state/use-selected-thread-git-actions.ts | 2 + apps/mobile/src/state/use-thread-pr.test.ts | 147 ++++++- apps/mobile/src/state/use-thread-pr.ts | 30 +- apps/mobile/src/state/use-thread-selection.ts | 1 + apps/server/integration/OrchestrationEngineHarness.integration.ts | 8 + apps/server/src/auth/RpcAuthorization.ts | 2 + apps/server/src/environment/ServerEnvironment.test.ts | 1 + apps/server/src/environment/ServerEnvironment.ts | 1 + apps/server/src/git/linkCreatedPullRequest.test.ts | 230 +++++++++++ apps/server/src/git/linkCreatedPullRequest.ts | 98 +++++ apps/server/src/mcp/McpHttpServer.test.ts | 47 +++ apps/server/src/mcp/McpHttpServer.ts | 11 +- apps/server/src/mcp/McpInvocationContext.test.ts | 27 ++ apps/server/src/mcp/McpInvocationContext.ts | 45 +- apps/server/src/mcp/McpProviderSession.ts | 2 + apps/server/src/mcp/McpSessionRegistry.test.ts | 28 ++ apps/server/src/mcp/McpSessionRegistry.ts | 12 +- apps/server/src/mcp/toolkits/pullRequests/handlers.test.ts | 418 +++++++++++++++++++ apps/server/src/mcp/toolkits/pullRequests/handlers.ts | 243 +++++++++++ apps/server/src/mcp/toolkits/pullRequests/tools.ts | 231 +++++++++++ apps/server/src/orchestration/Layers/OrchestrationEngine.test.ts | 40 +- apps/server/src/orchestration/Layers/OrchestrationReactor.test.ts | 12 + apps/server/src/orchestration/Layers/OrchestrationReactor.ts | 3 + apps/server/src/orchestration/Layers/ProjectionPipeline.test.ts | 237 +++++++++++ apps/server/src/orchestration/Layers/ProjectionPipeline.ts | 104 +++++ apps/server/src/orchestration/Layers/ProjectionSnapshotQuery.test.ts | 163 +++++++- apps/server/src/orchestration/Layers/ProjectionSnapshotQuery.ts | 610 ++++++++++++++++++--------- apps/server/src/orchestration/PullRequestSyncReactor.test.ts | 704 ++++++++++++++++++++++++++++++++ apps/server/src/orchestration/PullRequestSyncReactor.ts | 328 +++++++++++++++ apps/server/src/orchestration/Schemas.ts | 6 + apps/server/src/orchestration/ThreadPullRequestReactor.test.ts | 1 + apps/server/src/orchestration/ThreadPullRequestReactor.ts | 19 +- apps/server/src/orchestration/ThreadSettlementPolicy.test.ts | 74 ++++ apps/server/src/orchestration/ThreadSettlementPolicy.ts | 25 +- apps/server/src/orchestration/ThreadSettlementReactor.test.ts | 52 +++ apps/server/src/orchestration/ThreadSettlementReactor.ts | 4 +- apps/server/src/orchestration/commandInvariants.test.ts | 2 + apps/server/src/orchestration/decider.active-order.test.ts | 1 + apps/server/src/orchestration/decider.pinned.test.ts | 1 + apps/server/src/orchestration/decider.pullRequests.test.ts | 532 ++++++++++++++++++++++++ apps/server/src/orchestration/decider.questionAttachments.test.ts | 1 + apps/server/src/orchestration/decider.settled.test.ts | 1 + apps/server/src/orchestration/decider.snoozed.test.ts | 1 + apps/server/src/orchestration/decider.titleRegeneration.test.ts | 1 + apps/server/src/orchestration/decider.ts | 221 ++++++++++ apps/server/src/orchestration/decider.userInputDismiss.test.ts | 1 + apps/server/src/orchestration/projector.pullRequests.test.ts | 417 +++++++++++++++++++ apps/server/src/orchestration/projector.test.ts | 27 +- apps/server/src/orchestration/projector.ts | 237 +++++++++-- apps/server/src/persistence/Layers/ProjectionRepositories.test.ts | 168 +++++++- apps/server/src/persistence/Migrations.ts | 2 + apps/server/src/persistence/Migrations/050_ProjectionThreadPullRequests.test.ts | 181 ++++++++ apps/server/src/persistence/Migrations/050_ProjectionThreadPullRequests.ts | 92 +++++ apps/server/src/persistence/ProjectionThreadPullRequests.ts | 266 ++++++++++++ apps/server/src/project/AgentSessionImporter.test.ts | 1 + apps/server/src/provider/Layers/ClaudeAdapter.test.ts | 4 +- apps/server/src/provider/Layers/CodexAdapter.ts | 1 + apps/server/src/provider/Layers/CodexSessionRuntime.ts | 13 +- apps/server/src/provider/Layers/ProviderService.test.ts | 44 +- apps/server/src/provider/Layers/ProviderService.ts | 36 +- apps/server/src/provider/Layers/ProviderSessionReaper.test.ts | 1 + apps/server/src/provider/RuntimeInstructions.test.ts | 8 + apps/server/src/provider/RuntimeInstructions.ts | 6 +- apps/server/src/pullRequest/GitHubPullRequestCli.test.ts | 253 ++++++++++-- apps/server/src/pullRequest/GitHubPullRequestCli.ts | 136 ++++-- apps/server/src/pullRequest/GitHubPullRequestProvider.test.ts | 61 +++ apps/server/src/pullRequest/GitHubPullRequestProvider.ts | 16 +- apps/server/src/pullRequest/PullRequestProvider.ts | 36 ++ apps/server/src/pullRequest/PullRequestService.test.ts | 362 ++++++++++++++-- apps/server/src/pullRequest/PullRequestService.ts | 261 +++++++++--- apps/server/src/pullRequest/gitHubPullRequestJson.test.ts | 79 ++++ apps/server/src/pullRequest/gitHubPullRequestJson.ts | 66 +++ apps/server/src/pullRequest/linkedThreads.test.ts | 117 ++++++ apps/server/src/pullRequest/linkedThreads.ts | 39 ++ apps/server/src/pullRequest/pullRequestSyncKey.test.ts | 46 +++ apps/server/src/pullRequest/pullRequestSyncKey.ts | 44 ++ apps/server/src/relay/AgentAwarenessRelay.test.ts | 3 + apps/server/src/server.test.ts | 11 +- apps/server/src/server.ts | 2 + apps/server/src/ws.ts | 97 ++++- apps/web/src/components/ChatMarkdown.test.tsx | 4 +- apps/web/src/components/ChatMarkdown.tsx | 75 ++-- apps/web/src/components/ChatMarkdown.workspace-images.test.tsx | 4 +- apps/web/src/components/ChatView.logic.test.ts | 2 + apps/web/src/components/ChatView.logic.ts | 1 + apps/web/src/components/ChatView.tsx | 32 +- apps/web/src/components/CommandPalette.logic.test.ts | 1 + apps/web/src/components/CommandPalette.tsx | 39 +- apps/web/src/components/GitActionsControl.tsx | 3 + apps/web/src/components/LegacySidebar.tsx | 49 ++- apps/web/src/components/RightPanelTabs.test.tsx | 48 +++ apps/web/src/components/RightPanelTabs.tsx | 100 ++++- apps/web/src/components/Sidebar.logic.test.ts | 1 + apps/web/src/components/Sidebar.tsx | 125 +++++- apps/web/src/components/ThreadStatusIndicators.test.tsx | 47 ++- apps/web/src/components/ThreadStatusIndicators.tsx | 189 +++++++-- apps/web/src/components/chat/MessagesTimeline.logic.test.ts | 1 + apps/web/src/components/pullRequest/LinkBranchPullRequestButton.tsx | 54 +++ apps/web/src/components/pullRequest/LinkPullRequestDialog.logic.test.ts | 136 ++++++ apps/web/src/components/pullRequest/LinkPullRequestDialog.tsx | 254 ++++++++++++ apps/web/src/components/pullRequest/PullRequestDetailPanel.tsx | 124 +++++- apps/web/src/components/pullRequest/PullRequestStackMap.tsx | 87 ++++ apps/web/src/components/pullRequest/PullRequestSummaryTab.tsx | 15 +- apps/web/src/components/pullRequest/PullRequestThreadLinks.tsx | 255 ++++++++++++ apps/web/src/components/pullRequest/ThreadPullRequestsPanel.tsx | 296 ++++++++++++++ apps/web/src/components/pullRequest/pullRequestDetail.logic.test.ts | 36 ++ apps/web/src/components/pullRequest/pullRequestDetail.logic.ts | 14 +- apps/web/src/components/pullRequest/pullRequestListLines.test.ts | 76 ++++ apps/web/src/components/pullRequest/pullRequestListLines.ts | 49 +++ apps/web/src/components/pullRequest/pullRequestReviewStore.test.ts | 31 +- apps/web/src/components/pullRequest/pullRequestReviewStore.ts | 19 +- apps/web/src/components/ui/button.tsx | 21 + apps/web/src/hooks/useOpenPanelPullRequestUrl.ts | 5 + apps/web/src/hooks/usePullRequestLinking.ts | 104 +++++ apps/web/src/hooks/useSupportsMultiplePullRequests.ts | 10 + apps/web/src/lib/openPullRequestLink.test.ts | 76 ++++ apps/web/src/lib/openPullRequestLink.ts | 258 ++++-------- apps/web/src/lib/threadSort.test.ts | 1 + apps/web/src/rightPanelStore.test.ts | 12 + apps/web/src/rightPanelStore.ts | 13 +- apps/web/src/routes/_chat.pull-requests.tsx | 2 + apps/web/src/state/pullRequests.ts | 3 + apps/web/src/state/sourceControlActions.ts | 2 + apps/web/src/worktreeCleanup.test.ts | 1 + docs/internals/glossary.md | 8 + docs/internals/overview.md | 19 + docs/user/source-control.md | 24 ++ packages/client-runtime/package.json | 4 + packages/client-runtime/src/operations/commands.ts | 20 + packages/client-runtime/src/state/entities.test.ts | 1 + packages/client-runtime/src/state/environmentHttpAuth.test.ts | 1 + packages/client-runtime/src/state/pullRequests.test.ts | 127 ++++-- packages/client-runtime/src/state/pullRequests.ts | 29 +- packages/client-runtime/src/state/shellReducer.test.ts | 1 + packages/client-runtime/src/state/threadCommands.ts | 18 + packages/client-runtime/src/state/threadReducer.test.ts | 119 ++++++ packages/client-runtime/src/state/threadReducer.ts | 60 +++ packages/client-runtime/src/state/threads-atoms.test.ts | 1 + packages/client-runtime/src/state/threads-pagination.test.ts | 1 + packages/client-runtime/src/state/threads-sync.test.ts | 1 + packages/client-runtime/src/state/vcsAction.test.ts | 13 +- packages/client-runtime/src/state/vcsAction.ts | 4 + packages/client-runtime/src/threadPullRequestCompatibility.test.ts | 115 ++++++ packages/client-runtime/src/threadPullRequestCompatibility.ts | 75 ++++ packages/contracts/src/environment.ts | 7 +- packages/contracts/src/git.ts | 2 + packages/contracts/src/orchestration.test.ts | 172 +++++++- packages/contracts/src/orchestration.ts | 168 ++++++++ packages/contracts/src/previewAutomation.ts | 25 +- packages/contracts/src/pullRequest.ts | 49 +++ packages/contracts/src/rpc.ts | 18 + packages/shared/package.json | 8 + packages/shared/src/changeRequestUrl.test.ts | 142 +++++++ packages/shared/src/changeRequestUrl.ts | 210 ++++++++++ packages/shared/src/sourceControl.test.ts | 32 ++ packages/shared/src/sourceControl.ts | 46 ++- packages/shared/src/threadPullRequests.test.ts | 351 ++++++++++++++++ packages/shared/src/threadPullRequests.ts | 271 ++++++++++++ packages/shared/src/threadReference.test.ts | 66 +++ packages/shared/src/threadReference.ts | 10 +- 172 files changed, 12057 insertions(+), 908 deletions(-)