@moretea-labs/forge 1.5.1 → 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.
- package/AGENTS.md +2 -0
- package/CHANGELOG.md +46 -0
- package/CLAUDE.md +2 -0
- package/DESIGN.md +7 -2
- package/README.md +4 -4
- package/README.zh-CN.md +2 -2
- package/SKILL.md +2 -2
- package/THIRD_PARTY_NOTICES.md +1 -1
- package/agents/openai.yaml +1 -1
- package/assets/hooks/hook-input.sh +11 -8
- package/assets/hooks/lib/session-state.sh +10 -7
- package/assets/hooks/lib/workflow-state.sh +13 -177
- package/assets/hooks/post-tool-observer.sh +8 -2
- package/assets/hooks/pre-edit-guard.sh +8 -39
- package/assets/hooks/prompt-guard.sh +7 -83
- package/assets/hooks/session-start-context.sh +56 -1
- package/assets/partials/05-workflow.partial.md +1 -1
- package/assets/partials-agents/03-orchestration.partial.md +1 -1
- package/assets/plugin-registry.v1.json +54 -3
- package/assets/reference-configs/document-generation.md +1 -1
- package/assets/reference-configs/harness-overview.md +1 -1
- package/assets/reference-configs/hook-operations.md +1 -1
- package/assets/reference-configs/sprint-contracts.md +3 -3
- package/assets/skill-version.json +2 -2
- package/assets/templates/contract.template.md +2 -7
- package/assets/templates/helpers/capture-plan.sh +2 -2
- package/assets/templates/helpers/check-task-workflow.sh +4 -4
- package/assets/templates/helpers/contract-worktree.sh +1 -21
- package/assets/templates/helpers/ensure-task-workflow.sh +13 -38
- package/assets/templates/helpers/migrate-project-template.sh +22 -45
- package/assets/templates/helpers/new-plan.sh +1 -1
- package/assets/templates/helpers/plan-to-todo.sh +12 -37
- package/assets/templates/helpers/ship-worktrees.sh +2 -29
- package/assets/templates/helpers/sprint-backlog.sh +6 -6
- package/assets/templates/helpers/verify-contract.sh +1 -111
- package/assets/templates/helpers/verify-sprint.sh +3 -180
- package/assets/templates/plan.template.md +1 -1
- package/assets/templates/review.template.md +9 -34
- package/assets/workflow-contract.v1.json +10 -19
- package/docs/README.md +10 -10
- package/docs/architecture/CURRENT.md +170 -0
- package/docs/architecture/EVOLUTION.md +42 -0
- package/docs/architecture/current/README.md +4 -156
- package/docs/architecture/decisions/20260803-release-identity-binding-and-exit-policy.md +2 -2
- package/docs/architecture/decisions/20260823-immediate-controller-relay.md +53 -0
- package/docs/architecture/decisions/20260826-browser-runtime-v2.md +73 -0
- package/docs/architecture/history/README.md +7 -0
- package/docs/architecture/{chatgpt-handoff-facade.md → history/chatgpt-handoff-facade.md} +4 -0
- package/docs/architecture/{global-hook-runtime.md → history/global-hook-runtime.md} +7 -3
- package/docs/architecture/{ios-semantic-automation-provider-v2.md → history/ios-semantic-automation-provider-v2.md} +6 -2
- package/docs/architecture/history.md +3 -34
- package/docs/architecture/index.md +15 -98
- package/docs/architecture/modules/controller-runtime/transport-lifecycle.md +1 -1
- package/docs/architecture/reviews/2026-08-22-semantic-harness-convergence-acceptance.md +39 -0
- package/docs/architecture/versions/1.6.md +38 -0
- package/docs/architecture/versions/1.7.md +41 -0
- package/docs/forge-chatgpt-browser-engine.md +2 -2
- package/docs/forge-chatgpt-mcp-setup.md +4 -28
- package/docs/forge-chatgpt-supervised-automation.md +3 -3
- package/docs/forge-github-issue-launcher.md +1 -1
- package/docs/forge-runtime-self-healing-loop.md +1 -1
- package/docs/operations/controller-browser-plugin.md +38 -22
- package/docs/operations/controller-performance-and-502.md +124 -0
- package/docs/operations/controller-reliability-runbook.md +1 -1
- package/docs/operations/features.md +3 -3
- package/docs/operations/github-repository.md +1 -1
- package/docs/operations/homebrew.md +2 -2
- package/docs/operations/mcp-tool-exposure.md +5 -3
- package/docs/tutorials/01-install-and-start.md +1 -1
- package/docs/tutorials/01-install-and-start.zh-CN.md +1 -1
- package/docs/wiki/Architecture.md +6 -6
- package/docs/wiki/Implementation.md +2 -2
- package/docs/wiki/Installation.md +1 -1
- package/docs/wiki/Integrations.md +2 -2
- package/docs/wiki/Quick-Start.md +1 -1
- package/docs/wiki/Work-Lifecycle.md +1 -1
- package/package.json +29 -10
- package/scripts/activate-source-baseline.ts +17 -13
- package/scripts/benchmark-background-check-overlap.ts +228 -0
- package/scripts/benchmark-mcp-host.sh +117 -0
- package/scripts/benchmark-mcp-transport.ts +170 -0
- package/scripts/benchmark-quality-harness.ts +146 -0
- package/scripts/benchmark-route-session-concurrency.ts +207 -6
- package/scripts/benchmark-thin-harness-mcp-e2e.ts +7 -1
- package/scripts/benchmark-typescript-navigation.ts +186 -0
- package/scripts/benchmark-work-efficiency.ts +334 -0
- package/scripts/capture-plan.sh +3 -3
- package/scripts/check-agent-tooling.sh +8 -35
- package/scripts/check-architecture-sync.sh +17 -86
- package/scripts/check-mcp-compatibility.ts +14 -0
- package/scripts/check-public-docs.sh +14 -1
- package/scripts/check-runtime-architecture.mjs +107 -64
- package/scripts/check-stable-baseline.ts +92 -0
- package/scripts/check-task-workflow.sh +4 -4
- package/scripts/contract-worktree.sh +1 -21
- package/scripts/ensure-task-workflow.sh +22 -55
- package/scripts/host-temporary-cloud-mcp-e2e.sh +265 -0
- package/scripts/install-standalone-recovery.ts +24 -0
- package/scripts/lib/project-init-lib.sh +15 -44
- package/scripts/migrate-chatgpt-automation-schedules.ts +64 -0
- package/scripts/migrate-project-template.sh +23 -1179
- package/scripts/new-plan.sh +1 -1
- package/scripts/plan-to-todo.sh +11 -36
- package/scripts/run-governed-gate.ts +2 -1
- package/scripts/ship-worktrees.sh +2 -29
- package/scripts/smoke-ios-physical-device.ts +4 -2
- package/scripts/smoke-runtime-recovery.ts +1 -35
- package/scripts/smoke-schedule-engine.ts +1 -20
- package/scripts/sprint-backlog.sh +1 -1
- package/scripts/verify-contract.sh +1 -111
- package/scripts/verify-forge-runtime.sh +0 -1
- package/scripts/verify-sprint.sh +3 -180
- package/scripts/workflow-contract.ts +1 -5
- package/src/cli/commands/chatgpt.ts +31 -2
- package/src/cli/commands/init-hook.ts +3 -3
- package/src/cli/commands/mcp.ts +9 -5
- package/src/cli/commands/plugin.ts +37 -10
- package/src/cli/commands/recovery.ts +25 -3
- package/src/cli/commands/runtime.ts +55 -3
- package/src/cli/commands/security.ts +12 -1
- package/src/cli/commands/setup-profile.ts +31 -21
- package/src/cli/controller/check-runner.ts +106 -3
- package/src/cli/controller/composite-result.ts +1 -1
- package/src/cli/controller/context/focus.ts +51 -0
- package/src/cli/controller/context/instruction-context.ts +114 -0
- package/src/cli/controller/context/known-paths.ts +76 -0
- package/src/cli/controller/context/query-planning.ts +110 -0
- package/src/cli/controller/context/rule-resolution.ts +532 -0
- package/src/cli/controller/context/source-materializer.ts +278 -0
- package/src/cli/controller/context/structural.ts +16 -0
- package/src/cli/controller/context/types.ts +286 -0
- package/src/cli/controller/context-pack.ts +898 -430
- package/src/cli/controller/launch-agents.ts +77 -2
- package/src/cli/controller/operational-plan.ts +2 -2
- package/src/cli/controller/work-mode.ts +6 -4
- package/src/cli/editing/edit-session.ts +60 -7
- package/src/cli/github/github.ts +133 -0
- package/src/cli/hook/prompt-guard-decision.ts +17 -18
- package/src/cli/hook/prompt-intents.ts +1 -1
- package/src/cli/installer/managed-entries.ts +15 -1
- package/src/cli/local-bridge/console-automations.ts +225 -67
- package/src/cli/local-bridge/console-view-models.ts +3 -35
- package/src/cli/local-bridge/facade-api.ts +2 -217
- package/src/cli/local-bridge/frontend/src/App.tsx +3 -3
- package/src/cli/local-bridge/frontend/src/features/automations/AutomationsView.tsx +153 -3
- package/src/cli/local-bridge/frontend/src/features/capabilities/CapabilitiesView.tsx +37 -4
- package/src/cli/local-bridge/frontend/src/features/overview/OverviewView.tsx +183 -3
- package/src/cli/local-bridge/frontend/src/features/repositories/RepositoriesView.tsx +1 -1
- package/src/cli/local-bridge/frontend/src/features/work/WorkView.tsx +4 -3
- package/src/cli/local-bridge/frontend/src/lib/api.ts +18 -11
- package/src/cli/local-bridge/frontend/src/lib/routes.ts +1 -1
- package/src/cli/local-bridge/frontend/src/shell/CommandBar.tsx +1 -1
- package/src/cli/local-bridge/frontend/src/shell/Sidebar.tsx +4 -3
- package/src/cli/local-bridge/frontend/src/styles.css +27 -11
- package/src/cli/local-bridge/frontend/src/types.ts +8 -7
- package/src/cli/local-bridge/job-store.ts +1 -490
- package/src/cli/local-bridge/server.ts +29 -532
- package/src/cli/local-bridge/ui-dist/app.css +1 -1
- package/src/cli/local-bridge/ui-dist/app.js +5101 -4967
- package/src/cli/mcp/auth.ts +5 -5
- package/src/cli/mcp/instructions.ts +3 -2
- package/src/cli/mcp/legacy-tool-service.ts +0 -189
- package/src/cli/mcp/multi-repository.ts +16 -5
- package/src/cli/mcp/oauth.ts +175 -26
- package/src/cli/mcp/paths.ts +8 -2
- package/src/cli/mcp/repository-tools.ts +356 -101
- package/src/cli/mcp/server.ts +625 -54
- package/src/cli/mcp/tool-capability-cache.ts +1 -1
- package/src/cli/mcp/toolset-selection.ts +1 -1
- package/src/cli/mcp/toolset.ts +42 -5
- package/src/cli/mcp/transports/http.ts +125 -15
- package/src/cli/mcp/transports/session-registry.ts +67 -5
- package/src/cli/mcp/types.ts +3 -3
- package/src/cli/repositories/command-classifier.ts +209 -14
- package/src/cli/repositories/command-executor.ts +55 -521
- package/src/cli/repositories/command-process.ts +108 -0
- package/src/cli/repositories/command-scope.ts +99 -41
- package/src/cli/repositories/controller-home.ts +7 -8
- package/src/cli/repositories/git-command-executor.ts +2 -0
- package/src/cli/repositories/locks.ts +53 -16
- package/src/cli/repositories/repository-snapshot.ts +121 -0
- package/src/cli/repositories/safe-patch.ts +6 -4
- package/src/cli/repositories/selected-path-actions.ts +17 -9
- package/src/cli/repositories/structured-git.ts +110 -10
- package/src/cli/repository/inspector.ts +565 -62
- package/src/cli/repository/session-cache.ts +58 -17
- package/src/cli/v81-entry.ts +1 -4
- package/src/effects/fs-transaction.ts +85 -17
- package/src/runtime/context/codegraph-read-provider.ts +233 -2
- package/src/runtime/context/codegraph-sidecar.cjs +74 -40
- package/src/runtime/context/generic-lsp-provider.ts +355 -0
- package/src/runtime/context/lsp-client.ts +283 -0
- package/src/runtime/context/semantic-navigation.ts +275 -0
- package/src/runtime/context/swift-navigation.ts +565 -0
- package/src/runtime/context/typescript-navigation.ts +226 -0
- package/src/runtime/control-plane/dispatch-priority.ts +28 -0
- package/src/runtime/control-plane/execution/direct-edit-work-completion.ts +196 -2
- package/src/runtime/control-plane/execution/edit-validation-coordinator.ts +86 -24
- package/src/runtime/control-plane/execution/execution-identity.ts +65 -14
- package/src/runtime/control-plane/execution/session-store.ts +18 -0
- package/src/runtime/control-plane/execution/validation.ts +15 -2
- package/src/runtime/control-plane/execution/verification-evidence.ts +58 -3
- package/src/runtime/control-plane/execution/work-handle-store.ts +27 -2
- package/src/runtime/control-plane/execution/work-lifecycle-audit.ts +258 -0
- package/src/runtime/control-plane/execution/work-remote-delivery.ts +215 -0
- package/src/runtime/control-plane/execution/work-task-receipt.ts +54 -11
- package/src/runtime/control-plane/execution/work-terminal-cleanup.ts +175 -8
- package/src/runtime/control-plane/execution/work-validation-reconciler.ts +28 -21
- package/src/runtime/control-plane/execution/work-verification-snapshot.ts +87 -9
- package/src/runtime/control-plane/facade/capability-registry.ts +129 -25
- package/src/runtime/control-plane/facade/controller-round-relay.ts +991 -0
- package/src/runtime/control-plane/facade/controller-session-store.ts +144 -14
- package/src/runtime/control-plane/facade/goal-workloop-access.ts +9 -2
- package/src/runtime/control-plane/facade/goal-workloop.ts +885 -105
- package/src/runtime/control-plane/facade/index.ts +1 -0
- package/src/runtime/control-plane/facade/plan-contract-store.ts +211 -26
- package/src/runtime/control-plane/facade/requirement-board.ts +24 -8
- package/src/runtime/control-plane/facade/semantic-admission.ts +205 -0
- package/src/runtime/control-plane/facade/suggested-actions.ts +5 -1
- package/src/runtime/control-plane/facade/types.ts +55 -11
- package/src/runtime/control-plane/facade/work-contract-store.ts +204 -73
- package/src/runtime/control-plane/generated-cache-retention.ts +271 -0
- package/src/runtime/control-plane/global-scheduler/config.ts +44 -0
- package/src/runtime/control-plane/global-scheduler/dispatch-capacity.ts +80 -0
- package/src/runtime/control-plane/global-scheduler/durable-admission.ts +46 -0
- package/src/runtime/control-plane/global-scheduler/maintenance.ts +145 -0
- package/src/runtime/control-plane/global-scheduler/projection-refresh.ts +84 -0
- package/src/runtime/control-plane/global-scheduler/reconciliation.ts +3 -3
- package/src/runtime/control-plane/global-scheduler/scheduler.ts +273 -542
- package/src/runtime/control-plane/global-scheduler/source-scan.ts +59 -0
- package/src/runtime/control-plane/global-scheduler/state.ts +88 -0
- package/src/runtime/control-plane/global-scheduler/worker-attachment.ts +57 -0
- package/src/runtime/control-plane/global-scheduler/worker-exit-decision.ts +38 -0
- package/src/runtime/control-plane/global-scheduler/worker-exit-reconciler.ts +175 -0
- package/src/runtime/control-plane/global-scheduler/worker-launch.ts +111 -0
- package/src/runtime/control-plane/global-scheduler/worker-lifecycle-store.ts +64 -0
- package/src/runtime/control-plane/global-scheduler/worker-lifecycle.ts +150 -0
- package/src/runtime/control-plane/global-scheduler/worker-process.ts +119 -0
- package/src/runtime/control-plane/global-scheduler/worker-stderr.ts +60 -0
- package/src/runtime/control-plane/launcher/chatgpt-work-binding-store.ts +50 -0
- package/src/runtime/control-plane/launcher/chatgpt-work-continuation.ts +642 -51
- package/src/runtime/control-plane/launcher/launch-reservation-store.ts +40 -0
- package/src/runtime/control-plane/launcher/thin-launcher.ts +194 -10
- package/src/runtime/control-plane/persistence/controller-home-migration.ts +487 -0
- package/src/runtime/control-plane/persistence/requirement-store.ts +15 -11
- package/src/runtime/control-plane/persistence/sqlite-store.ts +33 -2
- package/src/runtime/control-plane/release-retention.ts +62 -2
- package/src/runtime/control-plane/routing/route-policy.ts +7 -16
- package/src/runtime/control-plane/runtime-status-client.ts +0 -2
- package/src/runtime/diagnostics/mcp-timing.ts +19 -0
- package/src/runtime/diagnostics/mcp-transport-benchmark.ts +129 -0
- package/src/runtime/diagnostics/performance.ts +24 -1
- package/src/runtime/evidence/event-ledger.ts +1 -1
- package/src/runtime/execution/jobs/store.ts +58 -4
- package/src/runtime/execution/jobs/types.ts +1 -1
- package/src/runtime/execution/managed-workspace.ts +203 -1
- package/src/runtime/execution/process-runtime/check-facade.ts +52 -14
- package/src/runtime/execution/process-runtime/check-result.ts +63 -2
- package/src/runtime/execution/process-runtime/check-scheduling.ts +114 -0
- package/src/runtime/execution/process-runtime/command-facade.ts +346 -40
- package/src/runtime/execution/process-runtime/gc.ts +98 -12
- package/src/runtime/execution/process-runtime/lightweight-managed.ts +1184 -0
- package/src/runtime/execution/process-runtime/persisted-check.ts +57 -6
- package/src/runtime/execution/process-runtime/resource-claims.ts +97 -8
- package/src/runtime/execution/process-runtime/runtime.ts +59 -4
- package/src/runtime/execution/process-runtime/store.ts +7 -0
- package/src/runtime/execution/process-runtime/types.ts +2 -0
- package/src/runtime/execution/thin-harness/async-process.ts +12 -2
- package/src/runtime/execution/thin-harness/search-worker.ts +54 -5
- package/src/runtime/execution/workers/executor.ts +0 -48
- package/src/runtime/gateway/mcp/execution-tools.ts +1219 -126
- package/src/runtime/gateway/mcp/process-tools.ts +83 -37
- package/src/runtime/gateway/mcp/router.ts +185 -83
- package/src/runtime/gateway/mcp/runtime-tool-definitions.ts +546 -0
- package/src/runtime/gateway/mcp/runtime-tools.ts +2555 -1616
- package/src/runtime/model-clients/deepseek-adapter.ts +0 -32
- package/src/runtime/plugins/app-store-connect-adapter.ts +123 -19
- package/src/runtime/plugins/browser-adapter.ts +2925 -318
- package/src/runtime/plugins/browser-automation-service.ts +10 -0
- package/src/runtime/plugins/browser-handoff-host.ts +6 -31
- package/src/runtime/plugins/browser-handoff.ts +92 -5
- package/src/runtime/plugins/browser-macos-bridge.ts +586 -45
- package/src/runtime/plugins/browser-node-bridge.ts +6 -34
- package/src/runtime/plugins/browser-provider-registry.ts +109 -0
- package/src/runtime/plugins/browser-runtime-contract.ts +152 -0
- package/src/runtime/plugins/browser-runtime.ts +183 -0
- package/src/runtime/plugins/browser-session-authority.ts +332 -0
- package/src/runtime/plugins/capability-authorization-grants.ts +354 -0
- package/src/runtime/plugins/desktop-operator-registration.ts +15 -12
- package/src/runtime/plugins/external-adapter.ts +324 -3
- package/src/runtime/plugins/external-registration.ts +84 -5
- package/src/runtime/plugins/external-unix-socket.ts +7 -1
- package/src/runtime/plugins/first-party-registry.ts +4 -2
- package/src/runtime/plugins/github-adapter.ts +125 -0
- package/src/runtime/plugins/gmail-adapter.ts +28 -2
- package/src/runtime/plugins/ios/agent-device-provider.ts +1 -1
- package/src/runtime/plugins/ios/agent-device-typed-provider.ts +52 -9
- package/src/runtime/plugins/ios/remote-xpc-hid.ts +1171 -0
- package/src/runtime/plugins/ios-adapter.ts +106 -16
- package/src/runtime/plugins/ios-agent-device.ts +234 -64
- package/src/runtime/plugins/ios-physical-device.ts +1143 -392
- package/src/runtime/plugins/lightweight-action.ts +153 -0
- package/src/runtime/plugins/local-system-adapter.ts +125 -8
- package/src/runtime/plugins/macos-capability-broker.ts +55 -9
- package/src/runtime/plugins/plugin-action-sidecar.ts +59 -0
- package/src/runtime/plugins/plugin-management-adapter.ts +181 -0
- package/src/runtime/plugins/resend-adapter.ts +1 -1
- package/src/runtime/plugins/store.ts +366 -24
- package/src/runtime/plugins/types.ts +39 -2
- package/src/runtime/plugins/xiaohongshu-publish.ts +515 -0
- package/src/runtime/projections/git-status-sampler.ts +16 -16
- package/src/runtime/projections/materialized-view.ts +28 -10
- package/src/runtime/recovery/actions.ts +0 -10
- package/src/runtime/recovery/classifier.ts +0 -9
- package/src/runtime/recovery/maintenance-executor.ts +415 -18
- package/src/runtime/recovery/probe.ts +0 -1
- package/src/runtime/recovery/types.ts +0 -1
- package/src/runtime/root/mcp-transport.ts +180 -10
- package/src/runtime/root/package-connector-service.ts +186 -8
- package/src/runtime/root/package-runtime-release.ts +143 -17
- package/src/runtime/root/package-runtime-service.ts +430 -22
- package/src/runtime/root/release-manifest.ts +7 -2
- package/src/runtime/root/release-materialize.ts +162 -19
- package/src/runtime/root/release-store.ts +48 -11
- package/src/runtime/root/runtime.ts +23 -5
- package/src/runtime/root/service.ts +100 -27
- package/src/runtime/root/types.ts +2 -0
- package/src/runtime/safe-tooling/index.ts +0 -1
- package/src/runtime/safe-tooling/ios-development.ts +321 -63
- package/src/runtime/safe-tooling/types.ts +0 -30
- package/src/runtime/shared/trusted-executable.ts +62 -0
- package/src/runtime/shared/trusted-node-executable.ts +48 -0
- package/src/runtime/standalone-recovery/core.ts +702 -94
- package/src/runtime/standalone-recovery/entry.ts +99 -23
- package/src/runtime/standalone-recovery/installer.ts +19 -3
- package/src/runtime/standalone-recovery/service-labels.ts +2 -0
- package/src/runtime/standalone-recovery/watchdog-heartbeat.ts +160 -0
- package/src/runtime/workflow/schedules/browser-probe.ts +258 -0
- package/src/runtime/workflow/schedules/chatgpt-automation-migration.ts +40 -0
- package/src/runtime/workflow/schedules/engine.ts +509 -80
- package/src/runtime/workflow/schedules/github-issue-watch.ts +158 -0
- package/src/runtime/workflow/schedules/settlement.ts +48 -4
- package/src/runtime/workflow/schedules/store.ts +131 -10
- package/src/runtime/workflow/schedules/types.ts +6 -3
- package/src/runtime/workflow/schedules/work-continuation.ts +120 -34
- package/src/testing/test-governance.ts +8 -40
- package/assets/reference-configs/heartbeat-triage.md +0 -57
- package/assets/templates/helpers/harness-trace-grade.sh +0 -150
- package/assets/templates/helpers/heartbeat-triage.sh +0 -361
- package/assets/templates/helpers/maintenance-triage.sh +0 -167
- package/bin/forge-desktop-helper.mjs +0 -204
- package/docs/architecture/current/approved-target-architecture.zh-CN.md +0 -1501
- package/docs/architecture/current/architecture-invariants.md +0 -331
- package/docs/architecture/current/automation-and-schedule-engine.md +0 -453
- package/docs/architecture/current/codegraph-context-provider.md +0 -226
- package/docs/architecture/current/control-plane-authority-inventory.md +0 -94
- package/docs/architecture/current/controller-repository-decoupling.md +0 -148
- package/docs/architecture/current/dispatch-and-agent-strategy.md +0 -354
- package/docs/architecture/current/entity-model.md +0 -592
- package/docs/architecture/current/external-plugin-governance.md +0 -396
- package/docs/architecture/current/failure-recovery.md +0 -447
- package/docs/architecture/current/governance.md +0 -213
- package/docs/architecture/current/human-interaction-plane.md +0 -87
- package/docs/architecture/current/implementation-status.md +0 -128
- package/docs/architecture/current/job-and-run-lifecycle.md +0 -413
- package/docs/architecture/current/legacy-governance.md +0 -58
- package/docs/architecture/current/local-workspace-target-grants.md +0 -70
- package/docs/architecture/current/migration-roadmap.md +0 -105
- package/docs/architecture/current/multi-repository-execution.md +0 -371
- package/docs/architecture/current/operations-runbook.md +0 -45
- package/docs/architecture/current/peer-supercontroller-runtime.md +0 -32
- package/docs/architecture/current/personal-assistant-plugin-baseline.md +0 -206
- package/docs/architecture/current/repository-access-modes.md +0 -102
- package/docs/architecture/current/route-policy.md +0 -15
- package/docs/architecture/current/route-session-concurrency.md +0 -85
- package/docs/architecture/current/runtime-architecture-simplification.md +0 -214
- package/docs/architecture/current/runtime-directory-map.md +0 -49
- package/docs/architecture/current/runtime-health-and-resource-lifecycle.md +0 -85
- package/docs/architecture/current/scheduler-and-resource-claims.md +0 -422
- package/docs/architecture/current/session-aware-execution-and-authorization.md +0 -77
- package/docs/architecture/current/system-overview.md +0 -144
- package/docs/architecture/current/target-requirements-traceability.md +0 -202
- package/docs/architecture/current/thin-harness-governance-policy.md +0 -32
- package/docs/architecture/current/thin-harness-v1.md +0 -311
- package/docs/architecture/current/verification-and-release-gates.md +0 -391
- package/docs/forge-autonomous-goal-loop.md +0 -9
- package/docs/forge-provider-configuration.md +0 -7
- package/docs/operations/chatgpt-personal-assistant-runtime.md +0 -83
- package/docs/operations/controller-desktop-plugin.md +0 -112
- package/docs/operations/gmail-assistant-routines.md +0 -186
- package/docs/operations/personal-assistant-operator-guide.md +0 -61
- package/docs/operations/provider-configuration.md +0 -31
- package/scripts/harness-trace-grade.sh +0 -150
- package/scripts/heartbeat-triage.sh +0 -361
- package/scripts/maintenance-triage.sh +0 -167
- package/src/cli/local-bridge/frontend/src/features/settings/SettingsView.tsx +0 -2
- package/src/cli/repositories/goal-registry.ts +0 -239
- package/src/runtime/assistant/action-proposals.ts +0 -279
- package/src/runtime/assistant/intent.ts +0 -395
- package/src/runtime/assistant/model-provider.ts +0 -460
- package/src/runtime/assistant/openapi.ts +0 -223
- package/src/runtime/assistant/policy.ts +0 -89
- package/src/runtime/assistant/readiness.ts +0 -258
- package/src/runtime/assistant/routine-runtime.ts +0 -477
- package/src/runtime/assistant/schedule-binding.ts +0 -171
- package/src/runtime/assistant/standing-grants.ts +0 -375
- package/src/runtime/assistant/store.ts +0 -243
- package/src/runtime/assistant/types.ts +0 -135
- package/src/runtime/control-plane/goal-loop/config-facade.ts +0 -700
- package/src/runtime/control-plane/goal-loop/config-store.ts +0 -570
- package/src/runtime/control-plane/goal-loop/config-types.ts +0 -213
- package/src/runtime/control-plane/goal-loop/executor-router.ts +0 -109
- package/src/runtime/control-plane/goal-loop/failure-taxonomy.ts +0 -149
- package/src/runtime/control-plane/goal-loop/goal-contract-store.ts +0 -304
- package/src/runtime/control-plane/goal-loop/goal-loop-engine.ts +0 -1001
- package/src/runtime/control-plane/goal-loop/handoff-packet.ts +0 -160
- package/src/runtime/control-plane/goal-loop/index.ts +0 -13
- package/src/runtime/control-plane/goal-loop/local-tools.ts +0 -290
- package/src/runtime/control-plane/goal-loop/policy-gates.ts +0 -203
- package/src/runtime/control-plane/goal-loop/provider-dispatch.ts +0 -93
- package/src/runtime/control-plane/goal-loop/provider-registry.ts +0 -545
- package/src/runtime/control-plane/goal-loop/types.ts +0 -378
- package/src/runtime/control-plane/startup-recovery.ts +0 -198
- package/src/runtime/gateway/mcp/resource-policy.ts +0 -186
- package/src/runtime/personal-assistant/gmail-triage-manager.ts +0 -231
- package/src/runtime/personal-assistant/reporting-runtime.ts +0 -344
- package/src/runtime/personal-assistant/triage-runtime.ts +0 -748
- package/src/runtime/plugins/desktop-adapter.ts +0 -374
- package/src/runtime/safe-tooling/browser-safe.ts +0 -133
- package/src/runtime/workflow/findings/store.ts +0 -204
- package/src/runtime/workflow/findings/types.ts +0 -58
- package/src/runtime/workflow/portfolio/engine.ts +0 -20
- package/src/runtime/workflow/portfolio/store.ts +0 -185
- package/src/runtime/workflow/portfolio/types.ts +0 -29
|
@@ -1,331 +0,0 @@
|
|
|
1
|
-
# Architecture Invariants
|
|
2
|
-
|
|
3
|
-
> Status: **Runtime Authority**
|
|
4
|
-
|
|
5
|
-
These invariants are the architectural constitution of Forge Controller Runtime. Implementation Tasks may improve how they are enforced, but may not weaken them without an accepted ADR.
|
|
6
|
-
|
|
7
|
-
## Invariant 1 — MCP Requests Do Not Own Long Work
|
|
8
|
-
|
|
9
|
-
**Current Implementation — MUST**
|
|
10
|
-
|
|
11
|
-
Any operation that may exceed a short request budget MUST become a durable Job and return an identifier before execution completes.
|
|
12
|
-
|
|
13
|
-
This includes:
|
|
14
|
-
|
|
15
|
-
- Agent execution;
|
|
16
|
-
- heavy checks;
|
|
17
|
-
- edit-session verification with long checks;
|
|
18
|
-
- repository commands;
|
|
19
|
-
- integration;
|
|
20
|
-
- release gates;
|
|
21
|
-
- multi-repository rollout;
|
|
22
|
-
- schedule-driven work.
|
|
23
|
-
|
|
24
|
-
**Compatibility Rule**
|
|
25
|
-
|
|
26
|
-
Controller-profile long and mutating handlers use the durable Job path. Legacy operation implementations are Worker-only compatibility adapters and MUST NOT be invoked by Gateway request handlers.
|
|
27
|
-
|
|
28
|
-
## Invariant 2 — Persist Before Execute
|
|
29
|
-
|
|
30
|
-
**Current Implementation — MUST**
|
|
31
|
-
|
|
32
|
-
The system MUST persist accepted intent, identity, scope, deadline, and idempotency data before starting a Worker or external session.
|
|
33
|
-
|
|
34
|
-
Forbidden order:
|
|
35
|
-
|
|
36
|
-
```text
|
|
37
|
-
spawn -> later attempt to save
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
Required order:
|
|
41
|
-
|
|
42
|
-
```text
|
|
43
|
-
validate -> persist -> acknowledge -> dispatch
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## Invariant 3 — Every Mutation Is Idempotent
|
|
47
|
-
|
|
48
|
-
**Current Implementation — MUST**
|
|
49
|
-
|
|
50
|
-
Every write or execution command MUST have a stable idempotency identity derived from:
|
|
51
|
-
|
|
52
|
-
```text
|
|
53
|
-
requestId + repoId + operationType + semanticKey
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
A repeated request MUST reuse or return the original accepted entity. It MUST NOT create duplicate Jobs, Runs, Issues, Occurrences, integrations, or releases.
|
|
57
|
-
|
|
58
|
-
Schedule-triggered work uses:
|
|
59
|
-
|
|
60
|
-
```text
|
|
61
|
-
scheduleId + repoId + occurrenceWindow
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
## Invariant 4 — Task Is Intent; Run Is Attempt
|
|
65
|
-
|
|
66
|
-
**Current Implementation and Target Architecture — MUST**
|
|
67
|
-
|
|
68
|
-
A Task defines one objective, scope, dependencies, checks, risk, and acceptance criteria. A Run records one Agent execution attempt.
|
|
69
|
-
|
|
70
|
-
A failed Run remains failed. Retry creates a new Run. Historical Runs are evidence and cannot resurrect a terminal Task.
|
|
71
|
-
|
|
72
|
-
Run success does not by itself mean Task completion.
|
|
73
|
-
|
|
74
|
-
## Invariant 5 — Job and Run Are Distinct
|
|
75
|
-
|
|
76
|
-
**Current Implementation — MUST**
|
|
77
|
-
|
|
78
|
-
A Job represents an asynchronous system operation. A Run represents an Agent attempt.
|
|
79
|
-
|
|
80
|
-
A dispatch Job may create or link a Run. Check, command, verification, integration, release, and reconciliation Jobs do not need an Agent Run.
|
|
81
|
-
|
|
82
|
-
Job status MUST NOT be inferred solely from “a Run was dispatched.” It reaches terminal state only when its owned operation reaches terminal state.
|
|
83
|
-
|
|
84
|
-
## Invariant 6 — One Logical Scheduler Owns Each Repository
|
|
85
|
-
|
|
86
|
-
**Current Implementation — MUST**
|
|
87
|
-
|
|
88
|
-
One logical Repo Actor owns repository-local ordering, claims, conflict decisions, integration, and release freeze.
|
|
89
|
-
|
|
90
|
-
Multiple Workers may execute concurrently, but no other component may independently decide repository-local write ordering.
|
|
91
|
-
|
|
92
|
-
Focus is presentation state, not an execution lock.
|
|
93
|
-
|
|
94
|
-
## Invariant 7 — Repository Failures Are Isolated
|
|
95
|
-
|
|
96
|
-
**Current Implementation — MUST**
|
|
97
|
-
|
|
98
|
-
A blocked, overloaded, corrupt, or disconnected repository MUST NOT block unrelated repositories.
|
|
99
|
-
|
|
100
|
-
Global resource limits may delay work fairly, but repository locks, heavy-check queues, dirty workspaces, integration conflicts, or release freezes remain repository-scoped.
|
|
101
|
-
|
|
102
|
-
## Invariant 8 — Unknown Write Scope Is Conservative
|
|
103
|
-
|
|
104
|
-
**Current Implementation — MUST**
|
|
105
|
-
|
|
106
|
-
A non-read-only Task with empty or unknown allowed paths claims repository-wide write scope for conflict purposes.
|
|
107
|
-
|
|
108
|
-
Unknown scope MUST NOT be interpreted as proof that two write operations are independent.
|
|
109
|
-
|
|
110
|
-
A Task may regain concurrency only after scope becomes explicit or execution is isolated in a Worktree with serialized integration.
|
|
111
|
-
|
|
112
|
-
## Invariant 9 — Workspace Has One Writer
|
|
113
|
-
|
|
114
|
-
**Current Implementation — MUST**
|
|
115
|
-
|
|
116
|
-
One checkout Workspace may have at most one active write owner.
|
|
117
|
-
|
|
118
|
-
Read-only work may run concurrently. Independent write work must either:
|
|
119
|
-
|
|
120
|
-
- wait for the Workspace claim;
|
|
121
|
-
- execute in a separate Worktree;
|
|
122
|
-
- use an external branch/provider.
|
|
123
|
-
|
|
124
|
-
Direct Edit and Workspace Agent execution use the same single-writer boundary.
|
|
125
|
-
|
|
126
|
-
## Invariant 10 — Worktrees Enable Execution Concurrency, Not Integration Concurrency
|
|
127
|
-
|
|
128
|
-
**Current Implementation — MUST**
|
|
129
|
-
|
|
130
|
-
Worktree executions may run concurrently when resources allow. Integration into one target checkout is serialized.
|
|
131
|
-
|
|
132
|
-
Integration MUST validate the reviewed diff, target revision, supported file operations, and current workspace state. Conflicts preserve the Worktree and surface an explicit state; they are not silently rebased or overwritten.
|
|
133
|
-
|
|
134
|
-
## Invariant 11 — Locks Protect Transactions; Leases Protect Execution
|
|
135
|
-
|
|
136
|
-
**Current Implementation — MUST**
|
|
137
|
-
|
|
138
|
-
Short locks protect atomic state decisions. Long execution is protected by renewable Leases.
|
|
139
|
-
|
|
140
|
-
A Lease includes:
|
|
141
|
-
|
|
142
|
-
```text
|
|
143
|
-
leaseId
|
|
144
|
-
resourceKey
|
|
145
|
-
ownerJobId
|
|
146
|
-
fencingToken
|
|
147
|
-
acquiredAt
|
|
148
|
-
expiresAt
|
|
149
|
-
heartbeatAt
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
A stale Worker MUST NOT update state after a newer fencing token has taken ownership.
|
|
153
|
-
|
|
154
|
-
## Invariant 12 — Durable Truth Is Not In Memory
|
|
155
|
-
|
|
156
|
-
**Current Implementation and Target Architecture — MUST**
|
|
157
|
-
|
|
158
|
-
In-memory maps, promises, queues, UI state, and chat history are caches or coordination aids only.
|
|
159
|
-
|
|
160
|
-
Accepted work, lifecycle state, ownership, evidence, and terminal outcomes MUST be recoverable from persisted state.
|
|
161
|
-
|
|
162
|
-
When Controller restart loses an in-memory optimization, persisted indexes or bounded reconciliation must restore correct behavior.
|
|
163
|
-
|
|
164
|
-
## Invariant 13 — Hot Reads Use Bounded Projections
|
|
165
|
-
|
|
166
|
-
**Current Implementation — MUST**
|
|
167
|
-
|
|
168
|
-
Status and list endpoints MUST read bounded indexes or materialized projections.
|
|
169
|
-
|
|
170
|
-
They MUST NOT linearly scan all history, load complete logs, calculate every repository revision, or reconcile every historical entity for one compact response.
|
|
171
|
-
|
|
172
|
-
Explicit detail tools may perform bounded entity-specific reads.
|
|
173
|
-
|
|
174
|
-
## Invariant 14 — Execution and Observation Are Independent
|
|
175
|
-
|
|
176
|
-
**Current Implementation — MUST**
|
|
177
|
-
|
|
178
|
-
Heavy work MUST NOT prevent health, repository status, Job status, Run status, or controller context queries from responding.
|
|
179
|
-
|
|
180
|
-
Gateway and projection availability are separate from Worker health. A Worker crash may degrade readiness but MUST NOT take down lightweight observation.
|
|
181
|
-
|
|
182
|
-
## Invariant 15 — State Writes Are Atomic
|
|
183
|
-
|
|
184
|
-
**Current Implementation — MUST**
|
|
185
|
-
|
|
186
|
-
Lifecycle snapshots, indexes, Job records, Run metadata, results, verification records, and Lease state MUST be written atomically.
|
|
187
|
-
|
|
188
|
-
Readers must never observe a half-written JSON document. Append-only event logs must use complete records and tolerate a trailing incomplete record after a crash.
|
|
189
|
-
|
|
190
|
-
## Invariant 16 — Evidence Binds to Exact Revision
|
|
191
|
-
|
|
192
|
-
**Current Implementation — MUST**
|
|
193
|
-
|
|
194
|
-
Verification evidence includes:
|
|
195
|
-
|
|
196
|
-
```text
|
|
197
|
-
repoId
|
|
198
|
-
checkoutId
|
|
199
|
-
revision
|
|
200
|
-
check or command identity
|
|
201
|
-
environment fingerprint
|
|
202
|
-
executedAt
|
|
203
|
-
artifact reference
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
If relevant repository state changes, prior evidence becomes stale for completion purposes unless the check contract explicitly proves it remains valid.
|
|
207
|
-
|
|
208
|
-
## Invariant 17 — Worker Self-Report Is Not Acceptance
|
|
209
|
-
|
|
210
|
-
**Current Implementation and Target Architecture — MUST**
|
|
211
|
-
|
|
212
|
-
An Agent may report that implementation is complete. The Controller determines completion using reviewed diff or integrated revision, required checks, acceptance criteria, and risk policy.
|
|
213
|
-
|
|
214
|
-
High-risk or destructive work requires explicit human acceptance after evidence passes.
|
|
215
|
-
|
|
216
|
-
## Invariant 18 — Retry Preserves History
|
|
217
|
-
|
|
218
|
-
**Current Implementation and Target Architecture — MUST**
|
|
219
|
-
|
|
220
|
-
Retry creates a new attempt or occurrence. It does not mutate the failed attempt into success.
|
|
221
|
-
|
|
222
|
-
The original error, output, timestamps, resource ownership, and evidence remain addressable.
|
|
223
|
-
|
|
224
|
-
## Invariant 19 — Cancellation Is Scoped
|
|
225
|
-
|
|
226
|
-
**Current Implementation — MUST**
|
|
227
|
-
|
|
228
|
-
Cancelling one subscriber, Job, or client request MUST NOT terminate a shared execution still required by another active subscriber.
|
|
229
|
-
|
|
230
|
-
Shared checks and deduplicated work maintain independent subscriber state. The shared Worker may be terminated only when no active owner remains or policy explicitly requires global cancellation.
|
|
231
|
-
|
|
232
|
-
## Invariant 20 — Conflict Is Usually a Waiting State
|
|
233
|
-
|
|
234
|
-
**Current Implementation — MUST**
|
|
235
|
-
|
|
236
|
-
Resource contention is modeled as:
|
|
237
|
-
|
|
238
|
-
```text
|
|
239
|
-
waiting_for_workspace
|
|
240
|
-
waiting_for_worktree
|
|
241
|
-
waiting_for_heavy_check
|
|
242
|
-
waiting_for_integration
|
|
243
|
-
waiting_for_release_barrier
|
|
244
|
-
waiting_for_dependency
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
It should not be reported as execution failure unless the deadline expires, policy is violated, or the conflict is irrecoverable.
|
|
248
|
-
|
|
249
|
-
## Invariant 21 — Scheduled Work Is Bounded
|
|
250
|
-
|
|
251
|
-
**Current Implementation — MUST**
|
|
252
|
-
|
|
253
|
-
A Schedule does not own a forever-running Agent. Each trigger creates one bounded Occurrence with:
|
|
254
|
-
|
|
255
|
-
- an idempotency window;
|
|
256
|
-
- scope;
|
|
257
|
-
- budget;
|
|
258
|
-
- maximum active count;
|
|
259
|
-
- deadline;
|
|
260
|
-
- retry/backoff policy;
|
|
261
|
-
- stop conditions;
|
|
262
|
-
- an explicit outcome.
|
|
263
|
-
|
|
264
|
-
A valid outcome may be `nothing_to_do`.
|
|
265
|
-
|
|
266
|
-
## Invariant 22 — Automation Does Not Invent Unlimited Work
|
|
267
|
-
|
|
268
|
-
**Current Implementation — MUST**
|
|
269
|
-
|
|
270
|
-
Automated triage may create a Candidate Finding. It may promote a formal Requirement/Work only when evidence and configured policy justify it; legacy Issue/Task records are read-only after control-plane cutover.
|
|
271
|
-
|
|
272
|
-
The same semantic problem must deduplicate across occurrences. “The Agent suggests an optimization” is not sufficient evidence by itself.
|
|
273
|
-
|
|
274
|
-
## Invariant 23 — External Side Effects Remain Explicit
|
|
275
|
-
|
|
276
|
-
**Current Implementation and Target Architecture — MUST**
|
|
277
|
-
|
|
278
|
-
The system MUST NOT automatically force-push, rewrite history, publish packages, deploy to production, merge changes, delete unique remote work, or execute destructive data operations without explicit same-request authorization and the required review boundary.
|
|
279
|
-
|
|
280
|
-
## Invariant 24 — One Rule Has One Owning Document
|
|
281
|
-
|
|
282
|
-
**Current Implementation — MUST**
|
|
283
|
-
|
|
284
|
-
Normative architecture rules live in the document assigned by `governance.md`. Other documents link to the owner rather than maintaining a competing copy.
|
|
285
|
-
|
|
286
|
-
Versioned design documents cannot override the current set.
|
|
287
|
-
|
|
288
|
-
## Invariant 25 — Architecture Claims Must Remain Executably Verifiable
|
|
289
|
-
|
|
290
|
-
**Current Implementation — MUST**
|
|
291
|
-
|
|
292
|
-
A capability may be labeled implemented only when a repository path and an executable check support the claim. Future gaps or regressions must be linked to a Requirement/Work item or ADR rather than hidden by documentation wording. The completed migration record is not permission to weaken a boundary without updating code, tests and the current architecture set.
|
|
293
|
-
|
|
294
|
-
## Invariant 26 — Runtime Source Identity Is Controller-Scoped
|
|
295
|
-
|
|
296
|
-
**Current Implementation — MUST**
|
|
297
|
-
|
|
298
|
-
Controller Runtime Source Identity is controller-scoped state. It is not session-scoped and not execution-repository-scoped.
|
|
299
|
-
|
|
300
|
-
MUST:
|
|
301
|
-
|
|
302
|
-
- Persist Runtime Source Identity only under `controllerHome` (`system/runtime-generation.json` and daemon `state.json` source snapshot).
|
|
303
|
-
- Resolve the current Runtime Source from one authority: explicit handoff, `FORGE_CONTROLLER_RUNTIME_SOURCE_ROOT` / `FORGE_SOURCE_ROOT`, package/source entrypoint root, or cwd only when that cwd itself is the controller package.
|
|
304
|
-
- Compare drift only between the startup Runtime Source snapshot and the current Controller Runtime Source.
|
|
305
|
-
- Treat a missing startup snapshot as fail-closed (`RUNTIME_SOURCE_SNAPSHOT_MISSING`) rather than silent pass.
|
|
306
|
-
- Keep execution repository git state (`canonicalRoot`, branch, head, dirty) in repository status fields only.
|
|
307
|
-
|
|
308
|
-
MUST NOT:
|
|
309
|
-
|
|
310
|
-
- Use the selected execution repository `canonicalRoot` as the current Runtime Source for drift evaluation.
|
|
311
|
-
- Rotate Runtime Source generation on `session_bind_repository`, work preparation, worktree creation, or ordinary branch switches.
|
|
312
|
-
- Treat Runtime Source root differing from the selected execution repository as an error.
|
|
313
|
-
- Hardcode a clone directory name or user absolute path as the Runtime Source.
|
|
314
|
-
|
|
315
|
-
Primary implementation is the Canonical Runtime owner/status/release identity under `src/runtime/root/`, with shared read-only consumers in MCP `rh_status`, Runtime CLI status, Local Bridge access state, Recovery verification, and Worker fencing. KeepAlive and independent Daemon start are deleted lifecycle owners.
|
|
316
|
-
|
|
317
|
-
## Invariant 27 — Transport Connectivity Is Not Execution Ownership
|
|
318
|
-
|
|
319
|
-
**Current Implementation — MUST**
|
|
320
|
-
|
|
321
|
-
An MCP SSE stream is a replaceable transport lease. It MUST NOT retain session capacity indefinitely and MUST NOT be treated as proof that durable work is still executing.
|
|
322
|
-
|
|
323
|
-
- `/mcp`, `/mcp-grok`, and `/mcp-bearer` MUST share one global session-capacity authority.
|
|
324
|
-
- Client DELETE, explicit prior-session replacement, bounded stream lease, absolute lifetime, and capacity pressure MAY close a session that has no active POST.
|
|
325
|
-
- Session-capacity management MUST NOT evict a session with active POST work.
|
|
326
|
-
- Closing a transport MUST NOT cancel a durably accepted Job.
|
|
327
|
-
- Liveness and admission readiness MUST remain separate signals.
|
|
328
|
-
|
|
329
|
-
## Review Use
|
|
330
|
-
|
|
331
|
-
Every architecture-sensitive Task should cite the invariants it affects. Verification should include a statement that the resulting implementation preserves them or an accepted ADR that changes them.
|