@moretea-labs/forge 1.6.0 → 1.7.1

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 (469) hide show
  1. package/AGENTS.md +4 -0
  2. package/CHANGELOG.md +39 -0
  3. package/CLAUDE.md +4 -0
  4. package/README.md +2 -2
  5. package/README.zh-CN.md +1 -1
  6. package/SKILL.md +2 -2
  7. package/THIRD_PARTY_NOTICES.md +1 -1
  8. package/agents/openai.yaml +1 -1
  9. package/assets/hooks/hook-input.sh +11 -8
  10. package/assets/hooks/lib/session-state.sh +10 -7
  11. package/assets/hooks/lib/workflow-state.sh +13 -177
  12. package/assets/hooks/post-tool-observer.sh +8 -2
  13. package/assets/hooks/prompt-guard.sh +5 -81
  14. package/assets/hooks/session-start-context.sh +56 -1
  15. package/assets/partials/05-workflow.partial.md +1 -1
  16. package/assets/partials-agents/02-operating-mode.partial.md +2 -0
  17. package/assets/partials-agents/03-orchestration.partial.md +1 -1
  18. package/assets/plugin-registry.v1.json +3 -3
  19. package/assets/reference-configs/document-generation.md +1 -1
  20. package/assets/reference-configs/harness-overview.md +1 -1
  21. package/assets/reference-configs/sprint-contracts.md +3 -3
  22. package/assets/skill-version.json +2 -2
  23. package/assets/templates/contract.template.md +2 -7
  24. package/assets/templates/helpers/capture-plan.sh +2 -2
  25. package/assets/templates/helpers/check-architecture-sync.sh +17 -0
  26. package/assets/templates/helpers/check-task-workflow.sh +4 -4
  27. package/assets/templates/helpers/contract-worktree.sh +1 -21
  28. package/assets/templates/helpers/ensure-task-workflow.sh +11 -36
  29. package/assets/templates/helpers/inspect-project-state.ts +8 -6
  30. package/assets/templates/helpers/migrate-project-template.sh +22 -45
  31. package/assets/templates/helpers/migrate-workflow-docs.ts +9 -7
  32. package/assets/templates/helpers/new-plan.sh +1 -1
  33. package/assets/templates/helpers/plan-to-todo.sh +12 -37
  34. package/assets/templates/helpers/ship-worktrees.sh +2 -29
  35. package/assets/templates/helpers/verify-contract.sh +1 -111
  36. package/assets/templates/helpers/verify-sprint.sh +3 -180
  37. package/assets/templates/helpers/workflow-contract.ts +5 -1
  38. package/assets/templates/plan.template.md +1 -1
  39. package/assets/templates/review.template.md +9 -34
  40. package/assets/workflow-contract.v1.json +10 -19
  41. package/docs/README.md +10 -10
  42. package/docs/architecture/CURRENT.md +178 -0
  43. package/docs/architecture/EVOLUTION.md +42 -0
  44. package/docs/architecture/current/README.md +4 -156
  45. package/docs/architecture/decisions/20260803-release-identity-binding-and-exit-policy.md +2 -2
  46. package/docs/architecture/decisions/20260823-immediate-controller-relay.md +53 -0
  47. package/docs/architecture/decisions/20260826-browser-runtime-v2.md +73 -0
  48. package/docs/architecture/history/README.md +7 -0
  49. package/docs/architecture/{chatgpt-handoff-facade.md → history/chatgpt-handoff-facade.md} +4 -0
  50. package/docs/architecture/{global-hook-runtime.md → history/global-hook-runtime.md} +7 -3
  51. package/docs/architecture/{ios-semantic-automation-provider-v2.md → history/ios-semantic-automation-provider-v2.md} +6 -2
  52. package/docs/architecture/history.md +3 -34
  53. package/docs/architecture/index.md +15 -98
  54. package/docs/architecture/modules/controller-runtime/transport-lifecycle.md +1 -1
  55. package/docs/architecture/reviews/2026-08-22-semantic-harness-convergence-acceptance.md +39 -0
  56. package/docs/architecture/versions/1.6.md +38 -0
  57. package/docs/architecture/versions/1.7.md +41 -0
  58. package/docs/forge-chatgpt-browser-engine.md +2 -2
  59. package/docs/forge-chatgpt-mcp-setup.md +4 -28
  60. package/docs/forge-chatgpt-supervised-automation.md +3 -3
  61. package/docs/forge-github-issue-launcher.md +1 -1
  62. package/docs/forge-plugin-management.md +1 -1
  63. package/docs/forge-runtime-self-healing-loop.md +1 -1
  64. package/docs/operations/controller-browser-plugin.md +26 -6
  65. package/docs/operations/controller-performance-and-502.md +143 -0
  66. package/docs/operations/controller-reliability-runbook.md +1 -1
  67. package/docs/operations/features.md +2 -2
  68. package/docs/operations/github-repository.md +1 -1
  69. package/docs/operations/homebrew.md +2 -2
  70. package/docs/operations/mcp-tool-exposure.md +5 -3
  71. package/docs/wiki/Architecture.md +6 -6
  72. package/docs/wiki/Implementation.md +2 -2
  73. package/docs/wiki/Integrations.md +2 -2
  74. package/docs/wiki/Work-Lifecycle.md +1 -1
  75. package/package.json +33 -11
  76. package/scripts/activate-source-baseline.ts +17 -13
  77. package/scripts/architecture-event.ts +2 -820
  78. package/scripts/architecture-queue.sh +2 -645
  79. package/scripts/archive-architecture-request.sh +2 -242
  80. package/scripts/archive-workflow.sh +1 -291
  81. package/scripts/benchmark-background-check-overlap.ts +228 -0
  82. package/scripts/benchmark-mcp-host.sh +117 -0
  83. package/scripts/benchmark-mcp-transport.ts +170 -0
  84. package/scripts/benchmark-quality-harness.ts +146 -0
  85. package/scripts/benchmark-route-session-concurrency.ts +207 -6
  86. package/scripts/benchmark-thin-harness-mcp-e2e.ts +7 -1
  87. package/scripts/benchmark-typescript-navigation.ts +186 -0
  88. package/scripts/benchmark-work-efficiency.ts +334 -0
  89. package/scripts/capability-config.ts +2 -392
  90. package/scripts/capability-resolver.ts +2 -503
  91. package/scripts/capture-plan.sh +1 -332
  92. package/scripts/check-agent-tooling.sh +2 -1558
  93. package/scripts/check-architecture-sync.sh +2 -371
  94. package/scripts/check-brain-manifest.sh +2 -253
  95. package/scripts/check-context-files.sh +2 -47
  96. package/scripts/check-deploy-sql-order.sh +2 -115
  97. package/scripts/check-mcp-compatibility.ts +14 -0
  98. package/scripts/check-runtime-architecture.mjs +349 -79
  99. package/scripts/check-skill-version.ts +3 -191
  100. package/scripts/check-source-duplication.mjs +61 -0
  101. package/scripts/check-stable-baseline.ts +92 -0
  102. package/scripts/check-task-sync.sh +2 -63
  103. package/scripts/check-task-workflow.sh +2 -1000
  104. package/scripts/codex-handoff-resume.sh +2 -267
  105. package/scripts/context-contract-sync.sh +2 -514
  106. package/scripts/contract-run.ts +2 -463
  107. package/scripts/contract-worktree.sh +1 -722
  108. package/scripts/ensure-task-workflow.sh +1 -1225
  109. package/scripts/host-temporary-cloud-mcp-e2e.sh +265 -0
  110. package/scripts/inspect-project-state.ts +4 -279
  111. package/scripts/install-standalone-recovery.ts +24 -0
  112. package/scripts/lib/project-init-lib.sh +22 -46
  113. package/scripts/lib/run-forge-helper.sh +19 -0
  114. package/scripts/lib/run-forge-helper.ts +26 -0
  115. package/scripts/migrate-project-template.sh +1 -1189
  116. package/scripts/migrate-workflow-docs.ts +4 -412
  117. package/scripts/new-plan.sh +1 -180
  118. package/scripts/new-spec.sh +1 -47
  119. package/scripts/new-sprint.sh +1 -46
  120. package/scripts/plan-to-todo.sh +1 -796
  121. package/scripts/prepare-codex-handoff.sh +2 -201
  122. package/scripts/prepare-handoff.sh +1 -78
  123. package/scripts/refresh-current-status.sh +2 -467
  124. package/scripts/run-governed-gate.ts +5 -1
  125. package/scripts/select-agent-context-blocks.sh +2 -64
  126. package/scripts/ship-worktrees.sh +1 -558
  127. package/scripts/smoke-ios-physical-device.ts +4 -2
  128. package/scripts/smoke-runtime-recovery.ts +1 -35
  129. package/scripts/smoke-schedule-engine.ts +1 -20
  130. package/scripts/sprint-backlog.sh +1 -834
  131. package/scripts/stage-runtime-release.ts +2 -1
  132. package/scripts/summarize-failures.sh +2 -123
  133. package/scripts/switch-plan.sh +1 -150
  134. package/scripts/sync-brain-docs.sh +2 -379
  135. package/scripts/sync-generated-authority.mjs +175 -0
  136. package/scripts/verify-contract.sh +2 -703
  137. package/scripts/verify-forge-runtime.sh +0 -1
  138. package/scripts/verify-sprint.sh +1 -677
  139. package/scripts/workflow-contract.ts +4 -205
  140. package/scripts/workstream-sync.sh +2 -261
  141. package/src/cli/agent-jobs/executor-health.ts +1 -1
  142. package/src/cli/commands/init-hook.ts +3 -3
  143. package/src/cli/commands/mcp.ts +9 -5
  144. package/src/cli/commands/plugin.ts +12 -3
  145. package/src/cli/commands/recovery.ts +25 -3
  146. package/src/cli/commands/runtime.ts +55 -3
  147. package/src/cli/commands/security.ts +12 -1
  148. package/src/cli/commands/setup-profile.ts +31 -21
  149. package/src/cli/controller/check-runner.ts +113 -5
  150. package/src/cli/controller/composite-result.ts +1 -1
  151. package/src/cli/controller/context/focus.ts +51 -0
  152. package/src/cli/controller/context/instruction-context.ts +114 -0
  153. package/src/cli/controller/context/known-paths.ts +76 -0
  154. package/src/cli/controller/context/query-planning.ts +110 -0
  155. package/src/cli/controller/context/rule-resolution.ts +532 -0
  156. package/src/cli/controller/context/source-materializer.ts +278 -0
  157. package/src/cli/controller/context/structural.ts +16 -0
  158. package/src/cli/controller/context/types.ts +286 -0
  159. package/src/cli/controller/context-pack.ts +828 -487
  160. package/src/cli/controller/launch-agents.ts +77 -2
  161. package/src/cli/controller/operational-plan.ts +2 -2
  162. package/src/cli/controller/work-mode.ts +6 -4
  163. package/src/cli/editing/edit-session.ts +60 -7
  164. package/src/cli/github/contracts.ts +16 -0
  165. package/src/cli/github/github.ts +135 -16
  166. package/src/cli/github/session.ts +2 -1
  167. package/src/cli/installer/managed-entries.ts +15 -1
  168. package/src/cli/local-bridge/console-automations.ts +54 -78
  169. package/src/cli/local-bridge/console-view-models.ts +1 -35
  170. package/src/cli/local-bridge/facade-api.ts +37 -264
  171. package/src/cli/local-bridge/frontend/src/App.tsx +3 -3
  172. package/src/cli/local-bridge/frontend/src/features/automations/AutomationsView.tsx +23 -13
  173. package/src/cli/local-bridge/frontend/src/features/capabilities/CapabilitiesView.tsx +37 -4
  174. package/src/cli/local-bridge/frontend/src/features/overview/OverviewView.tsx +6 -4
  175. package/src/cli/local-bridge/frontend/src/lib/api.ts +1 -6
  176. package/src/cli/local-bridge/frontend/src/lib/routes.ts +1 -1
  177. package/src/cli/local-bridge/frontend/src/shell/Sidebar.tsx +2 -2
  178. package/src/cli/local-bridge/frontend/src/styles.css +1 -1
  179. package/src/cli/local-bridge/frontend/src/types.ts +5 -8
  180. package/src/cli/local-bridge/job-store.ts +1 -490
  181. package/src/cli/local-bridge/server.ts +2 -515
  182. package/src/cli/local-bridge/ui-dist/app.css +1 -1
  183. package/src/cli/local-bridge/ui-dist/app.js +3703 -3757
  184. package/src/cli/mcp/auth.ts +5 -5
  185. package/src/cli/mcp/instructions.ts +3 -2
  186. package/src/cli/mcp/legacy-tool-service.ts +10 -222
  187. package/src/cli/mcp/multi-repository.ts +16 -5
  188. package/src/cli/mcp/oauth.ts +175 -26
  189. package/src/cli/mcp/post-finalize-work-attribution.ts +150 -0
  190. package/src/cli/mcp/repository-tools.ts +282 -146
  191. package/src/cli/mcp/server.ts +586 -116
  192. package/src/cli/mcp/tool-capability-cache.ts +1 -1
  193. package/src/cli/mcp/tool-contract.ts +14 -0
  194. package/src/cli/mcp/toolset-selection.ts +1 -1
  195. package/src/cli/mcp/toolset.ts +44 -7
  196. package/src/cli/mcp/transports/http.ts +124 -14
  197. package/src/cli/mcp/transports/session-registry.ts +43 -5
  198. package/src/cli/mcp/types.ts +3 -3
  199. package/src/cli/repositories/command-classifier.ts +103 -21
  200. package/src/cli/repositories/command-executor.ts +78 -526
  201. package/src/cli/repositories/command-process.ts +108 -0
  202. package/src/cli/repositories/command-scope.ts +99 -41
  203. package/src/cli/repositories/controller-home.ts +7 -8
  204. package/src/cli/repositories/git-command-executor.ts +2 -0
  205. package/src/cli/repositories/locks.ts +53 -16
  206. package/src/cli/repositories/repository-snapshot.ts +124 -0
  207. package/src/cli/repositories/selected-path-actions.ts +17 -9
  208. package/src/cli/repositories/structured-git.ts +118 -6
  209. package/src/cli/repository/inspector.ts +563 -65
  210. package/src/cli/repository/session-cache.ts +58 -17
  211. package/src/cli/v81-entry.ts +1 -4
  212. package/src/effects/fs-transaction.ts +85 -17
  213. package/src/runtime/context/codegraph-read-provider.ts +233 -2
  214. package/src/runtime/context/codegraph-sidecar.cjs +74 -40
  215. package/src/runtime/context/generic-lsp-provider.ts +355 -0
  216. package/src/runtime/context/lsp-client.ts +283 -0
  217. package/src/runtime/context/semantic-navigation-contract.ts +61 -0
  218. package/src/runtime/context/semantic-navigation.ts +223 -0
  219. package/src/runtime/context/swift-navigation.ts +565 -0
  220. package/src/runtime/context/typescript-navigation.ts +226 -0
  221. package/src/runtime/control-plane/dispatch-priority.ts +28 -0
  222. package/src/runtime/control-plane/execution/direct-edit-work-completion.ts +48 -16
  223. package/src/runtime/control-plane/execution/edit-validation-coordinator.ts +86 -24
  224. package/src/runtime/control-plane/execution/repository-work-attribution.ts +106 -0
  225. package/src/runtime/control-plane/execution/retained-work-resume.ts +203 -0
  226. package/src/runtime/control-plane/execution/session-store.ts +18 -0
  227. package/src/runtime/control-plane/execution/verification-evidence.ts +58 -3
  228. package/src/runtime/control-plane/execution/work-completion-authority.ts +58 -0
  229. package/src/runtime/control-plane/execution/work-evidence-policy.ts +200 -0
  230. package/src/runtime/control-plane/execution/work-execution-support.ts +386 -0
  231. package/src/runtime/control-plane/execution/work-finalization-service.ts +1913 -0
  232. package/src/runtime/control-plane/execution/work-handle-authority.ts +96 -0
  233. package/src/runtime/control-plane/execution/work-handle-store.ts +27 -2
  234. package/src/runtime/control-plane/execution/work-lifecycle-audit.ts +258 -0
  235. package/src/runtime/control-plane/execution/work-operation-service.ts +468 -0
  236. package/src/runtime/control-plane/execution/work-path-scope.ts +37 -0
  237. package/src/runtime/control-plane/execution/work-preparation-service.ts +479 -0
  238. package/src/runtime/control-plane/execution/work-process-evidence.ts +129 -0
  239. package/src/runtime/control-plane/execution/work-remote-delivery.ts +215 -0
  240. package/src/runtime/control-plane/execution/work-task-receipt.ts +22 -18
  241. package/src/runtime/control-plane/execution/work-terminal-cleanup.ts +156 -11
  242. package/src/runtime/control-plane/execution/work-validation-reconciler.ts +22 -14
  243. package/src/runtime/control-plane/execution/work-verification-context.ts +56 -0
  244. package/src/runtime/control-plane/execution/work-verification-service.ts +388 -0
  245. package/src/runtime/control-plane/execution/work-verification-snapshot.ts +90 -9
  246. package/src/runtime/control-plane/facade/capability-registry.ts +129 -25
  247. package/src/runtime/control-plane/facade/controller-round-relay.ts +1118 -0
  248. package/src/runtime/control-plane/facade/controller-session-store.ts +302 -12
  249. package/src/runtime/control-plane/facade/goal-workloop-access.ts +17 -1
  250. package/src/runtime/control-plane/facade/goal-workloop.ts +928 -190
  251. package/src/runtime/control-plane/facade/index.ts +3 -0
  252. package/src/runtime/control-plane/facade/plan-contract-store.ts +275 -42
  253. package/src/runtime/control-plane/facade/repository-work-admission.ts +147 -0
  254. package/src/runtime/control-plane/facade/requirement-authority.ts +83 -0
  255. package/src/runtime/control-plane/facade/semantic-admission.ts +205 -0
  256. package/src/runtime/control-plane/facade/suggested-actions.ts +5 -1
  257. package/src/runtime/control-plane/facade/types.ts +90 -10
  258. package/src/runtime/control-plane/facade/work-contract-store.ts +157 -261
  259. package/src/runtime/control-plane/facade/work-state-machine.ts +250 -0
  260. package/src/runtime/control-plane/generated-cache-retention.ts +271 -0
  261. package/src/runtime/control-plane/global-scheduler/config.ts +44 -0
  262. package/src/runtime/control-plane/global-scheduler/dispatch-capacity.ts +80 -0
  263. package/src/runtime/control-plane/global-scheduler/durable-admission.ts +46 -0
  264. package/src/runtime/control-plane/global-scheduler/maintenance.ts +152 -0
  265. package/src/runtime/control-plane/global-scheduler/projection-refresh.ts +84 -0
  266. package/src/runtime/control-plane/global-scheduler/reconciliation.ts +3 -3
  267. package/src/runtime/control-plane/global-scheduler/scheduler.ts +278 -543
  268. package/src/runtime/control-plane/global-scheduler/source-scan.ts +59 -0
  269. package/src/runtime/control-plane/global-scheduler/state.ts +88 -0
  270. package/src/runtime/control-plane/global-scheduler/worker-attachment.ts +57 -0
  271. package/src/runtime/control-plane/global-scheduler/worker-exit-decision.ts +38 -0
  272. package/src/runtime/control-plane/global-scheduler/worker-exit-reconciler.ts +175 -0
  273. package/src/runtime/control-plane/global-scheduler/worker-launch.ts +111 -0
  274. package/src/runtime/control-plane/global-scheduler/worker-lifecycle-store.ts +64 -0
  275. package/src/runtime/control-plane/global-scheduler/worker-lifecycle.ts +150 -0
  276. package/src/runtime/control-plane/global-scheduler/worker-process.ts +119 -0
  277. package/src/runtime/control-plane/global-scheduler/worker-stderr.ts +60 -0
  278. package/src/runtime/control-plane/launcher/chatgpt-work-binding-store.ts +63 -0
  279. package/src/runtime/control-plane/launcher/chatgpt-work-continuation.ts +365 -117
  280. package/src/runtime/control-plane/launcher/launch-reservation-store.ts +89 -0
  281. package/src/runtime/control-plane/launcher/thin-launcher.ts +244 -11
  282. package/src/runtime/control-plane/persistence/controller-home-migration.ts +487 -0
  283. package/src/runtime/control-plane/persistence/requirement-store.ts +0 -12
  284. package/src/runtime/control-plane/persistence/sqlite-store.ts +33 -2
  285. package/src/runtime/control-plane/release-retention.ts +62 -2
  286. package/src/runtime/control-plane/repo-actor/registry.ts +4 -2
  287. package/src/runtime/control-plane/routing/route-policy.ts +24 -21
  288. package/src/runtime/control-plane/routing/workspace-admission.ts +70 -0
  289. package/src/runtime/control-plane/runtime-status-client.ts +0 -2
  290. package/src/runtime/diagnostics/mcp-timing.ts +13 -0
  291. package/src/runtime/diagnostics/mcp-transport-benchmark.ts +129 -0
  292. package/src/runtime/diagnostics/performance.ts +24 -1
  293. package/src/runtime/evidence/event-ledger.ts +1 -1
  294. package/src/runtime/evidence/process-check-execution.ts +18 -0
  295. package/src/runtime/execution/jobs/child-reference.ts +6 -2
  296. package/src/runtime/execution/jobs/store.ts +58 -4
  297. package/src/runtime/execution/jobs/types.ts +1 -1
  298. package/src/runtime/execution/managed-workspace.ts +203 -1
  299. package/src/runtime/execution/process-runtime/check-facade.ts +51 -4
  300. package/src/runtime/execution/process-runtime/check-result.ts +88 -0
  301. package/src/runtime/execution/process-runtime/check-runner-sidecar.ts +7 -1
  302. package/src/runtime/execution/process-runtime/check-scheduling.ts +114 -0
  303. package/src/runtime/execution/process-runtime/command-facade.ts +367 -40
  304. package/src/runtime/execution/process-runtime/gc.ts +38 -6
  305. package/src/runtime/execution/process-runtime/lightweight-managed.ts +1201 -0
  306. package/src/runtime/execution/process-runtime/persisted-check.ts +51 -5
  307. package/src/runtime/execution/process-runtime/resource-claims.ts +10 -6
  308. package/src/runtime/execution/process-runtime/runtime.ts +53 -3
  309. package/src/runtime/execution/process-runtime/store.ts +1 -0
  310. package/src/runtime/execution/process-runtime/types.ts +4 -12
  311. package/src/runtime/execution/thin-harness/async-process.ts +12 -2
  312. package/src/runtime/execution/thin-harness/search-worker.ts +54 -5
  313. package/src/runtime/execution/work-activity.ts +21 -0
  314. package/src/runtime/execution/workers/executor.ts +18 -61
  315. package/src/runtime/gateway/mcp/execution-tools.ts +35 -1852
  316. package/src/runtime/gateway/mcp/legacy-ios-tool-adapter.ts +61 -0
  317. package/src/runtime/gateway/mcp/process-tools.ts +83 -37
  318. package/src/runtime/gateway/mcp/router.ts +186 -84
  319. package/src/runtime/gateway/mcp/runtime-tool-definitions.ts +565 -0
  320. package/src/runtime/gateway/mcp/runtime-tools.ts +2378 -1947
  321. package/src/runtime/plugins/app-store-connect-adapter.ts +216 -47
  322. package/src/runtime/plugins/browser-adapter.ts +2662 -829
  323. package/src/runtime/plugins/browser-automation-service.ts +10 -0
  324. package/src/runtime/plugins/browser-handoff-host.ts +2 -25
  325. package/src/runtime/plugins/browser-handoff.ts +110 -5
  326. package/src/runtime/plugins/browser-macos-bridge.ts +701 -63
  327. package/src/runtime/plugins/browser-manifest-surface.ts +603 -0
  328. package/src/runtime/plugins/browser-native-session-service.ts +222 -0
  329. package/src/runtime/plugins/browser-node-bridge.ts +6 -34
  330. package/src/runtime/plugins/browser-provider-registry.ts +109 -0
  331. package/src/runtime/plugins/browser-runtime-contract.ts +154 -0
  332. package/src/runtime/plugins/browser-runtime.ts +193 -0
  333. package/src/runtime/plugins/browser-session-authority.ts +332 -0
  334. package/src/runtime/plugins/browser-session-store.ts +121 -0
  335. package/src/runtime/plugins/browser-session-types.ts +98 -0
  336. package/src/runtime/plugins/capability-authorization-grants.ts +354 -0
  337. package/src/runtime/plugins/desktop-operator-registration.ts +10 -4
  338. package/src/runtime/plugins/external-adapter.ts +358 -3
  339. package/src/runtime/plugins/external-unix-socket.ts +7 -1
  340. package/src/runtime/plugins/first-party-registry.ts +2 -0
  341. package/src/runtime/plugins/github-adapter.ts +125 -0
  342. package/src/runtime/plugins/ios/agent-device-provider.ts +1 -1
  343. package/src/runtime/plugins/ios/agent-device-typed-provider.ts +52 -9
  344. package/src/runtime/plugins/ios/remote-xpc-hid.ts +1171 -0
  345. package/src/runtime/plugins/ios-adapter.ts +106 -16
  346. package/src/runtime/plugins/ios-agent-device.ts +234 -64
  347. package/src/runtime/plugins/ios-physical-device.ts +1143 -392
  348. package/src/runtime/plugins/lightweight-action.ts +153 -0
  349. package/src/runtime/plugins/local-system-adapter.ts +123 -6
  350. package/src/runtime/plugins/macos-capability-broker.ts +47 -9
  351. package/src/runtime/plugins/plugin-action-sidecar.ts +59 -0
  352. package/src/runtime/plugins/plugin-management-adapter.ts +49 -8
  353. package/src/runtime/plugins/resend-adapter.ts +1 -1
  354. package/src/runtime/plugins/store.ts +330 -33
  355. package/src/runtime/plugins/types.ts +38 -3
  356. package/src/runtime/plugins/xiaohongshu-publish.ts +515 -0
  357. package/src/runtime/projections/git-status-sampler.ts +16 -16
  358. package/src/runtime/projections/materialized-view.ts +28 -10
  359. package/src/runtime/recovery/maintenance-executor.ts +426 -25
  360. package/src/runtime/root/mcp-transport.ts +180 -10
  361. package/src/runtime/root/package-connector-service.ts +230 -10
  362. package/src/runtime/root/package-runtime-release.ts +143 -17
  363. package/src/runtime/root/package-runtime-service.ts +461 -22
  364. package/src/runtime/root/release-manifest.ts +144 -18
  365. package/src/runtime/root/release-materialize.ts +125 -32
  366. package/src/runtime/root/release-store.ts +48 -11
  367. package/src/runtime/root/runtime.ts +23 -5
  368. package/src/runtime/root/service.ts +100 -29
  369. package/src/runtime/root/types.ts +12 -0
  370. package/src/runtime/safe-tooling/ios-development.ts +321 -63
  371. package/src/runtime/shared/trusted-executable.ts +62 -0
  372. package/src/runtime/shared/trusted-node-executable.ts +48 -0
  373. package/src/runtime/standalone-recovery/core.ts +1079 -240
  374. package/src/runtime/standalone-recovery/entry.ts +100 -24
  375. package/src/runtime/standalone-recovery/installer.ts +20 -4
  376. package/src/runtime/standalone-recovery/service-labels.ts +2 -0
  377. package/src/runtime/standalone-recovery/watchdog-heartbeat.ts +160 -0
  378. package/src/runtime/workflow/schedules/browser-probe.ts +81 -3
  379. package/src/runtime/workflow/schedules/engine.ts +364 -202
  380. package/src/runtime/workflow/schedules/github-issue-watch.ts +158 -0
  381. package/src/runtime/workflow/schedules/settlement.ts +64 -17
  382. package/src/runtime/workflow/schedules/store.ts +209 -19
  383. package/src/runtime/workflow/schedules/types.ts +2 -4
  384. package/src/runtime/workflow/schedules/work-continuation.ts +26 -13
  385. package/src/testing/test-governance.ts +8 -40
  386. package/assets/reference-configs/heartbeat-triage.md +0 -57
  387. package/assets/templates/helpers/harness-trace-grade.sh +0 -150
  388. package/assets/templates/helpers/heartbeat-triage.sh +0 -361
  389. package/assets/templates/helpers/maintenance-triage.sh +0 -167
  390. package/docs/architecture/current/approved-target-architecture.zh-CN.md +0 -1501
  391. package/docs/architecture/current/architecture-invariants.md +0 -331
  392. package/docs/architecture/current/automation-and-schedule-engine.md +0 -459
  393. package/docs/architecture/current/codegraph-context-provider.md +0 -238
  394. package/docs/architecture/current/control-plane-authority-inventory.md +0 -94
  395. package/docs/architecture/current/controller-repository-decoupling.md +0 -148
  396. package/docs/architecture/current/dispatch-and-agent-strategy.md +0 -373
  397. package/docs/architecture/current/entity-model.md +0 -612
  398. package/docs/architecture/current/external-plugin-governance.md +0 -396
  399. package/docs/architecture/current/failure-recovery.md +0 -447
  400. package/docs/architecture/current/governance.md +0 -213
  401. package/docs/architecture/current/human-interaction-plane.md +0 -87
  402. package/docs/architecture/current/implementation-status.md +0 -128
  403. package/docs/architecture/current/job-and-run-lifecycle.md +0 -413
  404. package/docs/architecture/current/legacy-governance.md +0 -58
  405. package/docs/architecture/current/local-workspace-target-grants.md +0 -70
  406. package/docs/architecture/current/migration-roadmap.md +0 -105
  407. package/docs/architecture/current/multi-repository-execution.md +0 -371
  408. package/docs/architecture/current/operations-runbook.md +0 -45
  409. package/docs/architecture/current/peer-supercontroller-runtime.md +0 -32
  410. package/docs/architecture/current/personal-assistant-plugin-baseline.md +0 -206
  411. package/docs/architecture/current/repository-access-modes.md +0 -102
  412. package/docs/architecture/current/route-policy.md +0 -15
  413. package/docs/architecture/current/route-session-concurrency.md +0 -85
  414. package/docs/architecture/current/runtime-architecture-simplification.md +0 -214
  415. package/docs/architecture/current/runtime-directory-map.md +0 -49
  416. package/docs/architecture/current/runtime-health-and-resource-lifecycle.md +0 -85
  417. package/docs/architecture/current/scheduler-and-resource-claims.md +0 -422
  418. package/docs/architecture/current/session-aware-execution-and-authorization.md +0 -77
  419. package/docs/architecture/current/system-overview.md +0 -169
  420. package/docs/architecture/current/target-requirements-traceability.md +0 -202
  421. package/docs/architecture/current/thin-harness-governance-policy.md +0 -32
  422. package/docs/architecture/current/thin-harness-v1.md +0 -321
  423. package/docs/architecture/current/verification-and-release-gates.md +0 -391
  424. package/docs/forge-autonomous-goal-loop.md +0 -9
  425. package/docs/forge-provider-configuration.md +0 -7
  426. package/docs/operations/chatgpt-personal-assistant-runtime.md +0 -93
  427. package/docs/operations/gmail-assistant-routines.md +0 -186
  428. package/docs/operations/personal-assistant-operator-guide.md +0 -61
  429. package/docs/operations/provider-configuration.md +0 -31
  430. package/scripts/harness-trace-grade.sh +0 -150
  431. package/scripts/heartbeat-triage.sh +0 -361
  432. package/scripts/maintenance-triage.sh +0 -167
  433. package/src/cli/local-bridge/frontend/src/features/settings/SettingsView.tsx +0 -2
  434. package/src/cli/repositories/goal-registry.ts +0 -239
  435. package/src/runtime/assistant/action-proposals.ts +0 -279
  436. package/src/runtime/assistant/intent.ts +0 -395
  437. package/src/runtime/assistant/model-provider.ts +0 -460
  438. package/src/runtime/assistant/openapi.ts +0 -223
  439. package/src/runtime/assistant/policy.ts +0 -89
  440. package/src/runtime/assistant/readiness.ts +0 -258
  441. package/src/runtime/assistant/routine-runtime.ts +0 -477
  442. package/src/runtime/assistant/schedule-binding.ts +0 -171
  443. package/src/runtime/assistant/standing-grants.ts +0 -375
  444. package/src/runtime/assistant/store.ts +0 -243
  445. package/src/runtime/assistant/types.ts +0 -135
  446. package/src/runtime/control-plane/goal-loop/config-facade.ts +0 -700
  447. package/src/runtime/control-plane/goal-loop/config-store.ts +0 -570
  448. package/src/runtime/control-plane/goal-loop/config-types.ts +0 -213
  449. package/src/runtime/control-plane/goal-loop/executor-router.ts +0 -109
  450. package/src/runtime/control-plane/goal-loop/failure-taxonomy.ts +0 -149
  451. package/src/runtime/control-plane/goal-loop/goal-contract-store.ts +0 -304
  452. package/src/runtime/control-plane/goal-loop/goal-loop-engine.ts +0 -1001
  453. package/src/runtime/control-plane/goal-loop/handoff-packet.ts +0 -160
  454. package/src/runtime/control-plane/goal-loop/index.ts +0 -13
  455. package/src/runtime/control-plane/goal-loop/local-tools.ts +0 -290
  456. package/src/runtime/control-plane/goal-loop/policy-gates.ts +0 -203
  457. package/src/runtime/control-plane/goal-loop/provider-dispatch.ts +0 -93
  458. package/src/runtime/control-plane/goal-loop/provider-registry.ts +0 -545
  459. package/src/runtime/control-plane/goal-loop/types.ts +0 -378
  460. package/src/runtime/control-plane/startup-recovery.ts +0 -198
  461. package/src/runtime/gateway/mcp/resource-policy.ts +0 -186
  462. package/src/runtime/personal-assistant/gmail-triage-manager.ts +0 -231
  463. package/src/runtime/personal-assistant/reporting-runtime.ts +0 -344
  464. package/src/runtime/personal-assistant/triage-runtime.ts +0 -748
  465. package/src/runtime/workflow/findings/store.ts +0 -204
  466. package/src/runtime/workflow/findings/types.ts +0 -58
  467. package/src/runtime/workflow/portfolio/engine.ts +0 -20
  468. package/src/runtime/workflow/portfolio/store.ts +0 -185
  469. package/src/runtime/workflow/portfolio/types.ts +0 -29
@@ -1,169 +0,0 @@
1
- # Controller Runtime System Overview
2
-
3
- > Status: **Runtime Authority**
4
- >
5
- > Control convergence: ChatGPT/human Controller owns semantic understanding and commits Direct/Process/Durable Work/Plan only after sufficient context; Forge does not classify every request at ingress. `RouteDecision` owns execution mechanics after that commitment, while unrelated Work/Plan state never upgrades or blocks ordinary Direct execution. Semantic ownership, execution depth, and resource placement stay independent. CodeGraph/lexical/Forge relations are bounded impact evidence, not another decision authority.
6
-
7
- ## 1. System Definition
8
-
9
- Forge Controller Runtime is an Agent Engineering Control Plane for one or more local Git repositories. ChatGPT is the primary semantic Controller: it may inspect first, then choose whether a request needs only a Direct action, a Process, finite durable Work, a Plan, or a Workflow. Local UI, CLI and integrations can submit the same explicit decisions and commands. Forge supplies bounded context, hard policy/resource constraints, persistence, execution and machine evidence; it does not replace the Controller with prompt classifiers or Plan/Work ceremony.
10
-
11
- ### 1.1 End-to-end authority map
12
-
13
- ```text
14
- User request
15
- -> ChatGPT / human Controller
16
- -> Explore when needed: rh_context + raw reads + CodeGraph/Runtime/history evidence
17
- -> semantic commitment: answer | Direct | Process | finite Work | Plan | Workflow
18
- -> Forge execution boundary
19
- -> hard policy / authorization / claims / leases / fencing
20
- -> placement and executor mechanics; no semantic reinterpretation
21
- -> execution
22
- -> Direct mutation: SafePatch -> EditSession -> MutationGate
23
- -> command/check: Unified Process Runtime
24
- -> durable responsibility: finite Work using the same execution primitives
25
- -> recurrence: Workflow/Schedule -> bounded Occurrence -> Controller decision
26
- -> machine evidence
27
- -> diff / Process receipt / check / delivery / cleanup facts
28
- -> ChatGPT / user acceptance
29
- -> accept, continue, replan, or close the semantic goal
30
- ```
31
-
32
- Authority rule: Context providers return evidence, RoutePolicy selects mechanics from a Controller commitment, Plan/Requirement/Work persist explicitly chosen durable semantics, and Process/EditSession/Evidence record execution facts. None of those layers may infer that a missing Plan/Work makes ordinary implementation unauthorized, or that a successful/failed cleanup receipt by itself proves the user's goal accepted/rejected.
33
-
34
- ## 2. Canonical Runtime Topology
35
-
36
- ```text
37
- Client
38
- -> forge-runtime (one local MCP application)
39
- MCP Transport
40
- Gateway Adapter
41
- Controller Services
42
- SQLite control plane
43
- Global Scheduler + Per-Repository Actors
44
- Evidence Plane + Materialized Projections
45
- |
46
- +-> forge-worker (bounded Runtime-owned child)
47
- command / check / Agent dispatch / integration / release gate
48
- |
49
- v
50
- repository workspace, Worktree, GitHub provider
51
- ```
52
-
53
- The durable execution model uses atomic state, bounded Worker processes, Leases, and fencing. Gateway Adapter, Controller Services, Scheduler, SQLite, and MCP Transport run inside one Canonical Runtime process, while Workers remain bounded child execution units.
54
-
55
- Supervisor, independent Daemon/Gateway services, Stable Ingress, runtime slots, bootstrap compatibility authority, restart coordinator, and component rollout/rollback are deleted from the source architecture. One Runtime owner record and one whole-release authority fence all current writes.
56
-
57
- The approved target is [`runtime-architecture-simplification.md`](runtime-architecture-simplification.md): one local MCP application, one active Runtime, one root lifecycle owner, one binary readiness result, and one whole-Runtime release/rollback unit.
58
-
59
- ## 3. Gateway Adapter
60
-
61
- Implemented as a module under:
62
-
63
- - `src/cli/mcp/server.ts`
64
- - `src/cli/mcp/transports/http.ts`
65
- - `src/runtime/gateway/mcp/router.ts`
66
- - `src/runtime/gateway/mcp/runtime-tools.ts`
67
-
68
- The Gateway Adapter performs authentication, schema validation, explicit repository selection, bounded context/results, and routing inside the Canonical Runtime. Eligible reads and bounded actions may complete Direct; repository commands and checks enter Unified Process Runtime; durable Work is admitted only when lifecycle, recovery, dependency, or isolation requirements justify it. The Gateway does not make the HTTP request the owner of a long-running process.
69
-
70
- Bounded direct reads include health, Controller context, repository state, Process/Work status, and bounded results. Overload is rejected with explicit 429/503 responses instead of unbounded accumulation.
71
-
72
- The three MCP HTTP paths share one global session registry. SSE streams are bounded transport leases, not work ownership. Client DELETE, explicit prior-session replacement, lease expiry, absolute lifetime and oldest-safe capacity eviction may close a session with no active POST; capacity management never evicts active POST work. `/health` reports the global pool, while `/ready` reports whether a new initialize can be admitted safely.
73
-
74
- ## 4. Controller Services and Scheduler
75
-
76
- Implemented under `src/runtime/control-plane/` and initialized by the Runtime Root.
77
-
78
- The in-process Controller Services and Scheduler own:
79
-
80
- - fair cross-repository dispatch;
81
- - global Worker and Agent quotas;
82
- - provider-specific quotas;
83
- - Heavy Check limits;
84
- - host free-memory and CPU-load admission;
85
- - Schedule ticks;
86
- - Portfolio DAG progress;
87
- - orphan/deadline reconciliation.
88
-
89
- Fairness state is persisted, so restart does not permanently reset repository aging.
90
-
91
- ## 5. Per-Repository Actor
92
-
93
- Each repository is represented by one logical `RepoActor`. Actor decisions are serialized by a repository-specific mailbox lock whose critical section contains only state reads, Claim decisions and state transitions.
94
-
95
- The Actor owns:
96
-
97
- - dependency readiness;
98
- - repository-local priority and aging;
99
- - Workspace/Worktree placement;
100
- - Claim acquisition;
101
- - Lease and fencing assignment;
102
- - waiting-state classification;
103
- - release barriers.
104
-
105
- Long work runs after the Actor releases its short transaction lock.
106
-
107
- ## 6. Execution Plane
108
-
109
- Forge uses three execution depths rather than forcing every operation through one durable protocol:
110
-
111
- 1. **Direct** — bounded readonly observations, Direct Edit, and explicitly authorized ephemeral workspace actions can complete without manufacturing Work, Process, Lease, or Worker state when none is required.
112
- 2. **Unified Process Runtime** — repository commands and checks spawn one physical process, persist a stable Process identity and lifecycle, and support status/wait/log/cancel attachment without re-execution. Resource Claims and Leases protect conflicting effects.
113
- 3. **Durable Work / Scheduler** — long-lived, dependency-aware, recoverable, isolated, or parallel objectives use Work contracts, repository actors, workers, and optional worktrees.
114
-
115
- Repository command input has one canonical boundary: typed argv arrays preserve executable and argument boundaries end to end and execute without a shell; legacy command strings remain supported only through an explicit compatibility shell boundary. Policy classification, path scope, authorization, Process execution, and result receipts consume the same representation.
116
-
117
- Process records and durable Work are both idempotently addressable by their caller-visible identities. Fenced writes reject stale ownership. Result bodies are bounded; oversized results become addressable Artifacts. Legacy ExecutionJob records remain readable as compatibility state but are not the ordinary command/check hot path.
118
-
119
- ## 7. Resource Plane
120
-
121
- Stable resource keys include:
122
-
123
- ```text
124
- repo-state
125
- repo-content:*
126
- workspace:<checkoutId>
127
- worktree:<identity>
128
- path:<glob>
129
- git-refs:<repoId>
130
- heavy-check:<repoId>
131
- integration:<repoId>
132
- remote:<repoId>
133
- release:<repoId>
134
- ```
135
-
136
- Unknown write scope becomes `repo-content:*`. Workspace writes are single-writer. A second automatically placed Agent may move to a unique Worktree Claim. Worktree implementation can run concurrently, but Integration and Git-ref mutation are exclusive.
137
-
138
- ## 8. Schedule and Portfolio Planes
139
-
140
- A Schedule produces one idempotent Occurrence per normalized time window. Occurrences are bounded and indexed. Shadow Mode records the decision without mutation. Budgets, cooldowns, maximum active occurrences and failure circuit breaking are persisted.
141
-
142
- A Portfolio Workflow is a cross-repository DAG. Dependencies are explicit. Failure policy is deterministic stop or Saga compensation. External side effects are blocked from unattended workflows.
143
-
144
- ## 9. Evidence and Projection Planes
145
-
146
- Evidence contains exact revision, environment fingerprint, outcome, Job identity and artifacts. Event ledgers are append-only. Large output is not embedded in hot status responses.
147
-
148
- Materialized projections summarize active Jobs, queue depth, workers, Leases, release freeze and human-attention states. HTTP readiness and Local UI read these projections rather than scanning history.
149
-
150
- ## 10. Release Plane
151
-
152
- A Release Gate is a durable Job with an exclusive repository-wide release Claim. It checks:
153
-
154
- - current Git revision and clean Workspace;
155
- - active Jobs, Runs and Local compatibility Jobs;
156
- - pending Worktree integration;
157
- - non-final Edit Sessions;
158
- - other Leases;
159
- - active-Issue Task completion;
160
- - exact-revision verification evidence;
161
- - repository/Git/GitHub identity consistency;
162
- - whole-Runtime readiness evidence;
163
- - package metadata.
164
-
165
- The successful result is a release-ready manifest. Push, merge, publish and deployment remain separate, explicitly authorized operations.
166
-
167
- ## 11. Compatibility Layer
168
-
169
- `src/cli/mcp/tools.ts` remains as a stable export facade; the preserved implementation is isolated in `src/cli/mcp/legacy-tool-service.ts`. Local Jobs and Agent Run records remain readable and operational for compatibility. In Controller mode, long compatibility implementations are invoked only by isolated Workers. The compatibility layer is not the scheduling owner.
@@ -1,202 +0,0 @@
1
- # Target Architecture Requirements Traceability
2
-
3
- > Status: **Runtime Authority**
4
- > Baseline: **2026-06-25 target architecture migration**
5
-
6
- This document maps every major section of the approved target architecture to executable implementation and verification evidence. It is a traceability index, not a second design authority.
7
-
8
- Approved input: [`approved-target-architecture.zh-CN.md`](approved-target-architecture.zh-CN.md).
9
-
10
- ## 1. Overall topology
11
-
12
- | Requirement | Status | Evidence |
13
- | --- | --- | --- |
14
- | Thin Gateway | Implemented | `src/runtime/gateway/mcp/`, `src/cli/mcp/server.ts` |
15
- | Global Scheduler | Implemented | `src/runtime/control-plane/global-scheduler/` |
16
- | Per-Repository Actor | Implemented | `src/runtime/control-plane/repo-actor/` |
17
- | Durable Job | Implemented | `src/runtime/execution/jobs/` |
18
- | Isolated Worker | Implemented | `src/runtime/execution/workers/` |
19
- | Evidence Plane | Implemented | `src/runtime/evidence/`, `src/runtime/projections/` |
20
-
21
- ## 2. Layer responsibility migration
22
-
23
- - MCP performs authentication, schema validation, repository routing, bounded projection reads and durable acknowledgement inside the Canonical Runtime.
24
- - Runtime Root owns Controller Services, scheduling, reconciliation, Schedule and Portfolio progression in the same process.
25
- - Repo Actor owns repository-local scheduling decisions and resource acquisition.
26
- - Worker owns commands, checks, Agent execution, integration and compatibility implementations.
27
- - Historical state is not used as a hot queue; active/recent/request indexes and projections are authoritative for observation.
28
-
29
- Runtime evidence: `root/runtime.ts`, `root/entry.ts`, `router.ts`, `scheduler.ts`, `actor.ts`, `worker-entry.ts`, `materialized-view.ts`.
30
-
31
- ## 3. Target process topology
32
-
33
- Implemented as one canonical application process plus isolated execution Workers:
34
-
35
- ```text
36
- forge-runtime (Runtime Root + Controller Services + Scheduler + Gateway/MCP)
37
- forge isolated Worker
38
- ```
39
-
40
- One Runtime process owns the complete local application. One Worker process executes one bounded Job and is fenced by Runtime/Job/lease identity; Worker failure does not create another Runtime owner.
41
-
42
- Verification: `tests/runtime/canonical-single-runtime.test.ts`, `scripts/smoke-mcp-http-runtime.ts`.
43
-
44
- ## 4. Architecture constitution
45
-
46
- | Constitution rule | Implementation |
47
- | --- | --- |
48
- | MCP does not execute long work | Durable router; Workbench is a Job; Controller Context is a materialized read with Worker refresh |
49
- | Persist before execute | `createExecutionJob` precedes Daemon dispatch |
50
- | Idempotent mutations | global `requestId` index plus `semanticKey` conflict detection |
51
- | Task and Run remain separate | legacy lifecycle preserved; Execution Job is a separate system entity |
52
- | One scheduler owner per repository | Repo Actor mailbox and registry |
53
- | Unknown Scope is conservative | `repo-content:*` write Claim |
54
- | Short state locks, long execution Leases | atomic JSON transactions plus renewable Lease records |
55
- | Hot paths use indexes | active/recent/request/run/integration/occurrence/portfolio/finding indexes |
56
- | Execution and observation are isolated | Worker process plus health/projection reads |
57
- | Verification binds exact Revision | Evidence record and release-gate revision checks |
58
- | Conflicts queue instead of failing | explicit `waiting_for_*` Job states |
59
- | External effects need authorization | defense-in-depth governance checks in Gateway, Schedule, Portfolio and Worker |
60
-
61
- ## 5. Work-mode and Agent strategy
62
-
63
- Direct Edit and Quick Agent remain available; historical Issue/Task assessment is compatibility/read-only after Requirement/Work cutover. Runtime dispatch persists the chosen operation and preserves allowed Agent providers, timeout and browser permissions. Explorer/Implementer/Verifier policy remains a planning concern; deterministic integration and release checks remain program-owned rather than LLM-owned.
64
-
65
- Evidence: `src/cli/controller/work-mode.ts`, `src/runtime/gateway/mcp/router.ts`, `src/runtime/execution/workers/executor.ts`.
66
-
67
- ## 6. Single-repository concurrency
68
-
69
- Implemented Claims cover:
70
-
71
- - `repo-state`;
72
- - `workspace:<checkoutId>`;
73
- - `worktree:<id>`;
74
- - `path:<glob>`;
75
- - `git-refs:<repoId>`;
76
- - `heavy-check:<repoId>`;
77
- - `integration:<repoId>`;
78
- - `remote:<repoId>`;
79
- - `release:<repoId>`.
80
-
81
- Workspace writes serialize. Independent Worktrees may execute concurrently. Integration and Git-ref changes serialize. Unknown writes conflict with repository content. Lease ownership includes Job, Attempt, Worker PID and Fencing Token.
82
-
83
- ## 7. Multi-repository scheduling
84
-
85
- Implemented:
86
-
87
- - global Worker, repository, Agent-provider and Heavy Check quotas;
88
- - CPU-load and memory admission;
89
- - P0-P4 priority with Aging;
90
- - persisted repository fairness;
91
- - Portfolio DAG validation;
92
- - stop or compensation Saga policy;
93
- - repository-local failure isolation.
94
-
95
- Evidence: `src/runtime/control-plane/global-scheduler/`, `src/runtime/workflow/portfolio/`.
96
-
97
- ## 8. Schedule architecture
98
-
99
- Implemented first-class `Schedule`, `Trigger`, `Occurrence`, `Decision`, `ExecutionJob` and `Outcome` records.
100
-
101
- Supported triggers:
102
-
103
- - interval;
104
- - manual;
105
- - five-field UTC cron;
106
- - calendar timestamp;
107
- - condition watch;
108
- - repository event;
109
- - dependency checkpoint.
110
-
111
- Safety controls include deterministic occurrence IDs, active-occurrence limit, daily budget, cooldown, exponential backoff, failure circuit breaker, stop conditions, default Shadow Mode, dirty-workspace suppression and release-freeze suppression. Automated discoveries become Candidate Findings; they cannot directly create Issue, Task, PRD or Plan.
112
-
113
- ## 9. State storage
114
-
115
- - Business intent stays in repository files: `plans/`, `tasks/`, Issue records and architecture decisions.
116
- - Runtime state stays under Controller Home by `repoId`.
117
- - Evidence, Artifacts, events, receipts, indexes and projections are independently addressable.
118
- - Writes are atomic; event records are append-only; large output is bounded or externalized as an Artifact.
119
-
120
- ## 10. 502 and latency controls
121
-
122
- Implemented internal controls:
123
-
124
- - no Agent, Check, command, integration, Workbench or release execution in the Gateway request lifetime;
125
- - `controller_context` returns a materialized snapshot immediately and refreshes in a Worker;
126
- - Local Bridge status and output use bounded snapshot readers without reconciliation or Git commands in Gateway;
127
- - MCP session limit and idle collection;
128
- - initialization, per-session and global POST backpressure;
129
- - explicit 429/503 with retry guidance;
130
- - aligned keep-alive, header and request timeouts;
131
- - bounded logs and indexed history;
132
- - split `/health`, `/ready` and repository health.
133
-
134
- External tunnel, platform and physical-network failures remain outside the local process guarantee.
135
-
136
- ## 11. Verification and release
137
-
138
- Implemented layered Evidence and an exclusive Release Gate. The gate checks workspace cleanliness, active Jobs/Runs/Edits/Integrations, Leases, required Tasks, exact-Revision verification, registry/remote/GitHub mapping, Daemon readiness and package metadata. Push, merge, tag, publish and production deployment remain separately authorized.
139
-
140
- ## 12. Agent control principles
141
-
142
- - Controller plans and reviews; Workers execute bounded operations.
143
- - Worker completion is not Task acceptance.
144
- - Verification uses declared acceptance criteria and exact Revision evidence.
145
- - Deterministic integration and release operations are program-owned.
146
- - Automation may return `nothing_to_do`, Shadow decisions or Candidate Findings without manufacturing work.
147
-
148
- ## 13. Runtime directory migration
149
-
150
- The new implementation is organized under:
151
-
152
- ```text
153
- src/runtime/gateway/
154
- src/runtime/control-plane/
155
- src/runtime/workflow/
156
- src/runtime/execution/
157
- src/runtime/resources/
158
- src/runtime/evidence/
159
- src/runtime/projections/
160
- src/runtime/release/
161
- ```
162
-
163
- The former 4,700-line MCP implementation is retained as `legacy-tool-service.ts` for compatibility and invoked in Workers. `src/cli/mcp/tools.ts` is a thin facade.
164
-
165
- ## 14. Documentation governance
166
-
167
- `docs/architecture/current/` is the only Runtime Authority. V4-V8 documents remain Historical Design. `plans/` remains a business-intent and implementation-plan catalog, not a runtime queue.
168
-
169
- ## 15. P0-P5 migration status
170
-
171
- All migration phases have executable implementations:
172
-
173
- - P0: request-lifetime execution removal and health isolation;
174
- - P1: unified Job, receipts, indexes, evidence and recovery;
175
- - P2: Repo Actor, Claims, Leases, Fencing and integration serialization;
176
- - P3: fair multi-repository scheduling and Portfolio Saga;
177
- - P4: bounded Schedule engine and Candidate Finding governance;
178
- - P5: exact-Revision verification and release gate.
179
-
180
- Detailed evidence: [`migration-roadmap.md`](migration-roadmap.md).
181
-
182
- ## 16. Standard execution flow
183
-
184
- ```text
185
- Resolve Repository
186
- -> read compact projection
187
- -> classify work mode
188
- -> select/create Requirement and Work when required
189
- -> declare Scope and Claims
190
- -> persist requestId and ExecutionJob
191
- -> return Job ID
192
- -> Repo Actor schedules
193
- -> Worker executes with heartbeat and Lease renewal
194
- -> persist Receipt, events, Artifact and Evidence
195
- -> reconcile terminal state
196
- -> integrate serially
197
- -> verify exact Revision
198
- -> accept Task
199
- -> evaluate dependency / release gate / stop
200
- ```
201
-
202
- No Worker may bypass Scope, persistent Job ownership, Claims, Evidence or verification.
@@ -1,32 +0,0 @@
1
- # Thin Harness Governance Policy
2
-
3
- ## Purpose
4
-
5
- Preserve thin harness performance goals while allowing controlled workflow evolution.
6
-
7
- ## Execution routing
8
-
9
- Direct edit is the default path for bounded, low-risk changes. Escalate to Requirement/Issue/Work only when complexity requires lifecycle tracking, parallelism, long-running execution, or additional protection.
10
-
11
- Priority order:
12
-
13
- 1. Direct edit
14
- 2. Requirement/workflow
15
- 3. Issue/task orchestration
16
- 4. Durable Goal Workloop / PlanContract coordination
17
-
18
- ## Architecture strategy changes
19
-
20
- The following changes require explicit user approval before migration:
21
-
22
- - changing the default execution mode
23
- - replacing direct execution with mandatory orchestration
24
- - changing thin harness performance goals
25
- - introducing additional lifecycle layers that affect latency
26
- - changing authority models or user entry points
27
-
28
- Storage migrations must not silently change user workflow semantics.
29
-
30
- ## Conflict handling
31
-
32
- When a refactor conflicts with an established architecture strategy, report the conflict and request approval instead of silently applying the new strategy.