@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.
- package/AGENTS.md +4 -0
- package/CHANGELOG.md +39 -0
- package/CLAUDE.md +4 -0
- package/README.md +2 -2
- package/README.zh-CN.md +1 -1
- 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/prompt-guard.sh +5 -81
- package/assets/hooks/session-start-context.sh +56 -1
- package/assets/partials/05-workflow.partial.md +1 -1
- package/assets/partials-agents/02-operating-mode.partial.md +2 -0
- package/assets/partials-agents/03-orchestration.partial.md +1 -1
- package/assets/plugin-registry.v1.json +3 -3
- package/assets/reference-configs/document-generation.md +1 -1
- package/assets/reference-configs/harness-overview.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-architecture-sync.sh +17 -0
- 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 +11 -36
- package/assets/templates/helpers/inspect-project-state.ts +8 -6
- package/assets/templates/helpers/migrate-project-template.sh +22 -45
- package/assets/templates/helpers/migrate-workflow-docs.ts +9 -7
- 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/verify-contract.sh +1 -111
- package/assets/templates/helpers/verify-sprint.sh +3 -180
- package/assets/templates/helpers/workflow-contract.ts +5 -1
- 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 +178 -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-plugin-management.md +1 -1
- package/docs/forge-runtime-self-healing-loop.md +1 -1
- package/docs/operations/controller-browser-plugin.md +26 -6
- package/docs/operations/controller-performance-and-502.md +143 -0
- package/docs/operations/controller-reliability-runbook.md +1 -1
- package/docs/operations/features.md +2 -2
- 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/wiki/Architecture.md +6 -6
- package/docs/wiki/Implementation.md +2 -2
- package/docs/wiki/Integrations.md +2 -2
- package/docs/wiki/Work-Lifecycle.md +1 -1
- package/package.json +33 -11
- package/scripts/activate-source-baseline.ts +17 -13
- package/scripts/architecture-event.ts +2 -820
- package/scripts/architecture-queue.sh +2 -645
- package/scripts/archive-architecture-request.sh +2 -242
- package/scripts/archive-workflow.sh +1 -291
- 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/capability-config.ts +2 -392
- package/scripts/capability-resolver.ts +2 -503
- package/scripts/capture-plan.sh +1 -332
- package/scripts/check-agent-tooling.sh +2 -1558
- package/scripts/check-architecture-sync.sh +2 -371
- package/scripts/check-brain-manifest.sh +2 -253
- package/scripts/check-context-files.sh +2 -47
- package/scripts/check-deploy-sql-order.sh +2 -115
- package/scripts/check-mcp-compatibility.ts +14 -0
- package/scripts/check-runtime-architecture.mjs +349 -79
- package/scripts/check-skill-version.ts +3 -191
- package/scripts/check-source-duplication.mjs +61 -0
- package/scripts/check-stable-baseline.ts +92 -0
- package/scripts/check-task-sync.sh +2 -63
- package/scripts/check-task-workflow.sh +2 -1000
- package/scripts/codex-handoff-resume.sh +2 -267
- package/scripts/context-contract-sync.sh +2 -514
- package/scripts/contract-run.ts +2 -463
- package/scripts/contract-worktree.sh +1 -722
- package/scripts/ensure-task-workflow.sh +1 -1225
- package/scripts/host-temporary-cloud-mcp-e2e.sh +265 -0
- package/scripts/inspect-project-state.ts +4 -279
- package/scripts/install-standalone-recovery.ts +24 -0
- package/scripts/lib/project-init-lib.sh +22 -46
- package/scripts/lib/run-forge-helper.sh +19 -0
- package/scripts/lib/run-forge-helper.ts +26 -0
- package/scripts/migrate-project-template.sh +1 -1189
- package/scripts/migrate-workflow-docs.ts +4 -412
- package/scripts/new-plan.sh +1 -180
- package/scripts/new-spec.sh +1 -47
- package/scripts/new-sprint.sh +1 -46
- package/scripts/plan-to-todo.sh +1 -796
- package/scripts/prepare-codex-handoff.sh +2 -201
- package/scripts/prepare-handoff.sh +1 -78
- package/scripts/refresh-current-status.sh +2 -467
- package/scripts/run-governed-gate.ts +5 -1
- package/scripts/select-agent-context-blocks.sh +2 -64
- package/scripts/ship-worktrees.sh +1 -558
- 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 -834
- package/scripts/stage-runtime-release.ts +2 -1
- package/scripts/summarize-failures.sh +2 -123
- package/scripts/switch-plan.sh +1 -150
- package/scripts/sync-brain-docs.sh +2 -379
- package/scripts/sync-generated-authority.mjs +175 -0
- package/scripts/verify-contract.sh +2 -703
- package/scripts/verify-forge-runtime.sh +0 -1
- package/scripts/verify-sprint.sh +1 -677
- package/scripts/workflow-contract.ts +4 -205
- package/scripts/workstream-sync.sh +2 -261
- package/src/cli/agent-jobs/executor-health.ts +1 -1
- package/src/cli/commands/init-hook.ts +3 -3
- package/src/cli/commands/mcp.ts +9 -5
- package/src/cli/commands/plugin.ts +12 -3
- 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 +113 -5
- 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 +828 -487
- 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/contracts.ts +16 -0
- package/src/cli/github/github.ts +135 -16
- package/src/cli/github/session.ts +2 -1
- package/src/cli/installer/managed-entries.ts +15 -1
- package/src/cli/local-bridge/console-automations.ts +54 -78
- package/src/cli/local-bridge/console-view-models.ts +1 -35
- package/src/cli/local-bridge/facade-api.ts +37 -264
- package/src/cli/local-bridge/frontend/src/App.tsx +3 -3
- package/src/cli/local-bridge/frontend/src/features/automations/AutomationsView.tsx +23 -13
- package/src/cli/local-bridge/frontend/src/features/capabilities/CapabilitiesView.tsx +37 -4
- package/src/cli/local-bridge/frontend/src/features/overview/OverviewView.tsx +6 -4
- package/src/cli/local-bridge/frontend/src/lib/api.ts +1 -6
- package/src/cli/local-bridge/frontend/src/lib/routes.ts +1 -1
- package/src/cli/local-bridge/frontend/src/shell/Sidebar.tsx +2 -2
- package/src/cli/local-bridge/frontend/src/styles.css +1 -1
- package/src/cli/local-bridge/frontend/src/types.ts +5 -8
- package/src/cli/local-bridge/job-store.ts +1 -490
- package/src/cli/local-bridge/server.ts +2 -515
- package/src/cli/local-bridge/ui-dist/app.css +1 -1
- package/src/cli/local-bridge/ui-dist/app.js +3703 -3757
- package/src/cli/mcp/auth.ts +5 -5
- package/src/cli/mcp/instructions.ts +3 -2
- package/src/cli/mcp/legacy-tool-service.ts +10 -222
- package/src/cli/mcp/multi-repository.ts +16 -5
- package/src/cli/mcp/oauth.ts +175 -26
- package/src/cli/mcp/post-finalize-work-attribution.ts +150 -0
- package/src/cli/mcp/repository-tools.ts +282 -146
- package/src/cli/mcp/server.ts +586 -116
- package/src/cli/mcp/tool-capability-cache.ts +1 -1
- package/src/cli/mcp/tool-contract.ts +14 -0
- package/src/cli/mcp/toolset-selection.ts +1 -1
- package/src/cli/mcp/toolset.ts +44 -7
- package/src/cli/mcp/transports/http.ts +124 -14
- package/src/cli/mcp/transports/session-registry.ts +43 -5
- package/src/cli/mcp/types.ts +3 -3
- package/src/cli/repositories/command-classifier.ts +103 -21
- package/src/cli/repositories/command-executor.ts +78 -526
- 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 +124 -0
- package/src/cli/repositories/selected-path-actions.ts +17 -9
- package/src/cli/repositories/structured-git.ts +118 -6
- package/src/cli/repository/inspector.ts +563 -65
- 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-contract.ts +61 -0
- package/src/runtime/context/semantic-navigation.ts +223 -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 +48 -16
- package/src/runtime/control-plane/execution/edit-validation-coordinator.ts +86 -24
- package/src/runtime/control-plane/execution/repository-work-attribution.ts +106 -0
- package/src/runtime/control-plane/execution/retained-work-resume.ts +203 -0
- package/src/runtime/control-plane/execution/session-store.ts +18 -0
- package/src/runtime/control-plane/execution/verification-evidence.ts +58 -3
- package/src/runtime/control-plane/execution/work-completion-authority.ts +58 -0
- package/src/runtime/control-plane/execution/work-evidence-policy.ts +200 -0
- package/src/runtime/control-plane/execution/work-execution-support.ts +386 -0
- package/src/runtime/control-plane/execution/work-finalization-service.ts +1913 -0
- package/src/runtime/control-plane/execution/work-handle-authority.ts +96 -0
- 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-operation-service.ts +468 -0
- package/src/runtime/control-plane/execution/work-path-scope.ts +37 -0
- package/src/runtime/control-plane/execution/work-preparation-service.ts +479 -0
- package/src/runtime/control-plane/execution/work-process-evidence.ts +129 -0
- package/src/runtime/control-plane/execution/work-remote-delivery.ts +215 -0
- package/src/runtime/control-plane/execution/work-task-receipt.ts +22 -18
- package/src/runtime/control-plane/execution/work-terminal-cleanup.ts +156 -11
- package/src/runtime/control-plane/execution/work-validation-reconciler.ts +22 -14
- package/src/runtime/control-plane/execution/work-verification-context.ts +56 -0
- package/src/runtime/control-plane/execution/work-verification-service.ts +388 -0
- package/src/runtime/control-plane/execution/work-verification-snapshot.ts +90 -9
- package/src/runtime/control-plane/facade/capability-registry.ts +129 -25
- package/src/runtime/control-plane/facade/controller-round-relay.ts +1118 -0
- package/src/runtime/control-plane/facade/controller-session-store.ts +302 -12
- package/src/runtime/control-plane/facade/goal-workloop-access.ts +17 -1
- package/src/runtime/control-plane/facade/goal-workloop.ts +928 -190
- package/src/runtime/control-plane/facade/index.ts +3 -0
- package/src/runtime/control-plane/facade/plan-contract-store.ts +275 -42
- package/src/runtime/control-plane/facade/repository-work-admission.ts +147 -0
- package/src/runtime/control-plane/facade/requirement-authority.ts +83 -0
- 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 +90 -10
- package/src/runtime/control-plane/facade/work-contract-store.ts +157 -261
- package/src/runtime/control-plane/facade/work-state-machine.ts +250 -0
- 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 +152 -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 +278 -543
- 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 +63 -0
- package/src/runtime/control-plane/launcher/chatgpt-work-continuation.ts +365 -117
- package/src/runtime/control-plane/launcher/launch-reservation-store.ts +89 -0
- package/src/runtime/control-plane/launcher/thin-launcher.ts +244 -11
- package/src/runtime/control-plane/persistence/controller-home-migration.ts +487 -0
- package/src/runtime/control-plane/persistence/requirement-store.ts +0 -12
- 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/repo-actor/registry.ts +4 -2
- package/src/runtime/control-plane/routing/route-policy.ts +24 -21
- package/src/runtime/control-plane/routing/workspace-admission.ts +70 -0
- package/src/runtime/control-plane/runtime-status-client.ts +0 -2
- package/src/runtime/diagnostics/mcp-timing.ts +13 -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/evidence/process-check-execution.ts +18 -0
- package/src/runtime/execution/jobs/child-reference.ts +6 -2
- 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 +51 -4
- package/src/runtime/execution/process-runtime/check-result.ts +88 -0
- package/src/runtime/execution/process-runtime/check-runner-sidecar.ts +7 -1
- package/src/runtime/execution/process-runtime/check-scheduling.ts +114 -0
- package/src/runtime/execution/process-runtime/command-facade.ts +367 -40
- package/src/runtime/execution/process-runtime/gc.ts +38 -6
- package/src/runtime/execution/process-runtime/lightweight-managed.ts +1201 -0
- package/src/runtime/execution/process-runtime/persisted-check.ts +51 -5
- package/src/runtime/execution/process-runtime/resource-claims.ts +10 -6
- package/src/runtime/execution/process-runtime/runtime.ts +53 -3
- package/src/runtime/execution/process-runtime/store.ts +1 -0
- package/src/runtime/execution/process-runtime/types.ts +4 -12
- 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/work-activity.ts +21 -0
- package/src/runtime/execution/workers/executor.ts +18 -61
- package/src/runtime/gateway/mcp/execution-tools.ts +35 -1852
- package/src/runtime/gateway/mcp/legacy-ios-tool-adapter.ts +61 -0
- package/src/runtime/gateway/mcp/process-tools.ts +83 -37
- package/src/runtime/gateway/mcp/router.ts +186 -84
- package/src/runtime/gateway/mcp/runtime-tool-definitions.ts +565 -0
- package/src/runtime/gateway/mcp/runtime-tools.ts +2378 -1947
- package/src/runtime/plugins/app-store-connect-adapter.ts +216 -47
- package/src/runtime/plugins/browser-adapter.ts +2662 -829
- package/src/runtime/plugins/browser-automation-service.ts +10 -0
- package/src/runtime/plugins/browser-handoff-host.ts +2 -25
- package/src/runtime/plugins/browser-handoff.ts +110 -5
- package/src/runtime/plugins/browser-macos-bridge.ts +701 -63
- package/src/runtime/plugins/browser-manifest-surface.ts +603 -0
- package/src/runtime/plugins/browser-native-session-service.ts +222 -0
- 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 +154 -0
- package/src/runtime/plugins/browser-runtime.ts +193 -0
- package/src/runtime/plugins/browser-session-authority.ts +332 -0
- package/src/runtime/plugins/browser-session-store.ts +121 -0
- package/src/runtime/plugins/browser-session-types.ts +98 -0
- package/src/runtime/plugins/capability-authorization-grants.ts +354 -0
- package/src/runtime/plugins/desktop-operator-registration.ts +10 -4
- package/src/runtime/plugins/external-adapter.ts +358 -3
- package/src/runtime/plugins/external-unix-socket.ts +7 -1
- package/src/runtime/plugins/first-party-registry.ts +2 -0
- package/src/runtime/plugins/github-adapter.ts +125 -0
- 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 +123 -6
- package/src/runtime/plugins/macos-capability-broker.ts +47 -9
- package/src/runtime/plugins/plugin-action-sidecar.ts +59 -0
- package/src/runtime/plugins/plugin-management-adapter.ts +49 -8
- package/src/runtime/plugins/resend-adapter.ts +1 -1
- package/src/runtime/plugins/store.ts +330 -33
- package/src/runtime/plugins/types.ts +38 -3
- 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/maintenance-executor.ts +426 -25
- package/src/runtime/root/mcp-transport.ts +180 -10
- package/src/runtime/root/package-connector-service.ts +230 -10
- package/src/runtime/root/package-runtime-release.ts +143 -17
- package/src/runtime/root/package-runtime-service.ts +461 -22
- package/src/runtime/root/release-manifest.ts +144 -18
- package/src/runtime/root/release-materialize.ts +125 -32
- package/src/runtime/root/release-store.ts +48 -11
- package/src/runtime/root/runtime.ts +23 -5
- package/src/runtime/root/service.ts +100 -29
- package/src/runtime/root/types.ts +12 -0
- package/src/runtime/safe-tooling/ios-development.ts +321 -63
- 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 +1079 -240
- package/src/runtime/standalone-recovery/entry.ts +100 -24
- package/src/runtime/standalone-recovery/installer.ts +20 -4
- 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 +81 -3
- package/src/runtime/workflow/schedules/engine.ts +364 -202
- package/src/runtime/workflow/schedules/github-issue-watch.ts +158 -0
- package/src/runtime/workflow/schedules/settlement.ts +64 -17
- package/src/runtime/workflow/schedules/store.ts +209 -19
- package/src/runtime/workflow/schedules/types.ts +2 -4
- package/src/runtime/workflow/schedules/work-continuation.ts +26 -13
- 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/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 -459
- package/docs/architecture/current/codegraph-context-provider.md +0 -238
- 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 -373
- package/docs/architecture/current/entity-model.md +0 -612
- 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 -169
- 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 -321
- 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 -93
- 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/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,373 +0,0 @@
|
|
|
1
|
-
# Dispatch and Agent Strategy
|
|
2
|
-
|
|
3
|
-
> Status: **Runtime Authority**
|
|
4
|
-
|
|
5
|
-
## 1. Objective
|
|
6
|
-
|
|
7
|
-
Dispatch converts a user or automation objective into the smallest safe execution mechanism. The goal is not to maximize Agent use. The goal is to select the least expensive mechanism that can produce reviewable evidence without losing recoverability.
|
|
8
|
-
|
|
9
|
-
The Controller owns dispatch decisions. Workers and Agents execute scoped contracts; they do not decide whether the system should have used Direct Edit, a durable Task, or another repository.
|
|
10
|
-
|
|
11
|
-
## 2. Work Assessment
|
|
12
|
-
|
|
13
|
-
The Controller commits an execution mode only after it has enough evidence to do so. An already-explicit bounded request may commit immediately; an ambiguous or architectural request starts with read-only exploration and is assessed only after that context is available. Forge does not create a Plan/Work merely to perform this exploration.
|
|
14
|
-
|
|
15
|
-
When an execution commitment is needed, the Controller assesses:
|
|
16
|
-
|
|
17
|
-
```text
|
|
18
|
-
objective clarity
|
|
19
|
-
known paths
|
|
20
|
-
expected files
|
|
21
|
-
expected changed lines
|
|
22
|
-
investigation depth
|
|
23
|
-
runtime or environment dependencies
|
|
24
|
-
parallelism need
|
|
25
|
-
dependency graph need
|
|
26
|
-
verification duration
|
|
27
|
-
risk
|
|
28
|
-
external side effects
|
|
29
|
-
repository count
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
The assessment produces:
|
|
33
|
-
|
|
34
|
-
```text
|
|
35
|
-
recommendedMode
|
|
36
|
-
confidence
|
|
37
|
-
reasons
|
|
38
|
-
requiredScope
|
|
39
|
-
requiredClaims
|
|
40
|
-
verificationClass
|
|
41
|
-
humanBoundary
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
Repository search, CodeGraph impact analysis, Runtime state reads, and history/evidence lookup are information-gathering steps. They are not by themselves reasons to start an Agent, create Work, or create a Plan. ChatGPT/human Controller owns semantic sufficiency and the Direct/Work/Plan choice; Forge Route/Hook compatibility code may supply mechanics, safety facts, or advice but MUST NOT become a second semantic decision authority.
|
|
45
|
-
|
|
46
|
-
### 2.1 Orthogonal routing dimensions
|
|
47
|
-
|
|
48
|
-
Forge keeps three decisions separate:
|
|
49
|
-
|
|
50
|
-
```text
|
|
51
|
-
semantic ownership = unbound | continue/extend an explicit Work | Plan/Requirement binding
|
|
52
|
-
execution depth = Direct | Process | Durable Work | Handoff
|
|
53
|
-
resource placement = visible checkout | isolated Worktree | external provider resource
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
`RouteDecision` is the sole authority for execution depth. An unrelated active Work, an existing Plan, or a checkout writer MUST NOT reinterpret an already-safe Direct operation as Durable Work. Explicit Work ownership may be attached to a Direct Edit or Process for attribution/evidence without changing its execution depth. A real checkout writer conflict changes placement or waits for a resource; it does not manufacture a semantic `parallel`/`new_goal` relation.
|
|
57
|
-
|
|
58
|
-
When `rh_work start` actually creates a Durable repository Work, the facade materializes the same-ID execution `WorkHandle` for the selected checkout/worktree and atomically claims that new Work for the authenticated initiating Controller. `work_prepare` remains a lower-level execution/compatibility primitive; a normal new Work does not require a second mechanical prepare/claim round trip before useful execution can begin.
|
|
59
|
-
|
|
60
|
-
## 3. Execution Modes
|
|
61
|
-
|
|
62
|
-
### 3.1 Direct Edit
|
|
63
|
-
|
|
64
|
-
Direct Edit is the default when the Controller understands the implementation and can bound the change precisely.
|
|
65
|
-
|
|
66
|
-
Preferred characteristics:
|
|
67
|
-
|
|
68
|
-
- objective and behavior are understood;
|
|
69
|
-
- target paths can be found with bounded search;
|
|
70
|
-
- approximately eight or fewer files;
|
|
71
|
-
- approximately one thousand or fewer changed lines;
|
|
72
|
-
- no autonomous compile/fix loop is required;
|
|
73
|
-
- risk is not destructive;
|
|
74
|
-
- focused verification exists.
|
|
75
|
-
|
|
76
|
-
Flow:
|
|
77
|
-
|
|
78
|
-
```text
|
|
79
|
-
search/read
|
|
80
|
-
-> begin Edit Session
|
|
81
|
-
-> bounded revisions
|
|
82
|
-
-> inspect aggregate diff
|
|
83
|
-
-> focused checks
|
|
84
|
-
-> finalize or rollback
|
|
85
|
-
-> Work verification when linked
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
Direct Edit MUST use the same Workspace single-writer resource boundary as a Workspace Agent.
|
|
89
|
-
|
|
90
|
-
### 3.2 Quick Agent
|
|
91
|
-
|
|
92
|
-
Quick Agent is used when the objective is clear but implementation requires meaningful exploration or repeated local edit/test cycles, without needing a durable multi-Work dependency graph.
|
|
93
|
-
|
|
94
|
-
Preferred characteristics:
|
|
95
|
-
|
|
96
|
-
- one coherent objective;
|
|
97
|
-
- one reviewable result;
|
|
98
|
-
- bounded path scope;
|
|
99
|
-
- no long-lived cross-session product workflow;
|
|
100
|
-
- retry can replace the whole attempt;
|
|
101
|
-
- Agent autonomy provides clear value over Direct Edit.
|
|
102
|
-
|
|
103
|
-
Quick Agent work may carry ephemeral diagnostic metadata, but Job and Run evidence remain durable.
|
|
104
|
-
|
|
105
|
-
### 3.3 Requirement, Plan, and Work
|
|
106
|
-
|
|
107
|
-
Requirement, Plan, Work, and Workflow are independent durable tools rather than a mandatory graph. The Controller introduces only the minimum durable object justified by the task. A finite Work is useful when one bounded responsibility needs cross-session recovery/ownership; a Plan is useful for real staged/dependency coordination; a Requirement represents longer-lived intent; Workflow/Schedule represents recurrence. Durable state is commonly justified by one or more of:
|
|
108
|
-
|
|
109
|
-
- multiple independently verifiable objectives;
|
|
110
|
-
- dependencies or ordered migration phases;
|
|
111
|
-
- parallel implementation opportunities;
|
|
112
|
-
- high or destructive risk;
|
|
113
|
-
- protected or release-sensitive surfaces;
|
|
114
|
-
- cross-repository work;
|
|
115
|
-
- long-running verification or environment dependencies;
|
|
116
|
-
- a need for review and recovery across multiple sessions;
|
|
117
|
-
- release or rollout coordination.
|
|
118
|
-
|
|
119
|
-
A durable Work contract is optional, not ceremony and not a universal task wrapper. When explicitly chosen it owns a bounded recoverable responsibility and its execution attribution; Process/ExecutionJob/EditSession remain the technical execution truth. Requirement owns longer-lived user intent; ChatGPT/user review owns semantic acceptance. A Schedule/Occurrence does not require Work unless a particular occurrence needs durable responsibility.
|
|
120
|
-
|
|
121
|
-
## 4. Decision Order
|
|
122
|
-
|
|
123
|
-
The Controller follows a late-commit order rather than classifying every request at ingress:
|
|
124
|
-
|
|
125
|
-
```text
|
|
126
|
-
1. Is the request already explicit and bounded enough to act safely?
|
|
127
|
-
2. If not, gather the minimum read-only context first.
|
|
128
|
-
3. After context is sufficient, can Direct/Process satisfy it?
|
|
129
|
-
4. Does this bounded responsibility genuinely need durable Work recovery/ownership?
|
|
130
|
-
5. Does coordination genuinely need a Plan, or recurrence a Workflow/Schedule?
|
|
131
|
-
6. Independently, do hard authorization/resource/destructive boundaries constrain execution?
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
Steps 1-5 are semantic Controller decisions. Step 6 and execution mechanics are Forge authority. A later hard-safety rejection may stop an unsafe action, but Forge must not force an A→B execution-mode switch merely because a Plan/Work artifact is absent.
|
|
135
|
-
|
|
136
|
-
The system MUST NOT default to Agent execution merely because an Agent is available.
|
|
137
|
-
|
|
138
|
-
## 5. Agent Roles
|
|
139
|
-
|
|
140
|
-
Agent roles describe responsibility, not permanent products.
|
|
141
|
-
|
|
142
|
-
### Controller / Architect
|
|
143
|
-
|
|
144
|
-
Normally ChatGPT or a human-guided controller.
|
|
145
|
-
|
|
146
|
-
Owns:
|
|
147
|
-
|
|
148
|
-
- problem understanding;
|
|
149
|
-
- architecture decisions;
|
|
150
|
-
- Task decomposition;
|
|
151
|
-
- acceptance criteria;
|
|
152
|
-
- scope and resource declarations;
|
|
153
|
-
- Agent and execution-mode selection;
|
|
154
|
-
- review and acceptance.
|
|
155
|
-
|
|
156
|
-
The Controller SHOULD remain runtime-light and MUST NOT become the hidden owner of a long Worker process.
|
|
157
|
-
|
|
158
|
-
### Explorer
|
|
159
|
-
|
|
160
|
-
A read-only role used for:
|
|
161
|
-
|
|
162
|
-
- root-cause investigation;
|
|
163
|
-
- architecture mapping;
|
|
164
|
-
- candidate path discovery;
|
|
165
|
-
- dependency analysis;
|
|
166
|
-
- risk assessment.
|
|
167
|
-
|
|
168
|
-
Explorer output is evidence or a proposed plan. It does not authorize writes.
|
|
169
|
-
|
|
170
|
-
### Implementer
|
|
171
|
-
|
|
172
|
-
A scoped worker role used for:
|
|
173
|
-
|
|
174
|
-
- code or document changes;
|
|
175
|
-
- local compile/test/fix loops;
|
|
176
|
-
- producing a reviewable diff;
|
|
177
|
-
- reporting limitations and unresolved blockers.
|
|
178
|
-
|
|
179
|
-
An Implementer cannot accept its own Task.
|
|
180
|
-
|
|
181
|
-
### Verifier
|
|
182
|
-
|
|
183
|
-
An optional independent role for high-risk, safety-sensitive, or ambiguity-prone work.
|
|
184
|
-
|
|
185
|
-
The Verifier MUST use the Task's declared checks and acceptance criteria as its rubric. It MUST NOT invent a competing quality standard or replace authoritative repository tests.
|
|
186
|
-
|
|
187
|
-
Independent verification is not a default for every Task because extra evaluators can add cost and drift without improving acceptance alignment.
|
|
188
|
-
|
|
189
|
-
### Integrator
|
|
190
|
-
|
|
191
|
-
Integration is a deterministic system role, not an LLM role.
|
|
192
|
-
|
|
193
|
-
It validates source evidence, base revisions, target state, supported file operations, conflicts, and cleanup. An Agent may explain a conflict, but must not silently decide to overwrite it.
|
|
194
|
-
|
|
195
|
-
### Release Steward
|
|
196
|
-
|
|
197
|
-
The Release Steward evaluates the release gate, produces the release manifest, and identifies unresolved human boundaries. It cannot silently push, merge, publish, or deploy.
|
|
198
|
-
|
|
199
|
-
## 6. Runtime Agent Selection
|
|
200
|
-
|
|
201
|
-
Tasks remain executor-neutral. At dispatch time the Controller chooses among enabled providers based on capability and constraints.
|
|
202
|
-
|
|
203
|
-
General policy:
|
|
204
|
-
|
|
205
|
-
| Work characteristic | Preferred executor |
|
|
206
|
-
| --- | --- |
|
|
207
|
-
| Small understood change | Direct Edit |
|
|
208
|
-
| Broad repository exploration and repeated code/test loop | Codex or Claude local Agent |
|
|
209
|
-
| Architecture, policy, documentation, semantic cross-module review | ChatGPT, Claude, or Direct Edit after analysis |
|
|
210
|
-
| GitHub-native collaboration and draft PR | GitHub Copilot session |
|
|
211
|
-
| Deterministic check, command, integration, or release gate | Non-Agent Worker |
|
|
212
|
-
| Read-only root-cause map | Explorer role |
|
|
213
|
-
|
|
214
|
-
Agent choice considers:
|
|
215
|
-
|
|
216
|
-
```text
|
|
217
|
-
required tools
|
|
218
|
-
repository language
|
|
219
|
-
context size
|
|
220
|
-
expected autonomy
|
|
221
|
-
local availability
|
|
222
|
-
provider health
|
|
223
|
-
cost budget
|
|
224
|
-
past failure classification
|
|
225
|
-
need for GitHub collaboration
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
A Task does not permanently bind to one Agent. However, switching Agents after failure requires a reason, not reflex.
|
|
229
|
-
|
|
230
|
-
## 7. Failure Classification Before Retry
|
|
231
|
-
|
|
232
|
-
Before retry or Agent switching, classify the failure:
|
|
233
|
-
|
|
234
|
-
- `infrastructure_failure` — transport, process launch, authentication, unavailable provider;
|
|
235
|
-
- `scope_conflict` — resource or allowed-path collision;
|
|
236
|
-
- `environment_failure` — missing dependency, build service, credentials, external system;
|
|
237
|
-
- `implementation_failure` — produced change does not compile or satisfy checks;
|
|
238
|
-
- `acceptance_failure` — implementation works locally but misses declared criteria;
|
|
239
|
-
- `integration_failure` — reviewed change cannot be integrated safely;
|
|
240
|
-
- `agent_capability_mismatch` — execution requires capabilities unavailable to the selected Agent;
|
|
241
|
-
- `controller_contract_failure` — Task scope, acceptance, or prompt was insufficient or contradictory.
|
|
242
|
-
|
|
243
|
-
Response policy:
|
|
244
|
-
|
|
245
|
-
| Classification | Default response |
|
|
246
|
-
| --- | --- |
|
|
247
|
-
| Infrastructure | Retry same contract after recovery |
|
|
248
|
-
| Scope conflict | Wait, re-scope, or isolate |
|
|
249
|
-
| Environment | Block with external dependency evidence |
|
|
250
|
-
| Implementation | Request focused changes or retry same Agent |
|
|
251
|
-
| Acceptance | Refine implementation, not the criteria unless product intent changed |
|
|
252
|
-
| Integration | Preserve Worktree; repair from current target state |
|
|
253
|
-
| Capability mismatch | Select a more suitable Agent/provider |
|
|
254
|
-
| Controller contract | Re-plan Work before another Run |
|
|
255
|
-
|
|
256
|
-
## 8. Work Execution Contract
|
|
257
|
-
|
|
258
|
-
Every Agent Run receives a generated contract containing:
|
|
259
|
-
|
|
260
|
-
```text
|
|
261
|
-
repository and checkout identity
|
|
262
|
-
Requirement and Work objective
|
|
263
|
-
current implementation context
|
|
264
|
-
allowed and forbidden paths
|
|
265
|
-
required outputs
|
|
266
|
-
acceptance criteria
|
|
267
|
-
named checks
|
|
268
|
-
risk and destructive boundary
|
|
269
|
-
resource placement
|
|
270
|
-
base revision
|
|
271
|
-
budget and deadline
|
|
272
|
-
result and artifact paths
|
|
273
|
-
completion and stop conditions
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
The prompt MUST state that:
|
|
277
|
-
|
|
278
|
-
- unrelated changes are forbidden;
|
|
279
|
-
- repository state is authoritative over chat memory;
|
|
280
|
-
- the Agent must not commit, merge, push, publish, deploy, reset, rebase, or remove Worktrees unless the explicit contract permits it;
|
|
281
|
-
- test failure must be reported honestly;
|
|
282
|
-
- a successful self-report does not complete the Task;
|
|
283
|
-
- user modifications outside scope must be preserved.
|
|
284
|
-
|
|
285
|
-
## 9. Budget Model
|
|
286
|
-
|
|
287
|
-
Every Agent or scheduled execution SHOULD declare bounded budgets:
|
|
288
|
-
|
|
289
|
-
```text
|
|
290
|
-
wall-clock timeout
|
|
291
|
-
maximum retries
|
|
292
|
-
maximum parallel children
|
|
293
|
-
maximum changed files
|
|
294
|
-
maximum changed lines
|
|
295
|
-
maximum output bytes
|
|
296
|
-
optional token or provider cost budget
|
|
297
|
-
```
|
|
298
|
-
|
|
299
|
-
Budget exhaustion produces a durable outcome. It must not silently extend itself indefinitely.
|
|
300
|
-
|
|
301
|
-
## 10. Placement Decision
|
|
302
|
-
|
|
303
|
-
Placement is separate from Agent selection.
|
|
304
|
-
|
|
305
|
-
### Workspace
|
|
306
|
-
|
|
307
|
-
Use when:
|
|
308
|
-
|
|
309
|
-
- no other write owner exists;
|
|
310
|
-
- work is serial;
|
|
311
|
-
- fast local iteration is valuable;
|
|
312
|
-
- the user expects changes in the visible working tree.
|
|
313
|
-
|
|
314
|
-
### Worktree
|
|
315
|
-
|
|
316
|
-
Use when:
|
|
317
|
-
|
|
318
|
-
- another writer is active;
|
|
319
|
-
- independent Tasks should run concurrently;
|
|
320
|
-
- isolation is explicitly requested;
|
|
321
|
-
- the main Workspace is dirty and safe direct ownership cannot be established;
|
|
322
|
-
- implementation should be reviewed before integration.
|
|
323
|
-
|
|
324
|
-
### GitHub branch/provider
|
|
325
|
-
|
|
326
|
-
Use when:
|
|
327
|
-
|
|
328
|
-
- remote collaboration is requested;
|
|
329
|
-
- the provider requires a remote branch;
|
|
330
|
-
- a draft PR is a desired artifact;
|
|
331
|
-
- local execution is unavailable.
|
|
332
|
-
|
|
333
|
-
The default `auto` placement policy chooses Workspace for one local serial writer and Worktree when concurrency exists. It MUST still honor explicit claims and dirty-state safety.
|
|
334
|
-
|
|
335
|
-
Placement is evaluated after execution depth and semantic ownership. A new durable objective may therefore create a new finite Work and select a Worktree purely because the visible checkout already has a writer; the caller does not need to classify that resource conflict as a semantic `parallel` relation first. Only a managed Worktree/branch is a disposable Work-owned resource: stopping a Work on the current checkout closes lifecycle/process ownership but never removes the repository's current checkout or branch.
|
|
336
|
-
|
|
337
|
-
## 11. Review and Continuation
|
|
338
|
-
|
|
339
|
-
After execution:
|
|
340
|
-
|
|
341
|
-
```text
|
|
342
|
-
read Run/Job outcome
|
|
343
|
-
-> inspect diff and evidence
|
|
344
|
-
-> classify defects or blockers
|
|
345
|
-
-> integrate when isolated
|
|
346
|
-
-> verify exact Revision
|
|
347
|
-
-> accept or request changes
|
|
348
|
-
-> unlock dependents
|
|
349
|
-
```
|
|
350
|
-
|
|
351
|
-
The Controller may use Direct Edit for a small correction after an Agent Run. This creates separate, reviewable evidence rather than asking the Agent to rerun the entire task unnecessarily.
|
|
352
|
-
|
|
353
|
-
## 12. Anti-Patterns
|
|
354
|
-
|
|
355
|
-
The dispatch layer MUST avoid:
|
|
356
|
-
|
|
357
|
-
- starting an Agent for a deterministic one-file edit;
|
|
358
|
-
- creating a durable Issue solely because file discovery is needed;
|
|
359
|
-
- binding every Task permanently to Codex;
|
|
360
|
-
- launching multiple Agents with overlapping unknown write scopes;
|
|
361
|
-
- using a Verifier with criteria different from Task acceptance;
|
|
362
|
-
- retrying on every network error without idempotency lookup;
|
|
363
|
-
- treating a successful process exit as product acceptance;
|
|
364
|
-
- allowing an automation Agent to recursively create unlimited work;
|
|
365
|
-
- using the Controller conversation as the only execution state.
|
|
366
|
-
|
|
367
|
-
## 13. Current Implementation
|
|
368
|
-
|
|
369
|
-
The repository implements one canonical Route Policy for execution depth, Direct Edit, Process Runtime, finite Requirement/Work execution, optional Plan decomposition, runtime Agent selection, bounded Task scope, persistent Runs, Workspace/Worktree placement, and risk-adaptive verification.
|
|
370
|
-
|
|
371
|
-
The Thin Gateway keeps deterministic local commands on Direct Edit or Process Runtime paths. Agent dispatch is now an explicit external-Controller handoff; the Kernel no longer creates Execution Jobs for ordinary Agent launches. Work ownership, repository placement, and resource claims remain durable Controller state, while provider selection and model execution belong to the claimed external Controller.
|
|
372
|
-
|
|
373
|
-
Failure outcomes are retained on Work, Process, Handoff, or legacy read-only Job evidence as applicable; retries preserve the failed attempt and create a new explicit continuation attempt rather than falling back to implicit Job creation.
|