specrails-desktop 2.55.0 → 2.56.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (368) hide show
  1. package/cli/dist/args.js +80 -0
  2. package/cli/dist/desktop-client.js +125 -0
  3. package/cli/dist/desktop-control.js +339 -0
  4. package/cli/dist/format.js +45 -0
  5. package/cli/dist/help.js +68 -0
  6. package/cli/dist/output.js +47 -0
  7. package/cli/dist/run-command.js +340 -0
  8. package/cli/dist/specrails-desktop.js +41 -1107
  9. package/cli/dist/status.js +111 -0
  10. package/client/dist/assets/{ActivityFeedPage-ILXMZXcb.js → ActivityFeedPage-DdMNmVBk.js} +1 -1
  11. package/client/dist/assets/{AgentBrowserCapture-UcsupCy7.js → AgentBrowserCapture-CeerUf--.js} +1 -1
  12. package/client/dist/assets/{AgentModeAnalyticsPane-CQuxYh8B.js → AgentModeAnalyticsPane-BjGb-8rh.js} +2 -2
  13. package/client/dist/assets/{AgentModeCodePane-zPWbW7ei.js → AgentModeCodePane-8XRkQEo_.js} +2 -2
  14. package/client/dist/assets/{AgentModeJobsPane-CInByIdl.js → AgentModeJobsPane-BN3dgJOA.js} +1 -1
  15. package/client/dist/assets/{AgentsPage-BWvgxaBv.js → AgentsPage-DfHWgP_x.js} +1 -1
  16. package/client/dist/assets/{AnalyticsPage-DP3jakv-.js → AnalyticsPage-CyfhYiBn.js} +1 -1
  17. package/client/dist/assets/{CodePage-BKXiwE5a.js → CodePage-C2Nf-Q5W.js} +1 -1
  18. package/client/dist/assets/{DesktopAnalyticsPage-DryJOaMz.js → DesktopAnalyticsPage-tc0p4jJW.js} +1 -1
  19. package/client/dist/assets/{DocsDialog-BsCG9ksG.js → DocsDialog-Br3bczCp.js} +1 -1
  20. package/client/dist/assets/{DocsPage-Cc-GeKYl.js → DocsPage-BcDr2cBm.js} +1 -1
  21. package/client/dist/assets/{ExportDropdown-ClahJdDn.js → ExportDropdown-BVGKEgkd.js} +1 -1
  22. package/client/dist/assets/{InteractiveJobComposer-DfLF6N0f.js → InteractiveJobComposer-DFPpdg2D.js} +1 -1
  23. package/client/dist/assets/{JobDetailModal-DHeur9YK.js → JobDetailModal-BdOv-l-M.js} +1 -1
  24. package/client/dist/assets/{JobDetailPage-CraDKzeG.js → JobDetailPage-vBbNeRuz.js} +1 -1
  25. package/client/dist/assets/{JobsPage-CcbuSwj7.js → JobsPage-CJCtPhIz.js} +1 -1
  26. package/client/dist/assets/{LoopBuilderPage-BKtNp494.js → LoopBuilderPage-BemvUOxy.js} +1 -1
  27. package/client/dist/assets/{LoopPreviewModal-DbZd9isy.js → LoopPreviewModal-C6hNAeYN.js} +1 -1
  28. package/client/dist/assets/{LoopsPage-DEg6sIkG.js → LoopsPage-BZr0quvh.js} +1 -1
  29. package/client/dist/assets/{MinimizedChatsContext-BGtEjWsc.js → MinimizedChatsContext-D3QzgV0B.js} +1 -1
  30. package/client/dist/assets/{PluginsPage-BVqSsPzL.js → PluginsPage-DOpTV75p.js} +1 -1
  31. package/client/dist/assets/{ProjectSettingsDialog-CAjLgJAZ.js → ProjectSettingsDialog-Dkwrn0z1.js} +1 -1
  32. package/client/dist/assets/{RepositoryDeliveries-DrcrxLe0.js → RepositoryDeliveries-Du2UCf1a.js} +1 -1
  33. package/client/dist/assets/{RepositoryScopeSelector-CAGY3xW6.js → RepositoryScopeSelector-hPGZNRBm.js} +1 -1
  34. package/client/dist/assets/ReviewPacketPage-DcOq-UTA.js +4 -0
  35. package/client/dist/assets/{TemplatePreviewModal-Bqs-9fhn.js → TemplatePreviewModal-Cejcquah.js} +1 -1
  36. package/client/dist/assets/{TicketDetailModalContext-C0jQ5yOk.js → TicketDetailModalContext-DAK-NoK6.js} +1 -1
  37. package/client/dist/assets/{Trans-DtWlCJN9.js → Trans-DEbgkuAY.js} +1 -1
  38. package/client/dist/assets/{dashboard-CTfEtkqX.js → dashboard-B9uWNGO2.js} +1 -1
  39. package/client/dist/assets/{dashboard-DMklepmz.js → dashboard-BIwmO9wc.js} +1 -1
  40. package/client/dist/assets/{dashboard-DBAP2_SQ.js → dashboard-BV4vOZkR.js} +1 -1
  41. package/client/dist/assets/{dashboard-D40HP2ks.js → dashboard-Bf6MPVsM.js} +1 -1
  42. package/client/dist/assets/{dashboard-Csf1yGSN.js → dashboard-C8klWVvZ.js} +1 -1
  43. package/client/dist/assets/{dashboard-C29Qwa-L.js → dashboard-D1ORhPF0.js} +1 -1
  44. package/client/dist/assets/{dashboard-Cr4D8oMn.js → dashboard-DSubvs9x.js} +1 -1
  45. package/client/dist/assets/{dashboard-CSJzf5OT.js → dashboard-px_vlRx_.js} +1 -1
  46. package/client/dist/assets/{formatDistanceToNow-DYmvOA3R.js → formatDistanceToNow-Cc2u5FwQ.js} +1 -1
  47. package/client/dist/assets/{getTimezoneOffsetInMilliseconds-BAhW5E6V.js → getTimezoneOffsetInMilliseconds-BHm2U-w1.js} +1 -1
  48. package/client/dist/assets/index-C51x61Bz.css +2 -0
  49. package/client/dist/assets/{index-BfAZg5DG.js → index-Cxb288Rj.js} +29 -29
  50. package/client/dist/assets/{jira-api-B27Za5FP.js → jira-api-DrGxiD9p.js} +1 -1
  51. package/client/dist/assets/packet-8nn9RsU7.js +1 -0
  52. package/client/dist/assets/packet-B0H15elv.js +1 -0
  53. package/client/dist/assets/packet-BQvBgrwh.js +1 -0
  54. package/client/dist/assets/packet-BR7mO0-a.js +1 -0
  55. package/client/dist/assets/packet-BgcQ6q_K.js +1 -0
  56. package/client/dist/assets/packet-D2s92Jnn.js +1 -0
  57. package/client/dist/assets/packet-YbtcD1HS.js +1 -0
  58. package/client/dist/assets/packet-c0Qj_9eX.js +1 -0
  59. package/client/dist/assets/{project-repositories-DixIZHTA.js → project-repositories-9Wzs0coQ.js} +1 -1
  60. package/client/dist/assets/{spending-BGmZBX5B.js → spending-T5GM7wpn.js} +1 -1
  61. package/client/dist/assets/{useDesktop-CPB4cnwI.js → useDesktop-QogiN0zR.js} +1 -1
  62. package/client/dist/assets/{useRuntimeRuns-DEQ9HdAM.js → useRuntimeRuns-Dqmz9fS9.js} +1 -1
  63. package/client/dist/assets/{useSharedWebSocket-DcPRKR8R.js → useSharedWebSocket-Dz-HI6De.js} +2 -2
  64. package/client/dist/index.html +17 -17
  65. package/docs/codex.md +5 -5
  66. package/docs/customizing.md +1 -1
  67. package/docs/gemini-cli-provider-study.md +14 -14
  68. package/docs/gemini-core-support-evaluation.md +1 -1
  69. package/docs/gemini.md +5 -5
  70. package/docs/internals/README.md +6 -2
  71. package/docs/internals/adding-a-provider.md +22 -15
  72. package/docs/internals/agent-runtime-framework-evaluation.md +8 -8
  73. package/docs/internals/api-reference.md +2 -2
  74. package/docs/internals/architecture.md +9 -9
  75. package/docs/internals/browser-capture-performance.md +3 -3
  76. package/docs/internals/code-explorer-story.md +2 -2
  77. package/docs/internals/companion-rails-as-loops-contract.md +2 -2
  78. package/docs/internals/core-runtime-updates.md +5 -0
  79. package/docs/internals/embedded-browser-native-webview-evaluation.md +5 -5
  80. package/docs/internals/gemini-mcp-registration.md +2 -2
  81. package/docs/internals/global-artifacts-alignment-contract.md +1 -1
  82. package/docs/internals/global-artifacts-relocation-evaluation.md +1 -1
  83. package/docs/internals/interactive-jobs.md +8 -8
  84. package/docs/internals/legacy-implementation-notes.md +722 -0
  85. package/docs/internals/loop-step-log-explorer.md +8 -8
  86. package/docs/internals/mission-rail-cards.md +14 -14
  87. package/docs/internals/modular-architecture.md +107 -0
  88. package/docs/internals/profiles.md +1 -1
  89. package/docs/internals/programmatic-agent-runtime.md +66 -0
  90. package/docs/internals/project-builder.md +18 -18
  91. package/docs/internals/review-packet.md +8 -8
  92. package/docs/internals/safe-pr-review-flow.md +11 -11
  93. package/docs/internals/source-architecture.md +131 -0
  94. package/docs/internals/source-map.md +1356 -0
  95. package/docs/internals/spec-addenda.md +65 -9
  96. package/docs/internals/switch-to-agent-mode-design.md +11 -11
  97. package/docs/tracking-cost.md +1 -1
  98. package/package.json +5 -2
  99. package/server/dist/agent-mcp-config.js +1 -1
  100. package/server/dist/attachment-manager.js +1 -1
  101. package/server/dist/build-dirs.js +2 -2
  102. package/server/dist/config.js +0 -3
  103. package/server/dist/core-completion.js +1 -1
  104. package/server/dist/core-execution.js +1 -1
  105. package/server/dist/db/activity.js +39 -0
  106. package/server/dist/db/connection.js +41 -0
  107. package/server/dist/db/conversations.js +48 -0
  108. package/server/dist/db/jobs.js +251 -0
  109. package/server/dist/db/migrations.js +1521 -0
  110. package/server/dist/db/proposals.js +50 -0
  111. package/server/dist/db/settings.js +15 -0
  112. package/server/dist/db/stats.js +61 -0
  113. package/server/dist/db/telemetry.js +56 -0
  114. package/server/dist/db/templates.js +37 -0
  115. package/server/dist/db/types.js +2 -0
  116. package/server/dist/db.js +66 -2224
  117. package/server/dist/desktop-db.js +3 -3
  118. package/server/dist/desktop-router.js +8 -8
  119. package/server/dist/git-diagnostics.js +1 -1
  120. package/server/dist/index.js +11 -11
  121. package/server/dist/integration-branch.js +3 -14
  122. package/server/dist/jira/jira-issue-fields.js +0 -1
  123. package/server/dist/jira/jira-materializer.js +1 -1
  124. package/server/dist/jira/jira-sync-manager.js +1 -1
  125. package/server/dist/mcp/guide.js +16 -2
  126. package/server/dist/mcp/mcp-admin-router.js +1 -1
  127. package/server/dist/mcp/mcp-server.js +1 -1
  128. package/server/dist/mcp/tools/catalog.js +2 -0
  129. package/server/dist/mcp/tools/jobs.js +23 -5
  130. package/server/dist/mcp/tools/rails.js +2 -2
  131. package/server/dist/mcp/tools/recovery.js +35 -0
  132. package/server/dist/mcp/tools/specs.js +2 -2
  133. package/server/dist/mcp/tools/support.js +4 -1
  134. package/server/dist/mcp/tools/types.js +3 -3
  135. package/server/dist/mobile/mobile-gateway.js +1 -1
  136. package/server/dist/mobile/mobile-missions.js +1 -1
  137. package/server/dist/{desktop-analytics.js → modules/accounting/runtime/desktop-analytics.js} +2 -2
  138. package/server/dist/{pricing.js → modules/accounting/runtime/pricing.js} +10 -3
  139. package/server/dist/{result-event.js → modules/accounting/runtime/result-event.js} +3 -3
  140. package/server/dist/{spending.js → modules/accounting/runtime/spending.js} +0 -3
  141. package/server/dist/{telemetry-compactor.js → modules/accounting/runtime/telemetry-compactor.js} +1 -1
  142. package/server/dist/{telemetry-receiver.js → modules/accounting/runtime/telemetry-receiver.js} +2 -2
  143. package/server/dist/{agent-runtime-bridge.js → modules/agent-runtime/runtime/agent-runtime-bridge.js} +2 -2
  144. package/server/dist/{agent-runtime-controls-router.js → modules/agent-runtime/runtime/agent-runtime-controls-router.js} +16 -0
  145. package/server/dist/{agent-runtime-controls.js → modules/agent-runtime/runtime/agent-runtime-controls.js} +100 -8
  146. package/server/dist/{agent-runtime-effective-config.js → modules/agent-runtime/runtime/agent-runtime-effective-config.js} +1 -1
  147. package/server/dist/{agent-runtime-loader.js → modules/agent-runtime/runtime/agent-runtime-loader.js} +3 -3
  148. package/server/dist/{agent-runtime-paths.js → modules/agent-runtime/runtime/agent-runtime-paths.js} +1 -1
  149. package/server/dist/modules/agent-runtime/runtime/agent-runtime-recovery.js +53 -0
  150. package/server/dist/{agent-runtime-settings-router.js → modules/agent-runtime/runtime/agent-runtime-settings-router.js} +2 -2
  151. package/server/dist/{agent-runtime-settings.js → modules/agent-runtime/runtime/agent-runtime-settings.js} +3 -3
  152. package/server/dist/{agent-runtime-settlement.js → modules/agent-runtime/runtime/agent-runtime-settlement.js} +6 -6
  153. package/server/dist/{agent-defaults.js → modules/agents/runtime/agent-defaults.js} +3 -3
  154. package/server/dist/{agent-generator.js → modules/agents/runtime/agent-generator.js} +7 -7
  155. package/server/dist/{agent-refine-manager.js → modules/agents/runtime/agent-refine-manager.js} +5 -5
  156. package/server/dist/{agent-store.js → modules/agents/runtime/agent-store.js} +1 -1
  157. package/server/dist/{profile-manager.js → modules/agents/runtime/profile-manager.js} +2 -2
  158. package/server/dist/{profiles-router.js → modules/agents/runtime/profiles-router.js} +5 -5
  159. package/server/dist/{browser-capture-manager.js → modules/browser/runtime/browser-capture-manager.js} +2 -4
  160. package/server/dist/{browser-playwright.js → modules/browser/runtime/browser-playwright.js} +1 -1
  161. package/server/dist/{blueprint-chat-manager.js → modules/builder/runtime/blueprint-chat-manager.js} +7 -7
  162. package/server/dist/{blueprint-commit.js → modules/builder/runtime/blueprint-commit.js} +8 -8
  163. package/server/dist/{blueprint-draft-parser.js → modules/builder/runtime/blueprint-draft-parser.js} +1 -1
  164. package/server/dist/{blueprint-generation.js → modules/builder/runtime/blueprint-generation.js} +1 -1
  165. package/server/dist/{blueprint-operator-prompt.js → modules/builder/runtime/blueprint-operator-prompt.js} +1 -1
  166. package/server/dist/{blueprint-router.js → modules/builder/runtime/blueprint-router.js} +3 -3
  167. package/server/dist/{blueprint-spec-quality.js → modules/builder/runtime/blueprint-spec-quality.js} +1 -1
  168. package/server/dist/{milestone-chain.js → modules/builder/runtime/milestone-chain.js} +1 -1
  169. package/server/dist/{milestone-progress.js → modules/builder/runtime/milestone-progress.js} +6 -6
  170. package/server/dist/{code-activity.js → modules/code/runtime/code-activity.js} +1 -1
  171. package/server/dist/{code-explorer-router.js → modules/code/runtime/code-explorer-router.js} +5 -5
  172. package/server/dist/{file-provenance.js → modules/code/runtime/file-provenance.js} +1 -1
  173. package/server/dist/{file-story-manager.js → modules/code/runtime/file-story-manager.js} +2 -2
  174. package/server/dist/{file-story.js → modules/code/runtime/file-story.js} +2 -2
  175. package/server/dist/{file-summary-generator.js → modules/code/runtime/file-summary-generator.js} +3 -3
  176. package/server/dist/{file-summary-manager.js → modules/code/runtime/file-summary-manager.js} +3 -3
  177. package/server/dist/{project-code-discovery.js → modules/code/runtime/project-code-discovery.js} +2 -2
  178. package/server/dist/modules/conversations/domain/draft-stream.js +91 -0
  179. package/server/dist/modules/conversations/domain/recovery-context.js +101 -0
  180. package/server/dist/modules/conversations/index.js +10 -0
  181. package/server/dist/{chat-manager.js → modules/conversations/runtime/chat-manager.js} +32 -216
  182. package/server/dist/{context-budget.js → modules/conversations/runtime/context-budget.js} +1 -1
  183. package/server/dist/{explore-cwd-manager.js → modules/conversations/runtime/explore-cwd-manager.js} +1 -1
  184. package/server/dist/{explore-smash.js → modules/conversations/runtime/explore-smash.js} +1 -1
  185. package/server/dist/{explore-stdin-session.js → modules/conversations/runtime/explore-stdin-session.js} +1 -1
  186. package/server/dist/modules/delivery/adapters/decisions/chains.js +138 -0
  187. package/server/dist/modules/delivery/adapters/decisions/contracts.js +2 -0
  188. package/server/dist/modules/delivery/adapters/decisions/create.js +234 -0
  189. package/server/dist/modules/delivery/adapters/decisions/discard.js +251 -0
  190. package/server/dist/modules/delivery/adapters/decisions/dispatch.js +107 -0
  191. package/server/dist/modules/delivery/adapters/decisions/evidence.js +205 -0
  192. package/server/dist/modules/delivery/adapters/decisions/merge-local.js +338 -0
  193. package/server/dist/modules/delivery/adapters/decisions/metadata.js +109 -0
  194. package/server/dist/modules/delivery/adapters/decisions/observations.js +260 -0
  195. package/server/dist/modules/delivery/adapters/decisions/ownership.js +83 -0
  196. package/server/dist/modules/delivery/adapters/decisions/publish.js +242 -0
  197. package/server/dist/modules/delivery/adapters/decisions/recovery.js +425 -0
  198. package/server/dist/modules/delivery/adapters/decisions/retry.js +112 -0
  199. package/server/dist/modules/delivery/adapters/decisions/transitions.js +94 -0
  200. package/server/dist/modules/delivery/domain/decision-policy.js +50 -0
  201. package/server/dist/modules/delivery/domain/state.js +2 -0
  202. package/server/dist/modules/delivery/index.js +7 -0
  203. package/server/dist/{active-pr-continuation.js → modules/delivery/runtime/active-pr-continuation.js} +2 -2
  204. package/server/dist/{delivery-evidence.js → modules/delivery/runtime/delivery-evidence.js} +3 -3
  205. package/server/dist/{multi-repo-bases.js → modules/delivery/runtime/multi-repo-bases.js} +1 -1
  206. package/server/dist/{multi-repo-checkout.js → modules/delivery/runtime/multi-repo-checkout.js} +4 -4
  207. package/server/dist/{multi-repo-delivery.js → modules/delivery/runtime/multi-repo-delivery.js} +4 -4
  208. package/server/dist/{multi-repo-execution.js → modules/delivery/runtime/multi-repo-execution.js} +8 -8
  209. package/server/dist/{pr-body.js → modules/delivery/runtime/pr-body.js} +1 -1
  210. package/server/dist/{pr-follow-up-scope.js → modules/delivery/runtime/pr-follow-up-scope.js} +2 -2
  211. package/server/dist/{pr-follow-up.js → modules/delivery/runtime/pr-follow-up.js} +1 -1
  212. package/server/dist/{pr-naming.js → modules/delivery/runtime/pr-naming.js} +1 -1
  213. package/server/dist/{pr-publisher.js → modules/delivery/runtime/pr-publisher.js} +2 -2
  214. package/server/dist/{rail-isolated-launch.js → modules/delivery/runtime/rail-isolated-launch.js} +29 -27
  215. package/server/dist/{rail-launch-parser.js → modules/delivery/runtime/rail-launch-parser.js} +2 -2
  216. package/server/dist/{rail-merge-orchestrator.js → modules/delivery/runtime/rail-merge-orchestrator.js} +5 -5
  217. package/server/dist/modules/delivery/runtime/rail-pr-decision.js +12 -0
  218. package/server/dist/{rail-pr-delivery.js → modules/delivery/runtime/rail-pr-delivery.js} +1 -1
  219. package/server/dist/{rail-pr-store.js → modules/delivery/runtime/rail-pr-store.js} +2 -2
  220. package/server/dist/{rail-pr-ticket-effects.js → modules/delivery/runtime/rail-pr-ticket-effects.js} +3 -3
  221. package/server/dist/{rail-worktree-release.js → modules/delivery/runtime/rail-worktree-release.js} +4 -4
  222. package/server/dist/{rails-router.js → modules/delivery/runtime/rails-router.js} +66 -67
  223. package/server/dist/{review-packet.js → modules/delivery/runtime/review-packet.js} +3 -3
  224. package/server/dist/modules/execution/adapters/budget-storage.js +21 -0
  225. package/server/dist/modules/execution/adapters/usage-reader.js +38 -0
  226. package/server/dist/modules/execution/application/enforce-budget.js +14 -0
  227. package/server/dist/modules/execution/application/record-job-invocations.js +64 -0
  228. package/server/dist/modules/execution/application/recover-job-usage.js +200 -0
  229. package/server/dist/modules/execution/domain/job-accounting.js +2 -0
  230. package/server/dist/modules/execution/domain/scheduling.js +24 -0
  231. package/server/dist/modules/execution/domain/usage.js +21 -0
  232. package/server/dist/modules/execution/index.js +14 -0
  233. package/server/dist/modules/execution/ports.js +2 -0
  234. package/server/dist/{accept-ladder.js → modules/execution/runtime/accept-ladder.js} +1 -1
  235. package/server/dist/{interactive-job-session.js → modules/execution/runtime/interactive-job-session.js} +11 -11
  236. package/server/dist/{job-phase-breakdown.js → modules/execution/runtime/job-phase-breakdown.js} +1 -1
  237. package/server/dist/{queue-manager.js → modules/execution/runtime/queue-manager.js} +74 -491
  238. package/server/dist/{revision-seed.js → modules/execution/runtime/revision-seed.js} +1 -1
  239. package/server/dist/{spawn-lifecycle.js → modules/execution/runtime/spawn-lifecycle.js} +3 -3
  240. package/server/dist/{stuck-run-detector.js → modules/execution/runtime/stuck-run-detector.js} +1 -1
  241. package/server/dist/{loop-command-catalog.js → modules/loops/runtime/loop-command-catalog.js} +1 -1
  242. package/server/dist/{loop-executors.js → modules/loops/runtime/loop-executors.js} +17 -17
  243. package/server/dist/{loop-factory.js → modules/loops/runtime/loop-factory.js} +2 -21
  244. package/server/dist/{loop-graph.js → modules/loops/runtime/loop-graph.js} +25 -0
  245. package/server/dist/{loop-role-engines.js → modules/loops/runtime/loop-role-engines.js} +4 -4
  246. package/server/dist/{loop-run-manager.js → modules/loops/runtime/loop-run-manager.js} +101 -26
  247. package/server/dist/{loop-runs-store.js → modules/loops/runtime/loop-runs-store.js} +1 -1
  248. package/server/dist/{loop-shell-invocation.js → modules/loops/runtime/loop-shell-invocation.js} +2 -2
  249. package/server/dist/{loop-step-idle.js → modules/loops/runtime/loop-step-idle.js} +1 -1
  250. package/server/dist/{loop-templates.js → modules/loops/runtime/loop-templates.js} +24 -29
  251. package/server/dist/{loops-router.js → modules/loops/runtime/loops-router.js} +2 -2
  252. package/server/dist/{agent-chat-manager.js → modules/missions/runtime/agent-chat-manager.js} +19 -19
  253. package/server/dist/{agent-chat-router.js → modules/missions/runtime/agent-chat-router.js} +6 -6
  254. package/server/dist/{agent-context-resolver.js → modules/missions/runtime/agent-context-resolver.js} +8 -8
  255. package/server/dist/{agent-failure-briefing.js → modules/missions/runtime/agent-failure-briefing.js} +4 -2
  256. package/server/dist/{agent-fence-promotion.js → modules/missions/runtime/agent-fence-promotion.js} +1 -1
  257. package/server/dist/{agent-input-store.js → modules/missions/runtime/agent-input-store.js} +1 -1
  258. package/server/dist/{agent-operator-prompt.js → modules/missions/runtime/agent-operator-prompt.js} +75 -12
  259. package/server/dist/{agent-spec-framing.js → modules/missions/runtime/agent-spec-framing.js} +4 -4
  260. package/server/dist/{agent-steering.js → modules/missions/runtime/agent-steering.js} +1 -1
  261. package/server/dist/{mission-run-notify.js → modules/missions/runtime/mission-run-notify.js} +5 -2
  262. package/server/dist/modules/project-settings/adapters/http.js +24 -0
  263. package/server/dist/modules/project-settings/adapters/sqlite.js +120 -0
  264. package/server/dist/modules/project-settings/application.js +11 -0
  265. package/server/dist/modules/project-settings/domain.js +95 -0
  266. package/server/dist/modules/project-settings/index.js +11 -0
  267. package/server/dist/modules/project-settings/ports.js +2 -0
  268. package/server/dist/{contract-refine-runner.js → modules/specs/runtime/contract-refine-runner.js} +12 -12
  269. package/server/dist/{proposal-manager.js → modules/specs/runtime/proposal-manager.js} +8 -8
  270. package/server/dist/{smash-runner.js → modules/specs/runtime/smash-runner.js} +26 -58
  271. package/server/dist/{spec-addenda-core.js → modules/specs/runtime/spec-addenda-core.js} +2 -2
  272. package/server/dist/{spec-addenda.js → modules/specs/runtime/spec-addenda.js} +3 -3
  273. package/server/dist/{spec-launcher-manager.js → modules/specs/runtime/spec-launcher-manager.js} +8 -8
  274. package/server/dist/{spec-models.js → modules/specs/runtime/spec-models.js} +1 -1
  275. package/server/dist/{ticket-watcher.js → modules/specs/runtime/ticket-watcher.js} +1 -1
  276. package/server/dist/{background-process-control.js → modules/terminals/runtime/background-process-control.js} +1 -1
  277. package/server/dist/{background-process-service.js → modules/terminals/runtime/background-process-service.js} +3 -3
  278. package/server/dist/{background-process-store.js → modules/terminals/runtime/background-process-store.js} +1 -1
  279. package/server/dist/{background-windows-bootstrap.js → modules/terminals/runtime/background-windows-bootstrap.js} +3 -3
  280. package/server/dist/{terminal-manager.js → modules/terminals/runtime/terminal-manager.js} +3 -3
  281. package/server/dist/project-git.js +1 -1
  282. package/server/dist/project-profile-support.js +32 -0
  283. package/server/dist/project-registry.js +34 -40
  284. package/server/dist/project-router-background-processes.js +1 -1
  285. package/server/dist/project-router-chat.js +6 -6
  286. package/server/dist/project-router-git.js +1 -1
  287. package/server/dist/project-router-helpers.js +2 -2
  288. package/server/dist/project-router-jobs.js +14 -12
  289. package/server/dist/project-router-loop-runs.js +12 -12
  290. package/server/dist/project-router-settings.js +15 -75
  291. package/server/dist/project-router-setup.js +2 -2
  292. package/server/dist/project-router-spending.js +4 -4
  293. package/server/dist/project-router-terminals.js +4 -4
  294. package/server/dist/project-router-tickets.js +14 -14
  295. package/server/dist/project-router.js +13 -13
  296. package/server/dist/providers/claude-adapter.js +3 -2
  297. package/server/dist/providers/codex-adapter.js +3 -3
  298. package/server/dist/providers/gemini-adapter.js +1 -1
  299. package/server/dist/providers/telemetry-env.js +55 -0
  300. package/server/dist/runtime-role-prompts-router.js +2 -2
  301. package/server/dist/setup-manager.js +2 -48
  302. package/server/dist/shared/git-branch-name.js +16 -0
  303. package/server/dist/transient-children.js +3 -3
  304. package/server/dist/util/distribute-int.js +33 -0
  305. package/client/dist/assets/ReviewPacketPage-D-UjTef3.js +0 -4
  306. package/client/dist/assets/index-BAtqmAZR.css +0 -2
  307. package/client/dist/assets/packet-CjS_478C.js +0 -1
  308. package/client/dist/assets/packet-D69dKsHN.js +0 -1
  309. package/client/dist/assets/packet-D9rU6Oxo.js +0 -1
  310. package/client/dist/assets/packet-DMDFoamg.js +0 -1
  311. package/client/dist/assets/packet-Dd2RMs1h.js +0 -1
  312. package/client/dist/assets/packet-DjC9OibC.js +0 -1
  313. package/client/dist/assets/packet-DwPtJoDz.js +0 -1
  314. package/client/dist/assets/packet-ceahDg8_.js +0 -1
  315. package/server/dist/rail-pr-decision.js +0 -2377
  316. package/server/dist/ticket-broadcast.js +0 -47
  317. /package/server/dist/{ai-invocations.js → modules/accounting/runtime/ai-invocations.js} +0 -0
  318. /package/server/dist/{codex-otel-bridge.js → modules/accounting/runtime/codex-otel-bridge.js} +0 -0
  319. /package/server/dist/{metrics.js → modules/accounting/runtime/metrics.js} +0 -0
  320. /package/server/dist/{telemetry-export.js → modules/accounting/runtime/telemetry-export.js} +0 -0
  321. /package/server/dist/{agent-runtime-accounting.js → modules/agent-runtime/runtime/agent-runtime-accounting.js} +0 -0
  322. /package/server/dist/{agent-runtime-events.js → modules/agent-runtime/runtime/agent-runtime-events.js} +0 -0
  323. /package/server/dist/{agent-runtime-history.js → modules/agent-runtime/runtime/agent-runtime-history.js} +0 -0
  324. /package/server/dist/{agent-runtime-metrics.js → modules/agent-runtime/runtime/agent-runtime-metrics.js} +0 -0
  325. /package/server/dist/{agent-runtime-package.js → modules/agent-runtime/runtime/agent-runtime-package.js} +0 -0
  326. /package/server/dist/{agent-runtime-repositories.js → modules/agent-runtime/runtime/agent-runtime-repositories.js} +0 -0
  327. /package/server/dist/{agent-runtime-verification-suggestions.js → modules/agent-runtime/runtime/agent-runtime-verification-suggestions.js} +0 -0
  328. /package/server/dist/{agent-refine-db.js → modules/agents/runtime/agent-refine-db.js} +0 -0
  329. /package/server/dist/{browser-capture-types.js → modules/browser/runtime/browser-capture-types.js} +0 -0
  330. /package/server/dist/{browser-context-pool.js → modules/browser/runtime/browser-context-pool.js} +0 -0
  331. /package/server/dist/{browser-network.js → modules/browser/runtime/browser-network.js} +0 -0
  332. /package/server/dist/{browser-viewport.js → modules/browser/runtime/browser-viewport.js} +0 -0
  333. /package/server/dist/{blueprint-render.js → modules/builder/runtime/blueprint-render.js} +0 -0
  334. /package/server/dist/{blueprint-spec-fixtures.js → modules/builder/runtime/blueprint-spec-fixtures.js} +0 -0
  335. /package/server/dist/{blueprint-store.js → modules/builder/runtime/blueprint-store.js} +0 -0
  336. /package/server/dist/{blueprint-types.js → modules/builder/runtime/blueprint-types.js} +0 -0
  337. /package/server/dist/{builder-cwd-manager.js → modules/builder/runtime/builder-cwd-manager.js} +0 -0
  338. /package/server/dist/{milestone-chain-store.js → modules/builder/runtime/milestone-chain-store.js} +0 -0
  339. /package/server/dist/{changes-reader.js → modules/code/runtime/changes-reader.js} +0 -0
  340. /package/server/dist/{context-scope.js → modules/conversations/runtime/context-scope.js} +0 -0
  341. /package/server/dist/{explore-contract-refine.js → modules/conversations/runtime/explore-contract-refine.js} +0 -0
  342. /package/server/dist/{explore-draft-title.js → modules/conversations/runtime/explore-draft-title.js} +0 -0
  343. /package/server/dist/{merge-manager.js → modules/delivery/runtime/merge-manager.js} +0 -0
  344. /package/server/dist/{multi-repo-execution-store.js → modules/delivery/runtime/multi-repo-execution-store.js} +0 -0
  345. /package/server/dist/{pr-lifecycle.js → modules/delivery/runtime/pr-lifecycle.js} +0 -0
  346. /package/server/dist/{rail-isolation.js → modules/delivery/runtime/rail-isolation.js} +0 -0
  347. /package/server/dist/{rail-pr-recovery-git.js → modules/delivery/runtime/rail-pr-recovery-git.js} +0 -0
  348. /package/server/dist/{rail-worktrees-store.js → modules/delivery/runtime/rail-worktrees-store.js} +0 -0
  349. /package/server/dist/{rails-store.js → modules/delivery/runtime/rails-store.js} +0 -0
  350. /package/server/dist/{job-listing.js → modules/execution/runtime/job-listing.js} +0 -0
  351. /package/server/dist/{job-spawn-idempotency.js → modules/execution/runtime/job-spawn-idempotency.js} +0 -0
  352. /package/server/dist/{run-duration-stats.js → modules/execution/runtime/run-duration-stats.js} +0 -0
  353. /package/server/dist/{verification-sentinel.js → modules/execution/runtime/verification-sentinel.js} +0 -0
  354. /package/server/dist/{loop-constants.js → modules/loops/runtime/loop-constants.js} +0 -0
  355. /package/server/dist/{loop-decider.js → modules/loops/runtime/loop-decider.js} +0 -0
  356. /package/server/dist/{loop-effect.js → modules/loops/runtime/loop-effect.js} +0 -0
  357. /package/server/dist/{loop-preview.js → modules/loops/runtime/loop-preview.js} +0 -0
  358. /package/server/dist/{loop-templates-ported.js → modules/loops/runtime/loop-templates-ported.js} +0 -0
  359. /package/server/dist/{loops-store.js → modules/loops/runtime/loops-store.js} +0 -0
  360. /package/server/dist/{agent-chat-registry.js → modules/missions/runtime/agent-chat-registry.js} +0 -0
  361. /package/server/dist/{agent-cwd-manager.js → modules/missions/runtime/agent-cwd-manager.js} +0 -0
  362. /package/server/dist/{agent-tier.js → modules/missions/runtime/agent-tier.js} +0 -0
  363. /package/server/dist/{spec-contract-prompt.js → modules/specs/runtime/spec-contract-prompt.js} +0 -0
  364. /package/server/dist/{spec-draft-parser.js → modules/specs/runtime/spec-draft-parser.js} +0 -0
  365. /package/server/dist/{ticket-store.js → modules/specs/runtime/ticket-store.js} +0 -0
  366. /package/server/dist/{terminal-marks-store.js → modules/terminals/runtime/terminal-marks-store.js} +0 -0
  367. /package/server/dist/{terminal-osc-parser.js → modules/terminals/runtime/terminal-osc-parser.js} +0 -0
  368. /package/server/dist/{terminal-settings.js → modules/terminals/runtime/terminal-settings.js} +0 -0
@@ -0,0 +1,1356 @@
1
+ # Source reference map
2
+
3
+ Generated by `npm run docs:source-map`. This is a navigation index, not an
4
+ architectural dependency declaration. Search a heading or filename and read only
5
+ the relevant source and tests. Feature prefixes group the legacy server files;
6
+ new bounded modules live under `server/modules/`.
7
+
8
+ Includes 942 source/build files. Nearby tests are linked where names
9
+ match; integration suites may live elsewhere. Use `rg` to find other consumers.
10
+
11
+ ## cli
12
+
13
+ - [args.ts](../../cli/args.ts)
14
+ - [desktop-client.ts](../../cli/desktop-client.ts)
15
+ - [desktop-control.ts](../../cli/desktop-control.ts)
16
+ - [format.ts](../../cli/format.ts)
17
+ - [help.ts](../../cli/help.ts)
18
+ - [output.ts](../../cli/output.ts)
19
+ - [run-command.ts](../../cli/run-command.ts)
20
+ - [specrails-desktop.ts](../../cli/specrails-desktop.ts) · [test](../../cli/specrails-desktop.test.ts)
21
+ - [status.ts](../../cli/status.ts)
22
+ - [win-spawn.ts](../../cli/win-spawn.ts) · [test](../../cli/win-spawn.test.ts)
23
+
24
+ ## client/src
25
+
26
+ - [App.tsx](../../client/src/App.tsx) · [test](../../client/src/__tests__/App.test.tsx)
27
+ - [main.tsx](../../client/src/main.tsx)
28
+ - [test-setup.ts](../../client/src/test-setup.ts)
29
+ - [test-utils.tsx](../../client/src/test-utils.tsx)
30
+ - [types.ts](../../client/src/types.ts)
31
+
32
+ ## client/src/components
33
+
34
+ - [ArcSidebar.tsx](../../client/src/components/ArcSidebar.tsx) · [test](../../client/src/components/__tests__/ArcSidebar.test.tsx)
35
+ - [CommandPalette.tsx](../../client/src/components/CommandPalette.tsx) · [test](../../client/src/components/__tests__/CommandPalette.test.tsx)
36
+ - [KeyboardShortcutsCheatsheet.tsx](../../client/src/components/KeyboardShortcutsCheatsheet.tsx) · [test](../../client/src/components/__tests__/KeyboardShortcutsCheatsheet.test.tsx)
37
+ - [ProjectLayout.tsx](../../client/src/components/ProjectLayout.tsx) · [test](../../client/src/components/__tests__/ProjectLayout.test.tsx)
38
+ - [ProjectRightSidebar.tsx](../../client/src/components/ProjectRightSidebar.tsx) · [test](../../client/src/components/__tests__/ProjectRightSidebar.test.tsx)
39
+ - [ShellErrorBoundary.tsx](../../client/src/components/ShellErrorBoundary.tsx) · [test](../../client/src/components/__tests__/ShellErrorBoundary.test.tsx)
40
+ - [SidebarResizeGrip.tsx](../../client/src/components/SidebarResizeGrip.tsx)
41
+ - [SplitViewShell.tsx](../../client/src/components/SplitViewShell.tsx)
42
+ - [StatusBar.tsx](../../client/src/components/StatusBar.tsx) · [test](../../client/src/components/__tests__/StatusBar.test.tsx)
43
+ - [TitleBar.tsx](../../client/src/components/TitleBar.tsx) · [test](../../client/src/components/__tests__/TitleBar.test.tsx)
44
+ - [WelcomeScreen.tsx](../../client/src/components/WelcomeScreen.tsx) · [test](../../client/src/components/__tests__/WelcomeScreen.test.tsx)
45
+
46
+ ## client/src/components/ui
47
+
48
+ - [ResizeGrips.tsx](../../client/src/components/ui/ResizeGrips.tsx) · [test](../../client/src/components/ui/__tests__/ResizeGrips.test.tsx)
49
+ - [badge.tsx](../../client/src/components/ui/badge.tsx)
50
+ - [button.tsx](../../client/src/components/ui/button.tsx)
51
+ - [card.tsx](../../client/src/components/ui/card.tsx)
52
+ - [dialog.tsx](../../client/src/components/ui/dialog.tsx)
53
+ - [input.tsx](../../client/src/components/ui/input.tsx)
54
+ - [select.tsx](../../client/src/components/ui/select.tsx) · [test](../../client/src/components/ui/__tests__/select.test.tsx)
55
+ - [tooltip.tsx](../../client/src/components/ui/tooltip.tsx)
56
+
57
+ ## client/src/context
58
+
59
+ - [SidebarPinContext.tsx](../../client/src/context/SidebarPinContext.tsx) · [test](../../client/src/context/__tests__/SidebarPinContext.test.tsx)
60
+ - [UiModeContext.tsx](../../client/src/context/UiModeContext.tsx) · [test](../../client/src/context/__tests__/UiModeContext.test.tsx)
61
+
62
+ ## client/src/demo-mode
63
+
64
+ - [demo-api.ts](../../client/src/demo-mode/demo-api.ts)
65
+ - [demo-entry.tsx](../../client/src/demo-mode/demo-entry.tsx)
66
+
67
+ ## client/src/demo-mode/tour
68
+
69
+ - [TourCursor.tsx](../../client/src/demo-mode/tour/TourCursor.tsx)
70
+ - [TourOverlay.tsx](../../client/src/demo-mode/tour/TourOverlay.tsx)
71
+ - [index.ts](../../client/src/demo-mode/tour/index.ts)
72
+ - [orchestrator.ts](../../client/src/demo-mode/tour/orchestrator.ts)
73
+ - [selectors.ts](../../client/src/demo-mode/tour/selectors.ts)
74
+ - [timeline.ts](../../client/src/demo-mode/tour/timeline.ts)
75
+ - [tour-store.ts](../../client/src/demo-mode/tour/tour-store.ts)
76
+
77
+ ## client/src/features/agents/components
78
+
79
+ - [AgentStudio.tsx](../../client/src/features/agents/components/AgentStudio.tsx)
80
+ - [AgentsCatalogTab.tsx](../../client/src/features/agents/components/AgentsCatalogTab.tsx)
81
+ - [AiRefineOverlay.tsx](../../client/src/features/agents/components/AiRefineOverlay.tsx)
82
+ - [ProfileAnalyticsCard.tsx](../../client/src/features/agents/components/ProfileAnalyticsCard.tsx)
83
+ - [ProfileEditor.tsx](../../client/src/features/agents/components/ProfileEditor.tsx) · [test](../../client/src/features/agents/components/__tests__/ProfileEditor.test.tsx)
84
+ - [ProfilesTab.tsx](../../client/src/features/agents/components/ProfilesTab.tsx)
85
+ - [PromptDialog.tsx](../../client/src/features/agents/components/PromptDialog.tsx)
86
+ - [RailEffortSelector.tsx](../../client/src/features/agents/components/RailEffortSelector.tsx) · [test](../../client/src/features/agents/components/__tests__/RailEffortSelector.test.tsx)
87
+ - [RailEngineSelector.tsx](../../client/src/features/agents/components/RailEngineSelector.tsx) · [test](../../client/src/features/agents/components/__tests__/RailEngineSelector.test.tsx)
88
+ - [RailLoopSelector.tsx](../../client/src/features/agents/components/RailLoopSelector.tsx) · [test](../../client/src/features/agents/components/__tests__/RailLoopSelector.test.tsx)
89
+ - [RailModelSelector.tsx](../../client/src/features/agents/components/RailModelSelector.tsx) · [test](../../client/src/features/agents/components/__tests__/RailModelSelector.test.tsx)
90
+ - [RailProfileSelector.tsx](../../client/src/features/agents/components/RailProfileSelector.tsx) · [test](../../client/src/features/agents/components/__tests__/RailProfileSelector.test.tsx)
91
+ - [RoutingRuleDialog.tsx](../../client/src/features/agents/components/RoutingRuleDialog.tsx) · [test](../../client/src/features/agents/components/__tests__/RoutingRuleDialog.test.tsx)
92
+ - [agentTemplates.ts](../../client/src/features/agents/components/agentTemplates.ts)
93
+ - [types.ts](../../client/src/features/agents/components/types.ts)
94
+
95
+ ## client/src/features/agents/hooks
96
+
97
+ - [useAgentRefine.ts](../../client/src/features/agents/hooks/useAgentRefine.ts)
98
+
99
+ ## client/src/features/agents/pages
100
+
101
+ - [AgentsPage.tsx](../../client/src/features/agents/pages/AgentsPage.tsx)
102
+
103
+ ## client/src/features/analytics/components
104
+
105
+ - [AgentMissionsCard.tsx](../../client/src/features/analytics/components/AgentMissionsCard.tsx)
106
+ - [CostScatter.tsx](../../client/src/features/analytics/components/CostScatter.tsx) · [test](../../client/src/features/analytics/components/__tests__/CostScatter.test.tsx)
107
+ - [ExportDropdown.tsx](../../client/src/features/analytics/components/ExportDropdown.tsx) · [test](../../client/src/features/analytics/components/__tests__/ExportDropdown.test.tsx)
108
+ - [InvocationsTable.tsx](../../client/src/features/analytics/components/InvocationsTable.tsx) · [test](../../client/src/features/analytics/components/__tests__/InvocationsTable.test.tsx)
109
+ - [ModelBreakdown.tsx](../../client/src/features/analytics/components/ModelBreakdown.tsx) · [test](../../client/src/features/analytics/components/__tests__/ModelBreakdown.test.tsx)
110
+ - [PeriodSelector.tsx](../../client/src/features/analytics/components/PeriodSelector.tsx) · [test](../../client/src/features/analytics/components/__tests__/PeriodSelector.test.tsx)
111
+ - [ProviderBreakdownCard.tsx](../../client/src/features/analytics/components/ProviderBreakdownCard.tsx) · [test](../../client/src/features/analytics/components/__tests__/ProviderBreakdownCard.test.tsx)
112
+ - [QuickVsExploreCard.tsx](../../client/src/features/analytics/components/QuickVsExploreCard.tsx) · [test](../../client/src/features/analytics/components/__tests__/QuickVsExploreCard.test.tsx)
113
+ - [SpendingHero.tsx](../../client/src/features/analytics/components/SpendingHero.tsx) · [test](../../client/src/features/analytics/components/__tests__/SpendingHero.test.tsx)
114
+ - [SpendingTimeline.tsx](../../client/src/features/analytics/components/SpendingTimeline.tsx) · [test](../../client/src/features/analytics/components/__tests__/SpendingTimeline.test.tsx)
115
+ - [TicketSpendingLine.tsx](../../client/src/features/analytics/components/TicketSpendingLine.tsx) · [test](../../client/src/features/analytics/components/__tests__/TicketSpendingLine.test.tsx)
116
+ - [TopTicketsCrossSurface.tsx](../../client/src/features/analytics/components/TopTicketsCrossSurface.tsx) · [test](../../client/src/features/analytics/components/__tests__/TopTicketsCrossSurface.test.tsx)
117
+
118
+ ## client/src/features/analytics/hooks
119
+
120
+ - [useActivity.ts](../../client/src/features/analytics/hooks/useActivity.ts) · [test](../../client/src/features/analytics/hooks/__tests__/useActivity.test.ts)
121
+
122
+ ## client/src/features/analytics/pages
123
+
124
+ - [ActivityFeedPage.tsx](../../client/src/features/analytics/pages/ActivityFeedPage.tsx) · [test](../../client/src/features/analytics/pages/__tests__/ActivityFeedPage.test.tsx)
125
+ - [AnalyticsPage.tsx](../../client/src/features/analytics/pages/AnalyticsPage.tsx) · [test](../../client/src/features/analytics/pages/__tests__/AnalyticsPage.test.tsx)
126
+ - [DesktopAnalyticsPage.tsx](../../client/src/features/analytics/pages/DesktopAnalyticsPage.tsx) · [test](../../client/src/features/analytics/pages/__tests__/DesktopAnalyticsPage.test.tsx)
127
+
128
+ ## client/src/features/analytics/types
129
+
130
+ - [spending.ts](../../client/src/features/analytics/types/spending.ts) · [test](../../client/src/features/analytics/types/__tests__/spending.test.ts)
131
+
132
+ ## client/src/features/background/components
133
+
134
+ - [BackgroundProcessChip.tsx](../../client/src/features/background/components/BackgroundProcessChip.tsx)
135
+ - [BackgroundProcessHistoryModal.tsx](../../client/src/features/background/components/BackgroundProcessHistoryModal.tsx) · [test](../../client/src/features/background/components/__tests__/BackgroundProcessHistoryModal.test.tsx)
136
+ - [BackgroundProcessLogsModal.tsx](../../client/src/features/background/components/BackgroundProcessLogsModal.tsx) · [test](../../client/src/features/background/components/__tests__/BackgroundProcessLogsModal.test.tsx)
137
+
138
+ ## client/src/features/background/context
139
+
140
+ - [BackgroundProcessesContext.tsx](../../client/src/features/background/context/BackgroundProcessesContext.tsx) · [test](../../client/src/features/background/context/__tests__/BackgroundProcessesContext.test.tsx)
141
+
142
+ ## client/src/features/background/lib
143
+
144
+ - [background-processes-api.ts](../../client/src/features/background/lib/background-processes-api.ts) · [test](../../client/src/features/background/lib/__tests__/background-processes-api.test.ts)
145
+
146
+ ## client/src/features/browser/components/browser-capture
147
+
148
+ - [AnnotationEditor.tsx](../../client/src/features/browser/components/browser-capture/AnnotationEditor.tsx) · [test](../../client/src/features/browser/components/browser-capture/AnnotationEditor.test.tsx)
149
+ - [BrowserCaptureModal.tsx](../../client/src/features/browser/components/browser-capture/BrowserCaptureModal.tsx) · [test](../../client/src/features/browser/components/browser-capture/BrowserCaptureModal.test.tsx)
150
+ - [CapturedDomPanel.tsx](../../client/src/features/browser/components/browser-capture/CapturedDomPanel.tsx) · [test](../../client/src/features/browser/components/browser-capture/CapturedDomPanel.test.tsx)
151
+ - [NativeBrowserPane.tsx](../../client/src/features/browser/components/browser-capture/NativeBrowserPane.tsx) · [test](../../client/src/features/browser/components/browser-capture/NativeBrowserPane.test.tsx)
152
+ - [WebViewModal.tsx](../../client/src/features/browser/components/browser-capture/WebViewModal.tsx) · [test](../../client/src/features/browser/components/browser-capture/WebViewModal.test.tsx)
153
+ - [useBrowserCaptureSession.ts](../../client/src/features/browser/components/browser-capture/useBrowserCaptureSession.ts)
154
+ - [useBrowserViewport.ts](../../client/src/features/browser/components/browser-capture/useBrowserViewport.ts)
155
+
156
+ ## client/src/features/browser/context
157
+
158
+ - [WebViewModalContext.tsx](../../client/src/features/browser/context/WebViewModalContext.tsx) · [test](../../client/src/features/browser/context/WebViewModalContext.test.tsx)
159
+
160
+ ## client/src/features/browser/lib
161
+
162
+ - [annotations.ts](../../client/src/features/browser/lib/annotations.ts) · [test](../../client/src/features/browser/lib/annotations.test.ts)
163
+ - [browser-capture.ts](../../client/src/features/browser/lib/browser-capture.ts) · [test](../../client/src/features/browser/lib/browser-capture.test.ts)
164
+ - [browser-frame-pipeline.ts](../../client/src/features/browser/lib/browser-frame-pipeline.ts) · [test](../../client/src/features/browser/lib/browser-frame-pipeline.test.ts)
165
+ - [frame-activity.ts](../../client/src/features/browser/lib/frame-activity.ts) · [test](../../client/src/features/browser/lib/__tests__/frame-activity.test.ts)
166
+ - [native-browser.ts](../../client/src/features/browser/lib/native-browser.ts) · [test](../../client/src/features/browser/lib/__tests__/native-browser.test.ts)
167
+
168
+ ## client/src/features/builder/components/project-builder
169
+
170
+ - [BlueprintCommitForm.tsx](../../client/src/features/builder/components/project-builder/BlueprintCommitForm.tsx)
171
+ - [BlueprintPanel.tsx](../../client/src/features/builder/components/project-builder/BlueprintPanel.tsx)
172
+ - [BlueprintReadiness.tsx](../../client/src/features/builder/components/project-builder/BlueprintReadiness.tsx)
173
+ - [BlueprintSpecModal.tsx](../../client/src/features/builder/components/project-builder/BlueprintSpecModal.tsx)
174
+ - [BuilderComposer.tsx](../../client/src/features/builder/components/project-builder/BuilderComposer.tsx)
175
+ - [BuilderConversation.tsx](../../client/src/features/builder/components/project-builder/BuilderConversation.tsx)
176
+ - [BuilderDecisionCard.tsx](../../client/src/features/builder/components/project-builder/BuilderDecisionCard.tsx)
177
+ - [BuilderDoneMilestone.tsx](../../client/src/features/builder/components/project-builder/BuilderDoneMilestone.tsx)
178
+ - [BuilderGenerationProgress.tsx](../../client/src/features/builder/components/project-builder/BuilderGenerationProgress.tsx)
179
+ - [BuilderHalo.tsx](../../client/src/features/builder/components/project-builder/BuilderHalo.tsx)
180
+ - [BuilderRecentBlueprints.tsx](../../client/src/features/builder/components/project-builder/BuilderRecentBlueprints.tsx)
181
+ - [BuilderSidebarEntry.tsx](../../client/src/features/builder/components/project-builder/BuilderSidebarEntry.tsx)
182
+ - [MilestoneGenerateShell.tsx](../../client/src/features/builder/components/project-builder/MilestoneGenerateShell.tsx)
183
+ - [MilestoneProgressCard.tsx](../../client/src/features/builder/components/project-builder/MilestoneProgressCard.tsx)
184
+
185
+ ## client/src/features/builder/hooks
186
+
187
+ - [useBuilderSession.ts](../../client/src/features/builder/hooks/useBuilderSession.ts)
188
+ - [useMilestoneNotifications.ts](../../client/src/features/builder/hooks/useMilestoneNotifications.ts)
189
+ - [useMilestoneProgress.ts](../../client/src/features/builder/hooks/useMilestoneProgress.ts)
190
+
191
+ ## client/src/features/builder/lib
192
+
193
+ - [blueprint-draft.ts](../../client/src/features/builder/lib/blueprint-draft.ts) · [test](../../client/src/features/builder/lib/__tests__/blueprint-draft.test.ts)
194
+ - [blueprint-readiness.ts](../../client/src/features/builder/lib/blueprint-readiness.ts) · [test](../../client/src/features/builder/lib/__tests__/blueprint-readiness.test.ts)
195
+ - [blueprint-spec-quality.ts](../../client/src/features/builder/lib/blueprint-spec-quality.ts) · [test](../../client/src/features/builder/lib/__tests__/blueprint-spec-quality.test.ts)
196
+ - [milestone-launch.ts](../../client/src/features/builder/lib/milestone-launch.ts) · [test](../../client/src/features/builder/lib/__tests__/milestone-launch.test.ts)
197
+ - [milestone-progress.ts](../../client/src/features/builder/lib/milestone-progress.ts) · [test](../../client/src/features/builder/lib/__tests__/milestone-progress.test.ts)
198
+
199
+ ## client/src/features/chat/components
200
+
201
+ - [AttachmentChip.tsx](../../client/src/features/chat/components/AttachmentChip.tsx) · [test](../../client/src/features/chat/components/__tests__/AttachmentChip.test.tsx)
202
+ - [AttachmentPreviewLightbox.tsx](../../client/src/features/chat/components/AttachmentPreviewLightbox.tsx) · [test](../../client/src/features/chat/components/__tests__/AttachmentPreviewLightbox.test.tsx)
203
+ - [AttachmentsSection.tsx](../../client/src/features/chat/components/AttachmentsSection.tsx) · [test](../../client/src/features/chat/components/__tests__/AttachmentsSection.test.tsx)
204
+ - [ChatHeader.tsx](../../client/src/features/chat/components/ChatHeader.tsx) · [test](../../client/src/features/chat/components/__tests__/ChatHeader.test.tsx)
205
+ - [ChatInput.tsx](../../client/src/features/chat/components/ChatInput.tsx) · [test](../../client/src/features/chat/components/__tests__/ChatInput.test.tsx)
206
+ - [ChatPanel.tsx](../../client/src/features/chat/components/ChatPanel.tsx) · [test](../../client/src/features/chat/components/__tests__/ChatPanel.test.tsx)
207
+ - [CommandProposal.tsx](../../client/src/features/chat/components/CommandProposal.tsx) · [test](../../client/src/features/chat/components/__tests__/CommandProposal.test.tsx)
208
+ - [ContextScopeChecks.tsx](../../client/src/features/chat/components/ContextScopeChecks.tsx) · [test](../../client/src/features/chat/components/__tests__/ContextScopeChecks.test.tsx)
209
+ - [ContextScopeSlider.tsx](../../client/src/features/chat/components/ContextScopeSlider.tsx) · [test](../../client/src/features/chat/components/__tests__/ContextScopeSlider.test.tsx)
210
+ - [MessageBubble.tsx](../../client/src/features/chat/components/MessageBubble.tsx) · [test](../../client/src/features/chat/components/__tests__/MessageBubble.test.tsx)
211
+ - [MessageList.tsx](../../client/src/features/chat/components/MessageList.tsx) · [test](../../client/src/features/chat/components/__tests__/MessageList.test.tsx)
212
+ - [RichAttachmentEditor.tsx](../../client/src/features/chat/components/RichAttachmentEditor.tsx) · [test](../../client/src/features/chat/components/__tests__/RichAttachmentEditor.test.tsx)
213
+
214
+ ## client/src/features/chat/hooks
215
+
216
+ - [useChat.ts](../../client/src/features/chat/hooks/useChat.ts) · [test](../../client/src/features/chat/hooks/__tests__/useChat.test.ts)
217
+ - [useContextBudget.ts](../../client/src/features/chat/hooks/useContextBudget.ts)
218
+ - [useContextScope.ts](../../client/src/features/chat/hooks/useContextScope.ts)
219
+
220
+ ## client/src/features/chat/lib
221
+
222
+ - [attachments.ts](../../client/src/features/chat/lib/attachments.ts) · [test](../../client/src/features/chat/lib/__tests__/attachments.test.ts)
223
+
224
+ ## client/src/features/chat/types
225
+
226
+ - [context-scope.ts](../../client/src/features/chat/types/context-scope.ts) · [test](../../client/src/features/chat/types/__tests__/context-scope.test.ts)
227
+
228
+ ## client/src/features/code/components/ai-edit
229
+
230
+ - [AiEditShell.tsx](../../client/src/features/code/components/ai-edit/AiEditShell.tsx) · [test](../../client/src/features/code/components/ai-edit/__tests__/AiEditShell.test.tsx)
231
+
232
+ ## client/src/features/code/components/code-explorer
233
+
234
+ - [CodeActivity.tsx](../../client/src/features/code/components/code-explorer/CodeActivity.tsx) · [test](../../client/src/features/code/components/code-explorer/__tests__/CodeActivity.test.tsx)
235
+ - [CodeRepositoryContext.tsx](../../client/src/features/code/components/code-explorer/CodeRepositoryContext.tsx)
236
+ - [CodeSearch.tsx](../../client/src/features/code/components/code-explorer/CodeSearch.tsx) · [test](../../client/src/features/code/components/code-explorer/__tests__/CodeSearch.test.tsx)
237
+ - [CodeViewerMonaco.tsx](../../client/src/features/code/components/code-explorer/CodeViewerMonaco.tsx) · [test](../../client/src/features/code/components/code-explorer/__tests__/CodeViewerMonaco.test.tsx)
238
+ - [ConstructionStory.tsx](../../client/src/features/code/components/code-explorer/ConstructionStory.tsx) · [test](../../client/src/features/code/components/code-explorer/__tests__/ConstructionStory.test.tsx)
239
+ - [FileTree.tsx](../../client/src/features/code/components/code-explorer/FileTree.tsx) · [test](../../client/src/features/code/components/code-explorer/__tests__/FileTree.test.tsx)
240
+ - [FileViewer.tsx](../../client/src/features/code/components/code-explorer/FileViewer.tsx) · [test](../../client/src/features/code/components/code-explorer/__tests__/FileViewer.test.tsx)
241
+ - [MarkdownPreview.tsx](../../client/src/features/code/components/code-explorer/MarkdownPreview.tsx) · [test](../../client/src/features/code/components/code-explorer/__tests__/MarkdownPreview.test.tsx)
242
+ - [RecordedDiff.tsx](../../client/src/features/code/components/code-explorer/RecordedDiff.tsx) · [test](../../client/src/features/code/components/code-explorer/__tests__/RecordedDiff.test.tsx)
243
+ - [SummaryHeader.tsx](../../client/src/features/code/components/code-explorer/SummaryHeader.tsx) · [test](../../client/src/features/code/components/code-explorer/__tests__/SummaryHeader.test.tsx)
244
+ - [TicketFilesTouched.tsx](../../client/src/features/code/components/code-explorer/TicketFilesTouched.tsx) · [test](../../client/src/features/code/components/code-explorer/__tests__/TicketFilesTouched.test.tsx)
245
+ - [explorer-types.ts](../../client/src/features/code/components/code-explorer/explorer-types.ts)
246
+
247
+ ## client/src/features/code/lib
248
+
249
+ - [git-refresh.ts](../../client/src/features/code/lib/git-refresh.ts) · [test](../../client/src/features/code/lib/__tests__/git-refresh.test.ts)
250
+ - [monaco-setup.ts](../../client/src/features/code/lib/monaco-setup.ts)
251
+
252
+ ## client/src/features/code/pages
253
+
254
+ - [CodePage.tsx](../../client/src/features/code/pages/CodePage.tsx) · [test](../../client/src/features/code/pages/__tests__/CodePage.test.tsx)
255
+
256
+ ## client/src/features/dashboard/components
257
+
258
+ - [DashboardSplitter.tsx](../../client/src/features/dashboard/components/DashboardSplitter.tsx)
259
+
260
+ ## client/src/features/dashboard/hooks
261
+
262
+ - [useDashboardSplit.ts](../../client/src/features/dashboard/hooks/useDashboardSplit.ts)
263
+
264
+ ## client/src/features/dashboard/lib
265
+
266
+ - [dashboard-dnd.ts](../../client/src/features/dashboard/lib/dashboard-dnd.ts) · [test](../../client/src/features/dashboard/lib/__tests__/dashboard-dnd.test.ts)
267
+
268
+ ## client/src/features/dashboard/pages
269
+
270
+ - [DashboardPage.tsx](../../client/src/features/dashboard/pages/DashboardPage.tsx) · [test](../../client/src/features/dashboard/pages/__tests__/DashboardPage.test.tsx)
271
+
272
+ ## client/src/features/delivery/components
273
+
274
+ - [RailPrDecisionStrip.tsx](../../client/src/features/delivery/components/RailPrDecisionStrip.tsx) · [test](../../client/src/features/delivery/components/__tests__/RailPrDecisionStrip.test.tsx)
275
+ - [RepositoryDeliveries.tsx](../../client/src/features/delivery/components/RepositoryDeliveries.tsx) · [test](../../client/src/features/delivery/components/__tests__/RepositoryDeliveries.test.tsx)
276
+ - [TargetPrLaunchDialog.tsx](../../client/src/features/delivery/components/TargetPrLaunchDialog.tsx)
277
+
278
+ ## client/src/features/delivery/components/review-packet
279
+
280
+ - [PacketMarkdown.tsx](../../client/src/features/delivery/components/review-packet/PacketMarkdown.tsx)
281
+
282
+ ## client/src/features/delivery/context
283
+
284
+ - [RailPrDecisionContext.tsx](../../client/src/features/delivery/context/RailPrDecisionContext.tsx) · [test](../../client/src/features/delivery/context/__tests__/RailPrDecisionContext.test.tsx)
285
+
286
+ ## client/src/features/delivery/lib
287
+
288
+ - [packet-verbs.ts](../../client/src/features/delivery/lib/packet-verbs.ts) · [test](../../client/src/features/delivery/lib/__tests__/packet-verbs.test.ts)
289
+ - [pr-delivery.ts](../../client/src/features/delivery/lib/pr-delivery.ts) · [test](../../client/src/features/delivery/lib/__tests__/pr-delivery.test.ts)
290
+ - [pr-follow-up-scope.ts](../../client/src/features/delivery/lib/pr-follow-up-scope.ts)
291
+
292
+ ## client/src/features/delivery/pages
293
+
294
+ - [ReviewPacketPage.tsx](../../client/src/features/delivery/pages/ReviewPacketPage.tsx) · [test](../../client/src/features/delivery/pages/__tests__/ReviewPacketPage.test.tsx)
295
+
296
+ ## client/src/features/docs/components
297
+
298
+ - [DocsDialog.tsx](../../client/src/features/docs/components/DocsDialog.tsx) · [test](../../client/src/features/docs/components/__tests__/DocsDialog.test.tsx)
299
+
300
+ ## client/src/features/docs/lib
301
+
302
+ - [docs-links.ts](../../client/src/features/docs/lib/docs-links.ts)
303
+
304
+ ## client/src/features/docs/pages
305
+
306
+ - [DocsPage.tsx](../../client/src/features/docs/pages/DocsPage.tsx) · [test](../../client/src/features/docs/pages/__tests__/DocsPage.test.tsx)
307
+
308
+ ## client/src/features/integrations/components/jira
309
+
310
+ - [DiscardSpecDialog.tsx](../../client/src/features/integrations/components/jira/DiscardSpecDialog.tsx) · [test](../../client/src/features/integrations/components/jira/__tests__/DiscardSpecDialog.test.tsx)
311
+ - [JiraConnectWizard.tsx](../../client/src/features/integrations/components/jira/JiraConnectWizard.tsx) · [test](../../client/src/features/integrations/components/jira/__tests__/JiraConnectWizard.test.tsx)
312
+ - [JiraConnectedCard.tsx](../../client/src/features/integrations/components/jira/JiraConnectedCard.tsx)
313
+ - [JiraSpecDetailsPanel.tsx](../../client/src/features/integrations/components/jira/JiraSpecDetailsPanel.tsx) · [test](../../client/src/features/integrations/components/jira/__tests__/JiraSpecDetailsPanel.test.tsx)
314
+
315
+ ## client/src/features/integrations/context
316
+
317
+ - [JiraDiscardContext.tsx](../../client/src/features/integrations/context/JiraDiscardContext.tsx)
318
+
319
+ ## client/src/features/integrations/hooks
320
+
321
+ - [useJiraConnection.ts](../../client/src/features/integrations/hooks/useJiraConnection.ts)
322
+
323
+ ## client/src/features/integrations/lib
324
+
325
+ - [companion-signal.ts](../../client/src/features/integrations/lib/companion-signal.ts) · [test](../../client/src/features/integrations/lib/companion-signal.test.ts)
326
+ - [companion.ts](../../client/src/features/integrations/lib/companion.ts)
327
+ - [jira-api.ts](../../client/src/features/integrations/lib/jira-api.ts) · [test](../../client/src/features/integrations/lib/__tests__/jira-api.test.ts)
328
+
329
+ ## client/src/features/integrations/pages
330
+
331
+ - [IntegrationsPage.tsx](../../client/src/features/integrations/pages/IntegrationsPage.tsx) · [test](../../client/src/features/integrations/pages/__tests__/IntegrationsPage.test.tsx)
332
+
333
+ ## client/src/features/jobs/components
334
+
335
+ - [InteractiveJobComposer.tsx](../../client/src/features/jobs/components/InteractiveJobComposer.tsx) · [test](../../client/src/features/jobs/components/__tests__/InteractiveJobComposer.test.tsx)
336
+ - [JobComparisonModal.tsx](../../client/src/features/jobs/components/JobComparisonModal.tsx) · [test](../../client/src/features/jobs/components/__tests__/JobComparisonModal.test.tsx)
337
+ - [JobDetailModal.tsx](../../client/src/features/jobs/components/JobDetailModal.tsx) · [test](../../client/src/features/jobs/components/__tests__/JobDetailModal.test.tsx)
338
+ - [JobTicketHeader.tsx](../../client/src/features/jobs/components/JobTicketHeader.tsx)
339
+ - [LogViewer.tsx](../../client/src/features/jobs/components/LogViewer.tsx) · [test](../../client/src/features/jobs/components/__tests__/LogViewer.test.tsx)
340
+ - [PipelineProgress.tsx](../../client/src/features/jobs/components/PipelineProgress.tsx) · [test](../../client/src/features/jobs/components/__tests__/PipelineProgress.test.tsx)
341
+ - [RecentJobs.tsx](../../client/src/features/jobs/components/RecentJobs.tsx) · [test](../../client/src/features/jobs/components/__tests__/RecentJobs.test.tsx)
342
+ - [log-ticket-refs.tsx](../../client/src/features/jobs/components/log-ticket-refs.tsx) · [test](../../client/src/features/jobs/components/__tests__/log-ticket-refs.test.tsx)
343
+
344
+ ## client/src/features/jobs/components/job-run
345
+
346
+ - [JobRunHeader.tsx](../../client/src/features/jobs/components/job-run/JobRunHeader.tsx) · [test](../../client/src/features/jobs/components/job-run/__tests__/JobRunHeader.test.tsx)
347
+ - [job-run-model.ts](../../client/src/features/jobs/components/job-run/job-run-model.ts) · [test](../../client/src/features/jobs/components/job-run/__tests__/job-run-model.test.ts)
348
+ - [useRuntimeRuns.ts](../../client/src/features/jobs/components/job-run/useRuntimeRuns.ts)
349
+
350
+ ## client/src/features/jobs/hooks
351
+
352
+ - [useAssembleProgress.ts](../../client/src/features/jobs/hooks/useAssembleProgress.ts)
353
+ - [useCompareUrlSync.ts](../../client/src/features/jobs/hooks/useCompareUrlSync.ts)
354
+ - [useLogTicketActions.ts](../../client/src/features/jobs/hooks/useLogTicketActions.ts)
355
+ - [usePipeline.ts](../../client/src/features/jobs/hooks/usePipeline.ts) · [test](../../client/src/features/jobs/hooks/__tests__/usePipeline.test.ts)
356
+ - [useRunVitals.ts](../../client/src/features/jobs/hooks/useRunVitals.ts)
357
+
358
+ ## client/src/features/jobs/lib
359
+
360
+ - [cancel-job.ts](../../client/src/features/jobs/lib/cancel-job.ts) · [test](../../client/src/features/jobs/lib/__tests__/cancel-job.test.ts)
361
+ - [job-log-mode.ts](../../client/src/features/jobs/lib/job-log-mode.ts)
362
+ - [job-time.ts](../../client/src/features/jobs/lib/job-time.ts)
363
+
364
+ ## client/src/features/jobs/pages
365
+
366
+ - [JobDetailPage.tsx](../../client/src/features/jobs/pages/JobDetailPage.tsx) · [test](../../client/src/features/jobs/pages/__tests__/JobDetailPage.test.tsx)
367
+ - [JobsPage.tsx](../../client/src/features/jobs/pages/JobsPage.tsx)
368
+
369
+ ## client/src/features/loops/components
370
+
371
+ - [LoopPreviewModal.tsx](../../client/src/features/loops/components/LoopPreviewModal.tsx)
372
+ - [LoopRunModal.tsx](../../client/src/features/loops/components/LoopRunModal.tsx) · [test](../../client/src/features/loops/components/__tests__/LoopRunModal.test.tsx)
373
+ - [TemplatePreviewModal.tsx](../../client/src/features/loops/components/TemplatePreviewModal.tsx) · [test](../../client/src/features/loops/components/__tests__/TemplatePreviewModal.test.tsx)
374
+
375
+ ## client/src/features/loops/components/loop-log
376
+
377
+ - [LoopCompletionSummary.tsx](../../client/src/features/loops/components/loop-log/LoopCompletionSummary.tsx) · [test](../../client/src/features/loops/components/loop-log/__tests__/LoopCompletionSummary.test.tsx)
378
+ - [LoopOverviewStrip.tsx](../../client/src/features/loops/components/loop-log/LoopOverviewStrip.tsx)
379
+ - [LoopStepExplorer.tsx](../../client/src/features/loops/components/loop-log/LoopStepExplorer.tsx) · [test](../../client/src/features/loops/components/loop-log/__tests__/LoopStepExplorer.test.tsx)
380
+ - [LoopStepSection.tsx](../../client/src/features/loops/components/loop-log/LoopStepSection.tsx)
381
+ - [NarratedProgress.tsx](../../client/src/features/loops/components/loop-log/NarratedProgress.tsx) · [test](../../client/src/features/loops/components/loop-log/__tests__/NarratedProgress.test.tsx)
382
+ - [completion-model.ts](../../client/src/features/loops/components/loop-log/completion-model.ts)
383
+ - [loop-log-model.ts](../../client/src/features/loops/components/loop-log/loop-log-model.ts) · [test](../../client/src/features/loops/components/loop-log/__tests__/loop-log-model.test.ts)
384
+ - [loop-node-visuals.ts](../../client/src/features/loops/components/loop-log/loop-node-visuals.ts)
385
+ - [narration-commands.ts](../../client/src/features/loops/components/loop-log/narration-commands.ts) · [test](../../client/src/features/loops/components/loop-log/__tests__/narration-commands.test.ts)
386
+ - [narration-model.ts](../../client/src/features/loops/components/loop-log/narration-model.ts) · [test](../../client/src/features/loops/components/loop-log/__tests__/narration-model.test.ts)
387
+
388
+ ## client/src/features/loops/lib
389
+
390
+ - [loop-clipboard.ts](../../client/src/features/loops/lib/loop-clipboard.ts) · [test](../../client/src/features/loops/lib/__tests__/loop-clipboard.test.ts)
391
+ - [loop-export.ts](../../client/src/features/loops/lib/loop-export.ts) · [test](../../client/src/features/loops/lib/__tests__/loop-export.test.ts)
392
+ - [loop-graph-rf.ts](../../client/src/features/loops/lib/loop-graph-rf.ts) · [test](../../client/src/features/loops/lib/__tests__/loop-graph-rf.test.ts)
393
+ - [loop-layout.ts](../../client/src/features/loops/lib/loop-layout.ts) · [test](../../client/src/features/loops/lib/__tests__/loop-layout.test.ts)
394
+ - [loop-run-models.ts](../../client/src/features/loops/lib/loop-run-models.ts) · [test](../../client/src/features/loops/lib/__tests__/loop-run-models.test.ts)
395
+ - [loop-template-filter.ts](../../client/src/features/loops/lib/loop-template-filter.ts) · [test](../../client/src/features/loops/lib/__tests__/loop-template-filter.test.ts)
396
+ - [loop-ticket-need.ts](../../client/src/features/loops/lib/loop-ticket-need.ts) · [test](../../client/src/features/loops/lib/__tests__/loop-ticket-need.test.ts)
397
+ - [loop-validate.ts](../../client/src/features/loops/lib/loop-validate.ts) · [test](../../client/src/features/loops/lib/__tests__/loop-validate.test.ts)
398
+ - [loops-api.ts](../../client/src/features/loops/lib/loops-api.ts) · [test](../../client/src/features/loops/lib/__tests__/loops-api.test.ts)
399
+
400
+ ## client/src/features/loops/pages
401
+
402
+ - [LoopBuilderPage.tsx](../../client/src/features/loops/pages/LoopBuilderPage.tsx)
403
+ - [LoopsPage.tsx](../../client/src/features/loops/pages/LoopsPage.tsx) · [test](../../client/src/features/loops/pages/__tests__/LoopsPage.test.tsx)
404
+
405
+ ## client/src/features/missions/components
406
+
407
+ - [AgentActivityChip.tsx](../../client/src/features/missions/components/AgentActivityChip.tsx)
408
+ - [AgentActivityLogModal.tsx](../../client/src/features/missions/components/AgentActivityLogModal.tsx) · [test](../../client/src/features/missions/components/__tests__/AgentActivityLogModal.test.tsx)
409
+ - [AgentBrowserCapture.tsx](../../client/src/features/missions/components/AgentBrowserCapture.tsx) · [test](../../client/src/features/missions/components/__tests__/AgentBrowserCapture.test.tsx)
410
+ - [AgentBrowserCaptureHost.tsx](../../client/src/features/missions/components/AgentBrowserCaptureHost.tsx)
411
+ - [AgentBubble.tsx](../../client/src/features/missions/components/AgentBubble.tsx)
412
+ - [AgentChatPanel.tsx](../../client/src/features/missions/components/AgentChatPanel.tsx)
413
+ - [AgentComposer.tsx](../../client/src/features/missions/components/AgentComposer.tsx)
414
+ - [AgentComposerAttachmentChip.tsx](../../client/src/features/missions/components/AgentComposerAttachmentChip.tsx) · [test](../../client/src/features/missions/components/__tests__/AgentComposerAttachmentChip.test.tsx)
415
+ - [AgentComposerEditor.tsx](../../client/src/features/missions/components/AgentComposerEditor.tsx) · [test](../../client/src/features/missions/components/__tests__/AgentComposerEditor.test.tsx)
416
+ - [AgentContextPalette.tsx](../../client/src/features/missions/components/AgentContextPalette.tsx)
417
+ - [AgentConversationHeader.tsx](../../client/src/features/missions/components/AgentConversationHeader.tsx)
418
+ - [AgentConversationView.tsx](../../client/src/features/missions/components/AgentConversationView.tsx)
419
+ - [AgentDeliveryReceipt.tsx](../../client/src/features/missions/components/AgentDeliveryReceipt.tsx) · [test](../../client/src/features/missions/components/__tests__/AgentDeliveryReceipt.test.tsx)
420
+ - [AgentGitBar.tsx](../../client/src/features/missions/components/AgentGitBar.tsx) · [test](../../client/src/features/missions/components/__tests__/AgentGitBar.test.tsx)
421
+ - [AgentMessage.tsx](../../client/src/features/missions/components/AgentMessage.tsx)
422
+ - [AgentMissionSelector.tsx](../../client/src/features/missions/components/AgentMissionSelector.tsx)
423
+ - [AgentModeAnalyticsPane.tsx](../../client/src/features/missions/components/AgentModeAnalyticsPane.tsx)
424
+ - [AgentModeCodePane.tsx](../../client/src/features/missions/components/AgentModeCodePane.tsx) · [test](../../client/src/features/missions/components/__tests__/AgentModeCodePane.test.tsx)
425
+ - [AgentModeJobsPane.tsx](../../client/src/features/missions/components/AgentModeJobsPane.tsx) · [test](../../client/src/features/missions/components/__tests__/AgentModeJobsPane.test.tsx)
426
+ - [AgentModeSurface.tsx](../../client/src/features/missions/components/AgentModeSurface.tsx) · [test](../../client/src/features/missions/components/__tests__/AgentModeSurface.test.tsx)
427
+ - [AgentModelSelector.tsx](../../client/src/features/missions/components/AgentModelSelector.tsx)
428
+ - [AgentPrDecisionCard.tsx](../../client/src/features/missions/components/AgentPrDecisionCard.tsx)
429
+ - [AgentPrPinnedDock.tsx](../../client/src/features/missions/components/AgentPrPinnedDock.tsx)
430
+ - [AgentProblemFrameCard.tsx](../../client/src/features/missions/components/AgentProblemFrameCard.tsx)
431
+ - [AgentProjectSelector.tsx](../../client/src/features/missions/components/AgentProjectSelector.tsx)
432
+ - [AgentQueuedMessage.tsx](../../client/src/features/missions/components/AgentQueuedMessage.tsx)
433
+ - [AgentRailLaunchCard.tsx](../../client/src/features/missions/components/AgentRailLaunchCard.tsx)
434
+ - [AgentRefChip.tsx](../../client/src/features/missions/components/AgentRefChip.tsx)
435
+ - [AgentRunFailureMarker.tsx](../../client/src/features/missions/components/AgentRunFailureMarker.tsx)
436
+ - [AgentSpecDraftCard.tsx](../../client/src/features/missions/components/AgentSpecDraftCard.tsx)
437
+ - [AgentThinkingHalo.tsx](../../client/src/features/missions/components/AgentThinkingHalo.tsx) · [test](../../client/src/features/missions/components/__tests__/AgentThinkingHalo.test.tsx)
438
+ - [AgentTierChip.tsx](../../client/src/features/missions/components/AgentTierChip.tsx)
439
+ - [AgentToolbarSelector.tsx](../../client/src/features/missions/components/AgentToolbarSelector.tsx)
440
+ - [AgentWorkspaceSidebar.tsx](../../client/src/features/missions/components/AgentWorkspaceSidebar.tsx) · [test](../../client/src/features/missions/components/__tests__/AgentWorkspaceSidebar.test.tsx)
441
+ - [MissionWindowAction.tsx](../../client/src/features/missions/components/MissionWindowAction.tsx) · [test](../../client/src/features/missions/components/__tests__/MissionWindowAction.test.tsx)
442
+ - [MissionWindowBindings.tsx](../../client/src/features/missions/components/MissionWindowBindings.tsx) · [test](../../client/src/features/missions/components/MissionWindowBindings.test.tsx)
443
+ - [MissionWindowSurface.tsx](../../client/src/features/missions/components/MissionWindowSurface.tsx)
444
+ - [agent-fence-promotion.ts](../../client/src/features/missions/components/agent-fence-promotion.ts) · [test](../../client/src/features/missions/components/__tests__/agent-fence-promotion.test.ts)
445
+ - [agent-options.ts](../../client/src/features/missions/components/agent-options.ts)
446
+ - [agent-pr-pinning.ts](../../client/src/features/missions/components/agent-pr-pinning.ts)
447
+ - [agent-problem-frame.ts](../../client/src/features/missions/components/agent-problem-frame.ts)
448
+ - [agent-run-failure.ts](../../client/src/features/missions/components/agent-run-failure.ts) · [test](../../client/src/features/missions/components/__tests__/agent-run-failure.test.ts)
449
+ - [agent-spec-draft.ts](../../client/src/features/missions/components/agent-spec-draft.ts)
450
+ - [useAgentProviderCatalog.ts](../../client/src/features/missions/components/useAgentProviderCatalog.ts)
451
+ - [useRailLaunchProposals.ts](../../client/src/features/missions/components/useRailLaunchProposals.ts)
452
+
453
+ ## client/src/features/missions/components/minimized-chats
454
+
455
+ - [MinimizedChatChip.tsx](../../client/src/features/missions/components/minimized-chats/MinimizedChatChip.tsx)
456
+ - [MinimizedChatsDock.tsx](../../client/src/features/missions/components/minimized-chats/MinimizedChatsDock.tsx)
457
+
458
+ ## client/src/features/missions/context
459
+
460
+ - [AgentChatContext.tsx](../../client/src/features/missions/context/AgentChatContext.tsx) · [test](../../client/src/features/missions/context/AgentChatContext.test.tsx)
461
+ - [AgentWorkspaceContext.tsx](../../client/src/features/missions/context/AgentWorkspaceContext.tsx) · [test](../../client/src/features/missions/context/__tests__/AgentWorkspaceContext.test.tsx)
462
+ - [MinimizedChatsContext.tsx](../../client/src/features/missions/context/MinimizedChatsContext.tsx) · [test](../../client/src/features/missions/context/__tests__/MinimizedChatsContext.test.tsx)
463
+ - [MissionWindowsContext.tsx](../../client/src/features/missions/context/MissionWindowsContext.tsx) · [test](../../client/src/features/missions/context/__tests__/MissionWindowsContext.test.tsx)
464
+
465
+ ## client/src/features/missions/hooks
466
+
467
+ - [useAgentRefActions.ts](../../client/src/features/missions/hooks/useAgentRefActions.ts)
468
+
469
+ ## client/src/features/missions/lib
470
+
471
+ - [agent-api.ts](../../client/src/features/missions/lib/agent-api.ts) · [test](../../client/src/features/missions/lib/__tests__/agent-api.test.ts)
472
+ - [agent-composer-drafts.ts](../../client/src/features/missions/lib/agent-composer-drafts.ts) · [test](../../client/src/features/missions/lib/__tests__/agent-composer-drafts.test.ts)
473
+ - [agent-context-palette.ts](../../client/src/features/missions/lib/agent-context-palette.ts) · [test](../../client/src/features/missions/lib/__tests__/agent-context-palette.test.ts)
474
+ - [agent-refs.ts](../../client/src/features/missions/lib/agent-refs.ts) · [test](../../client/src/features/missions/lib/__tests__/agent-refs.test.ts)
475
+ - [mission-search.ts](../../client/src/features/missions/lib/mission-search.ts) · [test](../../client/src/features/missions/lib/__tests__/mission-search.test.ts)
476
+ - [mission-view-state.ts](../../client/src/features/missions/lib/mission-view-state.ts)
477
+ - [mission-window-controller.ts](../../client/src/features/missions/lib/mission-window-controller.ts) · [test](../../client/src/features/missions/lib/__tests__/mission-window-controller.test.ts)
478
+ - [mission-windows.ts](../../client/src/features/missions/lib/mission-windows.ts) · [test](../../client/src/features/missions/lib/__tests__/mission-windows.test.ts)
479
+
480
+ ## client/src/features/plugins/pages
481
+
482
+ - [PluginsPage.tsx](../../client/src/features/plugins/pages/PluginsPage.tsx) · [test](../../client/src/features/plugins/pages/__tests__/PluginsPage.test.tsx)
483
+
484
+ ## client/src/features/projects/components
485
+
486
+ - [AddProjectDialog.tsx](../../client/src/features/projects/components/AddProjectDialog.tsx) · [test](../../client/src/features/projects/components/__tests__/AddProjectDialog.test.tsx)
487
+ - [InstallInstructionsModal.tsx](../../client/src/features/projects/components/InstallInstructionsModal.tsx) · [test](../../client/src/features/projects/components/__tests__/InstallInstructionsModal.test.tsx)
488
+ - [OnboardingWizard.tsx](../../client/src/features/projects/components/OnboardingWizard.tsx) · [test](../../client/src/features/projects/components/__tests__/OnboardingWizard.test.tsx)
489
+ - [PrerequisitesPanel.tsx](../../client/src/features/projects/components/PrerequisitesPanel.tsx) · [test](../../client/src/features/projects/components/__tests__/PrerequisitesPanel.test.tsx)
490
+ - [ProjectErrorBoundary.tsx](../../client/src/features/projects/components/ProjectErrorBoundary.tsx) · [test](../../client/src/features/projects/components/__tests__/ProjectErrorBoundary.test.tsx)
491
+ - [RepositoryScopeSelector.tsx](../../client/src/features/projects/components/RepositoryScopeSelector.tsx) · [test](../../client/src/features/projects/components/__tests__/RepositoryScopeSelector.test.tsx)
492
+
493
+ ## client/src/features/projects/hooks
494
+
495
+ - [usePrerequisites.ts](../../client/src/features/projects/hooks/usePrerequisites.ts)
496
+
497
+ ## client/src/features/projects/lib
498
+
499
+ - [project-repositories.ts](../../client/src/features/projects/lib/project-repositories.ts)
500
+
501
+ ## client/src/features/projects/types
502
+
503
+ - [multi-repo.ts](../../client/src/features/projects/types/multi-repo.ts)
504
+
505
+ ## client/src/features/providers/components
506
+
507
+ - [AiEngineSelector.tsx](../../client/src/features/providers/components/AiEngineSelector.tsx) · [test](../../client/src/features/providers/components/__tests__/AiEngineSelector.test.tsx)
508
+ - [CustomModelAliasInput.tsx](../../client/src/features/providers/components/CustomModelAliasInput.tsx) · [test](../../client/src/features/providers/components/__tests__/CustomModelAliasInput.test.tsx)
509
+
510
+ ## client/src/features/providers/hooks
511
+
512
+ - [useAvailableProviders.ts](../../client/src/features/providers/hooks/useAvailableProviders.ts)
513
+ - [useProviderDetection.ts](../../client/src/features/providers/hooks/useProviderDetection.ts)
514
+
515
+ ## client/src/features/providers/lib
516
+
517
+ - [last-engine.ts](../../client/src/features/providers/lib/last-engine.ts) · [test](../../client/src/features/providers/lib/__tests__/last-engine.test.ts)
518
+ - [model-alias.ts](../../client/src/features/providers/lib/model-alias.ts) · [test](../../client/src/features/providers/lib/__tests__/model-alias.test.ts)
519
+ - [provider-capabilities.ts](../../client/src/features/providers/lib/provider-capabilities.ts) · [test](../../client/src/features/providers/lib/__tests__/provider-capabilities.test.ts)
520
+
521
+ ## client/src/features/rails/components
522
+
523
+ - [FreestyleLaunchDialog.tsx](../../client/src/features/rails/components/FreestyleLaunchDialog.tsx) · [test](../../client/src/features/rails/components/__tests__/FreestyleLaunchDialog.test.tsx)
524
+ - [LaunchAllDialog.tsx](../../client/src/features/rails/components/LaunchAllDialog.tsx)
525
+ - [MoveToRailPopover.tsx](../../client/src/features/rails/components/MoveToRailPopover.tsx)
526
+ - [RailControls.tsx](../../client/src/features/rails/components/RailControls.tsx) · [test](../../client/src/features/rails/components/__tests__/RailControls.test.tsx)
527
+ - [RailExecutionInfo.tsx](../../client/src/features/rails/components/RailExecutionInfo.tsx)
528
+ - [RailRow.tsx](../../client/src/features/rails/components/RailRow.tsx) · [test](../../client/src/features/rails/components/__tests__/RailRow.test.tsx)
529
+ - [RailTargetPrSelector.tsx](../../client/src/features/rails/components/RailTargetPrSelector.tsx) · [test](../../client/src/features/rails/components/__tests__/RailTargetPrSelector.test.tsx)
530
+ - [RailsBoard.tsx](../../client/src/features/rails/components/RailsBoard.tsx) · [test](../../client/src/features/rails/components/__tests__/RailsBoard.test.tsx)
531
+
532
+ ## client/src/features/rails/context
533
+
534
+ - [RailMetricsContext.tsx](../../client/src/features/rails/context/RailMetricsContext.tsx) · [test](../../client/src/features/rails/context/__tests__/RailMetricsContext.test.tsx)
535
+
536
+ ## client/src/features/rails/lib
537
+
538
+ - [rail-id.ts](../../client/src/features/rails/lib/rail-id.ts) · [test](../../client/src/features/rails/lib/__tests__/rail-id.test.ts)
539
+ - [rail-launch-draft.ts](../../client/src/features/rails/lib/rail-launch-draft.ts)
540
+ - [rail-launch-intents.ts](../../client/src/features/rails/lib/rail-launch-intents.ts)
541
+ - [rail-loops.ts](../../client/src/features/rails/lib/rail-loops.ts) · [test](../../client/src/features/rails/lib/__tests__/rail-loops.test.ts)
542
+ - [worktree-progress.ts](../../client/src/features/rails/lib/worktree-progress.ts) · [test](../../client/src/features/rails/lib/__tests__/worktree-progress.test.ts)
543
+
544
+ ## client/src/features/settings/components
545
+
546
+ - [AgentRuntimeMetrics.tsx](../../client/src/features/settings/components/AgentRuntimeMetrics.tsx) · [test](../../client/src/features/settings/components/__tests__/AgentRuntimeMetrics.test.tsx)
547
+ - [AgentRuntimeRuns.tsx](../../client/src/features/settings/components/AgentRuntimeRuns.tsx) · [test](../../client/src/features/settings/components/__tests__/AgentRuntimeRuns.test.tsx)
548
+ - [AgentRuntimeSettingsSection.tsx](../../client/src/features/settings/components/AgentRuntimeSettingsSection.tsx) · [test](../../client/src/features/settings/components/__tests__/AgentRuntimeSettingsSection.test.tsx)
549
+ - [AppUpdateSection.tsx](../../client/src/features/settings/components/AppUpdateSection.tsx) · [test](../../client/src/features/settings/components/__tests__/AppUpdateSection.test.tsx)
550
+ - [AppearanceSection.tsx](../../client/src/features/settings/components/AppearanceSection.tsx) · [test](../../client/src/features/settings/components/__tests__/AppearanceSection.test.tsx)
551
+ - [CodeSectionSettings.tsx](../../client/src/features/settings/components/CodeSectionSettings.tsx) · [test](../../client/src/features/settings/components/__tests__/CodeSectionSettings.test.tsx)
552
+ - [CoreUpdateSection.tsx](../../client/src/features/settings/components/CoreUpdateSection.tsx) · [test](../../client/src/features/settings/components/__tests__/CoreUpdateSection.test.tsx)
553
+ - [EffectsSection.tsx](../../client/src/features/settings/components/EffectsSection.tsx) · [test](../../client/src/features/settings/components/__tests__/EffectsSection.test.tsx)
554
+ - [ExternalMcpServersCard.tsx](../../client/src/features/settings/components/ExternalMcpServersCard.tsx) · [test](../../client/src/features/settings/components/__tests__/ExternalMcpServersCard.test.tsx)
555
+ - [LanguageSection.tsx](../../client/src/features/settings/components/LanguageSection.tsx) · [test](../../client/src/features/settings/components/__tests__/LanguageSection.test.tsx)
556
+ - [LoopRolesSection.tsx](../../client/src/features/settings/components/LoopRolesSection.tsx) · [test](../../client/src/features/settings/components/__tests__/LoopRolesSection.test.tsx)
557
+ - [McpSettingsSection.tsx](../../client/src/features/settings/components/McpSettingsSection.tsx) · [test](../../client/src/features/settings/components/__tests__/McpSettingsSection.test.tsx)
558
+ - [MobileAccessSection.tsx](../../client/src/features/settings/components/MobileAccessSection.tsx) · [test](../../client/src/features/settings/components/__tests__/MobileAccessSection.test.tsx)
559
+ - [PairWebCompanionModal.tsx](../../client/src/features/settings/components/PairWebCompanionModal.tsx)
560
+ - [PipelineStepper.tsx](../../client/src/features/settings/components/PipelineStepper.tsx) · [test](../../client/src/features/settings/components/__tests__/PipelineStepper.test.tsx)
561
+ - [ProjectRepositoriesSection.tsx](../../client/src/features/settings/components/ProjectRepositoriesSection.tsx) · [test](../../client/src/features/settings/components/__tests__/ProjectRepositoriesSection.test.tsx)
562
+ - [ProjectSettingsDialog.tsx](../../client/src/features/settings/components/ProjectSettingsDialog.tsx) · [test](../../client/src/features/settings/components/__tests__/ProjectSettingsDialog.test.tsx)
563
+ - [ProjectSettingsSections.tsx](../../client/src/features/settings/components/ProjectSettingsSections.tsx)
564
+ - [ProviderTabs.tsx](../../client/src/features/settings/components/ProviderTabs.tsx)
565
+ - [RuntimeEfficiencyControls.tsx](../../client/src/features/settings/components/RuntimeEfficiencyControls.tsx)
566
+ - [RuntimeExecutionEvidence.tsx](../../client/src/features/settings/components/RuntimeExecutionEvidence.tsx) · [test](../../client/src/features/settings/components/__tests__/RuntimeExecutionEvidence.test.tsx)
567
+ - [RuntimeGuardrails.tsx](../../client/src/features/settings/components/RuntimeGuardrails.tsx) · [test](../../client/src/features/settings/components/__tests__/RuntimeGuardrails.test.tsx)
568
+ - [RuntimeRolePrompts.tsx](../../client/src/features/settings/components/RuntimeRolePrompts.tsx) · [test](../../client/src/features/settings/components/__tests__/RuntimeRolePrompts.test.tsx)
569
+ - [TerminalSettingsSection.tsx](../../client/src/features/settings/components/TerminalSettingsSection.tsx)
570
+
571
+ ## client/src/features/settings/components/pickers
572
+
573
+ - [LanguagePickerGrid.tsx](../../client/src/features/settings/components/pickers/LanguagePickerGrid.tsx)
574
+ - [ThemePickerGrid.tsx](../../client/src/features/settings/components/pickers/ThemePickerGrid.tsx)
575
+
576
+ ## client/src/features/settings/components/provider-connections
577
+
578
+ - [CliProviderRow.tsx](../../client/src/features/settings/components/provider-connections/CliProviderRow.tsx)
579
+ - [ConnectionRow.tsx](../../client/src/features/settings/components/provider-connections/ConnectionRow.tsx)
580
+ - [ConnectionStatusPill.tsx](../../client/src/features/settings/components/provider-connections/ConnectionStatusPill.tsx) · [test](../../client/src/features/settings/components/provider-connections/__tests__/ConnectionStatusPill.test.tsx)
581
+ - [LocalConnectionEditor.tsx](../../client/src/features/settings/components/provider-connections/LocalConnectionEditor.tsx) · [test](../../client/src/features/settings/components/provider-connections/__tests__/LocalConnectionEditor.test.tsx)
582
+ - [LocalEngineCard.tsx](../../client/src/features/settings/components/provider-connections/LocalEngineCard.tsx)
583
+ - [OverflowMenu.tsx](../../client/src/features/settings/components/provider-connections/OverflowMenu.tsx)
584
+ - [ProviderConnectionsCard.tsx](../../client/src/features/settings/components/provider-connections/ProviderConnectionsCard.tsx) · [test](../../client/src/features/settings/components/provider-connections/__tests__/ProviderConnectionsCard.test.tsx)
585
+ - [TestConnectionButton.tsx](../../client/src/features/settings/components/provider-connections/TestConnectionButton.tsx) · [test](../../client/src/features/settings/components/provider-connections/__tests__/TestConnectionButton.test.tsx)
586
+ - [index.ts](../../client/src/features/settings/components/provider-connections/index.ts)
587
+
588
+ ## client/src/features/settings/components/theme-effects
589
+
590
+ - [BladeTrail.tsx](../../client/src/features/settings/components/theme-effects/BladeTrail.tsx) · [test](../../client/src/features/settings/components/theme-effects/__tests__/BladeTrail.test.tsx)
591
+ - [CodeRainEffect.tsx](../../client/src/features/settings/components/theme-effects/CodeRainEffect.tsx)
592
+ - [Starfield.tsx](../../client/src/features/settings/components/theme-effects/Starfield.tsx) · [test](../../client/src/features/settings/components/theme-effects/__tests__/Starfield.test.tsx)
593
+ - [ThemeEffectLayer.tsx](../../client/src/features/settings/components/theme-effects/ThemeEffectLayer.tsx) · [test](../../client/src/features/settings/components/theme-effects/__tests__/ThemeEffectLayer.test.tsx)
594
+
595
+ ## client/src/features/settings/context
596
+
597
+ - [LanguageContext.tsx](../../client/src/features/settings/context/LanguageContext.tsx) · [test](../../client/src/features/settings/context/__tests__/LanguageContext.test.tsx)
598
+ - [ThemeContext.tsx](../../client/src/features/settings/context/ThemeContext.tsx) · [test](../../client/src/features/settings/context/__tests__/ThemeContext.test.tsx)
599
+
600
+ ## client/src/features/settings/lib
601
+
602
+ - [agent-runtime.ts](../../client/src/features/settings/lib/agent-runtime.ts)
603
+ - [effects-prefs.ts](../../client/src/features/settings/lib/effects-prefs.ts) · [test](../../client/src/features/settings/lib/__tests__/effects-prefs.test.ts)
604
+ - [runtime-efficiency.ts](../../client/src/features/settings/lib/runtime-efficiency.ts)
605
+ - [terminal-settings-events.ts](../../client/src/features/settings/lib/terminal-settings-events.ts) · [test](../../client/src/features/settings/lib/__tests__/terminal-settings-events.test.ts)
606
+ - [terminal-settings-types.ts](../../client/src/features/settings/lib/terminal-settings-types.ts) · [test](../../client/src/features/settings/lib/__tests__/terminal-settings-types.test.ts)
607
+ - [theme-palette.ts](../../client/src/features/settings/lib/theme-palette.ts) · [test](../../client/src/features/settings/lib/__tests__/theme-palette.test.ts)
608
+ - [themes.ts](../../client/src/features/settings/lib/themes.ts) · [test](../../client/src/features/settings/lib/__tests__/themes.test.ts)
609
+
610
+ ## client/src/features/settings/pages
611
+
612
+ - [GlobalSettingsPage.tsx](../../client/src/features/settings/pages/GlobalSettingsPage.tsx) · [test](../../client/src/features/settings/pages/__tests__/GlobalSettingsPage.test.tsx)
613
+ - [SettingsPage.tsx](../../client/src/features/settings/pages/SettingsPage.tsx) · [test](../../client/src/features/settings/pages/__tests__/SettingsPage.test.tsx)
614
+
615
+ ## client/src/features/specs/components
616
+
617
+ - [CreateTicketModal.tsx](../../client/src/features/specs/components/CreateTicketModal.tsx) · [test](../../client/src/features/specs/components/__tests__/CreateTicketModal.test.tsx)
618
+ - [ProposeSpecModal.tsx](../../client/src/features/specs/components/ProposeSpecModal.tsx) · [test](../../client/src/features/specs/components/__tests__/ProposeSpecModal.test.tsx)
619
+ - [SpecAddendaSection.tsx](../../client/src/features/specs/components/SpecAddendaSection.tsx) · [test](../../client/src/features/specs/components/__tests__/SpecAddendaSection.test.tsx)
620
+ - [SpecCard.tsx](../../client/src/features/specs/components/SpecCard.tsx) · [test](../../client/src/features/specs/components/__tests__/SpecCard.test.tsx)
621
+ - [SpecComparePicker.tsx](../../client/src/features/specs/components/SpecComparePicker.tsx) · [test](../../client/src/features/specs/components/__tests__/SpecComparePicker.test.tsx)
622
+ - [SpecEpicFilterDropdown.tsx](../../client/src/features/specs/components/SpecEpicFilterDropdown.tsx)
623
+ - [SpecJiraStatusFilterDropdown.tsx](../../client/src/features/specs/components/SpecJiraStatusFilterDropdown.tsx) · [test](../../client/src/features/specs/components/__tests__/SpecJiraStatusFilterDropdown.test.tsx)
624
+ - [SpecLabelFilterDropdown.tsx](../../client/src/features/specs/components/SpecLabelFilterDropdown.tsx)
625
+ - [SpecLabelFilterStrip.tsx](../../client/src/features/specs/components/SpecLabelFilterStrip.tsx) · [test](../../client/src/features/specs/components/__tests__/SpecLabelFilterStrip.test.tsx)
626
+ - [SpecSortControl.tsx](../../client/src/features/specs/components/SpecSortControl.tsx) · [test](../../client/src/features/specs/components/__tests__/SpecSortControl.test.tsx)
627
+ - [SpecSprintFilterDropdown.tsx](../../client/src/features/specs/components/SpecSprintFilterDropdown.tsx)
628
+ - [SpecStatusFilter.tsx](../../client/src/features/specs/components/SpecStatusFilter.tsx)
629
+ - [SpecsBoard.tsx](../../client/src/features/specs/components/SpecsBoard.tsx) · [test](../../client/src/features/specs/components/__tests__/SpecsBoard.test.tsx)
630
+ - [SpecsViewTierToggle.tsx](../../client/src/features/specs/components/SpecsViewTierToggle.tsx)
631
+ - [TicketContextMenu.tsx](../../client/src/features/specs/components/TicketContextMenu.tsx) · [test](../../client/src/features/specs/components/__tests__/TicketContextMenu.test.tsx)
632
+ - [TicketDetailModal.tsx](../../client/src/features/specs/components/TicketDetailModal.tsx) · [test](../../client/src/features/specs/components/__tests__/TicketDetailModal.test.tsx)
633
+ - [TicketPostitCard.tsx](../../client/src/features/specs/components/TicketPostitCard.tsx) · [test](../../client/src/features/specs/components/__tests__/TicketPostitCard.test.tsx)
634
+ - [TicketStatusIndicator.tsx](../../client/src/features/specs/components/TicketStatusIndicator.tsx) · [test](../../client/src/features/specs/components/__tests__/TicketStatusIndicator.test.tsx)
635
+
636
+ ## client/src/features/specs/components/explore-spec
637
+
638
+ - [ExploreReviewOverlay.tsx](../../client/src/features/specs/components/explore-spec/ExploreReviewOverlay.tsx) · [test](../../client/src/features/specs/components/explore-spec/__tests__/ExploreReviewOverlay.test.tsx)
639
+ - [ExploreSpecShell.tsx](../../client/src/features/specs/components/explore-spec/ExploreSpecShell.tsx) · [test](../../client/src/features/specs/components/explore-spec/__tests__/ExploreSpecShell.test.tsx)
640
+ - [ExploreStatusPills.tsx](../../client/src/features/specs/components/explore-spec/ExploreStatusPills.tsx) · [test](../../client/src/features/specs/components/explore-spec/__tests__/ExploreStatusPills.test.tsx)
641
+ - [SpecDraftPanel.tsx](../../client/src/features/specs/components/explore-spec/SpecDraftPanel.tsx) · [test](../../client/src/features/specs/components/explore-spec/__tests__/SpecDraftPanel.test.tsx)
642
+ - [SpecModelPicker.tsx](../../client/src/features/specs/components/explore-spec/SpecModelPicker.tsx) · [test](../../client/src/features/specs/components/explore-spec/__tests__/SpecModelPicker.test.tsx)
643
+ - [acceptance-criteria.ts](../../client/src/features/specs/components/explore-spec/acceptance-criteria.ts) · [test](../../client/src/features/specs/components/explore-spec/__tests__/acceptance-criteria.test.ts)
644
+ - [diff-utils.ts](../../client/src/features/specs/components/explore-spec/diff-utils.ts) · [test](../../client/src/features/specs/components/explore-spec/__tests__/diff-utils.test.ts)
645
+ - [useSmoothStream.ts](../../client/src/features/specs/components/explore-spec/useSmoothStream.ts)
646
+
647
+ ## client/src/features/specs/components/specs-smash
648
+
649
+ - [EpicChildrenSection.tsx](../../client/src/features/specs/components/specs-smash/EpicChildrenSection.tsx) · [test](../../client/src/features/specs/components/specs-smash/__tests__/EpicChildrenSection.test.tsx)
650
+ - [EpicFamilySidebar.tsx](../../client/src/features/specs/components/specs-smash/EpicFamilySidebar.tsx) · [test](../../client/src/features/specs/components/specs-smash/__tests__/EpicFamilySidebar.test.tsx)
651
+ - [SmashActions.tsx](../../client/src/features/specs/components/specs-smash/SmashActions.tsx) · [test](../../client/src/features/specs/components/specs-smash/__tests__/SmashActions.test.tsx)
652
+ - [SmashConfirmModal.tsx](../../client/src/features/specs/components/specs-smash/SmashConfirmModal.tsx)
653
+ - [SmashStatusPills.tsx](../../client/src/features/specs/components/specs-smash/SmashStatusPills.tsx) · [test](../../client/src/features/specs/components/specs-smash/__tests__/SmashStatusPills.test.tsx)
654
+
655
+ ## client/src/features/specs/context
656
+
657
+ - [SmashTrackerContext.tsx](../../client/src/features/specs/context/SmashTrackerContext.tsx) · [test](../../client/src/features/specs/context/__tests__/SmashTrackerContext.test.tsx)
658
+ - [TicketDetailModalContext.tsx](../../client/src/features/specs/context/TicketDetailModalContext.tsx) · [test](../../client/src/features/specs/context/__tests__/TicketDetailModalContext.test.tsx)
659
+
660
+ ## client/src/features/specs/hooks
661
+
662
+ - [useContractRefineTracker.tsx](../../client/src/features/specs/hooks/useContractRefineTracker.tsx) · [test](../../client/src/features/specs/hooks/__tests__/useContractRefineTracker.test.tsx)
663
+ - [useQuickContractRefineLast.ts](../../client/src/features/specs/hooks/useQuickContractRefineLast.ts)
664
+ - [useSpecDraftStream.ts](../../client/src/features/specs/hooks/useSpecDraftStream.ts)
665
+ - [useSpecGenTracker.tsx](../../client/src/features/specs/hooks/useSpecGenTracker.tsx) · [test](../../client/src/features/specs/hooks/__tests__/useSpecGenTracker.test.tsx)
666
+ - [useTickets.ts](../../client/src/features/specs/hooks/useTickets.ts) · [test](../../client/src/features/specs/hooks/__tests__/useTickets.test.ts)
667
+
668
+ ## client/src/features/specs/lib
669
+
670
+ - [active-explore-spec.ts](../../client/src/features/specs/lib/active-explore-spec.ts)
671
+ - [pending-spec-id.ts](../../client/src/features/specs/lib/pending-spec-id.ts) · [test](../../client/src/features/specs/lib/__tests__/pending-spec-id.test.ts)
672
+ - [pending-specs.ts](../../client/src/features/specs/lib/pending-specs.ts) · [test](../../client/src/features/specs/lib/__tests__/pending-specs.test.ts)
673
+ - [spec-addenda-core.ts](../../client/src/features/specs/lib/spec-addenda-core.ts)
674
+ - [spec-draft.ts](../../client/src/features/specs/lib/spec-draft.ts)
675
+ - [spec-filters.ts](../../client/src/features/specs/lib/spec-filters.ts) · [test](../../client/src/features/specs/lib/__tests__/spec-filters.test.ts)
676
+ - [spec-gen-suppression.ts](../../client/src/features/specs/lib/spec-gen-suppression.ts) · [test](../../client/src/features/specs/lib/__tests__/spec-gen-suppression.test.ts)
677
+ - [spec-sort.ts](../../client/src/features/specs/lib/spec-sort.ts) · [test](../../client/src/features/specs/lib/__tests__/spec-sort.test.ts)
678
+ - [spec-status-filter.ts](../../client/src/features/specs/lib/spec-status-filter.ts) · [test](../../client/src/features/specs/lib/__tests__/spec-status-filter.test.ts)
679
+ - [specs-view-tier.ts](../../client/src/features/specs/lib/specs-view-tier.ts) · [test](../../client/src/features/specs/lib/__tests__/specs-view-tier.test.ts)
680
+ - [ticket-refine.ts](../../client/src/features/specs/lib/ticket-refine.ts) · [test](../../client/src/features/specs/lib/__tests__/ticket-refine.test.ts)
681
+
682
+ ## client/src/features/specs/types
683
+
684
+ - [spec-sort.ts](../../client/src/features/specs/types/spec-sort.ts)
685
+
686
+ ## client/src/features/terminals/components/terminal
687
+
688
+ - [BottomPanel.tsx](../../client/src/features/terminals/components/terminal/BottomPanel.tsx) · [test](../../client/src/features/terminals/components/terminal/__tests__/BottomPanel.test.tsx)
689
+ - [CliLaunchMenu.tsx](../../client/src/features/terminals/components/terminal/CliLaunchMenu.tsx) · [test](../../client/src/features/terminals/components/terminal/__tests__/CliLaunchMenu.test.tsx)
690
+ - [CommandTimingBadge.tsx](../../client/src/features/terminals/components/terminal/CommandTimingBadge.tsx)
691
+ - [EmptyTerminalPlaceholder.tsx](../../client/src/features/terminals/components/terminal/EmptyTerminalPlaceholder.tsx) · [test](../../client/src/features/terminals/components/terminal/__tests__/EmptyTerminalPlaceholder.test.tsx)
692
+ - [PanelChevronButton.tsx](../../client/src/features/terminals/components/terminal/PanelChevronButton.tsx) · [test](../../client/src/features/terminals/components/terminal/__tests__/PanelChevronButton.test.tsx)
693
+ - [PromptGutter.tsx](../../client/src/features/terminals/components/terminal/PromptGutter.tsx)
694
+ - [ShortcutContextMenu.tsx](../../client/src/features/terminals/components/terminal/ShortcutContextMenu.tsx)
695
+ - [TerminalContextMenu.tsx](../../client/src/features/terminals/components/terminal/TerminalContextMenu.tsx)
696
+ - [TerminalDragHandle.tsx](../../client/src/features/terminals/components/terminal/TerminalDragHandle.tsx) · [test](../../client/src/features/terminals/components/terminal/__tests__/TerminalDragHandle.test.tsx)
697
+ - [TerminalSearchOverlay.tsx](../../client/src/features/terminals/components/terminal/TerminalSearchOverlay.tsx)
698
+ - [TerminalSidebar.tsx](../../client/src/features/terminals/components/terminal/TerminalSidebar.tsx) · [test](../../client/src/features/terminals/components/terminal/__tests__/TerminalSidebar.test.tsx)
699
+ - [TerminalTopBar.tsx](../../client/src/features/terminals/components/terminal/TerminalTopBar.tsx) · [test](../../client/src/features/terminals/components/terminal/__tests__/TerminalTopBar.test.tsx)
700
+ - [TerminalViewport.tsx](../../client/src/features/terminals/components/terminal/TerminalViewport.tsx) · [test](../../client/src/features/terminals/components/terminal/__tests__/TerminalViewport.test.tsx)
701
+
702
+ ## client/src/features/terminals/context
703
+
704
+ - [TerminalsContext.tsx](../../client/src/features/terminals/context/TerminalsContext.tsx) · [test](../../client/src/features/terminals/context/__tests__/TerminalsContext.test.tsx)
705
+
706
+ ## client/src/features/terminals/lib
707
+
708
+ - [save-scrollback.ts](../../client/src/features/terminals/lib/save-scrollback.ts)
709
+ - [terminal-notifications.ts](../../client/src/features/terminals/lib/terminal-notifications.ts)
710
+
711
+ ## client/src/hooks
712
+
713
+ - [useDesktop.tsx](../../client/src/hooks/useDesktop.tsx) · [test](../../client/src/hooks/__tests__/useDesktop.test.tsx)
714
+ - [useDesktopUpdateNotifier.tsx](../../client/src/hooks/useDesktopUpdateNotifier.tsx) · [test](../../client/src/hooks/__tests__/useDesktopUpdateNotifier.test.tsx)
715
+ - [useKeyboardShortcuts.ts](../../client/src/hooks/useKeyboardShortcuts.ts)
716
+ - [useMovableResizableModal.tsx](../../client/src/hooks/useMovableResizableModal.tsx) · [test](../../client/src/hooks/__tests__/useMovableResizableModal.test.tsx)
717
+ - [useOsNotifications.ts](../../client/src/hooks/useOsNotifications.ts) · [test](../../client/src/hooks/__tests__/useOsNotifications.test.ts)
718
+ - [useProjectCache.ts](../../client/src/hooks/useProjectCache.ts) · [test](../../client/src/hooks/__tests__/useProjectCache.test.ts)
719
+ - [useResizableSidebar.ts](../../client/src/hooks/useResizableSidebar.ts)
720
+ - [useSharedWebSocket.tsx](../../client/src/hooks/useSharedWebSocket.tsx) · [test](../../client/src/hooks/__tests__/useSharedWebSocket.test.tsx)
721
+ - [useSuppressNativeContextMenu.ts](../../client/src/hooks/useSuppressNativeContextMenu.ts) · [test](../../client/src/hooks/__tests__/useSuppressNativeContextMenu.test.ts)
722
+ - [useTrayLabels.tsx](../../client/src/hooks/useTrayLabels.tsx) · [test](../../client/src/hooks/__tests__/useTrayLabels.test.tsx)
723
+ - [useWebSocket.ts](../../client/src/hooks/useWebSocket.ts) · [test](../../client/src/hooks/__tests__/useWebSocket.test.ts)
724
+
725
+ ## client/src/lib
726
+
727
+ - [api-response.ts](../../client/src/lib/api-response.ts) · [test](../../client/src/lib/__tests__/api-response.test.ts)
728
+ - [api.ts](../../client/src/lib/api.ts) · [test](../../client/src/lib/__tests__/api.test.ts)
729
+ - [auth.ts](../../client/src/lib/auth.ts) · [test](../../client/src/lib/__tests__/auth.test.ts)
730
+ - [command-mark-store.ts](../../client/src/lib/command-mark-store.ts) · [test](../../client/src/lib/__tests__/command-mark-store.test.ts)
731
+ - [data-url.ts](../../client/src/lib/data-url.ts) · [test](../../client/src/lib/__tests__/data-url.test.ts)
732
+ - [feature-flags.ts](../../client/src/lib/feature-flags.ts)
733
+ - [format-command.ts](../../client/src/lib/format-command.ts) · [test](../../client/src/lib/__tests__/format-command.test.ts)
734
+ - [format-duration.ts](../../client/src/lib/format-duration.ts) · [test](../../client/src/lib/__tests__/format-duration.test.ts)
735
+ - [global-route-mode-transition.ts](../../client/src/lib/global-route-mode-transition.ts) · [test](../../client/src/lib/__tests__/global-route-mode-transition.test.ts)
736
+ - [html-highlight.ts](../../client/src/lib/html-highlight.ts) · [test](../../client/src/lib/html-highlight.test.ts)
737
+ - [i18n.ts](../../client/src/lib/i18n.ts) · [test](../../client/src/lib/__tests__/i18n.test.ts)
738
+ - [json-tolerant.ts](../../client/src/lib/json-tolerant.ts) · [test](../../client/src/lib/__tests__/json-tolerant.test.ts)
739
+ - [keyboard-label.ts](../../client/src/lib/keyboard-label.ts)
740
+ - [markdown-detect.ts](../../client/src/lib/markdown-detect.ts) · [test](../../client/src/lib/__tests__/markdown-detect.test.ts)
741
+ - [modal-geometry.ts](../../client/src/lib/modal-geometry.ts) · [test](../../client/src/lib/__tests__/modal-geometry.test.ts)
742
+ - [modal-safe-area.ts](../../client/src/lib/modal-safe-area.ts) · [test](../../client/src/lib/__tests__/modal-safe-area.test.ts)
743
+ - [origin.ts](../../client/src/lib/origin.ts)
744
+ - [relative-time.ts](../../client/src/lib/relative-time.ts) · [test](../../client/src/lib/__tests__/relative-time.test.ts)
745
+ - [route-memory.ts](../../client/src/lib/route-memory.ts) · [test](../../client/src/lib/__tests__/route-memory.test.ts)
746
+ - [shell-quote.ts](../../client/src/lib/shell-quote.ts) · [test](../../client/src/lib/shell-quote.test.ts)
747
+ - [tauri-clipboard.ts](../../client/src/lib/tauri-clipboard.ts)
748
+ - [tauri-drag-drop.ts](../../client/src/lib/tauri-drag-drop.ts) · [test](../../client/src/lib/__tests__/tauri-drag-drop.test.ts)
749
+ - [tauri-shell.ts](../../client/src/lib/tauri-shell.ts)
750
+ - [utils.ts](../../client/src/lib/utils.ts) · [test](../../client/src/lib/__tests__/utils.test.ts)
751
+ - [viewport.ts](../../client/src/lib/viewport.ts)
752
+ - [ws-url.ts](../../client/src/lib/ws-url.ts) · [test](../../client/src/lib/__tests__/ws-url.test.ts)
753
+
754
+ ## local-runner/src
755
+
756
+ - [argv.ts](../../local-runner/src/argv.ts)
757
+ - [commands.ts](../../local-runner/src/commands.ts)
758
+ - [frames.ts](../../local-runner/src/frames.ts)
759
+ - [index.ts](../../local-runner/src/index.ts)
760
+ - [mcp.ts](../../local-runner/src/mcp.ts)
761
+ - [openai-client.ts](../../local-runner/src/openai-client.ts)
762
+ - [runner.ts](../../local-runner/src/runner.ts) · [test](../../local-runner/src/__tests__/runner.test.ts)
763
+ - [sessions.ts](../../local-runner/src/sessions.ts)
764
+ - [tools.ts](../../local-runner/src/tools.ts) · [test](../../local-runner/src/__tests__/tools.test.ts)
765
+ - [types.ts](../../local-runner/src/types.ts)
766
+
767
+ ## mcp-bridge/src
768
+
769
+ - [bridge.ts](../../mcp-bridge/src/bridge.ts) · [test](../../mcp-bridge/src/bridge.test.ts)
770
+ - [http-transport.ts](../../mcp-bridge/src/http-transport.ts) · [test](../../mcp-bridge/src/http-transport.test.ts)
771
+ - [index.ts](../../mcp-bridge/src/index.ts)
772
+
773
+ ## scripts
774
+
775
+ - [assemble-bundled-core.mjs](../../scripts/assemble-bundled-core.mjs) · [test](../../scripts/assemble-bundled-core.test.mjs)
776
+ - [assemble-bundled-openspec.mjs](../../scripts/assemble-bundled-openspec.mjs)
777
+ - [assemble-chromium.mjs](../../scripts/assemble-chromium.mjs) · [test](../../scripts/assemble-chromium.test.mjs)
778
+ - [assemble-core-source.mjs](../../scripts/assemble-core-source.mjs)
779
+ - [assemble-runtimes-local.mjs](../../scripts/assemble-runtimes-local.mjs)
780
+ - [audit-client-features.mjs](../../scripts/audit-client-features.mjs) · [test](../../scripts/audit-client-features.test.mjs)
781
+ - [audit-server-modules.mjs](../../scripts/audit-server-modules.mjs)
782
+ - [audit-source.mjs](../../scripts/audit-source.mjs)
783
+ - [build-local-runner.mjs](../../scripts/build-local-runner.mjs)
784
+ - [build-mcp-bridge.mjs](../../scripts/build-mcp-bridge.mjs)
785
+ - [build-sidecar.mjs](../../scripts/build-sidecar.mjs)
786
+ - [build-updater-manifest.mjs](../../scripts/build-updater-manifest.mjs) · [test](../../scripts/build-updater-manifest.test.mjs)
787
+ - [check-core-compat.ts](../../scripts/check-core-compat.ts)
788
+ - [check-core-sync.mjs](../../scripts/check-core-sync.mjs) · [test](../../scripts/check-core-sync.test.mjs)
789
+ - [check-package.mjs](../../scripts/check-package.mjs) · [test](../../scripts/check-package.test.mjs)
790
+ - [copy-server-assets.mjs](../../scripts/copy-server-assets.mjs)
791
+ - [fix-desktop-bundle.mjs](../../scripts/fix-desktop-bundle.mjs)
792
+ - [generate-icons.mjs](../../scripts/generate-icons.mjs)
793
+ - [generate-mobile-types.mjs](../../scripts/generate-mobile-types.mjs)
794
+ - [generate-source-map.mjs](../../scripts/generate-source-map.mjs) · [test](../../scripts/generate-source-map.test.mjs)
795
+ - [obfuscate-chromium.mjs](../../scripts/obfuscate-chromium.mjs)
796
+ - [patch-node-pty.mjs](../../scripts/patch-node-pty.mjs) · [test](../../scripts/patch-node-pty.test.mjs)
797
+ - [recover-desktop-channel.mjs](../../scripts/recover-desktop-channel.mjs) · [test](../../scripts/recover-desktop-channel.test.mjs)
798
+ - [release-policy.mjs](../../scripts/release-policy.mjs) · [test](../../scripts/release-policy.test.mjs)
799
+ - [run-native-smoke.ps1](../../scripts/run-native-smoke.ps1)
800
+ - [sign-chromium-macos.mjs](../../scripts/sign-chromium-macos.mjs) · [test](../../scripts/sign-chromium-macos.test.mjs)
801
+ - [smoke-agent-inline-references.mjs](../../scripts/smoke-agent-inline-references.mjs)
802
+ - [smoke-agent-runtime-pair.mjs](../../scripts/smoke-agent-runtime-pair.mjs)
803
+ - [smoke-browser-annotations.mjs](../../scripts/smoke-browser-annotations.mjs)
804
+ - [smoke-browser-popups.mjs](../../scripts/smoke-browser-popups.mjs)
805
+ - [smoke-browser-rendering.mjs](../../scripts/smoke-browser-rendering.mjs)
806
+ - [smoke-bundled-core-windows.ps1](../../scripts/smoke-bundled-core-windows.ps1)
807
+ - [smoke-bundled-runtimes.sh](../../scripts/smoke-bundled-runtimes.sh)
808
+ - [smoke-installed-windows.mjs](../../scripts/smoke-installed-windows.mjs)
809
+ - [smoke-runtime-evidence.mjs](../../scripts/smoke-runtime-evidence.mjs)
810
+ - [smoke-startup-recovery.mjs](../../scripts/smoke-startup-recovery.mjs)
811
+ - [smoke-windows-installers.ps1](../../scripts/smoke-windows-installers.ps1)
812
+ - [stage-windows-pty.mjs](../../scripts/stage-windows-pty.mjs) · [test](../../scripts/stage-windows-pty.test.mjs)
813
+ - [test-scripts.mjs](../../scripts/test-scripts.mjs)
814
+ - [verify-chromium-bundle.mjs](../../scripts/verify-chromium-bundle.mjs) · [test](../../scripts/verify-chromium-bundle.test.mjs)
815
+
816
+ ## server / agent
817
+
818
+ - [agent-mcp-config.ts](../../server/agent-mcp-config.ts) · [test](../../server/agent-mcp-config.test.ts)
819
+
820
+ ## server / desktop
821
+
822
+ - [desktop-db.ts](../../server/desktop-db.ts) · [test](../../server/desktop-db.test.ts)
823
+ - [desktop-router.ts](../../server/desktop-router.ts) · [test](../../server/desktop-router.test.ts)
824
+
825
+ ## server / other
826
+
827
+ - [api-not-found.ts](../../server/api-not-found.ts)
828
+ - [artifact-registry.ts](../../server/artifact-registry.ts) · [test](../../server/artifact-registry.test.ts)
829
+ - [attachment-manager.ts](../../server/attachment-manager.ts) · [test](../../server/attachment-manager.test.ts)
830
+ - [auth.ts](../../server/auth.ts) · [test](../../server/auth.test.ts)
831
+ - [binary-probe.ts](../../server/binary-probe.ts) · [test](../../server/binary-probe.test.ts)
832
+ - [build-dirs.ts](../../server/build-dirs.ts) · [test](../../server/build-dirs.test.ts)
833
+ - [bundled-core.ts](../../server/bundled-core.ts) · [test](../../server/bundled-core.test.ts)
834
+ - [bundled-openspec.ts](../../server/bundled-openspec.ts) · [test](../../server/bundled-openspec.test.ts)
835
+ - [chromium-resolver.ts](../../server/chromium-resolver.ts) · [test](../../server/chromium-resolver.test.ts)
836
+ - [claude-trust.ts](../../server/claude-trust.ts) · [test](../../server/claude-trust.test.ts)
837
+ - [command-resolver.ts](../../server/command-resolver.ts) · [test](../../server/command-resolver.test.ts)
838
+ - [config.ts](../../server/config.ts) · [test](../../server/config.test.ts)
839
+ - [core-compat.ts](../../server/core-compat.ts) · [test](../../server/core-compat.test.ts)
840
+ - [core-completion.ts](../../server/core-completion.ts) · [test](../../server/core-completion.test.ts)
841
+ - [core-execution.ts](../../server/core-execution.ts) · [test](../../server/core-execution.test.ts)
842
+ - [core-node-runtime.ts](../../server/core-node-runtime.ts) · [test](../../server/core-node-runtime.test.ts)
843
+ - [core-package.ts](../../server/core-package.ts) · [test](../../server/core-package.test.ts)
844
+ - [core-runtime.ts](../../server/core-runtime.ts) · [test](../../server/core-runtime.test.ts)
845
+ - [core-update-manager.ts](../../server/core-update-manager.ts) · [test](../../server/core-update-manager.test.ts)
846
+ - [core-update-state.ts](../../server/core-update-state.ts)
847
+ - [db.ts](../../server/db.ts) · [test](../../server/db.test.ts)
848
+ - [dev-ports.ts](../../server/dev-ports.ts) · [test](../../server/dev-ports.test.ts)
849
+ - [docs-router.ts](../../server/docs-router.ts) · [test](../../server/docs-router.test.ts)
850
+ - [external-mcp.ts](../../server/external-mcp.ts) · [test](../../server/external-mcp.test.ts)
851
+ - [feature-flags.ts](../../server/feature-flags.ts) · [test](../../server/feature-flags.test.ts)
852
+ - [framework-manager.ts](../../server/framework-manager.ts) · [test](../../server/framework-manager.test.ts)
853
+ - [framework-migration.ts](../../server/framework-migration.ts) · [test](../../server/framework-migration.test.ts)
854
+ - [framework-reseed.ts](../../server/framework-reseed.ts) · [test](../../server/framework-reseed.test.ts)
855
+ - [git-diagnostics.ts](../../server/git-diagnostics.ts) · [test](../../server/git-diagnostics.test.ts)
856
+ - [git-guardrails.ts](../../server/git-guardrails.ts) · [test](../../server/git-guardrails.test.ts)
857
+ - [global-plugins-router.ts](../../server/global-plugins-router.ts)
858
+ - [headroom-manager.ts](../../server/headroom-manager.ts) · [test](../../server/headroom-manager.test.ts)
859
+ - [headroom-routing.ts](../../server/headroom-routing.ts) · [test](../../server/headroom-routing.test.ts)
860
+ - [hooks.ts](../../server/hooks.ts) · [test](../../server/hooks.test.ts)
861
+ - [host-control.ts](../../server/host-control.ts) · [test](../../server/host-control.test.ts)
862
+ - [ids.ts](../../server/ids.ts)
863
+ - [index.ts](../../server/index.ts) · [test](../../server/index.test.ts)
864
+ - [install-config-path.ts](../../server/install-config-path.ts) · [test](../../server/install-config-path.test.ts)
865
+ - [integration-branch.ts](../../server/integration-branch.ts) · [test](../../server/integration-branch.test.ts)
866
+ - [internal-api.ts](../../server/internal-api.ts) · [test](../../server/internal-api.test.ts)
867
+ - [jira-router.ts](../../server/jira-router.ts) · [test](../../server/jira-router.test.ts)
868
+ - [json-tolerant.ts](../../server/json-tolerant.ts) · [test](../../server/json-tolerant.test.ts)
869
+ - [legacy-migration.ts](../../server/legacy-migration.ts) · [test](../../server/legacy-migration.test.ts)
870
+ - [local-engine-detection.ts](../../server/local-engine-detection.ts) · [test](../../server/local-engine-detection.test.ts)
871
+ - [offline-assemble.ts](../../server/offline-assemble.ts) · [test](../../server/offline-assemble.test.ts)
872
+ - [openspec-runtime-plugin.ts](../../server/openspec-runtime-plugin.ts) · [test](../../server/openspec-runtime-plugin.test.ts)
873
+ - [openspec-shim.ts](../../server/openspec-shim.ts) · [test](../../server/openspec-shim.test.ts)
874
+ - [path-resolver.ts](../../server/path-resolver.ts) · [test](../../server/path-resolver.test.ts)
875
+ - [plugin-manager.ts](../../server/plugin-manager.ts) · [test](../../server/plugin-manager.test.ts)
876
+ - [plugins-router.ts](../../server/plugins-router.ts) · [test](../../server/plugins-router.test.ts)
877
+ - [process-admission.ts](../../server/process-admission.ts) · [test](../../server/process-admission.test.ts)
878
+ - [provider-detection.ts](../../server/provider-detection.ts) · [test](../../server/provider-detection.test.ts)
879
+ - [provider-limit.ts](../../server/provider-limit.ts) · [test](../../server/provider-limit.test.ts)
880
+ - [provider-selection.ts](../../server/provider-selection.ts) · [test](../../server/provider-selection.test.ts)
881
+ - [repo-lock.ts](../../server/repo-lock.ts) · [test](../../server/repo-lock.test.ts)
882
+ - [repo-map.ts](../../server/repo-map.ts) · [test](../../server/repo-map.test.ts)
883
+ - [runtime-role-prompts-router.ts](../../server/runtime-role-prompts-router.ts) · [test](../../server/runtime-role-prompts-router.test.ts)
884
+ - [semver-lite.ts](../../server/semver-lite.ts) · [test](../../server/semver-lite.test.ts)
885
+ - [setup-manager.ts](../../server/setup-manager.ts) · [test](../../server/setup-manager.test.ts)
886
+ - [setup-prerequisites.ts](../../server/setup-prerequisites.ts) · [test](../../server/setup-prerequisites.test.ts)
887
+ - [specrails-tech-client.ts](../../server/specrails-tech-client.ts) · [test](../../server/specrails-tech-client.test.ts)
888
+ - [ssrf-guard.ts](../../server/ssrf-guard.ts) · [test](../../server/ssrf-guard.test.ts)
889
+ - [terminal-shell-integration.ts](../../server/terminal-shell-integration.ts) · [test](../../server/terminal-shell-integration.test.ts)
890
+ - [transient-children.ts](../../server/transient-children.ts) · [test](../../server/transient-children.test.ts)
891
+ - [types.ts](../../server/types.ts)
892
+ - [user-mcp-config.ts](../../server/user-mcp-config.ts) · [test](../../server/user-mcp-config.test.ts)
893
+ - [vitest-setup.ts](../../server/vitest-setup.ts)
894
+ - [webhook-manager.ts](../../server/webhook-manager.ts) · [test](../../server/webhook-manager.test.ts)
895
+ - [windows-job-supervisor.ts](../../server/windows-job-supervisor.ts)
896
+ - [workspace-manager.ts](../../server/workspace-manager.ts) · [test](../../server/workspace-manager.test.ts)
897
+ - [workspace-resolution.ts](../../server/workspace-resolution.ts) · [test](../../server/workspace-resolution.test.ts)
898
+ - [worktree-env-discovery.ts](../../server/worktree-env-discovery.ts) · [test](../../server/worktree-env-discovery.test.ts)
899
+ - [worktree-manager.ts](../../server/worktree-manager.ts) · [test](../../server/worktree-manager.test.ts)
900
+ - [worktree-node-modules.ts](../../server/worktree-node-modules.ts) · [test](../../server/worktree-node-modules.test.ts)
901
+ - [worktree-overlay.ts](../../server/worktree-overlay.ts) · [test](../../server/worktree-overlay.test.ts)
902
+ - [ws-routing.ts](../../server/ws-routing.ts) · [test](../../server/ws-routing.test.ts)
903
+
904
+ ## server / project
905
+
906
+ - [project-env.ts](../../server/project-env.ts) · [test](../../server/project-env.test.ts)
907
+ - [project-git.ts](../../server/project-git.ts) · [test](../../server/project-git.test.ts)
908
+ - [project-profile-support.ts](../../server/project-profile-support.ts)
909
+ - [project-registry.ts](../../server/project-registry.ts) · [test](../../server/project-registry.test.ts)
910
+ - [project-repositories.ts](../../server/project-repositories.ts) · [test](../../server/project-repositories.test.ts)
911
+ - [project-repository-provenance.ts](../../server/project-repository-provenance.ts)
912
+ - [project-router-background-processes.ts](../../server/project-router-background-processes.ts) · [test](../../server/project-router-background-processes.test.ts)
913
+ - [project-router-chat.ts](../../server/project-router-chat.ts)
914
+ - [project-router-git.ts](../../server/project-router-git.ts)
915
+ - [project-router-helpers.ts](../../server/project-router-helpers.ts)
916
+ - [project-router-jobs.ts](../../server/project-router-jobs.ts)
917
+ - [project-router-loop-runs.ts](../../server/project-router-loop-runs.ts) · [test](../../server/project-router-loop-runs.test.ts)
918
+ - [project-router-settings.ts](../../server/project-router-settings.ts)
919
+ - [project-router-setup.ts](../../server/project-router-setup.ts)
920
+ - [project-router-spending.ts](../../server/project-router-spending.ts) · [test](../../server/project-router-spending.test.ts)
921
+ - [project-router-terminals.ts](../../server/project-router-terminals.ts)
922
+ - [project-router-tickets.ts](../../server/project-router-tickets.ts)
923
+ - [project-router.ts](../../server/project-router.ts) · [test](../../server/project-router.test.ts)
924
+
925
+ ## server/db
926
+
927
+ - [activity.ts](../../server/db/activity.ts)
928
+ - [connection.ts](../../server/db/connection.ts)
929
+ - [conversations.ts](../../server/db/conversations.ts)
930
+ - [jobs.ts](../../server/db/jobs.ts)
931
+ - [migrations.ts](../../server/db/migrations.ts)
932
+ - [proposals.ts](../../server/db/proposals.ts)
933
+ - [settings.ts](../../server/db/settings.ts)
934
+ - [stats.ts](../../server/db/stats.ts)
935
+ - [telemetry.ts](../../server/db/telemetry.ts)
936
+ - [templates.ts](../../server/db/templates.ts)
937
+ - [types.ts](../../server/db/types.ts)
938
+
939
+ ## server/jira
940
+
941
+ - [jira-adf.ts](../../server/jira/jira-adf.ts) · [test](../../server/jira/jira-adf.test.ts)
942
+ - [jira-backlog-config.ts](../../server/jira/jira-backlog-config.ts) · [test](../../server/jira/jira-backlog-config.test.ts)
943
+ - [jira-client.ts](../../server/jira/jira-client.ts) · [test](../../server/jira/jira-client.test.ts)
944
+ - [jira-credential-store.ts](../../server/jira/jira-credential-store.ts) · [test](../../server/jira/jira-credential-store.test.ts)
945
+ - [jira-db.ts](../../server/jira/jira-db.ts) · [test](../../server/jira/jira-db.test.ts)
946
+ - [jira-issue-fields.ts](../../server/jira/jira-issue-fields.ts) · [test](../../server/jira/jira-issue-fields.test.ts)
947
+ - [jira-materializer.ts](../../server/jira/jira-materializer.ts) · [test](../../server/jira/jira-materializer.test.ts)
948
+ - [jira-status-resolver.ts](../../server/jira/jira-status-resolver.ts) · [test](../../server/jira/jira-status-resolver.test.ts)
949
+ - [jira-sync-manager.ts](../../server/jira/jira-sync-manager.ts) · [test](../../server/jira/jira-sync-manager.test.ts)
950
+ - [types.ts](../../server/jira/types.ts)
951
+
952
+ ## server/mcp
953
+
954
+ - [agent-capability.ts](../../server/mcp/agent-capability.ts) · [test](../../server/mcp/agent-capability.test.ts)
955
+ - [guide.ts](../../server/mcp/guide.ts)
956
+ - [index.ts](../../server/mcp/index.ts)
957
+ - [mcp-admin-router.ts](../../server/mcp/mcp-admin-router.ts) · [test](../../server/mcp/mcp-admin-router.test.ts)
958
+ - [mcp-server.ts](../../server/mcp/mcp-server.ts) · [test](../../server/mcp/mcp-server.test.ts)
959
+ - [mcp-tiers.ts](../../server/mcp/mcp-tiers.ts)
960
+ - [mcp-token.ts](../../server/mcp/mcp-token.ts)
961
+ - [resources.ts](../../server/mcp/resources.ts)
962
+
963
+ ## server/mcp/tools
964
+
965
+ - [agents.ts](../../server/mcp/tools/agents.ts) · [test](../../server/mcp/tools/agents.test.ts)
966
+ - [analytics.ts](../../server/mcp/tools/analytics.ts)
967
+ - [app-settings.ts](../../server/mcp/tools/app-settings.ts)
968
+ - [catalog.ts](../../server/mcp/tools/catalog.ts) · [test](../../server/mcp/tools/catalog.test.ts)
969
+ - [chat.ts](../../server/mcp/tools/chat.ts)
970
+ - [code.ts](../../server/mcp/tools/code.ts) · [test](../../server/mcp/tools/code.test.ts)
971
+ - [context.ts](../../server/mcp/tools/context.ts) · [test](../../server/mcp/tools/context.test.ts)
972
+ - [env.ts](../../server/mcp/tools/env.ts)
973
+ - [git.ts](../../server/mcp/tools/git.ts)
974
+ - [jira.ts](../../server/mcp/tools/jira.ts)
975
+ - [jobs.ts](../../server/mcp/tools/jobs.ts)
976
+ - [loops.ts](../../server/mcp/tools/loops.ts)
977
+ - [meta.ts](../../server/mcp/tools/meta.ts)
978
+ - [mission.ts](../../server/mcp/tools/mission.ts) · [test](../../server/mcp/tools/mission.test.ts)
979
+ - [plugins.ts](../../server/mcp/tools/plugins.ts) · [test](../../server/mcp/tools/plugins.test.ts)
980
+ - [projects.ts](../../server/mcp/tools/projects.ts)
981
+ - [rails.ts](../../server/mcp/tools/rails.ts)
982
+ - [recovery.ts](../../server/mcp/tools/recovery.ts) · [test](../../server/mcp/tools/recovery.test.ts)
983
+ - [setup.ts](../../server/mcp/tools/setup.ts) · [test](../../server/mcp/tools/setup.test.ts)
984
+ - [specs.ts](../../server/mcp/tools/specs.ts) · [test](../../server/mcp/tools/specs.test.ts)
985
+ - [support.ts](../../server/mcp/tools/support.ts)
986
+ - [types.ts](../../server/mcp/tools/types.ts)
987
+ - [watch.ts](../../server/mcp/tools/watch.ts) · [test](../../server/mcp/tools/watch.test.ts)
988
+
989
+ ## server/mobile
990
+
991
+ - [index.ts](../../server/mobile/index.ts)
992
+ - [mobile-admin-router.ts](../../server/mobile/mobile-admin-router.ts) · [test](../../server/mobile/mobile-admin-router.test.ts)
993
+ - [mobile-auth.ts](../../server/mobile/mobile-auth.ts) · [test](../../server/mobile/mobile-auth.test.ts)
994
+ - [mobile-code.ts](../../server/mobile/mobile-code.ts) · [test](../../server/mobile/mobile-code.test.ts)
995
+ - [mobile-datachannel.ts](../../server/mobile/mobile-datachannel.ts) · [test](../../server/mobile/mobile-datachannel.test.ts)
996
+ - [mobile-devices.ts](../../server/mobile/mobile-devices.ts) · [test](../../server/mobile/mobile-devices.test.ts)
997
+ - [mobile-event-bus.ts](../../server/mobile/mobile-event-bus.ts)
998
+ - [mobile-gateway.ts](../../server/mobile/mobile-gateway.ts) · [test](../../server/mobile/mobile-gateway.test.ts)
999
+ - [mobile-missions.ts](../../server/mobile/mobile-missions.ts) · [test](../../server/mobile/mobile-missions.test.ts)
1000
+ - [mobile-redact.ts](../../server/mobile/mobile-redact.ts) · [test](../../server/mobile/mobile-redact.test.ts)
1001
+ - [mobile-router.ts](../../server/mobile/mobile-router.ts) · [test](../../server/mobile/mobile-router.test.ts)
1002
+ - [mobile-signal-reconnect.ts](../../server/mobile/mobile-signal-reconnect.ts) · [test](../../server/mobile/mobile-signal-reconnect.test.ts)
1003
+ - [mobile-tls.ts](../../server/mobile/mobile-tls.ts) · [test](../../server/mobile/mobile-tls.test.ts)
1004
+ - [mobile-types.ts](../../server/mobile/mobile-types.ts)
1005
+ - [mobile-webrtc-peer.ts](../../server/mobile/mobile-webrtc-peer.ts)
1006
+ - [mobile-webrtc.ts](../../server/mobile/mobile-webrtc.ts) · [test](../../server/mobile/mobile-webrtc.test.ts)
1007
+ - [mobile-ws.ts](../../server/mobile/mobile-ws.ts) · [test](../../server/mobile/mobile-ws.test.ts)
1008
+
1009
+ ## server/modules/accounting/runtime
1010
+
1011
+ - [ai-invocations.ts](../../server/modules/accounting/runtime/ai-invocations.ts) · [test](../../server/modules/accounting/runtime/ai-invocations.test.ts)
1012
+ - [codex-otel-bridge.ts](../../server/modules/accounting/runtime/codex-otel-bridge.ts) · [test](../../server/modules/accounting/runtime/codex-otel-bridge.test.ts)
1013
+ - [desktop-analytics.ts](../../server/modules/accounting/runtime/desktop-analytics.ts) · [test](../../server/modules/accounting/runtime/desktop-analytics.test.ts)
1014
+ - [metrics.ts](../../server/modules/accounting/runtime/metrics.ts) · [test](../../server/modules/accounting/runtime/metrics.test.ts)
1015
+ - [pricing.ts](../../server/modules/accounting/runtime/pricing.ts) · [test](../../server/modules/accounting/runtime/pricing.test.ts)
1016
+ - [result-event.ts](../../server/modules/accounting/runtime/result-event.ts) · [test](../../server/modules/accounting/runtime/result-event.test.ts)
1017
+ - [spending.ts](../../server/modules/accounting/runtime/spending.ts) · [test](../../server/modules/accounting/runtime/spending.test.ts)
1018
+ - [telemetry-compactor.ts](../../server/modules/accounting/runtime/telemetry-compactor.ts)
1019
+ - [telemetry-export.ts](../../server/modules/accounting/runtime/telemetry-export.ts) · [test](../../server/modules/accounting/runtime/telemetry-export.test.ts)
1020
+ - [telemetry-receiver.ts](../../server/modules/accounting/runtime/telemetry-receiver.ts) · [test](../../server/modules/accounting/runtime/telemetry-receiver.test.ts)
1021
+
1022
+ ## server/modules/agent-runtime/runtime
1023
+
1024
+ - [agent-runtime-accounting.ts](../../server/modules/agent-runtime/runtime/agent-runtime-accounting.ts) · [test](../../server/modules/agent-runtime/runtime/agent-runtime-accounting.test.ts)
1025
+ - [agent-runtime-bridge.ts](../../server/modules/agent-runtime/runtime/agent-runtime-bridge.ts) · [test](../../server/modules/agent-runtime/runtime/agent-runtime-bridge.test.ts)
1026
+ - [agent-runtime-controls-router.ts](../../server/modules/agent-runtime/runtime/agent-runtime-controls-router.ts)
1027
+ - [agent-runtime-controls.ts](../../server/modules/agent-runtime/runtime/agent-runtime-controls.ts) · [test](../../server/modules/agent-runtime/runtime/agent-runtime-controls.test.ts)
1028
+ - [agent-runtime-effective-config.ts](../../server/modules/agent-runtime/runtime/agent-runtime-effective-config.ts) · [test](../../server/modules/agent-runtime/runtime/agent-runtime-effective-config.test.ts)
1029
+ - [agent-runtime-events.ts](../../server/modules/agent-runtime/runtime/agent-runtime-events.ts) · [test](../../server/modules/agent-runtime/runtime/agent-runtime-events.test.ts)
1030
+ - [agent-runtime-history.ts](../../server/modules/agent-runtime/runtime/agent-runtime-history.ts) · [test](../../server/modules/agent-runtime/runtime/agent-runtime-history.test.ts)
1031
+ - [agent-runtime-loader.ts](../../server/modules/agent-runtime/runtime/agent-runtime-loader.ts) · [test](../../server/modules/agent-runtime/runtime/agent-runtime-loader.test.ts)
1032
+ - [agent-runtime-metrics.ts](../../server/modules/agent-runtime/runtime/agent-runtime-metrics.ts) · [test](../../server/modules/agent-runtime/runtime/agent-runtime-metrics.test.ts)
1033
+ - [agent-runtime-package.ts](../../server/modules/agent-runtime/runtime/agent-runtime-package.ts) · [test](../../server/modules/agent-runtime/runtime/agent-runtime-package.test.ts)
1034
+ - [agent-runtime-paths.ts](../../server/modules/agent-runtime/runtime/agent-runtime-paths.ts)
1035
+ - [agent-runtime-recovery.ts](../../server/modules/agent-runtime/runtime/agent-runtime-recovery.ts) · [test](../../server/modules/agent-runtime/runtime/agent-runtime-recovery.test.ts)
1036
+ - [agent-runtime-repositories.ts](../../server/modules/agent-runtime/runtime/agent-runtime-repositories.ts) · [test](../../server/modules/agent-runtime/runtime/agent-runtime-repositories.test.ts)
1037
+ - [agent-runtime-settings-router.ts](../../server/modules/agent-runtime/runtime/agent-runtime-settings-router.ts)
1038
+ - [agent-runtime-settings.ts](../../server/modules/agent-runtime/runtime/agent-runtime-settings.ts) · [test](../../server/modules/agent-runtime/runtime/agent-runtime-settings.test.ts)
1039
+ - [agent-runtime-settlement.ts](../../server/modules/agent-runtime/runtime/agent-runtime-settlement.ts) · [test](../../server/modules/agent-runtime/runtime/agent-runtime-settlement.test.ts)
1040
+ - [agent-runtime-verification-suggestions.ts](../../server/modules/agent-runtime/runtime/agent-runtime-verification-suggestions.ts) · [test](../../server/modules/agent-runtime/runtime/agent-runtime-verification-suggestions.test.ts)
1041
+
1042
+ ## server/modules/agents/runtime
1043
+
1044
+ - [agent-defaults.ts](../../server/modules/agents/runtime/agent-defaults.ts) · [test](../../server/modules/agents/runtime/agent-defaults.test.ts)
1045
+ - [agent-generator.ts](../../server/modules/agents/runtime/agent-generator.ts) · [test](../../server/modules/agents/runtime/agent-generator.test.ts)
1046
+ - [agent-refine-db.ts](../../server/modules/agents/runtime/agent-refine-db.ts) · [test](../../server/modules/agents/runtime/agent-refine-db.test.ts)
1047
+ - [agent-refine-manager.ts](../../server/modules/agents/runtime/agent-refine-manager.ts) · [test](../../server/modules/agents/runtime/agent-refine-manager.test.ts)
1048
+ - [agent-store.ts](../../server/modules/agents/runtime/agent-store.ts)
1049
+ - [profile-manager.ts](../../server/modules/agents/runtime/profile-manager.ts) · [test](../../server/modules/agents/runtime/profile-manager.test.ts)
1050
+ - [profiles-router.ts](../../server/modules/agents/runtime/profiles-router.ts) · [test](../../server/modules/agents/runtime/profiles-router.test.ts)
1051
+
1052
+ ## server/modules/browser/runtime
1053
+
1054
+ - [browser-capture-manager.ts](../../server/modules/browser/runtime/browser-capture-manager.ts) · [test](../../server/modules/browser/runtime/browser-capture-manager.test.ts)
1055
+ - [browser-capture-types.ts](../../server/modules/browser/runtime/browser-capture-types.ts)
1056
+ - [browser-context-pool.ts](../../server/modules/browser/runtime/browser-context-pool.ts) · [test](../../server/modules/browser/runtime/browser-context-pool.test.ts)
1057
+ - [browser-network.ts](../../server/modules/browser/runtime/browser-network.ts) · [test](../../server/modules/browser/runtime/browser-network.test.ts)
1058
+ - [browser-playwright.ts](../../server/modules/browser/runtime/browser-playwright.ts) · [test](../../server/modules/browser/runtime/browser-playwright.test.ts)
1059
+ - [browser-viewport.ts](../../server/modules/browser/runtime/browser-viewport.ts) · [test](../../server/modules/browser/runtime/browser-viewport.test.ts)
1060
+
1061
+ ## server/modules/builder/runtime
1062
+
1063
+ - [blueprint-chat-manager.ts](../../server/modules/builder/runtime/blueprint-chat-manager.ts) · [test](../../server/modules/builder/runtime/blueprint-chat-manager.test.ts)
1064
+ - [blueprint-commit.ts](../../server/modules/builder/runtime/blueprint-commit.ts) · [test](../../server/modules/builder/runtime/blueprint-commit.test.ts)
1065
+ - [blueprint-draft-parser.ts](../../server/modules/builder/runtime/blueprint-draft-parser.ts) · [test](../../server/modules/builder/runtime/blueprint-draft-parser.test.ts)
1066
+ - [blueprint-generation.ts](../../server/modules/builder/runtime/blueprint-generation.ts) · [test](../../server/modules/builder/runtime/blueprint-generation.test.ts)
1067
+ - [blueprint-operator-prompt.ts](../../server/modules/builder/runtime/blueprint-operator-prompt.ts) · [test](../../server/modules/builder/runtime/blueprint-operator-prompt.test.ts)
1068
+ - [blueprint-render.ts](../../server/modules/builder/runtime/blueprint-render.ts) · [test](../../server/modules/builder/runtime/blueprint-render.test.ts)
1069
+ - [blueprint-router.ts](../../server/modules/builder/runtime/blueprint-router.ts) · [test](../../server/modules/builder/runtime/blueprint-router.test.ts)
1070
+ - [blueprint-spec-fixtures.ts](../../server/modules/builder/runtime/blueprint-spec-fixtures.ts)
1071
+ - [blueprint-spec-quality.ts](../../server/modules/builder/runtime/blueprint-spec-quality.ts) · [test](../../server/modules/builder/runtime/blueprint-spec-quality.test.ts)
1072
+ - [blueprint-store.ts](../../server/modules/builder/runtime/blueprint-store.ts) · [test](../../server/modules/builder/runtime/blueprint-store.test.ts)
1073
+ - [blueprint-types.ts](../../server/modules/builder/runtime/blueprint-types.ts)
1074
+ - [builder-cwd-manager.ts](../../server/modules/builder/runtime/builder-cwd-manager.ts)
1075
+ - [milestone-chain-store.ts](../../server/modules/builder/runtime/milestone-chain-store.ts) · [test](../../server/modules/builder/runtime/milestone-chain-store.test.ts)
1076
+ - [milestone-chain.ts](../../server/modules/builder/runtime/milestone-chain.ts) · [test](../../server/modules/builder/runtime/milestone-chain.test.ts)
1077
+ - [milestone-progress.ts](../../server/modules/builder/runtime/milestone-progress.ts) · [test](../../server/modules/builder/runtime/milestone-progress.test.ts)
1078
+
1079
+ ## server/modules/code/runtime
1080
+
1081
+ - [changes-reader.ts](../../server/modules/code/runtime/changes-reader.ts) · [test](../../server/modules/code/runtime/changes-reader.test.ts)
1082
+ - [code-activity.ts](../../server/modules/code/runtime/code-activity.ts) · [test](../../server/modules/code/runtime/code-activity.test.ts)
1083
+ - [code-explorer-router.ts](../../server/modules/code/runtime/code-explorer-router.ts) · [test](../../server/modules/code/runtime/code-explorer-router.test.ts)
1084
+ - [file-provenance.ts](../../server/modules/code/runtime/file-provenance.ts) · [test](../../server/modules/code/runtime/file-provenance.test.ts)
1085
+ - [file-story-manager.ts](../../server/modules/code/runtime/file-story-manager.ts) · [test](../../server/modules/code/runtime/file-story-manager.test.ts)
1086
+ - [file-story.ts](../../server/modules/code/runtime/file-story.ts) · [test](../../server/modules/code/runtime/file-story.test.ts)
1087
+ - [file-summary-generator.ts](../../server/modules/code/runtime/file-summary-generator.ts) · [test](../../server/modules/code/runtime/file-summary-generator.test.ts)
1088
+ - [file-summary-manager.ts](../../server/modules/code/runtime/file-summary-manager.ts) · [test](../../server/modules/code/runtime/file-summary-manager.test.ts)
1089
+ - [project-code-discovery.ts](../../server/modules/code/runtime/project-code-discovery.ts)
1090
+
1091
+ ## server/modules/conversations
1092
+
1093
+ - [index.ts](../../server/modules/conversations/index.ts)
1094
+
1095
+ ## server/modules/conversations/domain
1096
+
1097
+ - [draft-stream.ts](../../server/modules/conversations/domain/draft-stream.ts)
1098
+ - [recovery-context.ts](../../server/modules/conversations/domain/recovery-context.ts)
1099
+
1100
+ ## server/modules/conversations/runtime
1101
+
1102
+ - [chat-manager.ts](../../server/modules/conversations/runtime/chat-manager.ts) · [test](../../server/modules/conversations/runtime/chat-manager.test.ts)
1103
+ - [context-budget.ts](../../server/modules/conversations/runtime/context-budget.ts) · [test](../../server/modules/conversations/runtime/context-budget.test.ts)
1104
+ - [context-scope.ts](../../server/modules/conversations/runtime/context-scope.ts) · [test](../../server/modules/conversations/runtime/context-scope.test.ts)
1105
+ - [explore-contract-refine.ts](../../server/modules/conversations/runtime/explore-contract-refine.ts) · [test](../../server/modules/conversations/runtime/explore-contract-refine.test.ts)
1106
+ - [explore-cwd-manager.ts](../../server/modules/conversations/runtime/explore-cwd-manager.ts) · [test](../../server/modules/conversations/runtime/explore-cwd-manager.test.ts)
1107
+ - [explore-draft-title.ts](../../server/modules/conversations/runtime/explore-draft-title.ts) · [test](../../server/modules/conversations/runtime/explore-draft-title.test.ts)
1108
+ - [explore-smash.ts](../../server/modules/conversations/runtime/explore-smash.ts) · [test](../../server/modules/conversations/runtime/explore-smash.test.ts)
1109
+ - [explore-stdin-session.ts](../../server/modules/conversations/runtime/explore-stdin-session.ts) · [test](../../server/modules/conversations/runtime/explore-stdin-session.test.ts)
1110
+
1111
+ ## server/modules/delivery
1112
+
1113
+ - [index.ts](../../server/modules/delivery/index.ts)
1114
+
1115
+ ## server/modules/delivery/adapters/decisions
1116
+
1117
+ - [chains.ts](../../server/modules/delivery/adapters/decisions/chains.ts)
1118
+ - [contracts.ts](../../server/modules/delivery/adapters/decisions/contracts.ts)
1119
+ - [create.ts](../../server/modules/delivery/adapters/decisions/create.ts)
1120
+ - [discard.ts](../../server/modules/delivery/adapters/decisions/discard.ts)
1121
+ - [dispatch.ts](../../server/modules/delivery/adapters/decisions/dispatch.ts)
1122
+ - [evidence.ts](../../server/modules/delivery/adapters/decisions/evidence.ts)
1123
+ - [merge-local.ts](../../server/modules/delivery/adapters/decisions/merge-local.ts)
1124
+ - [metadata.ts](../../server/modules/delivery/adapters/decisions/metadata.ts)
1125
+ - [observations.ts](../../server/modules/delivery/adapters/decisions/observations.ts)
1126
+ - [ownership.ts](../../server/modules/delivery/adapters/decisions/ownership.ts)
1127
+ - [publish.ts](../../server/modules/delivery/adapters/decisions/publish.ts)
1128
+ - [recovery.ts](../../server/modules/delivery/adapters/decisions/recovery.ts)
1129
+ - [retry.ts](../../server/modules/delivery/adapters/decisions/retry.ts)
1130
+ - [transitions.ts](../../server/modules/delivery/adapters/decisions/transitions.ts)
1131
+
1132
+ ## server/modules/delivery/domain
1133
+
1134
+ - [decision-policy.ts](../../server/modules/delivery/domain/decision-policy.ts)
1135
+ - [state.ts](../../server/modules/delivery/domain/state.ts)
1136
+
1137
+ ## server/modules/delivery/runtime
1138
+
1139
+ - [active-pr-continuation.ts](../../server/modules/delivery/runtime/active-pr-continuation.ts) · [test](../../server/modules/delivery/runtime/active-pr-continuation.test.ts)
1140
+ - [delivery-evidence.ts](../../server/modules/delivery/runtime/delivery-evidence.ts) · [test](../../server/modules/delivery/runtime/delivery-evidence.test.ts)
1141
+ - [merge-manager.ts](../../server/modules/delivery/runtime/merge-manager.ts) · [test](../../server/modules/delivery/runtime/merge-manager.test.ts)
1142
+ - [multi-repo-bases.ts](../../server/modules/delivery/runtime/multi-repo-bases.ts) · [test](../../server/modules/delivery/runtime/multi-repo-bases.test.ts)
1143
+ - [multi-repo-checkout.ts](../../server/modules/delivery/runtime/multi-repo-checkout.ts)
1144
+ - [multi-repo-delivery.ts](../../server/modules/delivery/runtime/multi-repo-delivery.ts)
1145
+ - [multi-repo-execution-store.ts](../../server/modules/delivery/runtime/multi-repo-execution-store.ts)
1146
+ - [multi-repo-execution.ts](../../server/modules/delivery/runtime/multi-repo-execution.ts) · [test](../../server/modules/delivery/runtime/multi-repo-execution.test.ts)
1147
+ - [pr-body.ts](../../server/modules/delivery/runtime/pr-body.ts) · [test](../../server/modules/delivery/runtime/pr-body.test.ts)
1148
+ - [pr-follow-up-scope.ts](../../server/modules/delivery/runtime/pr-follow-up-scope.ts)
1149
+ - [pr-follow-up.ts](../../server/modules/delivery/runtime/pr-follow-up.ts) · [test](../../server/modules/delivery/runtime/pr-follow-up.test.ts)
1150
+ - [pr-lifecycle.ts](../../server/modules/delivery/runtime/pr-lifecycle.ts) · [test](../../server/modules/delivery/runtime/pr-lifecycle.test.ts)
1151
+ - [pr-naming.ts](../../server/modules/delivery/runtime/pr-naming.ts) · [test](../../server/modules/delivery/runtime/pr-naming.test.ts)
1152
+ - [pr-publisher.ts](../../server/modules/delivery/runtime/pr-publisher.ts) · [test](../../server/modules/delivery/runtime/pr-publisher.test.ts)
1153
+ - [rail-isolated-launch.ts](../../server/modules/delivery/runtime/rail-isolated-launch.ts) · [test](../../server/modules/delivery/runtime/rail-isolated-launch.test.ts)
1154
+ - [rail-isolation.ts](../../server/modules/delivery/runtime/rail-isolation.ts) · [test](../../server/modules/delivery/runtime/rail-isolation.test.ts)
1155
+ - [rail-launch-parser.ts](../../server/modules/delivery/runtime/rail-launch-parser.ts) · [test](../../server/modules/delivery/runtime/rail-launch-parser.test.ts)
1156
+ - [rail-merge-orchestrator.ts](../../server/modules/delivery/runtime/rail-merge-orchestrator.ts) · [test](../../server/modules/delivery/runtime/rail-merge-orchestrator.test.ts)
1157
+ - [rail-pr-decision.ts](../../server/modules/delivery/runtime/rail-pr-decision.ts) · [test](../../server/modules/delivery/runtime/rail-pr-decision.test.ts)
1158
+ - [rail-pr-delivery.ts](../../server/modules/delivery/runtime/rail-pr-delivery.ts) · [test](../../server/modules/delivery/runtime/rail-pr-delivery.test.ts)
1159
+ - [rail-pr-recovery-git.ts](../../server/modules/delivery/runtime/rail-pr-recovery-git.ts) · [test](../../server/modules/delivery/runtime/rail-pr-recovery-git.test.ts)
1160
+ - [rail-pr-store.ts](../../server/modules/delivery/runtime/rail-pr-store.ts) · [test](../../server/modules/delivery/runtime/rail-pr-store.test.ts)
1161
+ - [rail-pr-ticket-effects.ts](../../server/modules/delivery/runtime/rail-pr-ticket-effects.ts) · [test](../../server/modules/delivery/runtime/rail-pr-ticket-effects.test.ts)
1162
+ - [rail-worktree-release.ts](../../server/modules/delivery/runtime/rail-worktree-release.ts) · [test](../../server/modules/delivery/runtime/rail-worktree-release.test.ts)
1163
+ - [rail-worktrees-store.ts](../../server/modules/delivery/runtime/rail-worktrees-store.ts) · [test](../../server/modules/delivery/runtime/rail-worktrees-store.test.ts)
1164
+ - [rails-router.ts](../../server/modules/delivery/runtime/rails-router.ts) · [test](../../server/modules/delivery/runtime/rails-router.test.ts)
1165
+ - [rails-store.ts](../../server/modules/delivery/runtime/rails-store.ts) · [test](../../server/modules/delivery/runtime/rails-store.test.ts)
1166
+ - [review-packet.ts](../../server/modules/delivery/runtime/review-packet.ts) · [test](../../server/modules/delivery/runtime/review-packet.test.ts)
1167
+
1168
+ ## server/modules/execution
1169
+
1170
+ - [index.ts](../../server/modules/execution/index.ts)
1171
+ - [ports.ts](../../server/modules/execution/ports.ts)
1172
+
1173
+ ## server/modules/execution/adapters
1174
+
1175
+ - [budget-storage.ts](../../server/modules/execution/adapters/budget-storage.ts)
1176
+ - [usage-reader.ts](../../server/modules/execution/adapters/usage-reader.ts)
1177
+
1178
+ ## server/modules/execution/application
1179
+
1180
+ - [enforce-budget.ts](../../server/modules/execution/application/enforce-budget.ts)
1181
+ - [record-job-invocations.ts](../../server/modules/execution/application/record-job-invocations.ts)
1182
+ - [recover-job-usage.ts](../../server/modules/execution/application/recover-job-usage.ts)
1183
+
1184
+ ## server/modules/execution/domain
1185
+
1186
+ - [job-accounting.ts](../../server/modules/execution/domain/job-accounting.ts)
1187
+ - [scheduling.ts](../../server/modules/execution/domain/scheduling.ts)
1188
+ - [usage.ts](../../server/modules/execution/domain/usage.ts)
1189
+
1190
+ ## server/modules/execution/runtime
1191
+
1192
+ - [accept-ladder.ts](../../server/modules/execution/runtime/accept-ladder.ts) · [test](../../server/modules/execution/runtime/accept-ladder.test.ts)
1193
+ - [interactive-job-session.ts](../../server/modules/execution/runtime/interactive-job-session.ts) · [test](../../server/modules/execution/runtime/interactive-job-session.test.ts)
1194
+ - [job-listing.ts](../../server/modules/execution/runtime/job-listing.ts) · [test](../../server/modules/execution/runtime/job-listing.test.ts)
1195
+ - [job-phase-breakdown.ts](../../server/modules/execution/runtime/job-phase-breakdown.ts) · [test](../../server/modules/execution/runtime/job-phase-breakdown.test.ts)
1196
+ - [job-spawn-idempotency.ts](../../server/modules/execution/runtime/job-spawn-idempotency.ts)
1197
+ - [queue-manager.ts](../../server/modules/execution/runtime/queue-manager.ts) · [test](../../server/modules/execution/runtime/queue-manager.test.ts)
1198
+ - [revision-seed.ts](../../server/modules/execution/runtime/revision-seed.ts) · [test](../../server/modules/execution/runtime/revision-seed.test.ts)
1199
+ - [run-duration-stats.ts](../../server/modules/execution/runtime/run-duration-stats.ts) · [test](../../server/modules/execution/runtime/run-duration-stats.test.ts)
1200
+ - [spawn-lifecycle.ts](../../server/modules/execution/runtime/spawn-lifecycle.ts) · [test](../../server/modules/execution/runtime/spawn-lifecycle.test.ts)
1201
+ - [stuck-run-detector.ts](../../server/modules/execution/runtime/stuck-run-detector.ts) · [test](../../server/modules/execution/runtime/stuck-run-detector.test.ts)
1202
+ - [verification-sentinel.ts](../../server/modules/execution/runtime/verification-sentinel.ts)
1203
+
1204
+ ## server/modules/loops/runtime
1205
+
1206
+ - [loop-command-catalog.ts](../../server/modules/loops/runtime/loop-command-catalog.ts) · [test](../../server/modules/loops/runtime/loop-command-catalog.test.ts)
1207
+ - [loop-constants.ts](../../server/modules/loops/runtime/loop-constants.ts) · [test](../../server/modules/loops/runtime/loop-constants.test.ts)
1208
+ - [loop-decider.ts](../../server/modules/loops/runtime/loop-decider.ts) · [test](../../server/modules/loops/runtime/loop-decider.test.ts)
1209
+ - [loop-effect.ts](../../server/modules/loops/runtime/loop-effect.ts) · [test](../../server/modules/loops/runtime/loop-effect.test.ts)
1210
+ - [loop-executors.ts](../../server/modules/loops/runtime/loop-executors.ts) · [test](../../server/modules/loops/runtime/loop-executors.test.ts)
1211
+ - [loop-factory.ts](../../server/modules/loops/runtime/loop-factory.ts) · [test](../../server/modules/loops/runtime/loop-factory.test.ts)
1212
+ - [loop-graph.ts](../../server/modules/loops/runtime/loop-graph.ts) · [test](../../server/modules/loops/runtime/loop-graph.test.ts)
1213
+ - [loop-preview.ts](../../server/modules/loops/runtime/loop-preview.ts) · [test](../../server/modules/loops/runtime/loop-preview.test.ts)
1214
+ - [loop-role-engines.ts](../../server/modules/loops/runtime/loop-role-engines.ts) · [test](../../server/modules/loops/runtime/loop-role-engines.test.ts)
1215
+ - [loop-run-manager.ts](../../server/modules/loops/runtime/loop-run-manager.ts) · [test](../../server/modules/loops/runtime/loop-run-manager.test.ts)
1216
+ - [loop-runs-store.ts](../../server/modules/loops/runtime/loop-runs-store.ts) · [test](../../server/modules/loops/runtime/loop-runs-store.test.ts)
1217
+ - [loop-shell-invocation.ts](../../server/modules/loops/runtime/loop-shell-invocation.ts)
1218
+ - [loop-step-idle.ts](../../server/modules/loops/runtime/loop-step-idle.ts) · [test](../../server/modules/loops/runtime/loop-step-idle.test.ts)
1219
+ - [loop-templates-ported.ts](../../server/modules/loops/runtime/loop-templates-ported.ts)
1220
+ - [loop-templates.ts](../../server/modules/loops/runtime/loop-templates.ts) · [test](../../server/modules/loops/runtime/loop-templates.test.ts)
1221
+ - [loops-router.ts](../../server/modules/loops/runtime/loops-router.ts) · [test](../../server/modules/loops/runtime/loops-router.test.ts)
1222
+ - [loops-store.ts](../../server/modules/loops/runtime/loops-store.ts) · [test](../../server/modules/loops/runtime/loops-store.test.ts)
1223
+
1224
+ ## server/modules/missions/runtime
1225
+
1226
+ - [agent-chat-manager.ts](../../server/modules/missions/runtime/agent-chat-manager.ts) · [test](../../server/modules/missions/runtime/agent-chat-manager.test.ts)
1227
+ - [agent-chat-registry.ts](../../server/modules/missions/runtime/agent-chat-registry.ts)
1228
+ - [agent-chat-router.ts](../../server/modules/missions/runtime/agent-chat-router.ts)
1229
+ - [agent-context-resolver.ts](../../server/modules/missions/runtime/agent-context-resolver.ts) · [test](../../server/modules/missions/runtime/agent-context-resolver.test.ts)
1230
+ - [agent-cwd-manager.ts](../../server/modules/missions/runtime/agent-cwd-manager.ts)
1231
+ - [agent-failure-briefing.ts](../../server/modules/missions/runtime/agent-failure-briefing.ts) · [test](../../server/modules/missions/runtime/agent-failure-briefing.test.ts)
1232
+ - [agent-fence-promotion.ts](../../server/modules/missions/runtime/agent-fence-promotion.ts)
1233
+ - [agent-input-store.ts](../../server/modules/missions/runtime/agent-input-store.ts) · [test](../../server/modules/missions/runtime/agent-input-store.test.ts)
1234
+ - [agent-operator-prompt.ts](../../server/modules/missions/runtime/agent-operator-prompt.ts) · [test](../../server/modules/missions/runtime/agent-operator-prompt.test.ts)
1235
+ - [agent-spec-framing.ts](../../server/modules/missions/runtime/agent-spec-framing.ts) · [test](../../server/modules/missions/runtime/agent-spec-framing.test.ts)
1236
+ - [agent-steering.ts](../../server/modules/missions/runtime/agent-steering.ts) · [test](../../server/modules/missions/runtime/agent-steering.test.ts)
1237
+ - [agent-tier.ts](../../server/modules/missions/runtime/agent-tier.ts)
1238
+ - [mission-run-notify.ts](../../server/modules/missions/runtime/mission-run-notify.ts) · [test](../../server/modules/missions/runtime/mission-run-notify.test.ts)
1239
+
1240
+ ## server/modules/project-settings
1241
+
1242
+ - [application.ts](../../server/modules/project-settings/application.ts) · [test](../../server/modules/project-settings/__tests__/application.test.ts)
1243
+ - [domain.ts](../../server/modules/project-settings/domain.ts)
1244
+ - [index.ts](../../server/modules/project-settings/index.ts)
1245
+ - [ports.ts](../../server/modules/project-settings/ports.ts)
1246
+
1247
+ ## server/modules/project-settings/adapters
1248
+
1249
+ - [http.ts](../../server/modules/project-settings/adapters/http.ts)
1250
+ - [sqlite.ts](../../server/modules/project-settings/adapters/sqlite.ts)
1251
+
1252
+ ## server/modules/specs/runtime
1253
+
1254
+ - [contract-refine-runner.ts](../../server/modules/specs/runtime/contract-refine-runner.ts) · [test](../../server/modules/specs/runtime/contract-refine-runner.test.ts)
1255
+ - [proposal-manager.ts](../../server/modules/specs/runtime/proposal-manager.ts) · [test](../../server/modules/specs/runtime/proposal-manager.test.ts)
1256
+ - [smash-runner.ts](../../server/modules/specs/runtime/smash-runner.ts) · [test](../../server/modules/specs/runtime/smash-runner.test.ts)
1257
+ - [spec-addenda-core.ts](../../server/modules/specs/runtime/spec-addenda-core.ts)
1258
+ - [spec-addenda.ts](../../server/modules/specs/runtime/spec-addenda.ts) · [test](../../server/modules/specs/runtime/spec-addenda.test.ts)
1259
+ - [spec-contract-prompt.ts](../../server/modules/specs/runtime/spec-contract-prompt.ts)
1260
+ - [spec-draft-parser.ts](../../server/modules/specs/runtime/spec-draft-parser.ts) · [test](../../server/modules/specs/runtime/spec-draft-parser.test.ts)
1261
+ - [spec-launcher-manager.ts](../../server/modules/specs/runtime/spec-launcher-manager.ts) · [test](../../server/modules/specs/runtime/spec-launcher-manager.test.ts)
1262
+ - [spec-models.ts](../../server/modules/specs/runtime/spec-models.ts) · [test](../../server/modules/specs/runtime/spec-models.test.ts)
1263
+ - [ticket-store.ts](../../server/modules/specs/runtime/ticket-store.ts) · [test](../../server/modules/specs/runtime/ticket-store.test.ts)
1264
+ - [ticket-watcher.ts](../../server/modules/specs/runtime/ticket-watcher.ts) · [test](../../server/modules/specs/runtime/ticket-watcher.test.ts)
1265
+
1266
+ ## server/modules/terminals/runtime
1267
+
1268
+ - [background-process-control.ts](../../server/modules/terminals/runtime/background-process-control.ts) · [test](../../server/modules/terminals/runtime/background-process-control.test.ts)
1269
+ - [background-process-service.ts](../../server/modules/terminals/runtime/background-process-service.ts)
1270
+ - [background-process-store.ts](../../server/modules/terminals/runtime/background-process-store.ts) · [test](../../server/modules/terminals/runtime/background-process-store.test.ts)
1271
+ - [background-windows-bootstrap.ts](../../server/modules/terminals/runtime/background-windows-bootstrap.ts) · [test](../../server/modules/terminals/runtime/background-windows-bootstrap.test.ts)
1272
+ - [terminal-manager.ts](../../server/modules/terminals/runtime/terminal-manager.ts) · [test](../../server/modules/terminals/runtime/terminal-manager.test.ts)
1273
+ - [terminal-marks-store.ts](../../server/modules/terminals/runtime/terminal-marks-store.ts) · [test](../../server/modules/terminals/runtime/terminal-marks-store.test.ts)
1274
+ - [terminal-osc-parser.ts](../../server/modules/terminals/runtime/terminal-osc-parser.ts) · [test](../../server/modules/terminals/runtime/terminal-osc-parser.test.ts)
1275
+ - [terminal-settings.ts](../../server/modules/terminals/runtime/terminal-settings.ts) · [test](../../server/modules/terminals/runtime/terminal-settings.test.ts)
1276
+
1277
+ ## server/plugins
1278
+
1279
+ - [claude-approval.ts](../../server/plugins/claude-approval.ts) · [test](../../server/plugins/claude-approval.test.ts)
1280
+ - [claude-md-mutation.ts](../../server/plugins/claude-md-mutation.ts) · [test](../../server/plugins/claude-md-mutation.test.ts)
1281
+ - [codex-mcp.ts](../../server/plugins/codex-mcp.ts) · [test](../../server/plugins/codex-mcp.test.ts)
1282
+ - [codex-spawn.ts](../../server/plugins/codex-spawn.ts) · [test](../../server/plugins/codex-spawn.test.ts)
1283
+ - [contributors.ts](../../server/plugins/contributors.ts) · [test](../../server/plugins/contributors.test.ts)
1284
+ - [drift.ts](../../server/plugins/drift.ts) · [test](../../server/plugins/drift.test.ts)
1285
+ - [index.ts](../../server/plugins/index.ts)
1286
+ - [json-mutation.ts](../../server/plugins/json-mutation.ts) · [test](../../server/plugins/json-mutation.test.ts)
1287
+ - [manager.ts](../../server/plugins/manager.ts)
1288
+ - [ownership.ts](../../server/plugins/ownership.ts) · [test](../../server/plugins/ownership.test.ts)
1289
+ - [paths.ts](../../server/plugins/paths.ts)
1290
+ - [prereq-installer.ts](../../server/plugins/prereq-installer.ts) · [test](../../server/plugins/prereq-installer.test.ts)
1291
+ - [rail-integration.ts](../../server/plugins/rail-integration.ts) · [test](../../server/plugins/rail-integration.test.ts)
1292
+
1293
+ ## server/plugins/serena
1294
+
1295
+ - [index.ts](../../server/plugins/serena/index.ts)
1296
+ - [install.ts](../../server/plugins/serena/install.ts) · [test](../../server/plugins/serena/install.test.ts)
1297
+ - [instructions-content.ts](../../server/plugins/serena/instructions-content.ts)
1298
+ - [manifest.ts](../../server/plugins/serena/manifest.ts)
1299
+ - [verify.ts](../../server/plugins/serena/verify.ts) · [test](../../server/plugins/serena/verify.test.ts)
1300
+
1301
+ ## server/providers
1302
+
1303
+ - [claude-adapter.ts](../../server/providers/claude-adapter.ts) · [test](../../server/providers/claude-adapter.test.ts)
1304
+ - [claude-background-tasks.ts](../../server/providers/claude-background-tasks.ts)
1305
+ - [claude-live-session.ts](../../server/providers/claude-live-session.ts) · [test](../../server/providers/claude-live-session.test.ts)
1306
+ - [codex-adapter.ts](../../server/providers/codex-adapter.ts) · [test](../../server/providers/codex-adapter.test.ts)
1307
+ - [codex-live-session.ts](../../server/providers/codex-live-session.ts) · [test](../../server/providers/codex-live-session.test.ts)
1308
+ - [gemini-adapter.ts](../../server/providers/gemini-adapter.ts) · [test](../../server/providers/gemini-adapter.test.ts)
1309
+ - [gemini-agent-ack.ts](../../server/providers/gemini-agent-ack.ts) · [test](../../server/providers/gemini-agent-ack.test.ts)
1310
+ - [index.ts](../../server/providers/index.ts)
1311
+ - [kimi-adapter.ts](../../server/providers/kimi-adapter.ts) · [test](../../server/providers/kimi-adapter.test.ts)
1312
+ - [kimi-skill-prompt.ts](../../server/providers/kimi-skill-prompt.ts) · [test](../../server/providers/kimi-skill-prompt.test.ts)
1313
+ - [live-session-types.ts](../../server/providers/live-session-types.ts)
1314
+ - [live-session.ts](../../server/providers/live-session.ts)
1315
+ - [local-adapter-registry.ts](../../server/providers/local-adapter-registry.ts) · [test](../../server/providers/local-adapter-registry.test.ts)
1316
+ - [local-adapter.ts](../../server/providers/local-adapter.ts) · [test](../../server/providers/local-adapter.test.ts)
1317
+ - [registry.ts](../../server/providers/registry.ts) · [test](../../server/providers/registry.test.ts)
1318
+ - [runtime.ts](../../server/providers/runtime.ts) · [test](../../server/providers/runtime.test.ts)
1319
+ - [telemetry-env.ts](../../server/providers/telemetry-env.ts)
1320
+ - [terminal-result.ts](../../server/providers/terminal-result.ts) · [test](../../server/providers/terminal-result.test.ts)
1321
+ - [types.ts](../../server/providers/types.ts)
1322
+
1323
+ ## server/shared
1324
+
1325
+ - [git-branch-name.ts](../../server/shared/git-branch-name.ts)
1326
+
1327
+ ## server/shell-integration
1328
+
1329
+ - [powershell-shim.ps1](../../server/shell-integration/powershell-shim.ps1)
1330
+
1331
+ ## server/util
1332
+
1333
+ - [cli-prompt.ts](../../server/util/cli-prompt.ts) · [test](../../server/util/cli-prompt.test.ts)
1334
+ - [distribute-int.ts](../../server/util/distribute-int.ts)
1335
+ - [secure-fs.ts](../../server/util/secure-fs.ts) · [test](../../server/util/secure-fs.test.ts)
1336
+ - [secure-token-file.ts](../../server/util/secure-token-file.ts) · [test](../../server/util/secure-token-file.test.ts)
1337
+ - [sqlite-migrations.ts](../../server/util/sqlite-migrations.ts) · [test](../../server/util/sqlite-migrations.test.ts)
1338
+ - [stream-display.ts](../../server/util/stream-display.ts) · [test](../../server/util/stream-display.test.ts)
1339
+ - [win-spawn.ts](../../server/util/win-spawn.ts) · [test](../../server/util/win-spawn.test.ts)
1340
+ - [windows-provider-shell.ts](../../server/util/windows-provider-shell.ts) · [test](../../server/util/windows-provider-shell.test.ts)
1341
+
1342
+ ## src-tauri/src
1343
+
1344
+ - [backend_health.rs](../../src-tauri/src/backend_health.rs)
1345
+ - [browser.rs](../../src-tauri/src/browser.rs)
1346
+ - [browser_capture.rs](../../src-tauri/src/browser_capture.rs)
1347
+ - [browser_capture_common.rs](../../src-tauri/src/browser_capture_common.rs)
1348
+ - [browser_capture_windows.rs](../../src-tauri/src/browser_capture_windows.rs)
1349
+ - [browser_ownership.rs](../../src-tauri/src/browser_ownership.rs)
1350
+ - [browser_popup.rs](../../src-tauri/src/browser_popup.rs)
1351
+ - [browser_popup_windows.rs](../../src-tauri/src/browser_popup_windows.rs)
1352
+ - [desktop_actions.rs](../../src-tauri/src/desktop_actions.rs)
1353
+ - [invoke_guard.rs](../../src-tauri/src/invoke_guard.rs)
1354
+ - [lib.rs](../../src-tauri/src/lib.rs)
1355
+ - [main.rs](../../src-tauri/src/main.rs)
1356
+ - [mission_windows.rs](../../src-tauri/src/mission_windows.rs)