@cleocode/core 2026.9.23 → 2026.9.24
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/dist/admin/import-tasks.d.ts.map +1 -1
- package/dist/admin/import-tasks.js +35 -6
- package/dist/admin/import-tasks.js.map +1 -1
- package/dist/admin/import.d.ts.map +1 -1
- package/dist/admin/import.js +25 -6
- package/dist/admin/import.js.map +1 -1
- package/dist/build-provenance.json +2 -2
- package/dist/cloud/http.d.ts +8 -0
- package/dist/cloud/http.d.ts.map +1 -1
- package/dist/cloud/http.js +8 -1
- package/dist/cloud/http.js.map +1 -1
- package/dist/cloud/index.d.ts +6 -1
- package/dist/cloud/index.d.ts.map +1 -1
- package/dist/cloud/index.js +6 -1
- package/dist/cloud/index.js.map +1 -1
- package/dist/cloud/nexus-auth.d.ts +169 -0
- package/dist/cloud/nexus-auth.d.ts.map +1 -0
- package/dist/cloud/nexus-auth.js +372 -0
- package/dist/cloud/nexus-auth.js.map +1 -0
- package/dist/cloud/nexus-credentials.d.ts +188 -0
- package/dist/cloud/nexus-credentials.d.ts.map +1 -0
- package/dist/cloud/nexus-credentials.js +323 -0
- package/dist/cloud/nexus-credentials.js.map +1 -0
- package/dist/cloud/nexus-link.d.ts +85 -0
- package/dist/cloud/nexus-link.d.ts.map +1 -0
- package/dist/cloud/nexus-link.js +226 -0
- package/dist/cloud/nexus-link.js.map +1 -0
- package/dist/cloud/presence.d.ts +88 -0
- package/dist/cloud/presence.d.ts.map +1 -0
- package/dist/cloud/presence.js +137 -0
- package/dist/cloud/presence.js.map +1 -0
- package/dist/cloud/projects.d.ts +3 -1
- package/dist/cloud/projects.d.ts.map +1 -1
- package/dist/cloud/projects.js +4 -2
- package/dist/cloud/projects.js.map +1 -1
- package/dist/crypto/credentials.d.ts +14 -4
- package/dist/crypto/credentials.d.ts.map +1 -1
- package/dist/crypto/credentials.js +15 -1
- package/dist/crypto/credentials.js.map +1 -1
- package/dist/decide/bench/dataset.d.ts +125 -0
- package/dist/decide/bench/dataset.d.ts.map +1 -0
- package/dist/decide/bench/dataset.js +457 -0
- package/dist/decide/bench/dataset.js.map +1 -0
- package/dist/decide/bench/index.d.ts +23 -0
- package/dist/decide/bench/index.d.ts.map +1 -0
- package/dist/decide/bench/index.js +23 -0
- package/dist/decide/bench/index.js.map +1 -0
- package/dist/decide/bench/metrics.d.ts +55 -0
- package/dist/decide/bench/metrics.d.ts.map +1 -0
- package/dist/decide/bench/metrics.js +100 -0
- package/dist/decide/bench/metrics.js.map +1 -0
- package/dist/decide/bench/operation.d.ts +119 -0
- package/dist/decide/bench/operation.d.ts.map +1 -0
- package/dist/decide/bench/operation.js +171 -0
- package/dist/decide/bench/operation.js.map +1 -0
- package/dist/decide/bench/profiles.d.ts +74 -0
- package/dist/decide/bench/profiles.d.ts.map +1 -0
- package/dist/decide/bench/profiles.js +131 -0
- package/dist/decide/bench/profiles.js.map +1 -0
- package/dist/decide/bench/questions.d.ts +40 -0
- package/dist/decide/bench/questions.d.ts.map +1 -0
- package/dist/decide/bench/questions.js +107 -0
- package/dist/decide/bench/questions.js.map +1 -0
- package/dist/decide/bench/report.d.ts +21 -0
- package/dist/decide/bench/report.d.ts.map +1 -0
- package/dist/decide/bench/report.js +120 -0
- package/dist/decide/bench/report.js.map +1 -0
- package/dist/decide/bench/runner.d.ts +203 -0
- package/dist/decide/bench/runner.d.ts.map +1 -0
- package/dist/decide/bench/runner.js +335 -0
- package/dist/decide/bench/runner.js.map +1 -0
- package/dist/decide/bench/source.d.ts +21 -0
- package/dist/decide/bench/source.d.ts.map +1 -0
- package/dist/decide/bench/source.js +67 -0
- package/dist/decide/bench/source.js.map +1 -0
- package/dist/decide/bench/spot-check.d.ts +117 -0
- package/dist/decide/bench/spot-check.d.ts.map +1 -0
- package/dist/decide/bench/spot-check.js +221 -0
- package/dist/decide/bench/spot-check.js.map +1 -0
- package/dist/decide/bench/stats.d.ts +57 -0
- package/dist/decide/bench/stats.d.ts.map +1 -0
- package/dist/decide/bench/stats.js +82 -0
- package/dist/decide/bench/stats.js.map +1 -0
- package/dist/decide/bench/types.d.ts +216 -0
- package/dist/decide/bench/types.d.ts.map +1 -0
- package/dist/decide/bench/types.js +104 -0
- package/dist/decide/bench/types.js.map +1 -0
- package/dist/decide/client.d.ts +35 -1
- package/dist/decide/client.d.ts.map +1 -1
- package/dist/decide/client.js +124 -30
- package/dist/decide/client.js.map +1 -1
- package/dist/decide/credentials.d.ts +177 -17
- package/dist/decide/credentials.d.ts.map +1 -1
- package/dist/decide/credentials.js +505 -41
- package/dist/decide/credentials.js.map +1 -1
- package/dist/decide/index.d.ts +8 -8
- package/dist/decide/index.d.ts.map +1 -1
- package/dist/decide/index.js +8 -8
- package/dist/decide/index.js.map +1 -1
- package/dist/decide/jev-wire.d.ts +25 -19
- package/dist/decide/jev-wire.d.ts.map +1 -1
- package/dist/decide/jev-wire.js +56 -31
- package/dist/decide/jev-wire.js.map +1 -1
- package/dist/decide/operations.d.ts +63 -12
- package/dist/decide/operations.d.ts.map +1 -1
- package/dist/decide/operations.js +116 -58
- package/dist/decide/operations.js.map +1 -1
- package/dist/decide/provider-state.d.ts +85 -12
- package/dist/decide/provider-state.d.ts.map +1 -1
- package/dist/decide/provider-state.js +154 -21
- package/dist/decide/provider-state.js.map +1 -1
- package/dist/decide/provider.d.ts +5 -0
- package/dist/decide/provider.d.ts.map +1 -1
- package/dist/decide/provider.js.map +1 -1
- package/dist/decide/providers.d.ts +15 -2
- package/dist/decide/providers.d.ts.map +1 -1
- package/dist/decide/providers.js +22 -6
- package/dist/decide/providers.js.map +1 -1
- package/dist/decide/sites/registry.d.ts +22 -0
- package/dist/decide/sites/registry.d.ts.map +1 -1
- package/dist/decide/sites/registry.js +23 -0
- package/dist/decide/sites/registry.js.map +1 -1
- package/dist/decide/wizard.d.ts +12 -4
- package/dist/decide/wizard.d.ts.map +1 -1
- package/dist/decide/wizard.js +79 -26
- package/dist/decide/wizard.js.map +1 -1
- package/dist/dispatch/mvi-projection.d.ts +15 -2
- package/dist/dispatch/mvi-projection.d.ts.map +1 -1
- package/dist/dispatch/mvi-projection.js +73 -12
- package/dist/dispatch/mvi-projection.js.map +1 -1
- package/dist/docs/adr-allocator.d.ts +2 -2
- package/dist/docs/adr-allocator.d.ts.map +1 -1
- package/dist/docs/adr-allocator.js +17 -4
- package/dist/docs/adr-allocator.js.map +1 -1
- package/dist/docs/blob-consolidation.js +1 -1
- package/dist/docs/blob-consolidation.js.map +1 -1
- package/dist/docs/display-alias.d.ts +1 -1
- package/dist/docs/display-alias.d.ts.map +1 -1
- package/dist/docs/display-alias.js +7 -4
- package/dist/docs/display-alias.js.map +1 -1
- package/dist/docs/docs-inconsistency-detector.js +1 -1
- package/dist/docs/docs-inconsistency-detector.js.map +1 -1
- package/dist/docs/docs-update.d.ts.map +1 -1
- package/dist/docs/docs-update.js +6 -1
- package/dist/docs/docs-update.js.map +1 -1
- package/dist/docs/export-document.js +2928 -1053
- package/dist/docs/export-document.js.map +3 -3
- package/dist/docs/numbering.js +1 -1
- package/dist/docs/numbering.js.map +1 -1
- package/dist/docs/supersede.d.ts.map +1 -1
- package/dist/docs/supersede.js +6 -3
- package/dist/docs/supersede.js.map +1 -1
- package/dist/docs/version-ssot.js +1 -1
- package/dist/docs/version-ssot.js.map +1 -1
- package/dist/doctor/db-substrate.d.ts.map +1 -1
- package/dist/doctor/db-substrate.js +39 -24
- package/dist/doctor/db-substrate.js.map +1 -1
- package/dist/doctor/knowledge-summary.d.ts +10 -3
- package/dist/doctor/knowledge-summary.d.ts.map +1 -1
- package/dist/doctor/knowledge-summary.js +10 -3
- package/dist/doctor/knowledge-summary.js.map +1 -1
- package/dist/doctor/project-identity.d.ts +128 -37
- package/dist/doctor/project-identity.d.ts.map +1 -1
- package/dist/doctor/project-identity.js +476 -63
- package/dist/doctor/project-identity.js.map +1 -1
- package/dist/doctor/twin-collapse.d.ts +52 -2
- package/dist/doctor/twin-collapse.d.ts.map +1 -1
- package/dist/doctor/twin-collapse.js +108 -4
- package/dist/doctor/twin-collapse.js.map +1 -1
- package/dist/error-catalog.js +2 -2
- package/dist/error-catalog.js.map +1 -1
- package/dist/error-registry.js +1 -1
- package/dist/error-registry.js.map +1 -1
- package/dist/gateway-client/generated/types.gen.d.ts +22 -2
- package/dist/gateway-client/generated/types.gen.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +20 -11
- package/dist/init.js.map +1 -1
- package/dist/inject/index.d.ts.map +1 -1
- package/dist/inject/index.js +2 -3
- package/dist/inject/index.js.map +1 -1
- package/dist/internal.d.ts +5 -4
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +6 -4
- package/dist/internal.js.map +1 -1
- package/dist/llm/credential-remove-entry.d.ts +59 -0
- package/dist/llm/credential-remove-entry.d.ts.map +1 -0
- package/dist/llm/credential-remove-entry.js +101 -0
- package/dist/llm/credential-remove-entry.js.map +1 -0
- package/dist/llm/oauth/device-code.d.ts +26 -6
- package/dist/llm/oauth/device-code.d.ts.map +1 -1
- package/dist/llm/oauth/device-code.js +44 -12
- package/dist/llm/oauth/device-code.js.map +1 -1
- package/dist/llm/plugin-facade.js +3017 -1142
- package/dist/llm/plugin-facade.js.map +3 -3
- package/dist/memory/attention.d.ts.map +1 -1
- package/dist/memory/attention.js +5 -3
- package/dist/memory/attention.js.map +1 -1
- package/dist/memory/decisions.d.ts +48 -3
- package/dist/memory/decisions.d.ts.map +1 -1
- package/dist/memory/decisions.js +98 -14
- package/dist/memory/decisions.js.map +1 -1
- package/dist/memory/learnings.d.ts +6 -6
- package/dist/memory/patterns.d.ts +4 -4
- package/dist/migration/manual/T10165-backfill-adr-index.d.ts.map +1 -1
- package/dist/migration/manual/T10165-backfill-adr-index.js +5 -1
- package/dist/migration/manual/T10165-backfill-adr-index.js.map +1 -1
- package/dist/nexus/fleet-status.d.ts +83 -0
- package/dist/nexus/fleet-status.d.ts.map +1 -0
- package/dist/nexus/fleet-status.js +414 -0
- package/dist/nexus/fleet-status.js.map +1 -0
- package/dist/nexus/git-state.d.ts +15 -0
- package/dist/nexus/git-state.d.ts.map +1 -1
- package/dist/nexus/git-state.js +67 -2
- package/dist/nexus/git-state.js.map +1 -1
- package/dist/nexus/identity.d.ts.map +1 -1
- package/dist/nexus/identity.js +4 -0
- package/dist/nexus/identity.js.map +1 -1
- package/dist/nexus/index.d.ts +4 -1
- package/dist/nexus/index.d.ts.map +1 -1
- package/dist/nexus/index.js +7 -1
- package/dist/nexus/index.js.map +1 -1
- package/dist/nexus/migrate-json-to-sqlite.d.ts +3 -2
- package/dist/nexus/migrate-json-to-sqlite.d.ts.map +1 -1
- package/dist/nexus/migrate-json-to-sqlite.js +9 -17
- package/dist/nexus/migrate-json-to-sqlite.js.map +1 -1
- package/dist/nexus/ops.d.ts +1 -0
- package/dist/nexus/ops.d.ts.map +1 -1
- package/dist/nexus/project-activity.d.ts +104 -0
- package/dist/nexus/project-activity.d.ts.map +1 -0
- package/dist/nexus/project-activity.js +150 -0
- package/dist/nexus/project-activity.js.map +1 -0
- package/dist/nexus/query.d.ts +2 -2
- package/dist/nexus/query.d.ts.map +1 -1
- package/dist/nexus/query.js +4 -19
- package/dist/nexus/query.js.map +1 -1
- package/dist/nexus/registry-errors.d.ts +61 -0
- package/dist/nexus/registry-errors.d.ts.map +1 -0
- package/dist/nexus/registry-errors.js +85 -0
- package/dist/nexus/registry-errors.js.map +1 -0
- package/dist/nexus/registry.d.ts +30 -5
- package/dist/nexus/registry.d.ts.map +1 -1
- package/dist/nexus/registry.js +115 -70
- package/dist/nexus/registry.js.map +1 -1
- package/dist/orchestrate/pivot.d.ts +4 -0
- package/dist/orchestrate/pivot.d.ts.map +1 -1
- package/dist/orchestrate/pivot.js +75 -12
- package/dist/orchestrate/pivot.js.map +1 -1
- package/dist/orchestrate/query-ops.d.ts.map +1 -1
- package/dist/orchestrate/query-ops.js +29 -27
- package/dist/orchestrate/query-ops.js.map +1 -1
- package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
- package/dist/orchestrate/spawn-ops.js +29 -3
- package/dist/orchestrate/spawn-ops.js.map +1 -1
- package/dist/orchestration/bootstrap.d.ts.map +1 -1
- package/dist/orchestration/bootstrap.js +20 -14
- package/dist/orchestration/bootstrap.js.map +1 -1
- package/dist/orchestration/index.d.ts +15 -1
- package/dist/orchestration/index.d.ts.map +1 -1
- package/dist/orchestration/index.js +25 -6
- package/dist/orchestration/index.js.map +1 -1
- package/dist/orchestration/lead-rollup.d.ts +7 -1
- package/dist/orchestration/lead-rollup.d.ts.map +1 -1
- package/dist/orchestration/lead-rollup.js +6 -3
- package/dist/orchestration/lead-rollup.js.map +1 -1
- package/dist/orchestration/spawn-prompt.js +1 -1
- package/dist/orchestration/spawn-prompt.js.map +1 -1
- package/dist/orchestration/waves.d.ts +21 -10
- package/dist/orchestration/waves.d.ts.map +1 -1
- package/dist/orchestration/waves.js +38 -35
- package/dist/orchestration/waves.js.map +1 -1
- package/dist/paths.d.ts +9 -2
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +30 -13
- package/dist/paths.js.map +1 -1
- package/dist/phases/index.d.ts +1 -1
- package/dist/phases/index.d.ts.map +1 -1
- package/dist/phases/index.js +3 -4
- package/dist/phases/index.js.map +1 -1
- package/dist/project-info.d.ts +40 -3
- package/dist/project-info.d.ts.map +1 -1
- package/dist/project-info.js +74 -6
- package/dist/project-info.js.map +1 -1
- package/dist/project-lifecycle.d.ts +28 -7
- package/dist/project-lifecycle.d.ts.map +1 -1
- package/dist/project-lifecycle.js +114 -47
- package/dist/project-lifecycle.js.map +1 -1
- package/dist/project-scope.d.ts +70 -3
- package/dist/project-scope.d.ts.map +1 -1
- package/dist/project-scope.js +154 -15
- package/dist/project-scope.js.map +1 -1
- package/dist/release/open.d.ts +12 -2
- package/dist/release/open.d.ts.map +1 -1
- package/dist/release/open.js +32 -3
- package/dist/release/open.js.map +1 -1
- package/dist/release/preflight-skip.d.ts +73 -0
- package/dist/release/preflight-skip.d.ts.map +1 -0
- package/dist/release/preflight-skip.js +254 -0
- package/dist/release/preflight-skip.js.map +1 -0
- package/dist/render/decide/index.d.ts +51 -0
- package/dist/render/decide/index.d.ts.map +1 -0
- package/dist/render/decide/index.js +289 -0
- package/dist/render/decide/index.js.map +1 -0
- package/dist/render/index.d.ts +1 -0
- package/dist/render/index.d.ts.map +1 -1
- package/dist/render/index.js +1 -0
- package/dist/render/index.js.map +1 -1
- package/dist/render/nexus/graph/index.d.ts +5 -0
- package/dist/render/nexus/graph/index.d.ts.map +1 -1
- package/dist/render/nexus/graph/index.js +53 -0
- package/dist/render/nexus/graph/index.js.map +1 -1
- package/dist/scaffold/ensure-config.d.ts +14 -6
- package/dist/scaffold/ensure-config.d.ts.map +1 -1
- package/dist/scaffold/ensure-config.js +39 -17
- package/dist/scaffold/ensure-config.js.map +1 -1
- package/dist/scaffold/project-identity.d.ts +115 -23
- package/dist/scaffold/project-identity.d.ts.map +1 -1
- package/dist/scaffold/project-identity.js +196 -44
- package/dist/scaffold/project-identity.js.map +1 -1
- package/dist/selfimprove/fix-gen.js +3027 -1152
- package/dist/selfimprove/fix-gen.js.map +3 -3
- package/dist/sentient/cross-project-hygiene.d.ts +12 -6
- package/dist/sentient/cross-project-hygiene.d.ts.map +1 -1
- package/dist/sentient/cross-project-hygiene.js +15 -10
- package/dist/sentient/cross-project-hygiene.js.map +1 -1
- package/dist/session/engine-ops.d.ts +13 -4
- package/dist/session/engine-ops.d.ts.map +1 -1
- package/dist/session/engine-ops.js +38 -45
- package/dist/session/engine-ops.js.map +1 -1
- package/dist/sessions/briefing.d.ts +7 -3
- package/dist/sessions/briefing.d.ts.map +1 -1
- package/dist/sessions/briefing.js +10 -10
- package/dist/sessions/briefing.js.map +1 -1
- package/dist/sessions/drift-watchdog.d.ts.map +1 -1
- package/dist/sessions/drift-watchdog.js +11 -19
- package/dist/sessions/drift-watchdog.js.map +1 -1
- package/dist/sessions/focus-state-store.d.ts +103 -26
- package/dist/sessions/focus-state-store.d.ts.map +1 -1
- package/dist/sessions/focus-state-store.js +166 -37
- package/dist/sessions/focus-state-store.js.map +1 -1
- package/dist/sessions/handoff.d.ts.map +1 -1
- package/dist/sessions/handoff.js +9 -18
- package/dist/sessions/handoff.js.map +1 -1
- package/dist/sessions/index.d.ts +4 -2
- package/dist/sessions/index.d.ts.map +1 -1
- package/dist/sessions/index.js +35 -6
- package/dist/sessions/index.js.map +1 -1
- package/dist/sessions/session-drift.d.ts.map +1 -1
- package/dist/sessions/session-drift.js +4 -2
- package/dist/sessions/session-drift.js.map +1 -1
- package/dist/sessions/session-view.d.ts +8 -1
- package/dist/sessions/session-view.d.ts.map +1 -1
- package/dist/sessions/session-view.js +9 -2
- package/dist/sessions/session-view.js.map +1 -1
- package/dist/setup/config-json-merge.d.ts.map +1 -1
- package/dist/setup/config-json-merge.js +1 -0
- package/dist/setup/config-json-merge.js.map +1 -1
- package/dist/setup/index.d.ts +4 -2
- package/dist/setup/index.d.ts.map +1 -1
- package/dist/setup/index.js +6 -2
- package/dist/setup/index.js.map +1 -1
- package/dist/setup/sections/nexus-account.d.ts +32 -0
- package/dist/setup/sections/nexus-account.d.ts.map +1 -0
- package/dist/setup/sections/nexus-account.js +64 -0
- package/dist/setup/sections/nexus-account.js.map +1 -0
- package/dist/setup/wizard.d.ts +1 -1
- package/dist/setup/wizard.d.ts.map +1 -1
- package/dist/setup/wizard.js.map +1 -1
- package/dist/skills/orchestrator/startup.d.ts.map +1 -1
- package/dist/skills/orchestrator/startup.js +18 -31
- package/dist/skills/orchestrator/startup.js.map +1 -1
- package/dist/snapshot/index.d.ts.map +1 -1
- package/dist/snapshot/index.js +60 -53
- package/dist/snapshot/index.js.map +1 -1
- package/dist/spawn/agent-identity.d.ts +33 -1
- package/dist/spawn/agent-identity.d.ts.map +1 -1
- package/dist/spawn/agent-identity.js +53 -1
- package/dist/spawn/agent-identity.js.map +1 -1
- package/dist/spawn/index.d.ts +1 -1
- package/dist/spawn/index.d.ts.map +1 -1
- package/dist/spawn/index.js +1 -1
- package/dist/spawn/index.js.map +1 -1
- package/dist/stats/index.d.ts.map +1 -1
- package/dist/stats/index.js +3 -4
- package/dist/stats/index.js.map +1 -1
- package/dist/status/index.d.ts +12 -3
- package/dist/status/index.d.ts.map +1 -1
- package/dist/status/index.js +47 -5
- package/dist/status/index.js.map +1 -1
- package/dist/store/attachment-repair.d.ts.map +1 -1
- package/dist/store/attachment-repair.js +42 -3
- package/dist/store/attachment-repair.js.map +1 -1
- package/dist/store/attachment-store.d.ts.map +1 -1
- package/dist/store/attachment-store.js +30 -46
- package/dist/store/attachment-store.js.map +1 -1
- package/dist/store/backup-recover-brain.d.ts +4 -0
- package/dist/store/backup-recover-brain.d.ts.map +1 -1
- package/dist/store/backup-recover-brain.js +2 -0
- package/dist/store/backup-recover-brain.js.map +1 -1
- package/dist/store/backup-recover.d.ts +9 -0
- package/dist/store/backup-recover.d.ts.map +1 -1
- package/dist/store/backup-recover.js +28 -1
- package/dist/store/backup-recover.js.map +1 -1
- package/dist/store/backup-sidecar.d.ts +30 -0
- package/dist/store/backup-sidecar.d.ts.map +1 -1
- package/dist/store/backup-sidecar.js +90 -2
- package/dist/store/backup-sidecar.js.map +1 -1
- package/dist/store/blob-keep.d.ts +135 -0
- package/dist/store/blob-keep.d.ts.map +1 -0
- package/dist/store/blob-keep.js +283 -0
- package/dist/store/blob-keep.js.map +1 -0
- package/dist/store/converters.d.ts.map +1 -1
- package/dist/store/converters.js +11 -0
- package/dist/store/converters.js.map +1 -1
- package/dist/store/credential-transfer.d.ts +37 -5
- package/dist/store/credential-transfer.d.ts.map +1 -1
- package/dist/store/credential-transfer.js +73 -18
- package/dist/store/credential-transfer.js.map +1 -1
- package/dist/store/data-accessor.d.ts +1 -1
- package/dist/store/data-accessor.d.ts.map +1 -1
- package/dist/store/data-accessor.js.map +1 -1
- package/dist/store/db-helpers.d.ts +18 -0
- package/dist/store/db-helpers.d.ts.map +1 -1
- package/dist/store/db-helpers.js +46 -0
- package/dist/store/db-helpers.js.map +1 -1
- package/dist/store/exodus/on-open.d.ts.map +1 -1
- package/dist/store/exodus/on-open.js +35 -0
- package/dist/store/exodus/on-open.js.map +1 -1
- package/dist/store/exodus/runtime-targets.d.ts +3 -3
- package/dist/store/exodus/runtime-targets.js +3 -3
- package/dist/store/import-remap.d.ts +12 -1
- package/dist/store/import-remap.d.ts.map +1 -1
- package/dist/store/import-remap.js +14 -0
- package/dist/store/import-remap.js.map +1 -1
- package/dist/store/legacy-tasks-lineage.d.ts +3 -1
- package/dist/store/legacy-tasks-lineage.d.ts.map +1 -1
- package/dist/store/legacy-tasks-lineage.js +3 -1
- package/dist/store/legacy-tasks-lineage.js.map +1 -1
- package/dist/store/memory-accessor.js +1 -1
- package/dist/store/memory-accessor.js.map +1 -1
- package/dist/store/migration-manager.d.ts +61 -0
- package/dist/store/migration-manager.d.ts.map +1 -1
- package/dist/store/migration-manager.js +102 -4
- package/dist/store/migration-manager.js.map +1 -1
- package/dist/store/nexus-validation-schemas.d.ts +64 -0
- package/dist/store/nexus-validation-schemas.d.ts.map +1 -1
- package/dist/store/portable-bundle-import.d.ts +8 -0
- package/dist/store/portable-bundle-import.d.ts.map +1 -1
- package/dist/store/portable-bundle-import.js +10 -0
- package/dist/store/portable-bundle-import.js.map +1 -1
- package/dist/store/portable-bundle-scan.d.ts.map +1 -1
- package/dist/store/portable-bundle-scan.js +1 -0
- package/dist/store/portable-bundle-scan.js.map +1 -1
- package/dist/store/portable-bundle.d.ts.map +1 -1
- package/dist/store/portable-bundle.js +15 -14
- package/dist/store/portable-bundle.js.map +1 -1
- package/dist/store/pre-repair-snapshot.d.ts +4 -1
- package/dist/store/pre-repair-snapshot.d.ts.map +1 -1
- package/dist/store/pre-repair-snapshot.js +5 -1
- package/dist/store/pre-repair-snapshot.js.map +1 -1
- package/dist/store/regenerators.d.ts +4 -2
- package/dist/store/regenerators.d.ts.map +1 -1
- package/dist/store/regenerators.js +7 -3
- package/dist/store/regenerators.js.map +1 -1
- package/dist/store/repair-malformed-dbs.d.ts +4 -0
- package/dist/store/repair-malformed-dbs.d.ts.map +1 -1
- package/dist/store/repair-malformed-dbs.js +3 -0
- package/dist/store/repair-malformed-dbs.js.map +1 -1
- package/dist/store/safety-data-accessor.d.ts +8 -3
- package/dist/store/safety-data-accessor.d.ts.map +1 -1
- package/dist/store/safety-data-accessor.js +11 -4
- package/dist/store/safety-data-accessor.js.map +1 -1
- package/dist/store/schema/cleo-global/nexus.d.ts +48 -0
- package/dist/store/schema/cleo-global/nexus.d.ts.map +1 -1
- package/dist/store/schema/cleo-global/nexus.js +17 -0
- package/dist/store/schema/cleo-global/nexus.js.map +1 -1
- package/dist/store/schema/cleo-project/docs.d.ts +16 -0
- package/dist/store/schema/cleo-project/docs.d.ts.map +1 -1
- package/dist/store/schema/cleo-project/docs.js +10 -0
- package/dist/store/schema/cleo-project/docs.js.map +1 -1
- package/dist/store/schema/cleo-project/tasks-core.d.ts +80 -0
- package/dist/store/schema/cleo-project/tasks-core.d.ts.map +1 -1
- package/dist/store/schema/cleo-project/tasks-core.js +25 -1
- package/dist/store/schema/cleo-project/tasks-core.js.map +1 -1
- package/dist/store/schema/cleo-shared/brain.d.ts +1 -1
- package/dist/store/schema/memory-schema.d.ts +1 -1
- package/dist/store/schema/nexus-schema.d.ts +48 -0
- package/dist/store/schema/nexus-schema.d.ts.map +1 -1
- package/dist/store/schema/nexus-schema.js +28 -7
- package/dist/store/schema/nexus-schema.js.map +1 -1
- package/dist/store/session-store.d.ts +65 -0
- package/dist/store/session-store.d.ts.map +1 -1
- package/dist/store/session-store.js +108 -7
- package/dist/store/session-store.js.map +1 -1
- package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
- package/dist/store/sqlite-data-accessor.js +245 -47
- package/dist/store/sqlite-data-accessor.js.map +1 -1
- package/dist/store/sqlite.d.ts +15 -3
- package/dist/store/sqlite.d.ts.map +1 -1
- package/dist/store/sqlite.js +52 -20
- package/dist/store/sqlite.js.map +1 -1
- package/dist/store/store-write-guard.d.ts +9 -3
- package/dist/store/store-write-guard.d.ts.map +1 -1
- package/dist/store/store-write-guard.js +25 -4
- package/dist/store/store-write-guard.js.map +1 -1
- package/dist/store/table-classification.d.ts +1 -1
- package/dist/store/table-classification.d.ts.map +1 -1
- package/dist/store/table-classification.js +34 -8
- package/dist/store/table-classification.js.map +1 -1
- package/dist/store/task-claim.d.ts +144 -0
- package/dist/store/task-claim.d.ts.map +1 -0
- package/dist/store/task-claim.js +195 -0
- package/dist/store/task-claim.js.map +1 -0
- package/dist/store/task-version.d.ts +43 -5
- package/dist/store/task-version.d.ts.map +1 -1
- package/dist/store/task-version.js +113 -17
- package/dist/store/task-version.js.map +1 -1
- package/dist/store/tasks-schema.d.ts +2 -0
- package/dist/store/tasks-schema.d.ts.map +1 -1
- package/dist/store/tasks-schema.js +1 -0
- package/dist/store/tasks-schema.js.map +1 -1
- package/dist/store/tasks-sqlite.js +1 -1
- package/dist/store/tasks-sqlite.js.map +1 -1
- package/dist/store/twin-collapse.d.ts +339 -22
- package/dist/store/twin-collapse.d.ts.map +1 -1
- package/dist/store/twin-collapse.js +1323 -48
- package/dist/store/twin-collapse.js.map +1 -1
- package/dist/store/umbrella-data-accessor.d.ts +8 -3
- package/dist/store/umbrella-data-accessor.d.ts.map +1 -1
- package/dist/store/umbrella-data-accessor.js +10 -4
- package/dist/store/umbrella-data-accessor.js.map +1 -1
- package/dist/store/validation-schemas.d.ts +161 -1
- package/dist/store/validation-schemas.d.ts.map +1 -1
- package/dist/store/with-retry.d.ts +36 -0
- package/dist/store/with-retry.d.ts.map +1 -1
- package/dist/store/with-retry.js +51 -0
- package/dist/store/with-retry.js.map +1 -1
- package/dist/store/worktree-build-guard.d.ts +13 -4
- package/dist/store/worktree-build-guard.d.ts.map +1 -1
- package/dist/store/worktree-build-guard.js +21 -10
- package/dist/store/worktree-build-guard.js.map +1 -1
- package/dist/store/worktree-isolation-guard.d.ts +121 -10
- package/dist/store/worktree-isolation-guard.d.ts.map +1 -1
- package/dist/store/worktree-isolation-guard.js +155 -34
- package/dist/store/worktree-isolation-guard.js.map +1 -1
- package/dist/system/backup.d.ts +7 -0
- package/dist/system/backup.d.ts.map +1 -1
- package/dist/system/backup.js +5 -0
- package/dist/system/backup.js.map +1 -1
- package/dist/system/health.d.ts.map +1 -1
- package/dist/system/health.js +3 -1
- package/dist/system/health.js.map +1 -1
- package/dist/system/inject-generate.d.ts.map +1 -1
- package/dist/system/inject-generate.js +23 -10
- package/dist/system/inject-generate.js.map +1 -1
- package/dist/system/project-health.d.ts +8 -0
- package/dist/system/project-health.d.ts.map +1 -1
- package/dist/system/project-health.js +13 -5
- package/dist/system/project-health.js.map +1 -1
- package/dist/task-tools/index.d.ts +1 -1
- package/dist/task-tools/index.d.ts.map +1 -1
- package/dist/task-tools/index.js +1 -1
- package/dist/task-tools/index.js.map +1 -1
- package/dist/task-tools/score-task-priority.d.ts +38 -0
- package/dist/task-tools/score-task-priority.d.ts.map +1 -1
- package/dist/task-tools/score-task-priority.js +51 -0
- package/dist/task-tools/score-task-priority.js.map +1 -1
- package/dist/task-work/claims.d.ts +215 -0
- package/dist/task-work/claims.d.ts.map +1 -0
- package/dist/task-work/claims.js +272 -0
- package/dist/task-work/claims.js.map +1 -0
- package/dist/task-work/index.d.ts +47 -3
- package/dist/task-work/index.d.ts.map +1 -1
- package/dist/task-work/index.js +74 -41
- package/dist/task-work/index.js.map +1 -1
- package/dist/tasks/add.d.ts.map +1 -1
- package/dist/tasks/add.js +3 -2
- package/dist/tasks/add.js.map +1 -1
- package/dist/tasks/analyze.d.ts.map +1 -1
- package/dist/tasks/analyze.js +3 -4
- package/dist/tasks/analyze.js.map +1 -1
- package/dist/tasks/change-set.d.ts +5 -0
- package/dist/tasks/change-set.d.ts.map +1 -1
- package/dist/tasks/change-set.js +59 -3
- package/dist/tasks/change-set.js.map +1 -1
- package/dist/tasks/complete.d.ts +16 -0
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +27 -7
- package/dist/tasks/complete.js.map +1 -1
- package/dist/tasks/component-pr.d.ts +162 -1
- package/dist/tasks/component-pr.d.ts.map +1 -1
- package/dist/tasks/component-pr.js +560 -59
- package/dist/tasks/component-pr.js.map +1 -1
- package/dist/tasks/done-record.d.ts +14 -1
- package/dist/tasks/done-record.d.ts.map +1 -1
- package/dist/tasks/done-record.js +37 -0
- package/dist/tasks/done-record.js.map +1 -1
- package/dist/tasks/duplicate-detector.d.ts +20 -1
- package/dist/tasks/duplicate-detector.d.ts.map +1 -1
- package/dist/tasks/duplicate-detector.js +10 -2
- package/dist/tasks/duplicate-detector.js.map +1 -1
- package/dist/tasks/engine-wrap-ops.d.ts +19 -10
- package/dist/tasks/engine-wrap-ops.d.ts.map +1 -1
- package/dist/tasks/engine-wrap-ops.js +38 -10
- package/dist/tasks/engine-wrap-ops.js.map +1 -1
- package/dist/tasks/graph-ops.d.ts +9 -2
- package/dist/tasks/graph-ops.d.ts.map +1 -1
- package/dist/tasks/graph-ops.js +24 -32
- package/dist/tasks/graph-ops.js.map +1 -1
- package/dist/tasks/plan.d.ts.map +1 -1
- package/dist/tasks/plan.js +16 -60
- package/dist/tasks/plan.js.map +1 -1
- package/dist/tasks/task-context.d.ts.map +1 -1
- package/dist/tasks/task-context.js +13 -0
- package/dist/tasks/task-context.js.map +1 -1
- package/dist/tasks/task-import.d.ts.map +1 -1
- package/dist/tasks/task-import.js +21 -12
- package/dist/tasks/task-import.js.map +1 -1
- package/dist/tasks/task-next.d.ts +25 -2
- package/dist/tasks/task-next.d.ts.map +1 -1
- package/dist/tasks/task-next.js +32 -13
- package/dist/tasks/task-next.js.map +1 -1
- package/dist/tasks/update.d.ts.map +1 -1
- package/dist/tasks/update.js +7 -5
- package/dist/tasks/update.js.map +1 -1
- package/dist/upgrade.d.ts +1 -1
- package/dist/upgrade.d.ts.map +1 -1
- package/dist/upgrade.js +48 -9
- package/dist/upgrade.js.map +1 -1
- package/dist/validation/doctor/checks.d.ts +20 -6
- package/dist/validation/doctor/checks.d.ts.map +1 -1
- package/dist/validation/doctor/checks.js +51 -8
- package/dist/validation/doctor/checks.js.map +1 -1
- package/dist/validation/validate-ops.d.ts.map +1 -1
- package/dist/validation/validate-ops.js +2 -3
- package/dist/validation/validate-ops.js.map +1 -1
- package/migrations/drizzle-cleo-global/20260929010000_t12512-registry-probed-opened/migration.sql +35 -0
- package/migrations/drizzle-cleo-global/20260929020000_t12721-git-state-head-committed-at/migration.sql +25 -0
- package/migrations/drizzle-cleo-project/20260929000000_t12535-docs-attachments-union-shape/migration.sql +21 -0
- package/migrations/drizzle-cleo-project/20260929120000_t12502-task-claim-leases/migration.sql +77 -0
- package/migrations/drizzle-cleo-project/20260929130000_t12736-claim-lease-iso-repair/migration.sql +37 -0
- package/package.json +23 -13
- package/schemas/project-info.schema.json +10 -4
- package/templates/CLEO-INJECTION.md +1 -1
- package/templates/CLEO-REFERENCE.md +3 -3
- package/templates/cleo-gitignore +11 -0
- package/templates/workflows/release-prepare.yml.tmpl +156 -10
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* @task T1609 insertHandoffEntry — write-once INSERT path for handoff data
|
|
11
11
|
*/
|
|
12
12
|
import { ExitCode } from '@cleocode/contracts';
|
|
13
|
-
import { and, desc, eq, isNull } from 'drizzle-orm';
|
|
13
|
+
import { and, desc, eq, isNull, lte, or } from 'drizzle-orm';
|
|
14
14
|
import { CleoError } from '../errors.js';
|
|
15
15
|
import { captureProjectScope, getProjectRoot, worktreeScope } from '../project-scope.js';
|
|
16
16
|
import { getCurrentConnectionSessionId } from '../sessions/connection-session-handle.js';
|
|
@@ -18,8 +18,9 @@ import { resolveSessionIdFromEnv } from '../sessions/session-id.js';
|
|
|
18
18
|
import { resolveTerminalKeys } from '../sessions/terminal-identity.js';
|
|
19
19
|
import { rowToSession } from './converters.js';
|
|
20
20
|
import { sessionTerminalBindings } from './session-binding-schema.js';
|
|
21
|
-
import { getDb } from './sqlite.js';
|
|
21
|
+
import { getDb, getNativeTasksDb } from './sqlite.js';
|
|
22
22
|
import * as schema from './tasks-schema.js';
|
|
23
|
+
import { runHeartbeatWrite } from './with-retry.js';
|
|
23
24
|
// === CRUD OPERATIONS ===
|
|
24
25
|
/** Create a new session. */
|
|
25
26
|
export async function createSession(session, cwd) {
|
|
@@ -110,6 +111,43 @@ export async function updateSession(sessionId, updates, cwd) {
|
|
|
110
111
|
return getSession(sessionId, scope.worktreeRoot);
|
|
111
112
|
});
|
|
112
113
|
}
|
|
114
|
+
/**
|
|
115
|
+
* Record the orchestrator session that spawned `sessionId` (T12502).
|
|
116
|
+
*
|
|
117
|
+
* This is the ONLY writer of `tasks_sessions.spawned_by_session_id` — the
|
|
118
|
+
* trusted spawn edge the task-claim chokepoint uses to let a spawn family
|
|
119
|
+
* pass a live lease between its members. It is write-once: an edge already
|
|
120
|
+
* recorded is never replaced, so a later caller cannot re-parent a session
|
|
121
|
+
* into its own family.
|
|
122
|
+
*
|
|
123
|
+
* @param sessionId - The spawned session.
|
|
124
|
+
* @param spawnerSessionId - The orchestrator session performing the spawn.
|
|
125
|
+
* @param cwd - Project root.
|
|
126
|
+
* @returns `true` when the edge was recorded now, or already names `spawnerSessionId`.
|
|
127
|
+
* @example
|
|
128
|
+
* ```ts
|
|
129
|
+
* await setSessionSpawnedBy(child.sessionId, orchestrator.id, projectRoot);
|
|
130
|
+
* ```
|
|
131
|
+
* @task T12502
|
|
132
|
+
*/
|
|
133
|
+
export async function setSessionSpawnedBy(sessionId, spawnerSessionId, cwd) {
|
|
134
|
+
const scope = captureProjectScope(cwd ?? getProjectRoot(), worktreeScope.getStore());
|
|
135
|
+
return worktreeScope.run(scope, async () => {
|
|
136
|
+
const db = await getDb(scope.worktreeRoot);
|
|
137
|
+
await db
|
|
138
|
+
.update(schema.sessions)
|
|
139
|
+
.set({ spawnedBySessionId: spawnerSessionId })
|
|
140
|
+
.where(and(eq(schema.sessions.id, sessionId), isNull(schema.sessions.spawnedBySessionId)))
|
|
141
|
+
.run();
|
|
142
|
+
const [row] = await db
|
|
143
|
+
.select({ spawnedBy: schema.sessions.spawnedBySessionId })
|
|
144
|
+
.from(schema.sessions)
|
|
145
|
+
.where(eq(schema.sessions.id, sessionId))
|
|
146
|
+
.limit(1)
|
|
147
|
+
.all();
|
|
148
|
+
return row?.spawnedBy === spawnerSessionId;
|
|
149
|
+
});
|
|
150
|
+
}
|
|
113
151
|
/**
|
|
114
152
|
* Insert a handoff entry for a session (write-once, append-only).
|
|
115
153
|
*
|
|
@@ -755,14 +793,77 @@ export async function hasActiveSession(cwd, nowMs = Date.now()) {
|
|
|
755
793
|
.where(eq(schema.sessions.status, 'active'))
|
|
756
794
|
.all();
|
|
757
795
|
const cutoff = nowMs - SESSION_LIVE_TTL_MS;
|
|
758
|
-
return rows.some((row) =>
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
796
|
+
return rows.some((row) => sessionLastSeenMs(row) >= cutoff);
|
|
797
|
+
});
|
|
798
|
+
}
|
|
799
|
+
/**
|
|
800
|
+
* When a session was last seen alive, in epoch milliseconds (T12540): the
|
|
801
|
+
* newer of its `lastActivity` heartbeat and `startedAt`. Liveness and gc
|
|
802
|
+
* measure idleness from this, so a long-running session that keeps working
|
|
803
|
+
* stays live however long ago it started.
|
|
804
|
+
*
|
|
805
|
+
* @param session - Any shape carrying the two timestamps.
|
|
806
|
+
* @returns Epoch ms, or `0` when neither timestamp parses.
|
|
807
|
+
* @example
|
|
808
|
+
* ```ts
|
|
809
|
+
* const idleMs = Date.now() - sessionLastSeenMs(session);
|
|
810
|
+
* ```
|
|
811
|
+
* @task T12540
|
|
812
|
+
*/
|
|
813
|
+
export function sessionLastSeenMs(session) {
|
|
814
|
+
return Math.max(Date.parse(session.startedAt ?? '') || 0, Date.parse(session.lastActivity ?? '') || 0);
|
|
815
|
+
}
|
|
816
|
+
/**
|
|
817
|
+
* Minimum interval between two `lastActivity` writes for one session, in
|
|
818
|
+
* milliseconds (T12540). Every bound mutation is activity, but the heartbeat
|
|
819
|
+
* writes at most once per window so a busy agent does not add a write per
|
|
820
|
+
* command.
|
|
821
|
+
*/
|
|
822
|
+
export const SESSION_ACTIVITY_THROTTLE_MS = 60 * 1000;
|
|
823
|
+
/**
|
|
824
|
+
* Session activity heartbeat (T12540 · epic T12497): refresh an ACTIVE
|
|
825
|
+
* session's `lastActivity`, at most once per {@link SESSION_ACTIVITY_THROTTLE_MS}.
|
|
826
|
+
*
|
|
827
|
+
* Cheap and best-effort by construction:
|
|
828
|
+
* - one primary-key read decides whether the window has elapsed, so a
|
|
829
|
+
* throttled beat takes no write lock at all;
|
|
830
|
+
* - the write is ONE single-row UPDATE by primary key, whose `WHERE` repeats
|
|
831
|
+
* the throttle so two racing processes cannot both land a beat;
|
|
832
|
+
* - it runs through {@link runHeartbeatWrite}: a short `busy_timeout`, and a
|
|
833
|
+
* contended lock or an open transaction skips the beat instead of waiting.
|
|
834
|
+
*
|
|
835
|
+
* @param sessionId - The bound session that just did work.
|
|
836
|
+
* @param cwd - Working directory for DB resolution.
|
|
837
|
+
* @param nowMs - Clock override for tests.
|
|
838
|
+
* @returns `true` when `lastActivity` was written, `false` when throttled,
|
|
839
|
+
* skipped, or the session is not active.
|
|
840
|
+
* @task T12540
|
|
841
|
+
*/
|
|
842
|
+
export async function touchSessionActivity(sessionId, cwd, nowMs = Date.now()) {
|
|
843
|
+
const scope = captureProjectScope(cwd ?? getProjectRoot(), worktreeScope.getStore());
|
|
844
|
+
return worktreeScope.run(scope, async () => {
|
|
845
|
+
const db = await getDb(scope.worktreeRoot);
|
|
846
|
+
const [row] = await db
|
|
847
|
+
.select({ status: schema.sessions.status, lastActivity: schema.sessions.lastActivity })
|
|
848
|
+
.from(schema.sessions)
|
|
849
|
+
.where(eq(schema.sessions.id, sessionId))
|
|
850
|
+
.limit(1)
|
|
851
|
+
.all();
|
|
852
|
+
if (row?.status !== 'active')
|
|
853
|
+
return false;
|
|
854
|
+
const due = nowMs - SESSION_ACTIVITY_THROTTLE_MS;
|
|
855
|
+
if ((Date.parse(row.lastActivity ?? '') || 0) > due)
|
|
856
|
+
return false;
|
|
857
|
+
const changes = runHeartbeatWrite(db, getNativeTasksDb(scope.worktreeRoot), () => Number(db
|
|
858
|
+
.update(schema.sessions)
|
|
859
|
+
.set({ lastActivity: new Date(nowMs).toISOString() })
|
|
860
|
+
.where(and(eq(schema.sessions.id, sessionId), eq(schema.sessions.status, 'active'), or(isNull(schema.sessions.lastActivity), lte(schema.sessions.lastActivity, new Date(due).toISOString()))))
|
|
861
|
+
.run().changes));
|
|
862
|
+
return (changes ?? 0) > 0;
|
|
762
863
|
});
|
|
763
864
|
}
|
|
764
865
|
/** How to bind a caller to a session — shared by every E_SESSION_UNBOUND (T12500). */
|
|
765
|
-
export const SESSION_UNBOUND_FIX =
|
|
866
|
+
export const SESSION_UNBOUND_FIX = 'Bind this terminal to a session: run \'cleo session start --scope global --name "<name>"\' ' +
|
|
766
867
|
"(or 'cleo session resume <id>' for an existing one), or set CLEO_SESSION_ID=<id>. " +
|
|
767
868
|
"Read-only commands can name one explicitly (e.g. 'cleo session show <id>').";
|
|
768
869
|
/** Copy-paste remedies attached to every E_SESSION_UNBOUND (T12500). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../src/store/session-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../src/store/session-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-data-accessor.d.ts","sourceRoot":"","sources":["../../src/store/sqlite-data-accessor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"sqlite-data-accessor.d.ts","sourceRoot":"","sources":["../../src/store/sqlite-data-accessor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAyBhD,OAAO,EAGL,KAAK,aAAa,EAEnB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,KAAK,EAEV,YAAY,EASZ,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAoE5B,yEAAyE;AACzE,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,IAAI,CAAC,CAGf;AA4BD;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAyB/F;AAkDD;;;;;;;;GAQG;AACH,OAAO,EAAE,mBAAmB,IAAI,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AA6FtF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,YAAY,GAAG,mBAAmB,EAChF,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,aAAa,GACnB,CAAC,CAmBH;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,wBAAwB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAQlF"}
|
|
@@ -12,21 +12,23 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
14
14
|
import { resolve } from 'node:path';
|
|
15
|
-
import { ARCHIVE_REASON_TOMBSTONE, } from '@cleocode/contracts';
|
|
16
|
-
import { and, eq, getTableColumns, inArray, isNull, like, ne, notInArray, or, sql, } from 'drizzle-orm';
|
|
15
|
+
import { ARCHIVE_REASON_TOMBSTONE, ExitCode, } from '@cleocode/contracts';
|
|
16
|
+
import { and, eq, getTableColumns, inArray, isNull, like, lte, ne, notInArray, or, sql, } from 'drizzle-orm';
|
|
17
|
+
import { CleoError } from '../errors.js';
|
|
17
18
|
import { captureProjectScope as captureTaskAccessorScope, getProjectRoot, worktreeScope, } from '../project-scope.js';
|
|
18
19
|
import { withBackgroundOpCommitBoundary } from './background-ops.js';
|
|
19
20
|
import { archivedTaskToRow, rowToSession, rowToTask, taskToRow } from './converters.js';
|
|
20
21
|
import { cleanupBrainRefsOnSessionDelete } from './cross-db-cleanup.js';
|
|
21
|
-
import { batchUpdateDependencies, loadDependenciesForTasks, loadRelationsForTasks, parseLabels, updateDependencies, updateTaskLabels, upsertSession, upsertTask, } from './db-helpers.js';
|
|
22
|
+
import { batchUpdateDependencies, insertNewTask, loadDependenciesForTasks, loadRelationsForTasks, parseLabels, updateDependencies, updateTaskLabels, upsertSession, upsertTask, } from './db-helpers.js';
|
|
22
23
|
import { tasksAuditLog } from './schema/cleo-project/audit.js';
|
|
23
24
|
import { resolveCurrentSession } from './session-store.js';
|
|
24
25
|
import { closeDb, getDb, getNativeTasksDb } from './sqlite.js';
|
|
25
26
|
import { TERMINAL_TASK_STATUSES } from './status-registry.js';
|
|
26
|
-
import {
|
|
27
|
+
import { claimAllows, claimColumnsOf, claimFromColumns, isClaimExpired, leaseExpiresAtFrom, taskClaimedError, taskClaimLeaseMs, } from './task-claim.js';
|
|
28
|
+
import { nextTaskVersion, taskConflictError, taskVersion } from './task-version.js';
|
|
27
29
|
import * as schema from './tasks-schema.js';
|
|
28
30
|
import { assertTwinCollapseWritable, bareCounterOf, mirrorCounterToBare } from './twin-collapse.js';
|
|
29
|
-
import { withWriteRetry } from './with-retry.js';
|
|
31
|
+
import { runHeartbeatWrite, withWriteRetry } from './with-retry.js';
|
|
30
32
|
/**
|
|
31
33
|
* Per-process monotonic counter for unique nested SAVEPOINT names (T9814).
|
|
32
34
|
* Only used when DataAccessor.transaction() is called from within an
|
|
@@ -70,7 +72,7 @@ export async function setMetaValue(cwd, key, value) {
|
|
|
70
72
|
async function writeMetaValue(cwd, key, value) {
|
|
71
73
|
const db = await getDb(cwd);
|
|
72
74
|
// T12535: fail fast on a store degraded by a failed twin collapse.
|
|
73
|
-
assertTwinCollapseWritable(getNativeTasksDb(cwd));
|
|
75
|
+
assertTwinCollapseWritable(getNativeTasksDb(cwd), 'schema_meta');
|
|
74
76
|
const json = JSON.stringify(value);
|
|
75
77
|
await db
|
|
76
78
|
.insert(schema.schemaMeta)
|
|
@@ -105,7 +107,7 @@ async function writeMetaValue(cwd, key, value) {
|
|
|
105
107
|
* @task T12535
|
|
106
108
|
*/
|
|
107
109
|
export function advanceTaskIdSequence(nativeDb, floor) {
|
|
108
|
-
assertTwinCollapseWritable(nativeDb);
|
|
110
|
+
assertTwinCollapseWritable(nativeDb, 'schema_meta');
|
|
109
111
|
// T12535: an id the older build reserved in the bare counter is taken too.
|
|
110
112
|
const lowest = Math.max(floor, bareCounterOf(nativeDb, 'task_id_sequence'));
|
|
111
113
|
nativeDb
|
|
@@ -189,6 +191,87 @@ async function scheduleTaskBackground(native, work) {
|
|
|
189
191
|
* ```
|
|
190
192
|
*/
|
|
191
193
|
export { captureProjectScope as captureTaskAccessorScope } from '../project-scope.js';
|
|
194
|
+
/** The claim lease columns, selected alongside a row's version (T12502). */
|
|
195
|
+
const CLAIM_COLUMNS = {
|
|
196
|
+
claimedBySession: schema.tasks.claimedBySession,
|
|
197
|
+
claimedByAgent: schema.tasks.claimedByAgent,
|
|
198
|
+
claimedAt: schema.tasks.claimedAt,
|
|
199
|
+
leaseExpiresAt: schema.tasks.leaseExpiresAt,
|
|
200
|
+
};
|
|
201
|
+
/**
|
|
202
|
+
* The claim compare-and-set predicate for an UPDATE's WHERE clause (T12502).
|
|
203
|
+
* The SQL mirror of `claimAllows`; `force` adds no predicate.
|
|
204
|
+
*
|
|
205
|
+
* @param guard - The claim guard.
|
|
206
|
+
* @param allowedHolders - Holders `acquire` / `take-over` may replace even
|
|
207
|
+
* while live (hand-off source, spawn-edge parent and children).
|
|
208
|
+
*/
|
|
209
|
+
function claimPredicate(guard, allowedHolders) {
|
|
210
|
+
const holder = schema.tasks.claimedBySession;
|
|
211
|
+
if (guard.mode === 'force')
|
|
212
|
+
return undefined;
|
|
213
|
+
const mine = guard.sessionId === null ? undefined : eq(holder, guard.sessionId);
|
|
214
|
+
if (guard.mode === 'renew' || guard.mode === 'release')
|
|
215
|
+
return mine ?? sql `0`;
|
|
216
|
+
const related = allowedHolders.length > 0 ? inArray(holder, [...allowedHolders]) : undefined;
|
|
217
|
+
const expired = guard.mode === 'take-over'
|
|
218
|
+
? or(isNull(schema.tasks.leaseExpiresAt), lte(schema.tasks.leaseExpiresAt, guard.now))
|
|
219
|
+
: undefined;
|
|
220
|
+
return or(isNull(holder), mine, related, expired);
|
|
221
|
+
}
|
|
222
|
+
/** Throw `E_TASK_CLAIMED` when the stored holder refuses this claim write. */
|
|
223
|
+
function assertClaimAllowed(taskId, row, guard, allowedHolders) {
|
|
224
|
+
const stored = claimFromColumns(row);
|
|
225
|
+
if (claimAllows(stored, guard.mode, guard.sessionId, guard.now, allowedHolders))
|
|
226
|
+
return;
|
|
227
|
+
if (!stored) {
|
|
228
|
+
throw new CleoError(ExitCode.NOT_FOUND, `Task ${taskId} has no claim held by session ${guard.sessionId ?? '(unbound)'} to ${guard.mode}`, { fix: `Take the claim first: cleo claim ${taskId}` });
|
|
229
|
+
}
|
|
230
|
+
throw taskClaimedError(taskId, stored, { sessionId: guard.sessionId, agentId: null }, guard.now);
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* The holders an `acquire` / `take-over` claim write may replace even while
|
|
234
|
+
* their lease is live (T12502): the explicit hand-off source, plus the
|
|
235
|
+
* caller's claim family — the session that spawned it and the sessions it
|
|
236
|
+
* spawned (`tasks_sessions.spawned_by_session_id`, written only by the spawn
|
|
237
|
+
* itself). The self-declared `parent_session_id` (from
|
|
238
|
+
* `CLEO_PARENT_SESSION_ID` at `session start`) is NOT trusted here: any
|
|
239
|
+
* process can name any parent, so honouring it would let a forged child take
|
|
240
|
+
* a live lease silently. A spawned worker whose calls
|
|
241
|
+
* resolve to its orchestrator's session, or an orchestrator taking a task
|
|
242
|
+
* back from its own worker, is a hand-off, not a conflict.
|
|
243
|
+
*
|
|
244
|
+
* @param db - The project DB handle (inside the write transaction).
|
|
245
|
+
* @param guard - The claim guard.
|
|
246
|
+
* @returns Distinct session ids other than the caller's.
|
|
247
|
+
*/
|
|
248
|
+
async function claimAllowedHolders(db, guard) {
|
|
249
|
+
if (guard.mode !== 'acquire' && guard.mode !== 'take-over')
|
|
250
|
+
return [];
|
|
251
|
+
const holders = new Set();
|
|
252
|
+
if (guard.handoffFrom)
|
|
253
|
+
holders.add(guard.handoffFrom);
|
|
254
|
+
const sessionId = guard.sessionId;
|
|
255
|
+
if (sessionId) {
|
|
256
|
+
const [self] = await db
|
|
257
|
+
.select({ parent: schema.sessions.spawnedBySessionId })
|
|
258
|
+
.from(schema.sessions)
|
|
259
|
+
.where(eq(schema.sessions.id, sessionId))
|
|
260
|
+
.limit(1)
|
|
261
|
+
.all();
|
|
262
|
+
if (self?.parent)
|
|
263
|
+
holders.add(self.parent);
|
|
264
|
+
const children = await db
|
|
265
|
+
.select({ id: schema.sessions.id })
|
|
266
|
+
.from(schema.sessions)
|
|
267
|
+
.where(eq(schema.sessions.spawnedBySessionId, sessionId))
|
|
268
|
+
.all();
|
|
269
|
+
for (const child of children)
|
|
270
|
+
holders.add(child.id);
|
|
271
|
+
holders.delete(sessionId);
|
|
272
|
+
}
|
|
273
|
+
return [...holders];
|
|
274
|
+
}
|
|
192
275
|
/**
|
|
193
276
|
* Bind all asynchronous accessor methods, including transaction ports, to one project.
|
|
194
277
|
* @typeParam T - Concrete accessor contract retained by the scoped wrapper.
|
|
@@ -445,6 +528,9 @@ async function createOwnedSqliteDataAccessor(cwd, accessorScope) {
|
|
|
445
528
|
async upsertSingleTask(task) {
|
|
446
529
|
await accessor.transaction((tx) => tx.upsertSingleTask(task));
|
|
447
530
|
},
|
|
531
|
+
async insertNewTask(task) {
|
|
532
|
+
await accessor.transaction((tx) => tx.insertNewTask(task));
|
|
533
|
+
},
|
|
448
534
|
async addRelation(taskId, relatedTo, relationType, reason) {
|
|
449
535
|
return accessor.transaction(async () => {
|
|
450
536
|
const db = await getDb(cwd);
|
|
@@ -1018,24 +1104,54 @@ async function createOwnedSqliteDataAccessor(cwd, accessorScope) {
|
|
|
1018
1104
|
// E_CONFLICT, and advance the version strictly so a same-millisecond
|
|
1019
1105
|
// write can never reproduce a version a stale reader already holds.
|
|
1020
1106
|
const [current] = await db
|
|
1021
|
-
.select({
|
|
1107
|
+
.select({
|
|
1108
|
+
updatedAt: schema.tasks.updatedAt,
|
|
1109
|
+
createdAt: schema.tasks.createdAt,
|
|
1110
|
+
...CLAIM_COLUMNS,
|
|
1111
|
+
})
|
|
1022
1112
|
.from(schema.tasks)
|
|
1023
1113
|
.where(eq(schema.tasks.id, taskId))
|
|
1024
1114
|
.limit(1)
|
|
1025
1115
|
.all();
|
|
1026
1116
|
if (!current)
|
|
1027
1117
|
throw new Error(`Task not found: ${taskId}`);
|
|
1028
|
-
|
|
1118
|
+
// T12502: refuse a claim write the stored holder does not allow before
|
|
1119
|
+
// touching anything, with the holder named. The WHERE clause below
|
|
1120
|
+
// repeats the predicate, so the write itself is the compare-and-set.
|
|
1121
|
+
const claimGuard = guard?.claim;
|
|
1122
|
+
const allowedHolders = claimGuard ? await claimAllowedHolders(db, claimGuard) : [];
|
|
1123
|
+
if (claimGuard)
|
|
1124
|
+
assertClaimAllowed(taskId, current, claimGuard, allowedHolders);
|
|
1125
|
+
const expected = guard?.expectedUpdatedAt;
|
|
1126
|
+
if (expected !== undefined && taskVersion(current) !== expected) {
|
|
1127
|
+
throw taskConflictError(taskId, expected, (await accessor.loadSingleTask(taskId)) ?? current, guard?.baseline);
|
|
1128
|
+
}
|
|
1029
1129
|
const updateRow = {
|
|
1030
1130
|
...fields,
|
|
1031
|
-
updatedAt: fields.updatedAt ?? nextTaskVersion(current),
|
|
1131
|
+
updatedAt: fields.updatedAt ?? (guard?.keepVersion ? current.updatedAt : nextTaskVersion(current)),
|
|
1032
1132
|
};
|
|
1133
|
+
// T12503: a guarded write is a compare-and-set in SQL — the UPDATE
|
|
1134
|
+
// matches only while the stored version is still the expected one, so
|
|
1135
|
+
// the check and the write are one statement, not a read-then-write.
|
|
1136
|
+
const versionMatch = expected === undefined
|
|
1137
|
+
? undefined
|
|
1138
|
+
: current.updatedAt === null
|
|
1139
|
+
? isNull(schema.tasks.updatedAt)
|
|
1140
|
+
: eq(schema.tasks.updatedAt, current.updatedAt);
|
|
1141
|
+
const where = and(eq(schema.tasks.id, taskId), versionMatch, claimGuard ? claimPredicate(claimGuard, allowedHolders) : undefined);
|
|
1033
1142
|
// gh#391: this is the chokepoint for `cleo update <id> --add-labels`.
|
|
1034
1143
|
// Parallel invocations from a single shell used to lose ~50% of writes
|
|
1035
1144
|
// to SQLITE_BUSY; withWriteRetry recovers them.
|
|
1036
|
-
const result = await withWriteRetry(() => db.update(schema.tasks).set(updateRow).where(
|
|
1037
|
-
if (Number(result.changes) !== 1)
|
|
1038
|
-
|
|
1145
|
+
const result = await withWriteRetry(() => db.update(schema.tasks).set(updateRow).where(where).run());
|
|
1146
|
+
if (Number(result.changes) !== 1) {
|
|
1147
|
+
const stored = await accessor.loadSingleTask(taskId);
|
|
1148
|
+
if (!stored)
|
|
1149
|
+
throw new Error(`Task not found: ${taskId}`);
|
|
1150
|
+
if (claimGuard) {
|
|
1151
|
+
assertClaimAllowed(taskId, claimColumnsOf(stored.claim), claimGuard, allowedHolders);
|
|
1152
|
+
}
|
|
1153
|
+
throw taskConflictError(taskId, expected ?? taskVersion(current), stored, guard?.baseline);
|
|
1154
|
+
}
|
|
1039
1155
|
if (fields.labelsJson !== undefined) {
|
|
1040
1156
|
await updateTaskLabels(db, taskId, parseLabels(fields.labelsJson));
|
|
1041
1157
|
}
|
|
@@ -1089,6 +1205,14 @@ async function createOwnedSqliteDataAccessor(cwd, accessorScope) {
|
|
|
1089
1205
|
await updateDependencies(db, task.id, task.depends ?? []);
|
|
1090
1206
|
});
|
|
1091
1207
|
},
|
|
1208
|
+
async insertNewTask(task) {
|
|
1209
|
+
scope.assertActive();
|
|
1210
|
+
return accessor.transaction(async () => {
|
|
1211
|
+
scope.assertActive();
|
|
1212
|
+
await insertNewTask(db, taskToRow(task));
|
|
1213
|
+
await updateDependencies(db, task.id, task.depends ?? []);
|
|
1214
|
+
});
|
|
1215
|
+
},
|
|
1092
1216
|
async archiveSingleTask(taskId, fields) {
|
|
1093
1217
|
scope.assertActive();
|
|
1094
1218
|
return accessor.transaction(async () => {
|
|
@@ -1378,51 +1502,125 @@ async function createOwnedSqliteDataAccessor(cwd, accessorScope) {
|
|
|
1378
1502
|
const { getAgentInstance: getAgent } = await import('../agents/registry.js');
|
|
1379
1503
|
return getAgent(agentId, cwd);
|
|
1380
1504
|
},
|
|
1381
|
-
// ---- Agent task claiming ----
|
|
1382
|
-
async claimTask(taskId,
|
|
1505
|
+
// ---- Agent task claiming (leased, T12502) ----
|
|
1506
|
+
async claimTask(taskId, request) {
|
|
1507
|
+
const now = request.now ?? new Date().toISOString();
|
|
1508
|
+
const guard = {
|
|
1509
|
+
sessionId: request.sessionId,
|
|
1510
|
+
mode: request.mode,
|
|
1511
|
+
now,
|
|
1512
|
+
handoffFrom: request.handoffFrom ?? null,
|
|
1513
|
+
};
|
|
1383
1514
|
return accessor.transaction(async () => {
|
|
1384
|
-
const
|
|
1385
|
-
if (!
|
|
1386
|
-
throw new Error('Native database not initialized');
|
|
1387
|
-
}
|
|
1388
|
-
// Verify the task exists first
|
|
1389
|
-
const existsRow = nativeDb
|
|
1390
|
-
.prepare('SELECT assignee FROM tasks_tasks WHERE id = ?')
|
|
1391
|
-
.get(taskId);
|
|
1392
|
-
if (!existsRow) {
|
|
1515
|
+
const task = await accessor.loadSingleTask(taskId);
|
|
1516
|
+
if (!task)
|
|
1393
1517
|
throw new Error(`Task not found: ${taskId}`);
|
|
1518
|
+
const before = task.claim;
|
|
1519
|
+
if (request.sessionId === null) {
|
|
1520
|
+
// An override names who takes the task; an unbound caller has no
|
|
1521
|
+
// session to record, so it is refused rather than silently ignored.
|
|
1522
|
+
if (request.mode === 'take-over' || request.mode === 'force') {
|
|
1523
|
+
const flag = request.mode === 'force' ? '--force-claim' : '--take-over';
|
|
1524
|
+
throw new CleoError(ExitCode.SESSION_UNBOUND, `Cannot ${flag} task ${taskId}: this caller is not bound to a session, so there is no session to hand the claim to.`, {
|
|
1525
|
+
fix: `Bind a session first (cleo session start --scope global --name "<work>", cleo session resume <id>, or export CLEO_SESSION_ID=<id>), then retry with ${flag}.`,
|
|
1526
|
+
});
|
|
1527
|
+
}
|
|
1528
|
+
// An unbound caller holds no lease; the guarded no-op write still
|
|
1529
|
+
// proves, under the write lock, that no other session holds it.
|
|
1530
|
+
await accessor.updateTaskFields(taskId, {}, { claim: guard, keepVersion: true });
|
|
1531
|
+
return null;
|
|
1394
1532
|
}
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
.
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1533
|
+
const renewing = before?.sessionId === request.sessionId;
|
|
1534
|
+
const lease = {
|
|
1535
|
+
sessionId: request.sessionId,
|
|
1536
|
+
agentId: request.agentId ?? (renewing ? (before?.agentId ?? null) : null),
|
|
1537
|
+
claimedAt: renewing && before ? before.claimedAt : now,
|
|
1538
|
+
leaseExpiresAt: leaseExpiresAtFrom(now, request.leaseMs ?? taskClaimLeaseMs()),
|
|
1539
|
+
};
|
|
1540
|
+
await accessor.updateTaskFields(taskId, {
|
|
1541
|
+
claimedBySession: lease.sessionId,
|
|
1542
|
+
claimedByAgent: lease.agentId,
|
|
1543
|
+
claimedAt: lease.claimedAt,
|
|
1544
|
+
leaseExpiresAt: lease.leaseExpiresAt,
|
|
1545
|
+
},
|
|
1546
|
+
// Renewing one's own lease is bookkeeping, not an edit: it must not
|
|
1547
|
+
// move the version another writer holds for --if-match.
|
|
1548
|
+
{ claim: guard, keepVersion: renewing });
|
|
1549
|
+
const replaced = before && before.sessionId !== request.sessionId ? before : undefined;
|
|
1550
|
+
if (replaced) {
|
|
1551
|
+
// A write the predicate allowed over a LIVE lease without `force` is
|
|
1552
|
+
// a claim-family hand-off (spawn source, spawn-edge parent or child).
|
|
1553
|
+
const handoff = request.mode !== 'force' && !isClaimExpired(replaced, now);
|
|
1554
|
+
await accessor.appendLog({
|
|
1555
|
+
action: handoff
|
|
1556
|
+
? 'task_claim_handoff'
|
|
1557
|
+
: request.mode === 'force'
|
|
1558
|
+
? 'task_claim_force'
|
|
1559
|
+
: 'task_claim_takeover',
|
|
1560
|
+
taskId,
|
|
1561
|
+
actor: request.agentId ?? request.sessionId,
|
|
1562
|
+
sessionId: request.sessionId,
|
|
1563
|
+
timestamp: now,
|
|
1564
|
+
details: {
|
|
1565
|
+
mode: request.mode,
|
|
1566
|
+
leaseExpired: replaced.leaseExpiresAt <= now,
|
|
1567
|
+
},
|
|
1568
|
+
before: replaced,
|
|
1569
|
+
after: lease,
|
|
1570
|
+
});
|
|
1406
1571
|
}
|
|
1572
|
+
return lease;
|
|
1407
1573
|
});
|
|
1408
1574
|
},
|
|
1409
|
-
async unclaimTask(taskId) {
|
|
1575
|
+
async unclaimTask(taskId, release) {
|
|
1576
|
+
const now = new Date().toISOString();
|
|
1410
1577
|
return accessor.transaction(async () => {
|
|
1411
|
-
const
|
|
1412
|
-
if (!
|
|
1413
|
-
throw new Error('Native database not initialized');
|
|
1414
|
-
}
|
|
1415
|
-
// Verify the task exists
|
|
1416
|
-
const existsRow = nativeDb.prepare('SELECT id FROM tasks_tasks WHERE id = ?').get(taskId);
|
|
1417
|
-
if (!existsRow) {
|
|
1578
|
+
const task = await accessor.loadSingleTask(taskId);
|
|
1579
|
+
if (!task)
|
|
1418
1580
|
throw new Error(`Task not found: ${taskId}`);
|
|
1581
|
+
const held = task.claim;
|
|
1582
|
+
if (!held)
|
|
1583
|
+
return false;
|
|
1584
|
+
await accessor.updateTaskFields(taskId, { claimedBySession: null, claimedByAgent: null, claimedAt: null, leaseExpiresAt: null }, {
|
|
1585
|
+
claim: { sessionId: release.sessionId, mode: release.force ? 'force' : 'release', now },
|
|
1586
|
+
keepVersion: true,
|
|
1587
|
+
});
|
|
1588
|
+
if (held.sessionId !== release.sessionId) {
|
|
1589
|
+
await accessor.appendLog({
|
|
1590
|
+
action: 'task_claim_force_release',
|
|
1591
|
+
taskId,
|
|
1592
|
+
actor: release.sessionId ?? 'unbound',
|
|
1593
|
+
sessionId: release.sessionId,
|
|
1594
|
+
timestamp: now,
|
|
1595
|
+
details: { mode: 'force', leaseExpired: held.leaseExpiresAt <= now },
|
|
1596
|
+
before: held,
|
|
1597
|
+
});
|
|
1419
1598
|
}
|
|
1420
|
-
|
|
1421
|
-
nativeDb
|
|
1422
|
-
.prepare('UPDATE tasks_tasks SET assignee = NULL, updated_at = ? WHERE id = ?')
|
|
1423
|
-
.run(new Date().toISOString(), taskId);
|
|
1599
|
+
return true;
|
|
1424
1600
|
});
|
|
1425
1601
|
},
|
|
1602
|
+
async renewSessionClaims(sessionId, leaseExpiresAt) {
|
|
1603
|
+
// The heartbeat follows EVERY mutation of a bound session, and almost no
|
|
1604
|
+
// session holds a lease. Probe the claimed_by_session index first and
|
|
1605
|
+
// write only when there is a lease to extend, so the common case costs
|
|
1606
|
+
// one indexed read and no lock.
|
|
1607
|
+
const db = await getDb(cwd);
|
|
1608
|
+
const [held] = await db
|
|
1609
|
+
.select({ id: schema.tasks.id })
|
|
1610
|
+
.from(schema.tasks)
|
|
1611
|
+
.where(eq(schema.tasks.claimedBySession, sessionId))
|
|
1612
|
+
.limit(1)
|
|
1613
|
+
.all();
|
|
1614
|
+
if (!held)
|
|
1615
|
+
return 0;
|
|
1616
|
+
// Bounded lock wait, skipped on SQLITE_BUSY or inside another caller's
|
|
1617
|
+
// transaction — see runHeartbeatWrite. The next mutation renews.
|
|
1618
|
+
return (runHeartbeatWrite(db, getNativeTasksDb(cwd), () => Number(db
|
|
1619
|
+
.update(schema.tasks)
|
|
1620
|
+
.set({ leaseExpiresAt })
|
|
1621
|
+
.where(eq(schema.tasks.claimedBySession, sessionId))
|
|
1622
|
+
.run().changes)) ?? 0);
|
|
1623
|
+
},
|
|
1426
1624
|
};
|
|
1427
1625
|
return accessor;
|
|
1428
1626
|
}
|