@moretea-labs/forge 1.6.0 → 1.7.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 (396) hide show
  1. package/AGENTS.md +2 -0
  2. package/CHANGELOG.md +26 -0
  3. package/CLAUDE.md +2 -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/03-orchestration.partial.md +1 -1
  17. package/assets/plugin-registry.v1.json +1 -1
  18. package/assets/reference-configs/document-generation.md +1 -1
  19. package/assets/reference-configs/harness-overview.md +1 -1
  20. package/assets/reference-configs/sprint-contracts.md +3 -3
  21. package/assets/skill-version.json +2 -2
  22. package/assets/templates/contract.template.md +2 -7
  23. package/assets/templates/helpers/capture-plan.sh +2 -2
  24. package/assets/templates/helpers/check-task-workflow.sh +4 -4
  25. package/assets/templates/helpers/contract-worktree.sh +1 -21
  26. package/assets/templates/helpers/ensure-task-workflow.sh +11 -36
  27. package/assets/templates/helpers/migrate-project-template.sh +22 -45
  28. package/assets/templates/helpers/new-plan.sh +1 -1
  29. package/assets/templates/helpers/plan-to-todo.sh +12 -37
  30. package/assets/templates/helpers/ship-worktrees.sh +2 -29
  31. package/assets/templates/helpers/verify-contract.sh +1 -111
  32. package/assets/templates/helpers/verify-sprint.sh +3 -180
  33. package/assets/templates/plan.template.md +1 -1
  34. package/assets/templates/review.template.md +9 -34
  35. package/assets/workflow-contract.v1.json +10 -19
  36. package/docs/README.md +10 -10
  37. package/docs/architecture/CURRENT.md +170 -0
  38. package/docs/architecture/EVOLUTION.md +42 -0
  39. package/docs/architecture/current/README.md +4 -156
  40. package/docs/architecture/decisions/20260803-release-identity-binding-and-exit-policy.md +2 -2
  41. package/docs/architecture/decisions/20260823-immediate-controller-relay.md +53 -0
  42. package/docs/architecture/decisions/20260826-browser-runtime-v2.md +73 -0
  43. package/docs/architecture/history/README.md +7 -0
  44. package/docs/architecture/{chatgpt-handoff-facade.md → history/chatgpt-handoff-facade.md} +4 -0
  45. package/docs/architecture/{global-hook-runtime.md → history/global-hook-runtime.md} +7 -3
  46. package/docs/architecture/{ios-semantic-automation-provider-v2.md → history/ios-semantic-automation-provider-v2.md} +6 -2
  47. package/docs/architecture/history.md +3 -34
  48. package/docs/architecture/index.md +15 -98
  49. package/docs/architecture/modules/controller-runtime/transport-lifecycle.md +1 -1
  50. package/docs/architecture/reviews/2026-08-22-semantic-harness-convergence-acceptance.md +39 -0
  51. package/docs/architecture/versions/1.6.md +38 -0
  52. package/docs/architecture/versions/1.7.md +41 -0
  53. package/docs/forge-chatgpt-browser-engine.md +2 -2
  54. package/docs/forge-chatgpt-mcp-setup.md +4 -28
  55. package/docs/forge-chatgpt-supervised-automation.md +3 -3
  56. package/docs/forge-github-issue-launcher.md +1 -1
  57. package/docs/forge-runtime-self-healing-loop.md +1 -1
  58. package/docs/operations/controller-browser-plugin.md +26 -6
  59. package/docs/operations/controller-performance-and-502.md +124 -0
  60. package/docs/operations/controller-reliability-runbook.md +1 -1
  61. package/docs/operations/features.md +2 -2
  62. package/docs/operations/github-repository.md +1 -1
  63. package/docs/operations/homebrew.md +2 -2
  64. package/docs/operations/mcp-tool-exposure.md +5 -3
  65. package/docs/wiki/Architecture.md +6 -6
  66. package/docs/wiki/Implementation.md +2 -2
  67. package/docs/wiki/Integrations.md +2 -2
  68. package/docs/wiki/Work-Lifecycle.md +1 -1
  69. package/package.json +29 -10
  70. package/scripts/activate-source-baseline.ts +17 -13
  71. package/scripts/benchmark-background-check-overlap.ts +228 -0
  72. package/scripts/benchmark-mcp-host.sh +117 -0
  73. package/scripts/benchmark-mcp-transport.ts +170 -0
  74. package/scripts/benchmark-quality-harness.ts +146 -0
  75. package/scripts/benchmark-route-session-concurrency.ts +207 -6
  76. package/scripts/benchmark-thin-harness-mcp-e2e.ts +7 -1
  77. package/scripts/benchmark-typescript-navigation.ts +186 -0
  78. package/scripts/benchmark-work-efficiency.ts +334 -0
  79. package/scripts/capture-plan.sh +3 -3
  80. package/scripts/check-agent-tooling.sh +8 -35
  81. package/scripts/check-architecture-sync.sh +17 -86
  82. package/scripts/check-mcp-compatibility.ts +14 -0
  83. package/scripts/check-runtime-architecture.mjs +107 -64
  84. package/scripts/check-stable-baseline.ts +92 -0
  85. package/scripts/check-task-workflow.sh +4 -4
  86. package/scripts/contract-worktree.sh +1 -21
  87. package/scripts/ensure-task-workflow.sh +22 -55
  88. package/scripts/host-temporary-cloud-mcp-e2e.sh +265 -0
  89. package/scripts/install-standalone-recovery.ts +24 -0
  90. package/scripts/lib/project-init-lib.sh +15 -44
  91. package/scripts/migrate-project-template.sh +23 -1179
  92. package/scripts/new-plan.sh +1 -1
  93. package/scripts/plan-to-todo.sh +11 -36
  94. package/scripts/run-governed-gate.ts +2 -1
  95. package/scripts/ship-worktrees.sh +2 -29
  96. package/scripts/smoke-ios-physical-device.ts +4 -2
  97. package/scripts/smoke-runtime-recovery.ts +1 -35
  98. package/scripts/smoke-schedule-engine.ts +1 -20
  99. package/scripts/verify-contract.sh +1 -111
  100. package/scripts/verify-forge-runtime.sh +0 -1
  101. package/scripts/verify-sprint.sh +3 -180
  102. package/scripts/workflow-contract.ts +1 -5
  103. package/src/cli/commands/init-hook.ts +3 -3
  104. package/src/cli/commands/mcp.ts +9 -5
  105. package/src/cli/commands/plugin.ts +1 -1
  106. package/src/cli/commands/recovery.ts +25 -3
  107. package/src/cli/commands/runtime.ts +55 -3
  108. package/src/cli/commands/security.ts +12 -1
  109. package/src/cli/commands/setup-profile.ts +31 -21
  110. package/src/cli/controller/check-runner.ts +106 -3
  111. package/src/cli/controller/composite-result.ts +1 -1
  112. package/src/cli/controller/context/focus.ts +51 -0
  113. package/src/cli/controller/context/instruction-context.ts +114 -0
  114. package/src/cli/controller/context/known-paths.ts +76 -0
  115. package/src/cli/controller/context/query-planning.ts +110 -0
  116. package/src/cli/controller/context/rule-resolution.ts +532 -0
  117. package/src/cli/controller/context/source-materializer.ts +278 -0
  118. package/src/cli/controller/context/structural.ts +16 -0
  119. package/src/cli/controller/context/types.ts +286 -0
  120. package/src/cli/controller/context-pack.ts +785 -469
  121. package/src/cli/controller/launch-agents.ts +77 -2
  122. package/src/cli/controller/operational-plan.ts +2 -2
  123. package/src/cli/controller/work-mode.ts +6 -4
  124. package/src/cli/editing/edit-session.ts +60 -7
  125. package/src/cli/github/github.ts +133 -0
  126. package/src/cli/installer/managed-entries.ts +15 -1
  127. package/src/cli/local-bridge/console-automations.ts +54 -78
  128. package/src/cli/local-bridge/console-view-models.ts +1 -35
  129. package/src/cli/local-bridge/facade-api.ts +0 -217
  130. package/src/cli/local-bridge/frontend/src/App.tsx +3 -3
  131. package/src/cli/local-bridge/frontend/src/features/automations/AutomationsView.tsx +23 -13
  132. package/src/cli/local-bridge/frontend/src/features/capabilities/CapabilitiesView.tsx +37 -4
  133. package/src/cli/local-bridge/frontend/src/features/overview/OverviewView.tsx +6 -4
  134. package/src/cli/local-bridge/frontend/src/lib/api.ts +1 -6
  135. package/src/cli/local-bridge/frontend/src/lib/routes.ts +1 -1
  136. package/src/cli/local-bridge/frontend/src/shell/Sidebar.tsx +2 -2
  137. package/src/cli/local-bridge/frontend/src/styles.css +1 -1
  138. package/src/cli/local-bridge/frontend/src/types.ts +5 -8
  139. package/src/cli/local-bridge/job-store.ts +1 -490
  140. package/src/cli/local-bridge/server.ts +0 -513
  141. package/src/cli/local-bridge/ui-dist/app.css +1 -1
  142. package/src/cli/local-bridge/ui-dist/app.js +3703 -3757
  143. package/src/cli/mcp/auth.ts +5 -5
  144. package/src/cli/mcp/instructions.ts +3 -2
  145. package/src/cli/mcp/legacy-tool-service.ts +0 -189
  146. package/src/cli/mcp/multi-repository.ts +16 -5
  147. package/src/cli/mcp/oauth.ts +175 -26
  148. package/src/cli/mcp/repository-tools.ts +247 -107
  149. package/src/cli/mcp/server.ts +537 -111
  150. package/src/cli/mcp/tool-capability-cache.ts +1 -1
  151. package/src/cli/mcp/toolset-selection.ts +1 -1
  152. package/src/cli/mcp/toolset.ts +42 -5
  153. package/src/cli/mcp/transports/http.ts +101 -14
  154. package/src/cli/mcp/transports/session-registry.ts +43 -5
  155. package/src/cli/mcp/types.ts +3 -3
  156. package/src/cli/repositories/command-classifier.ts +101 -19
  157. package/src/cli/repositories/command-executor.ts +55 -521
  158. package/src/cli/repositories/command-process.ts +108 -0
  159. package/src/cli/repositories/command-scope.ts +99 -41
  160. package/src/cli/repositories/controller-home.ts +7 -8
  161. package/src/cli/repositories/git-command-executor.ts +2 -0
  162. package/src/cli/repositories/locks.ts +53 -16
  163. package/src/cli/repositories/repository-snapshot.ts +121 -0
  164. package/src/cli/repositories/selected-path-actions.ts +17 -9
  165. package/src/cli/repositories/structured-git.ts +61 -3
  166. package/src/cli/repository/inspector.ts +553 -63
  167. package/src/cli/repository/session-cache.ts +58 -17
  168. package/src/cli/v81-entry.ts +1 -4
  169. package/src/effects/fs-transaction.ts +85 -17
  170. package/src/runtime/context/codegraph-read-provider.ts +233 -2
  171. package/src/runtime/context/codegraph-sidecar.cjs +74 -40
  172. package/src/runtime/context/generic-lsp-provider.ts +355 -0
  173. package/src/runtime/context/lsp-client.ts +283 -0
  174. package/src/runtime/context/semantic-navigation.ts +275 -0
  175. package/src/runtime/context/swift-navigation.ts +565 -0
  176. package/src/runtime/context/typescript-navigation.ts +226 -0
  177. package/src/runtime/control-plane/dispatch-priority.ts +28 -0
  178. package/src/runtime/control-plane/execution/direct-edit-work-completion.ts +47 -8
  179. package/src/runtime/control-plane/execution/edit-validation-coordinator.ts +86 -24
  180. package/src/runtime/control-plane/execution/session-store.ts +18 -0
  181. package/src/runtime/control-plane/execution/verification-evidence.ts +58 -3
  182. package/src/runtime/control-plane/execution/work-handle-store.ts +27 -2
  183. package/src/runtime/control-plane/execution/work-lifecycle-audit.ts +258 -0
  184. package/src/runtime/control-plane/execution/work-remote-delivery.ts +215 -0
  185. package/src/runtime/control-plane/execution/work-task-receipt.ts +54 -11
  186. package/src/runtime/control-plane/execution/work-terminal-cleanup.ts +143 -8
  187. package/src/runtime/control-plane/execution/work-validation-reconciler.ts +22 -14
  188. package/src/runtime/control-plane/execution/work-verification-snapshot.ts +85 -8
  189. package/src/runtime/control-plane/facade/capability-registry.ts +129 -25
  190. package/src/runtime/control-plane/facade/controller-round-relay.ts +991 -0
  191. package/src/runtime/control-plane/facade/controller-session-store.ts +132 -1
  192. package/src/runtime/control-plane/facade/goal-workloop-access.ts +2 -0
  193. package/src/runtime/control-plane/facade/goal-workloop.ts +686 -129
  194. package/src/runtime/control-plane/facade/index.ts +1 -0
  195. package/src/runtime/control-plane/facade/plan-contract-store.ts +185 -20
  196. package/src/runtime/control-plane/facade/semantic-admission.ts +205 -0
  197. package/src/runtime/control-plane/facade/suggested-actions.ts +5 -1
  198. package/src/runtime/control-plane/facade/types.ts +22 -5
  199. package/src/runtime/control-plane/facade/work-contract-store.ts +175 -73
  200. package/src/runtime/control-plane/generated-cache-retention.ts +271 -0
  201. package/src/runtime/control-plane/global-scheduler/config.ts +44 -0
  202. package/src/runtime/control-plane/global-scheduler/dispatch-capacity.ts +80 -0
  203. package/src/runtime/control-plane/global-scheduler/durable-admission.ts +46 -0
  204. package/src/runtime/control-plane/global-scheduler/maintenance.ts +145 -0
  205. package/src/runtime/control-plane/global-scheduler/projection-refresh.ts +84 -0
  206. package/src/runtime/control-plane/global-scheduler/reconciliation.ts +3 -3
  207. package/src/runtime/control-plane/global-scheduler/scheduler.ts +273 -542
  208. package/src/runtime/control-plane/global-scheduler/source-scan.ts +59 -0
  209. package/src/runtime/control-plane/global-scheduler/state.ts +88 -0
  210. package/src/runtime/control-plane/global-scheduler/worker-attachment.ts +57 -0
  211. package/src/runtime/control-plane/global-scheduler/worker-exit-decision.ts +38 -0
  212. package/src/runtime/control-plane/global-scheduler/worker-exit-reconciler.ts +175 -0
  213. package/src/runtime/control-plane/global-scheduler/worker-launch.ts +111 -0
  214. package/src/runtime/control-plane/global-scheduler/worker-lifecycle-store.ts +64 -0
  215. package/src/runtime/control-plane/global-scheduler/worker-lifecycle.ts +150 -0
  216. package/src/runtime/control-plane/global-scheduler/worker-process.ts +119 -0
  217. package/src/runtime/control-plane/global-scheduler/worker-stderr.ts +60 -0
  218. package/src/runtime/control-plane/launcher/chatgpt-work-binding-store.ts +50 -0
  219. package/src/runtime/control-plane/launcher/chatgpt-work-continuation.ts +355 -116
  220. package/src/runtime/control-plane/launcher/launch-reservation-store.ts +40 -0
  221. package/src/runtime/control-plane/launcher/thin-launcher.ts +194 -10
  222. package/src/runtime/control-plane/persistence/controller-home-migration.ts +487 -0
  223. package/src/runtime/control-plane/persistence/sqlite-store.ts +33 -2
  224. package/src/runtime/control-plane/release-retention.ts +62 -2
  225. package/src/runtime/control-plane/routing/route-policy.ts +7 -16
  226. package/src/runtime/control-plane/runtime-status-client.ts +0 -2
  227. package/src/runtime/diagnostics/mcp-timing.ts +13 -0
  228. package/src/runtime/diagnostics/mcp-transport-benchmark.ts +129 -0
  229. package/src/runtime/diagnostics/performance.ts +24 -1
  230. package/src/runtime/evidence/event-ledger.ts +1 -1
  231. package/src/runtime/execution/jobs/store.ts +58 -4
  232. package/src/runtime/execution/jobs/types.ts +1 -1
  233. package/src/runtime/execution/managed-workspace.ts +203 -1
  234. package/src/runtime/execution/process-runtime/check-facade.ts +51 -4
  235. package/src/runtime/execution/process-runtime/check-result.ts +53 -0
  236. package/src/runtime/execution/process-runtime/check-scheduling.ts +114 -0
  237. package/src/runtime/execution/process-runtime/command-facade.ts +345 -40
  238. package/src/runtime/execution/process-runtime/gc.ts +38 -6
  239. package/src/runtime/execution/process-runtime/lightweight-managed.ts +1184 -0
  240. package/src/runtime/execution/process-runtime/persisted-check.ts +47 -4
  241. package/src/runtime/execution/process-runtime/resource-claims.ts +10 -6
  242. package/src/runtime/execution/process-runtime/runtime.ts +43 -3
  243. package/src/runtime/execution/process-runtime/store.ts +1 -0
  244. package/src/runtime/execution/process-runtime/types.ts +2 -0
  245. package/src/runtime/execution/thin-harness/async-process.ts +12 -2
  246. package/src/runtime/execution/thin-harness/search-worker.ts +54 -5
  247. package/src/runtime/execution/workers/executor.ts +0 -48
  248. package/src/runtime/gateway/mcp/execution-tools.ts +1192 -114
  249. package/src/runtime/gateway/mcp/process-tools.ts +83 -37
  250. package/src/runtime/gateway/mcp/router.ts +184 -82
  251. package/src/runtime/gateway/mcp/runtime-tool-definitions.ts +546 -0
  252. package/src/runtime/gateway/mcp/runtime-tools.ts +2224 -1589
  253. package/src/runtime/plugins/app-store-connect-adapter.ts +123 -19
  254. package/src/runtime/plugins/browser-adapter.ts +2901 -241
  255. package/src/runtime/plugins/browser-automation-service.ts +10 -0
  256. package/src/runtime/plugins/browser-handoff.ts +92 -2
  257. package/src/runtime/plugins/browser-macos-bridge.ts +582 -49
  258. package/src/runtime/plugins/browser-node-bridge.ts +6 -34
  259. package/src/runtime/plugins/browser-provider-registry.ts +109 -0
  260. package/src/runtime/plugins/browser-runtime-contract.ts +152 -0
  261. package/src/runtime/plugins/browser-runtime.ts +183 -0
  262. package/src/runtime/plugins/browser-session-authority.ts +332 -0
  263. package/src/runtime/plugins/capability-authorization-grants.ts +354 -0
  264. package/src/runtime/plugins/desktop-operator-registration.ts +8 -2
  265. package/src/runtime/plugins/external-adapter.ts +324 -3
  266. package/src/runtime/plugins/external-unix-socket.ts +7 -1
  267. package/src/runtime/plugins/first-party-registry.ts +2 -0
  268. package/src/runtime/plugins/github-adapter.ts +125 -0
  269. package/src/runtime/plugins/ios/agent-device-provider.ts +1 -1
  270. package/src/runtime/plugins/ios/agent-device-typed-provider.ts +52 -9
  271. package/src/runtime/plugins/ios/remote-xpc-hid.ts +1171 -0
  272. package/src/runtime/plugins/ios-adapter.ts +106 -16
  273. package/src/runtime/plugins/ios-agent-device.ts +234 -64
  274. package/src/runtime/plugins/ios-physical-device.ts +1143 -392
  275. package/src/runtime/plugins/lightweight-action.ts +153 -0
  276. package/src/runtime/plugins/local-system-adapter.ts +123 -6
  277. package/src/runtime/plugins/macos-capability-broker.ts +55 -9
  278. package/src/runtime/plugins/plugin-action-sidecar.ts +59 -0
  279. package/src/runtime/plugins/plugin-management-adapter.ts +49 -8
  280. package/src/runtime/plugins/resend-adapter.ts +1 -1
  281. package/src/runtime/plugins/store.ts +269 -29
  282. package/src/runtime/plugins/types.ts +35 -2
  283. package/src/runtime/plugins/xiaohongshu-publish.ts +515 -0
  284. package/src/runtime/projections/git-status-sampler.ts +16 -16
  285. package/src/runtime/projections/materialized-view.ts +28 -10
  286. package/src/runtime/recovery/maintenance-executor.ts +393 -28
  287. package/src/runtime/root/mcp-transport.ts +180 -10
  288. package/src/runtime/root/package-connector-service.ts +186 -8
  289. package/src/runtime/root/package-runtime-release.ts +143 -17
  290. package/src/runtime/root/package-runtime-service.ts +430 -22
  291. package/src/runtime/root/release-manifest.ts +7 -2
  292. package/src/runtime/root/release-materialize.ts +19 -0
  293. package/src/runtime/root/release-store.ts +48 -11
  294. package/src/runtime/root/runtime.ts +23 -5
  295. package/src/runtime/root/service.ts +100 -29
  296. package/src/runtime/root/types.ts +2 -0
  297. package/src/runtime/safe-tooling/ios-development.ts +321 -63
  298. package/src/runtime/shared/trusted-executable.ts +62 -0
  299. package/src/runtime/shared/trusted-node-executable.ts +48 -0
  300. package/src/runtime/standalone-recovery/core.ts +700 -92
  301. package/src/runtime/standalone-recovery/entry.ts +99 -23
  302. package/src/runtime/standalone-recovery/installer.ts +19 -3
  303. package/src/runtime/standalone-recovery/service-labels.ts +2 -0
  304. package/src/runtime/standalone-recovery/watchdog-heartbeat.ts +160 -0
  305. package/src/runtime/workflow/schedules/browser-probe.ts +81 -3
  306. package/src/runtime/workflow/schedules/engine.ts +287 -151
  307. package/src/runtime/workflow/schedules/github-issue-watch.ts +158 -0
  308. package/src/runtime/workflow/schedules/settlement.ts +48 -4
  309. package/src/runtime/workflow/schedules/store.ts +131 -10
  310. package/src/runtime/workflow/schedules/types.ts +2 -4
  311. package/src/runtime/workflow/schedules/work-continuation.ts +26 -13
  312. package/src/testing/test-governance.ts +8 -40
  313. package/assets/reference-configs/heartbeat-triage.md +0 -57
  314. package/assets/templates/helpers/harness-trace-grade.sh +0 -150
  315. package/assets/templates/helpers/heartbeat-triage.sh +0 -361
  316. package/assets/templates/helpers/maintenance-triage.sh +0 -167
  317. package/docs/architecture/current/approved-target-architecture.zh-CN.md +0 -1501
  318. package/docs/architecture/current/architecture-invariants.md +0 -331
  319. package/docs/architecture/current/automation-and-schedule-engine.md +0 -459
  320. package/docs/architecture/current/codegraph-context-provider.md +0 -238
  321. package/docs/architecture/current/control-plane-authority-inventory.md +0 -94
  322. package/docs/architecture/current/controller-repository-decoupling.md +0 -148
  323. package/docs/architecture/current/dispatch-and-agent-strategy.md +0 -373
  324. package/docs/architecture/current/entity-model.md +0 -612
  325. package/docs/architecture/current/external-plugin-governance.md +0 -396
  326. package/docs/architecture/current/failure-recovery.md +0 -447
  327. package/docs/architecture/current/governance.md +0 -213
  328. package/docs/architecture/current/human-interaction-plane.md +0 -87
  329. package/docs/architecture/current/implementation-status.md +0 -128
  330. package/docs/architecture/current/job-and-run-lifecycle.md +0 -413
  331. package/docs/architecture/current/legacy-governance.md +0 -58
  332. package/docs/architecture/current/local-workspace-target-grants.md +0 -70
  333. package/docs/architecture/current/migration-roadmap.md +0 -105
  334. package/docs/architecture/current/multi-repository-execution.md +0 -371
  335. package/docs/architecture/current/operations-runbook.md +0 -45
  336. package/docs/architecture/current/peer-supercontroller-runtime.md +0 -32
  337. package/docs/architecture/current/personal-assistant-plugin-baseline.md +0 -206
  338. package/docs/architecture/current/repository-access-modes.md +0 -102
  339. package/docs/architecture/current/route-policy.md +0 -15
  340. package/docs/architecture/current/route-session-concurrency.md +0 -85
  341. package/docs/architecture/current/runtime-architecture-simplification.md +0 -214
  342. package/docs/architecture/current/runtime-directory-map.md +0 -49
  343. package/docs/architecture/current/runtime-health-and-resource-lifecycle.md +0 -85
  344. package/docs/architecture/current/scheduler-and-resource-claims.md +0 -422
  345. package/docs/architecture/current/session-aware-execution-and-authorization.md +0 -77
  346. package/docs/architecture/current/system-overview.md +0 -169
  347. package/docs/architecture/current/target-requirements-traceability.md +0 -202
  348. package/docs/architecture/current/thin-harness-governance-policy.md +0 -32
  349. package/docs/architecture/current/thin-harness-v1.md +0 -321
  350. package/docs/architecture/current/verification-and-release-gates.md +0 -391
  351. package/docs/forge-autonomous-goal-loop.md +0 -9
  352. package/docs/forge-provider-configuration.md +0 -7
  353. package/docs/operations/chatgpt-personal-assistant-runtime.md +0 -93
  354. package/docs/operations/gmail-assistant-routines.md +0 -186
  355. package/docs/operations/personal-assistant-operator-guide.md +0 -61
  356. package/docs/operations/provider-configuration.md +0 -31
  357. package/scripts/harness-trace-grade.sh +0 -150
  358. package/scripts/heartbeat-triage.sh +0 -361
  359. package/scripts/maintenance-triage.sh +0 -167
  360. package/src/cli/local-bridge/frontend/src/features/settings/SettingsView.tsx +0 -2
  361. package/src/cli/repositories/goal-registry.ts +0 -239
  362. package/src/runtime/assistant/action-proposals.ts +0 -279
  363. package/src/runtime/assistant/intent.ts +0 -395
  364. package/src/runtime/assistant/model-provider.ts +0 -460
  365. package/src/runtime/assistant/openapi.ts +0 -223
  366. package/src/runtime/assistant/policy.ts +0 -89
  367. package/src/runtime/assistant/readiness.ts +0 -258
  368. package/src/runtime/assistant/routine-runtime.ts +0 -477
  369. package/src/runtime/assistant/schedule-binding.ts +0 -171
  370. package/src/runtime/assistant/standing-grants.ts +0 -375
  371. package/src/runtime/assistant/store.ts +0 -243
  372. package/src/runtime/assistant/types.ts +0 -135
  373. package/src/runtime/control-plane/goal-loop/config-facade.ts +0 -700
  374. package/src/runtime/control-plane/goal-loop/config-store.ts +0 -570
  375. package/src/runtime/control-plane/goal-loop/config-types.ts +0 -213
  376. package/src/runtime/control-plane/goal-loop/executor-router.ts +0 -109
  377. package/src/runtime/control-plane/goal-loop/failure-taxonomy.ts +0 -149
  378. package/src/runtime/control-plane/goal-loop/goal-contract-store.ts +0 -304
  379. package/src/runtime/control-plane/goal-loop/goal-loop-engine.ts +0 -1001
  380. package/src/runtime/control-plane/goal-loop/handoff-packet.ts +0 -160
  381. package/src/runtime/control-plane/goal-loop/index.ts +0 -13
  382. package/src/runtime/control-plane/goal-loop/local-tools.ts +0 -290
  383. package/src/runtime/control-plane/goal-loop/policy-gates.ts +0 -203
  384. package/src/runtime/control-plane/goal-loop/provider-dispatch.ts +0 -93
  385. package/src/runtime/control-plane/goal-loop/provider-registry.ts +0 -545
  386. package/src/runtime/control-plane/goal-loop/types.ts +0 -378
  387. package/src/runtime/control-plane/startup-recovery.ts +0 -198
  388. package/src/runtime/gateway/mcp/resource-policy.ts +0 -186
  389. package/src/runtime/personal-assistant/gmail-triage-manager.ts +0 -231
  390. package/src/runtime/personal-assistant/reporting-runtime.ts +0 -344
  391. package/src/runtime/personal-assistant/triage-runtime.ts +0 -748
  392. package/src/runtime/workflow/findings/store.ts +0 -204
  393. package/src/runtime/workflow/findings/types.ts +0 -58
  394. package/src/runtime/workflow/portfolio/engine.ts +0 -20
  395. package/src/runtime/workflow/portfolio/store.ts +0 -185
  396. package/src/runtime/workflow/portfolio/types.ts +0 -29
@@ -1,612 +0,0 @@
1
- # Controller Runtime Entity Model
2
-
3
- > Status: **Runtime Authority**
4
-
5
- ## 1. Modeling Principle
6
-
7
- Forge separates four kinds of truth:
8
-
9
- 1. **intent** — what should be achieved;
10
- 2. **execution** — what the system attempted;
11
- 3. **evidence** — what actually happened;
12
- 4. **projection** — what is convenient to display or query.
13
-
14
- Entities from different categories must not be collapsed merely because they are currently stored in adjacent files or exposed by one tool.
15
-
16
- The current Controller model also separates semantic ownership from execution depth and placement. Requirement/Plan/Work describe intent and finite delivery lineage; Direct/Process/Agent describe execution mechanisms; Workspace/Worktree/provider resources describe placement. None of those dimensions substitutes for another.
17
-
18
- ### 1.1 Current intent hierarchy
19
-
20
- ```text
21
- Requirement? long-lived user outcome
22
- -> Plan? optional decomposition/replanning contract
23
- -> Work finite recoverable objective
24
- -> Edit Session / Process / Run / Verification evidence
25
-
26
- Schedule long-lived trigger/policy
27
- -> Occurrence one bounded terminal firing
28
- ```
29
-
30
- A Requirement may have more than one active Plan slice. Current Plan rows own the forward `requirementId` relation; `Requirement.activePlanId` is migration compatibility only and MUST NOT become a second lifecycle authority. A failed/cancelled Work moves its Plan to `replanning`; a reusable slice returns to `ready` rather than pretending to be in verification.
31
-
32
- A Durable repository Work has one execution `WorkHandle` with the same Work identity. The handle records the selected checkout/worktree, execution-session binding, permission snapshot and finalization stages; it is execution state, not another user objective. New `rh_work start` creation materializes this handle and claims the initiating authenticated Controller in the same facade flow. `managedWorktree=false` means the Work does not own the current checkout/branch as disposable resources, so terminal cleanup releases lifecycle/process ownership without deleting them.
33
-
34
- Conversation/session bindings are transport and presentation preferences. They may help resume a Controller, but Work/Schedule identity survives a changed or missing conversation.
35
-
36
- ## 2. Identity Hierarchy
37
-
38
- ```text
39
- Repository (repoId)
40
- -> Checkout (checkoutId)
41
- -> Issue
42
- -> Task
43
- -> Job [0..N]
44
- -> Run [0..N]
45
- -> Edit Session [0..N]
46
- -> Verification [0..N]
47
-
48
- Schedule
49
- -> Occurrence
50
- -> Job [0..N]
51
-
52
- Portfolio Workflow
53
- -> Repository Node
54
- -> Issue / Task / Job reference
55
- ```
56
-
57
- Resource control is orthogonal:
58
-
59
- ```text
60
- Job / Run / Edit Session
61
- -> Resource Claim [0..N]
62
- -> Lease [0..1 active owner]
63
- ```
64
-
65
- ## 3. Repository
66
-
67
- ### Meaning
68
-
69
- A Repository is the stable controller identity for one logical source repository.
70
-
71
- ### Identity
72
-
73
- ```text
74
- repoId
75
- ```
76
-
77
- `repoId` is not a branch name, filesystem path, remote URL, or GitHub repository string. Those values may change while existing durable entities retain their repository identity.
78
-
79
- ### Current Implementation
80
-
81
- `RepositoryRecord` already stores stable identity, canonical root, remote metadata, checkout collection, GitHub mapping, enabled state, and Controller Home storage strategy.
82
-
83
- ### Target Architecture
84
-
85
- A Repository owns exactly one logical Repo Actor and one repository-local scheduling domain.
86
-
87
- ### Migration Rule
88
-
89
- Remote or path changes must be diagnosed and explicitly reconciled. They must not create a second active repository record for the same canonical repository or silently rebind existing entities.
90
-
91
- ## 4. Checkout
92
-
93
- A Checkout identifies one local working copy or Worktree associated with a Repository.
94
-
95
- ```text
96
- checkoutId
97
- repoId
98
- canonicalRoot
99
- branch
100
- worktree
101
- ```
102
-
103
- A Repository may have multiple Checkouts. Workspace single-writer claims are scoped to a Checkout; repository ref, integration, and release claims may be scoped to the Repository.
104
-
105
- ## 5. Issue
106
-
107
- ### Meaning
108
-
109
- An Issue is a durable container for one coherent defect, feature, investigation, or governance objective.
110
-
111
- It owns:
112
-
113
- - title and summary;
114
- - goals and non-goals;
115
- - Issue-level acceptance criteria;
116
- - related artifacts;
117
- - ordered Tasks;
118
- - collaboration links;
119
- - lifecycle and archive state.
120
-
121
- ### Rules
122
-
123
- - An Issue is not an execution attempt.
124
- - An Issue may remain active while some Tasks are done, blocked, or superseded.
125
- - Current focus is a presentation hint, not exclusive execution ownership.
126
- - An Issue becomes done only when its required Task and acceptance semantics are satisfied.
127
-
128
- ## 6. Task
129
-
130
- ### Meaning
131
-
132
- A Task is the smallest durable work-intent unit that can be independently scoped, scheduled, verified, and accepted.
133
-
134
- It owns:
135
-
136
- ```text
137
- taskId
138
- dependsOn
139
- notes
140
- runIds
141
- verification
142
- workId
143
- ```
144
-
145
- When `workId` is present, the objective, scope, checks, acceptance criteria,
146
- risk, status, and completion evidence above are compatibility fields from the
147
- legacy Task ledger. Work is the only mutable execution contract; readers may
148
- derive these fields from the linked Work, but Task writers must not maintain a
149
- second lifecycle.
150
-
151
- ### Rules
152
-
153
- - A Task has one objective.
154
- - Dependencies are Task identities, not Run identities.
155
- - Agent selection occurs at dispatch time; a stored Agent is at most a recommendation.
156
- - A Task may have multiple Runs and Edit Sessions across its history.
157
- - A Task without Work remains a legacy planning record during migration.
158
- - A Work-backed Task exposes a derived compatibility status; Work owns the
159
- mutable execution status and technical phase.
160
- - Runs and Processes are evidence and execution facts. They cannot write a
161
- Requirement outcome or promote a Work-backed Task to completion.
162
-
163
- ### Compatibility Lifecycle
164
-
165
- ```text
166
- backlog
167
- -> analysis
168
- -> planned
169
- -> ready
170
- -> executing
171
- -> review
172
- -> integrated
173
- -> verifying
174
- -> verified
175
- -> done
176
- ```
177
-
178
- Alternative transitions include:
179
-
180
- ```text
181
- ready/executing/review/verifying
182
- -> blocked
183
- -> changes_requested
184
- -> ready or executing
185
-
186
- any non-terminal
187
- -> cancelled
188
- -> superseded
189
- ```
190
-
191
- ### Current Implementation
192
-
193
- Current status names include `running` instead of a distinct `executing` abstraction and include compatibility states such as `launch_blocked`. Effective status also incorporates the latest Run.
194
-
195
- ### Migration Rule
196
-
197
- Existing status values remain readable for migration and UI compatibility. The
198
- canonical Work phase vocabulary is deliberately smaller:
199
-
200
- ```text
201
- implementation -> verification -> delivery -> cleanup
202
- ```
203
-
204
- The phase is technical execution context, not a user-facing Requirement
205
- lifecycle. A Work completion receipt must identify the Work, exact target
206
- branch/revision, valid delivery reachability, and blocker-free cleanup before a
207
- terminal completed Work can be written.
208
-
209
- ## 7. Job
210
-
211
- ### Meaning
212
-
213
- A Job is one accepted asynchronous system operation.
214
-
215
- Examples:
216
-
217
- - dispatch an existing Task;
218
- - start a Quick Agent session;
219
- - run a named check;
220
- - verify an Edit Session;
221
- - execute a repository command;
222
- - integrate a reviewed Run;
223
- - execute a release gate;
224
- - reconcile stale state;
225
- - process one Schedule Occurrence.
226
-
227
- ### Required Identity
228
-
229
- ```text
230
- jobId
231
- repoId
232
- operationType
233
- requestId
234
- semanticKey
235
- ```
236
-
237
- ### Required Metadata
238
-
239
- ```text
240
- createdAt
241
- updatedAt
242
- status
243
- requestedBy
244
- payloadRef or bounded payload
245
- resultRef
246
- error
247
- attempt
248
- parentJobId
249
- correlationId
250
- causationId
251
- deadlineAt
252
- ```
253
-
254
- ### Ownership
255
-
256
- The Repo Actor owns Job admission and repository-local ordering. A Worker owns execution only while holding the Job's valid Lease.
257
-
258
- ### Rules
259
-
260
- - Job creation precedes execution.
261
- - A Job may create or link a Run, but is not a Run.
262
- - Terminal Job records are immutable except for append-only audit annotations.
263
- - Retry creates a new Job attempt linked to the prior Job unless the operation contract defines retry inside the same durable Job.
264
-
265
- ## 8. Run
266
-
267
- ### Meaning
268
-
269
- A Run is one Agent execution attempt for one Task.
270
-
271
- It owns:
272
-
273
- ```text
274
- runId
275
- issueId
276
- taskId
277
- agent
278
- provider
279
- executionMode
280
- repoRoot / executionRoot
281
- baseRevision
282
- process identity
283
- timeout / deadline
284
- heartbeat
285
- stdout / stderr / result / events
286
- terminal outcome
287
- integration metadata
288
- ```
289
-
290
- ### Rules
291
-
292
- - A Run never changes which Task objective it attempts.
293
- - A failed, cancelled, timed-out, or unknown Run remains historical evidence.
294
- - Retry creates a new Run.
295
- - A successful isolated Run is not accepted until its reviewed changes are integrated or explicitly represented by an approved external collaboration path.
296
- - A Run self-report cannot mark its Task done.
297
-
298
- ## 9. Direct Edit Session
299
-
300
- ### Meaning
301
-
302
- A Direct Edit Session is a transactional sequence of bounded deterministic file operations controlled by the Controller.
303
-
304
- It owns:
305
-
306
- ```text
307
- sessionId
308
- purpose
309
- allowedPaths
310
- baseRevision
311
- revisions
312
- operations
313
- savepoints
314
- backups
315
- aggregateDiff
316
- requestedChecks
317
- checkResults
318
- review metadata
319
- ```
320
-
321
- ### Current Lifecycle
322
-
323
- ```text
324
- open
325
- -> dirty
326
- -> checked
327
- -> finalized
328
-
329
- dirty/checked
330
- -> check_failed
331
- -> dirty
332
-
333
- open/dirty/checked/check_failed
334
- -> rolled_back
335
- ```
336
-
337
- ### Rules
338
-
339
- - Each patch batch creates a numbered Revision.
340
- - Every operation records before/after hashes where applicable.
341
- - Checks apply to the current Edit Session Revision.
342
- - A failed check does not require discarding the session; another correction Revision may follow.
343
- - Finalization closes the transaction but does not by itself prove Task-level acceptance.
344
-
345
- ## 10. Integration
346
-
347
- Integration is a deterministic operation that applies one reviewed change set to a target Checkout.
348
-
349
- Integration may be represented as a dedicated Job and produces an Integration Record containing:
350
-
351
- ```text
352
- sourceRunId or sourceEditSessionId
353
- sourceBaseRevision
354
- targetCheckoutId
355
- targetRevisionBefore
356
- targetRevisionAfter
357
- reviewedDiffHash
358
- appliedFiles
359
- conflicts
360
- cleanupOutcome
361
- ```
362
-
363
- Integration is not an Agent role. Conflicts are explicit outcomes, not instructions to silently rebase or overwrite.
364
-
365
- ## 11. Verification
366
-
367
- ### Meaning
368
-
369
- Verification is persisted evidence that declared checks and acceptance criteria were evaluated against a specific repository state.
370
-
371
- A Verification Record owns:
372
-
373
- ```text
374
- verificationId or embedded identity
375
- repoId
376
- checkoutId
377
- revision
378
- runId / editSessionId / integrationId
379
- reviewedDiffHash
380
- checkResults
381
- commandEvidence
382
- acceptanceResults
383
- reviewer
384
- verifiedAt
385
- autoCompleted
386
- ```
387
-
388
- ### Rules
389
-
390
- - Verification binds to an exact Revision.
391
- - Evidence from an older relevant Revision becomes stale.
392
- - Verification may fail and lead to `changes_requested`.
393
- - Required checks are executed by the Controller or trusted repository systems; caller-provided success flags are not authoritative.
394
-
395
- ## 12. Acceptance
396
-
397
- Acceptance is the workflow decision that evidence satisfies the Task or Issue contract.
398
-
399
- Acceptance is distinct from Verification:
400
-
401
- - Verification asks whether evidence passes the declared criteria.
402
- - Acceptance asks whether the work may enter its final workflow state.
403
-
404
- Low-risk work may auto-accept when policy and evidence allow. High-risk or destructive work requires human acceptance.
405
-
406
- ## 13. Check Execution
407
-
408
- A Check Execution is a Job running one named deterministic repository check.
409
-
410
- Its semantic identity includes:
411
-
412
- ```text
413
- repoId
414
- checkoutId
415
- checkId
416
- revision
417
- environmentFingerprint
418
- timeout contract
419
- ```
420
-
421
- Identical active semantic identities may share one physical execution with independent subscribers. Completed evidence may be reused only while the cache key remains valid.
422
-
423
- ## 14. Resource Claim
424
-
425
- A Resource Claim declares what an operation needs before it can run.
426
-
427
- ```text
428
- claimId
429
- repoId
430
- jobId
431
- resourceKey
432
- mode: shared | exclusive
433
- scope
434
- state: requested | granted | released | expired
435
- ```
436
-
437
- Examples:
438
-
439
- ```text
440
- workspace:<checkoutId>
441
- worktree-slot:<repoId>
442
- path:<repoId>:src/cli/mcp/**
443
- git-index:<checkoutId>
444
- git-refs:<repoId>
445
- heavy-check:<repoId>
446
- integration:<checkoutId>
447
- release:<repoId>
448
- remote-write:<repoId>
449
- ```
450
-
451
- A Claim expresses scheduling intent. A Lease expresses temporary execution ownership.
452
-
453
- ## 15. Lease
454
-
455
- A Lease grants temporary ownership of one resource to one Job.
456
-
457
- ```text
458
- leaseId
459
- resourceKey
460
- ownerJobId
461
- fencingToken
462
- acquiredAt
463
- expiresAt
464
- heartbeatAt
465
- releasedAt
466
- ```
467
-
468
- Rules:
469
-
470
- - Leases expire unless renewed.
471
- - A newer fencing token invalidates writes from older owners.
472
- - A Worker process identity is evidence, not Lease identity.
473
- - Process death allows reconciliation but does not itself define the final business outcome.
474
-
475
- ## 16. Schedule
476
-
477
- A Schedule defines a recurring or condition-driven automation policy.
478
-
479
- It owns:
480
-
481
- ```text
482
- scheduleId
483
- repository selector or portfolio selector
484
- trigger
485
- policy
486
- work template
487
- budget
488
- retry and backoff
489
- stop conditions
490
- enabled state
491
- ```
492
-
493
- A Schedule does not execute forever. It creates bounded Occurrences.
494
-
495
- ## 17. Occurrence
496
-
497
- An Occurrence is one trigger window of one Schedule.
498
-
499
- ```text
500
- occurrenceId
501
- scheduleId
502
- repoId
503
- windowKey
504
- requestId
505
- status
506
- decision
507
- jobIds
508
- budgetUsed
509
- outcome
510
- nextEligibleAt
511
- ```
512
-
513
- One Schedule and window key may have at most one Occurrence. Outcomes include:
514
-
515
- ```text
516
- nothing_to_do
517
- work_dispatched
518
- work_completed
519
- work_failed
520
- external_blocker
521
- human_attention_required
522
- release_ready
523
- budget_exhausted
524
- cancelled
525
- ```
526
-
527
- ## 18. Candidate Finding
528
-
529
- A Candidate Finding is a structured automation observation that is not yet a formal Issue or Task.
530
-
531
- It contains:
532
-
533
- ```text
534
- findingId
535
- semanticKey
536
- repoId
537
- sourceOccurrenceId
538
- evidence
539
- confidence
540
- firstSeenAt
541
- lastSeenAt
542
- occurrenceCount
543
- status
544
- ```
545
-
546
- Promotion requires configured evidence. Repeated speculative suggestions must deduplicate instead of generating unlimited Issues.
547
-
548
- ## 19. Portfolio Workflow
549
-
550
- A Portfolio Workflow coordinates dependency-aware work across multiple repositories.
551
-
552
- It owns repository nodes and cross-repository dependencies but delegates each repository-local operation to that repository's Actor.
553
-
554
- It uses Saga semantics rather than distributed atomic commit:
555
-
556
- ```text
557
- prepare -> execute node -> verify node -> checkpoint -> continue
558
- \-> stop or compensate
559
- ```
560
-
561
- ## 20. Event and Projection
562
-
563
- An Event is append-only history:
564
-
565
- ```text
566
- eventId
567
- eventType
568
- repoId
569
- entityType
570
- entityId
571
- requestId
572
- correlationId
573
- causationId
574
- revision
575
- occurredAt
576
- dataRef
577
- ```
578
-
579
- A Projection is a rebuildable read model. Projection corruption must not rewrite source lifecycle state; it is repaired from durable entities and events.
580
-
581
- ## 21. Relationship Rules
582
-
583
- - One Issue owns many Tasks.
584
- - One Task may own many Runs, Jobs, Edit Sessions, and Verification records.
585
- - One Job may link at most one primary Run but may depend on child Jobs.
586
- - One Run belongs to exactly one Task.
587
- - One Occurrence belongs to exactly one Schedule and may create many Jobs.
588
- - One active Lease has one owner Job and one fencing token.
589
- - One resource may have many compatible shared Claims or one exclusive owner.
590
- - One Verification applies to one exact repository Revision.
591
-
592
- ## 22. Deletion and Retention
593
-
594
- Durable workflow and evidence entities are normally archived, not deleted.
595
-
596
- Ephemeral Quick Agent Issue metadata may be cleaned after terminal completion, but Run and Job evidence remains durable according to retention policy.
597
-
598
- Runtime projections, expired Leases, caches, and disposable Worktrees may be removed after durable terminal evidence and cleanup records exist.
599
-
600
- ## 22. Structured Execution Outcome
601
-
602
- A Job result and a Job failure are separate concepts. Durable execution records may contain all of the following independently:
603
-
604
- ```text
605
- result bounded operation-specific value
606
- outcome.process exit code, timeout, stdout/stderr artifact paths
607
- outcome.policy allowed, approval-required, or rejected decision
608
- outcome.infrastructure storage, spawn, transport, or runtime failure
609
- error terminal workflow error when the Job did not succeed
610
- ```
611
-
612
- Successful stdout is never stored in `error`. Compatibility Local Jobs project the durable Execution Job status, result, and structured outcome without becoming a second source of lifecycle truth.