dorfl 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/advance-drivers.d.ts +1 -1
- package/dist/advance-drivers.d.ts.map +1 -1
- package/dist/advance-drivers.js +15 -3
- package/dist/advance-drivers.js.map +1 -1
- package/dist/advance-lifecycle-template.d.ts.map +1 -1
- package/dist/advance-lifecycle-template.js +76 -4
- package/dist/advance-lifecycle-template.js.map +1 -1
- package/dist/advance-treeless-publish.d.ts +23 -0
- package/dist/advance-treeless-publish.d.ts.map +1 -1
- package/dist/advance-treeless-publish.js +41 -0
- package/dist/advance-treeless-publish.js.map +1 -1
- package/dist/advance.d.ts +59 -7
- package/dist/advance.d.ts.map +1 -1
- package/dist/advance.js +389 -82
- package/dist/advance.js.map +1 -1
- package/dist/advancing-lock.d.ts +30 -2
- package/dist/advancing-lock.d.ts.map +1 -1
- package/dist/advancing-lock.js +50 -0
- package/dist/advancing-lock.js.map +1 -1
- package/dist/agent-launch.d.ts +12 -0
- package/dist/agent-launch.d.ts.map +1 -1
- package/dist/agent-launch.js +22 -12
- package/dist/agent-launch.js.map +1 -1
- package/dist/agent-stop.d.ts +40 -2
- package/dist/agent-stop.d.ts.map +1 -1
- package/dist/agent-stop.js +30 -2
- package/dist/agent-stop.js.map +1 -1
- package/dist/apply-decide.d.ts +17 -3
- package/dist/apply-decide.d.ts.map +1 -1
- package/dist/apply-decide.js +36 -7
- package/dist/apply-decide.js.map +1 -1
- package/dist/apply-merge-action.d.ts +17 -5
- package/dist/apply-merge-action.d.ts.map +1 -1
- package/dist/apply-merge-action.js +43 -8
- package/dist/apply-merge-action.js.map +1 -1
- package/dist/apply-persist.d.ts +57 -26
- package/dist/apply-persist.d.ts.map +1 -1
- package/dist/apply-persist.js +166 -37
- package/dist/apply-persist.js.map +1 -1
- package/dist/apply-stuck-action.d.ts +151 -0
- package/dist/apply-stuck-action.d.ts.map +1 -0
- package/dist/apply-stuck-action.js +125 -0
- package/dist/apply-stuck-action.js.map +1 -0
- package/dist/brand.d.ts +12 -1
- package/dist/brand.d.ts.map +1 -1
- package/dist/brand.js +2 -1
- package/dist/brand.js.map +1 -1
- package/dist/cli-spinner.d.ts +1 -1
- package/dist/cli-spinner.js +1 -1
- package/dist/cli.d.ts +10 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +320 -63
- package/dist/cli.js.map +1 -1
- package/dist/close-job-template.js +1 -1
- package/dist/complete.d.ts +6 -3
- package/dist/complete.d.ts.map +1 -1
- package/dist/complete.js +91 -37
- package/dist/complete.js.map +1 -1
- package/dist/config.d.ts +55 -9
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +56 -4
- package/dist/config.js.map +1 -1
- package/dist/continue-branch.d.ts.map +1 -1
- package/dist/continue-branch.js +22 -0
- package/dist/continue-branch.js.map +1 -1
- package/dist/decision-engine.d.ts +38 -10
- package/dist/decision-engine.d.ts.map +1 -1
- package/dist/decision-engine.js +10 -6
- package/dist/decision-engine.js.map +1 -1
- package/dist/do-autopick.d.ts.map +1 -1
- package/dist/do-autopick.js +11 -1
- package/dist/do-autopick.js.map +1 -1
- package/dist/do-config.d.ts +1 -1
- package/dist/do.d.ts +49 -56
- package/dist/do.d.ts.map +1 -1
- package/dist/do.js +419 -30
- package/dist/do.js.map +1 -1
- package/dist/env-config.d.ts.map +1 -1
- package/dist/env-config.js +12 -4
- package/dist/env-config.js.map +1 -1
- package/dist/failure-cause.d.ts +3 -2
- package/dist/failure-cause.d.ts.map +1 -1
- package/dist/failure-cause.js +28 -1
- package/dist/failure-cause.js.map +1 -1
- package/dist/format.d.ts +6 -6
- package/dist/format.d.ts.map +1 -1
- package/dist/format.js +10 -27
- package/dist/format.js.map +1 -1
- package/dist/frontmatter.d.ts +16 -4
- package/dist/frontmatter.d.ts.map +1 -1
- package/dist/frontmatter.js +27 -1
- package/dist/frontmatter.js.map +1 -1
- package/dist/gc.d.ts +65 -6
- package/dist/gc.d.ts.map +1 -1
- package/dist/gc.js +126 -9
- package/dist/gc.js.map +1 -1
- package/dist/github.d.ts +14 -0
- package/dist/github.d.ts.map +1 -1
- package/dist/github.js +73 -0
- package/dist/github.js.map +1 -1
- package/dist/harness.d.ts +25 -0
- package/dist/harness.d.ts.map +1 -1
- package/dist/harness.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/install-ci-branch-protection.d.ts +132 -38
- package/dist/install-ci-branch-protection.d.ts.map +1 -1
- package/dist/install-ci-branch-protection.js +190 -48
- package/dist/install-ci-branch-protection.js.map +1 -1
- package/dist/install-ci-core.d.ts +21 -1
- package/dist/install-ci-core.d.ts.map +1 -1
- package/dist/install-ci-core.js +10 -3
- package/dist/install-ci-core.js.map +1 -1
- package/dist/install-ci-github.d.ts +32 -0
- package/dist/install-ci-github.d.ts.map +1 -1
- package/dist/install-ci-github.js +73 -0
- package/dist/install-ci-github.js.map +1 -1
- package/dist/install-skills.d.ts +123 -0
- package/dist/install-skills.d.ts.map +1 -0
- package/dist/install-skills.js +100 -0
- package/dist/install-skills.js.map +1 -0
- package/dist/intake-trigger-template.js +1 -1
- package/dist/intake.d.ts +17 -4
- package/dist/intake.d.ts.map +1 -1
- package/dist/intake.js +23 -7
- package/dist/intake.js.map +1 -1
- package/dist/integration-core.d.ts +10 -7
- package/dist/integration-core.d.ts.map +1 -1
- package/dist/integration-core.js +174 -60
- package/dist/integration-core.js.map +1 -1
- package/dist/integrator.d.ts +1 -1
- package/dist/integrator.d.ts.map +1 -1
- package/dist/integrator.js +19 -3
- package/dist/integrator.js.map +1 -1
- package/dist/isolation.d.ts +2 -2
- package/dist/isolation.d.ts.map +1 -1
- package/dist/isolation.js +9 -0
- package/dist/isolation.js.map +1 -1
- package/dist/item-lock.d.ts +196 -129
- package/dist/item-lock.d.ts.map +1 -1
- package/dist/item-lock.js +329 -254
- package/dist/item-lock.js.map +1 -1
- package/dist/ledger-write.d.ts +31 -26
- package/dist/ledger-write.d.ts.map +1 -1
- package/dist/ledger-write.js +100 -122
- package/dist/ledger-write.js.map +1 -1
- package/dist/lifecycle-gather.d.ts +17 -0
- package/dist/lifecycle-gather.d.ts.map +1 -1
- package/dist/lifecycle-gather.js +7 -1
- package/dist/lifecycle-gather.js.map +1 -1
- package/dist/lifecycle-pools.d.ts +40 -3
- package/dist/lifecycle-pools.d.ts.map +1 -1
- package/dist/lifecycle-pools.js +26 -6
- package/dist/lifecycle-pools.js.map +1 -1
- package/dist/merge-question-surfacer.d.ts +15 -1
- package/dist/merge-question-surfacer.d.ts.map +1 -1
- package/dist/merge-question-surfacer.js +18 -3
- package/dist/merge-question-surfacer.js.map +1 -1
- package/dist/migrate-stuck-locks.d.ts +129 -0
- package/dist/migrate-stuck-locks.d.ts.map +1 -0
- package/dist/migrate-stuck-locks.js +355 -0
- package/dist/migrate-stuck-locks.js.map +1 -0
- package/dist/needs-attention.d.ts +293 -16
- package/dist/needs-attention.d.ts.map +1 -1
- package/dist/needs-attention.js +532 -57
- package/dist/needs-attention.js.map +1 -1
- package/dist/orphan-sidecar.d.ts +8 -4
- package/dist/orphan-sidecar.d.ts.map +1 -1
- package/dist/orphan-sidecar.js +35 -2
- package/dist/orphan-sidecar.js.map +1 -1
- package/dist/pi-harness.d.ts +16 -0
- package/dist/pi-harness.d.ts.map +1 -1
- package/dist/pi-harness.js +82 -2
- package/dist/pi-harness.js.map +1 -1
- package/dist/placement.d.ts +3 -3
- package/dist/placement.js +1 -1
- package/dist/prd-to-spec.d.ts.map +1 -1
- package/dist/prd-to-spec.js +9 -5
- package/dist/prd-to-spec.js.map +1 -1
- package/dist/protocol/CLAIM-PROTOCOL.md +17 -10
- package/dist/protocol/REVIEW-PROTOCOL.md +4 -1
- package/dist/protocol/SURFACE-PROTOCOL.md +16 -2
- package/dist/protocol/TASKING-PROTOCOL.md +3 -1
- package/dist/protocol/WORK-CONTRACT.md +22 -18
- package/dist/protocol/task-template.md +1 -1
- package/dist/reap-branches.d.ts +12 -9
- package/dist/reap-branches.d.ts.map +1 -1
- package/dist/reap-branches.js +25 -7
- package/dist/reap-branches.js.map +1 -1
- package/dist/recover-isolated.d.ts +12 -0
- package/dist/recover-isolated.d.ts.map +1 -1
- package/dist/recover-isolated.js +5 -0
- package/dist/recover-isolated.js.map +1 -1
- package/dist/repo-config.d.ts +23 -2
- package/dist/repo-config.d.ts.map +1 -1
- package/dist/repo-config.js +53 -7
- package/dist/repo-config.js.map +1 -1
- package/dist/repo-mirror.d.ts.map +1 -1
- package/dist/repo-mirror.js +18 -2
- package/dist/repo-mirror.js.map +1 -1
- package/dist/review-verdict.js +1 -1
- package/dist/review-verdict.js.map +1 -1
- package/dist/run.d.ts +1 -1
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +54 -19
- package/dist/run.js.map +1 -1
- package/dist/scan.d.ts +17 -8
- package/dist/scan.d.ts.map +1 -1
- package/dist/scan.js +22 -8
- package/dist/scan.js.map +1 -1
- package/dist/select-priority.d.ts +2 -2
- package/dist/select-priority.js +1 -1
- package/dist/select-priority.js.map +1 -1
- package/dist/sidecar-apply.js +1 -1
- package/dist/sidecar-apply.js.map +1 -1
- package/dist/sidecar.d.ts +45 -10
- package/dist/sidecar.d.ts.map +1 -1
- package/dist/sidecar.js +82 -2
- package/dist/sidecar.js.map +1 -1
- package/dist/skills/answer-questions/SKILL.md +89 -0
- package/dist/skills/capture-signal/SKILL.md +52 -0
- package/dist/skills/convert-from-prd-to-spec/SKILL.md +90 -0
- package/dist/skills/drive-tasks/SKILL.md +218 -0
- package/dist/skills/from-idea/SKILL.md +83 -0
- package/dist/skills/merge-prs/SKILL.md +70 -0
- package/dist/skills/orchestrate/SKILL.md +101 -0
- package/dist/skills/promote/SKILL.md +35 -0
- package/dist/skills/review/SKILL.md +16 -0
- package/dist/skills/setup/SKILL.md +258 -0
- package/dist/skills/setup/protocol/ADR-FORMAT.md +47 -0
- package/dist/skills/setup/protocol/CLAIM-PROTOCOL.md +224 -0
- package/dist/skills/setup/protocol/REVIEW-PROTOCOL.md +122 -0
- package/dist/skills/setup/protocol/SURFACE-PROTOCOL.md +135 -0
- package/dist/skills/setup/protocol/TASKING-PROTOCOL.md +124 -0
- package/dist/skills/setup/protocol/WORK-CONTRACT.md +280 -0
- package/dist/skills/setup/protocol/spec-template.md +71 -0
- package/dist/skills/setup/protocol/task-template.md +65 -0
- package/dist/skills/surface-questions/SKILL.md +16 -0
- package/dist/skills/to-spec/SKILL.md +34 -0
- package/dist/skills/to-task/SKILL.md +19 -0
- package/dist/skills/triage-observations/SKILL.md +78 -0
- package/dist/skills/work/SKILL.md +51 -0
- package/dist/slug-namespace.d.ts +5 -5
- package/dist/slug-namespace.js +5 -5
- package/dist/slug-namespace.js.map +1 -1
- package/dist/spec-complete.d.ts.map +1 -1
- package/dist/spec-complete.js +2 -3
- package/dist/spec-complete.js.map +1 -1
- package/dist/start.d.ts.map +1 -1
- package/dist/start.js +51 -57
- package/dist/start.js.map +1 -1
- package/dist/surface-gate.d.ts.map +1 -1
- package/dist/surface-gate.js +10 -3
- package/dist/surface-gate.js.map +1 -1
- package/dist/surface-persist.js +1 -1
- package/dist/surface-persist.js.map +1 -1
- package/dist/tasker-review-loop.d.ts +4 -3
- package/dist/tasker-review-loop.d.ts.map +1 -1
- package/dist/tasker-review-loop.js.map +1 -1
- package/dist/tasking-lock.d.ts +2 -2
- package/dist/tasking-lock.d.ts.map +1 -1
- package/dist/tasking-lock.js +53 -32
- package/dist/tasking-lock.js.map +1 -1
- package/dist/tasking.d.ts +40 -6
- package/dist/tasking.d.ts.map +1 -1
- package/dist/tasking.js +224 -12
- package/dist/tasking.js.map +1 -1
- package/dist/triage-persist.d.ts +10 -6
- package/dist/triage-persist.d.ts.map +1 -1
- package/dist/triage-persist.js +34 -4
- package/dist/triage-persist.js.map +1 -1
- package/dist/vendor/incur/agents.d.ts +58 -0
- package/dist/vendor/incur/agents.d.ts.map +1 -0
- package/dist/vendor/incur/agents.js +343 -0
- package/dist/vendor/incur/agents.js.map +1 -0
- package/dist/verify-workflow-template.js +1 -1
- package/dist/watch-session.d.ts +11 -3
- package/dist/watch-session.d.ts.map +1 -1
- package/dist/watch-session.js +94 -7
- package/dist/watch-session.js.map +1 -1
- package/dist/work-layout.d.ts +7 -3
- package/dist/work-layout.d.ts.map +1 -1
- package/dist/work-layout.js +6 -3
- package/dist/work-layout.js.map +1 -1
- package/dist/workspace.d.ts +1 -1
- package/package.json +2 -2
- package/src/advance-drivers.ts +16 -3
- package/src/advance-lifecycle-template.ts +89 -4
- package/src/advance-treeless-publish.ts +45 -0
- package/src/advance.ts +467 -87
- package/src/advancing-lock.ts +96 -1
- package/src/agent-launch.ts +37 -12
- package/src/agent-stop.ts +60 -2
- package/src/apply-decide.ts +36 -7
- package/src/apply-merge-action.ts +45 -7
- package/src/apply-persist.ts +228 -54
- package/src/apply-stuck-action.ts +260 -0
- package/src/brand.ts +14 -2
- package/src/cli-spinner.ts +1 -1
- package/src/cli.ts +401 -70
- package/src/close-job-template.ts +1 -1
- package/src/complete.ts +110 -52
- package/src/config.ts +107 -13
- package/src/continue-branch.ts +22 -0
- package/src/decision-engine.ts +55 -17
- package/src/do-autopick.ts +12 -1
- package/src/do-config.ts +1 -1
- package/src/do.ts +511 -38
- package/src/env-config.ts +12 -4
- package/src/failure-cause.ts +30 -1
- package/src/format.ts +10 -30
- package/src/frontmatter.ts +35 -5
- package/src/gc.ts +172 -9
- package/src/github.ts +78 -0
- package/src/harness.ts +25 -0
- package/src/index.ts +10 -0
- package/src/install-ci-branch-protection.ts +282 -57
- package/src/install-ci-core.ts +30 -3
- package/src/install-ci-github.ts +86 -0
- package/src/install-skills.ts +166 -0
- package/src/intake-trigger-template.ts +1 -1
- package/src/intake.ts +46 -11
- package/src/integration-core.ts +199 -65
- package/src/integrator.ts +22 -9
- package/src/isolation.ts +11 -2
- package/src/item-lock.ts +485 -341
- package/src/ledger-write.ts +135 -150
- package/src/lifecycle-gather.ts +29 -6
- package/src/lifecycle-pools.ts +67 -9
- package/src/merge-question-surfacer.ts +28 -4
- package/src/migrate-stuck-locks.ts +451 -0
- package/src/needs-attention.ts +857 -84
- package/src/orphan-sidecar.ts +47 -6
- package/src/pi-harness.ts +82 -2
- package/src/placement.ts +3 -3
- package/src/prd-to-spec.ts +13 -5
- package/src/reap-branches.ts +38 -14
- package/src/recover-isolated.ts +17 -0
- package/src/repo-config.ts +55 -6
- package/src/repo-mirror.ts +23 -1
- package/src/review-verdict.ts +1 -1
- package/src/run.ts +64 -18
- package/src/scan.ts +22 -8
- package/src/select-priority.ts +3 -3
- package/src/sidecar-apply.ts +1 -1
- package/src/sidecar.ts +138 -11
- package/src/slug-namespace.ts +7 -7
- package/src/spec-complete.ts +2 -3
- package/src/start.ts +53 -59
- package/src/surface-gate.ts +10 -3
- package/src/surface-persist.ts +1 -1
- package/src/tasker-review-loop.ts +4 -3
- package/src/tasking-lock.ts +52 -36
- package/src/tasking.ts +261 -17
- package/src/triage-persist.ts +56 -12
- package/src/vendor/incur/LICENSE +21 -0
- package/src/vendor/incur/README.md +19 -0
- package/src/vendor/incur/agents.ts +392 -0
- package/src/verify-workflow-template.ts +1 -1
- package/src/watch-session.ts +102 -7
- package/src/work-layout.ts +6 -3
- package/src/workspace.ts +1 -1
package/dist/ledger-write.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ledger-write.js","sourceRoot":"","sources":["../src/ledger-write.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AACvC,OAAO,EAAC,QAAQ,EAAiB,MAAM,UAAU,CAAC;AAClD,OAAO,EACN,UAAU,GAGV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACN,qBAAqB,EACrB,eAAe,
|
|
1
|
+
{"version":3,"file":"ledger-write.js","sourceRoot":"","sources":["../src/ledger-write.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,23 @@ export declare function gatherLifecycleInPlace(input: {
|
|
|
11
11
|
repoPath: string;
|
|
12
12
|
read?: LedgerReadStrategy;
|
|
13
13
|
gates?: LifecyclePoolGates;
|
|
14
|
+
/**
|
|
15
|
+
* The HELD TASK slugs to SUBTRACT from the triage/surface/apply candidate
|
|
16
|
+
* inputs before {@link buildLifecyclePools} routes them (task
|
|
17
|
+
* `in-place-scan-subtracts-held-locked-slugs-from-propose-matrix`).
|
|
18
|
+
*
|
|
19
|
+
* Symmetric to the pool-side subtraction `scoreItems` already runs on
|
|
20
|
+
* `state.ready`: without it, a `needsAnswers` TASK whose per-item lock is
|
|
21
|
+
* currently held (state `active`/`stuck`) still slips into the surface / apply
|
|
22
|
+
* pool, so `scan --json` enumerates a matrix leg for it that then always loses
|
|
23
|
+
* the claim CAS (`claim-cas.ts:127-132`) — reddening the propose tick every
|
|
24
|
+
* cadence for as long as the item is held. Narrowly TASK-scoped (this is what
|
|
25
|
+
* {@link heldTaskSlugs} returns): an observation triage entry / a spec surface
|
|
26
|
+
* entry is NOT filtered here, because the lock ref prefix `task-<slug>` only
|
|
27
|
+
* gates the task namespace. Defaults empty (byte-identical to pre-fix
|
|
28
|
+
* behaviour) so callers who cannot resolve a lock read still work.
|
|
29
|
+
*/
|
|
30
|
+
heldSlugs?: Set<string>;
|
|
14
31
|
}): SelectedLifecyclePools;
|
|
15
32
|
/**
|
|
16
33
|
* Gather + build the lifecycle pools for a MIRROR-SIDE bare hub mirror (async).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle-gather.d.ts","sourceRoot":"","sources":["../src/lifecycle-gather.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAOrE,OAAO,EAEN,KAAK,kBAAkB,EAGvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,sBAAsB,CAAC;AAiHjE;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,KAAK,CAAC,EAAE,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"lifecycle-gather.d.ts","sourceRoot":"","sources":["../src/lifecycle-gather.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAOrE,OAAO,EAEN,KAAK,kBAAkB,EAGvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,sBAAsB,CAAC;AAiHjE;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACxB,GAAG,sBAAsB,CAkCzB;AA2BD;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CAAC,KAAK,EAAE;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CA0FlC"}
|
package/dist/lifecycle-gather.js
CHANGED
|
@@ -86,6 +86,7 @@ function blockedItemsInPlace(read, repoPath, surfaceStaging) {
|
|
|
86
86
|
export function gatherLifecycleInPlace(input) {
|
|
87
87
|
const read = input.read ?? ledgerRead;
|
|
88
88
|
const repoPath = input.repoPath;
|
|
89
|
+
const heldSlugs = input.heldSlugs ?? new Set();
|
|
89
90
|
const rawObservations = read.resolveLocalState({ repoPath }).observations;
|
|
90
91
|
const observations = rawObservations.map((obs) => ({
|
|
91
92
|
slug: obs.slug,
|
|
@@ -93,7 +94,12 @@ export function gatherLifecycleInPlace(input) {
|
|
|
93
94
|
sidecar: readSidecarInPlace(repoPath, 'observation', obs.slug),
|
|
94
95
|
}));
|
|
95
96
|
const surfaceStaging = input.gates?.surfaceStaging === true;
|
|
96
|
-
const needsAnswers = blockedItemsInPlace(read, repoPath, surfaceStaging)
|
|
97
|
+
const needsAnswers = blockedItemsInPlace(read, repoPath, surfaceStaging)
|
|
98
|
+
// Held-slug subtraction (task-scoped): a `needsAnswers` TASK whose per-item
|
|
99
|
+
// lock is currently held is EXCLUDED from surface/apply enumeration. Spec /
|
|
100
|
+
// observation entries are untouched — the lock ref set here is task-only.
|
|
101
|
+
.filter((item) => !(item.namespace === 'task' && heldSlugs.has(item.slug)))
|
|
102
|
+
.map((item) => ({
|
|
97
103
|
repoPath,
|
|
98
104
|
namespace: item.namespace,
|
|
99
105
|
slug: item.slug,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle-gather.js","sourceRoot":"","sources":["../src/lifecycle-gather.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"lifecycle-gather.js","sourceRoot":"","sources":["../src/lifecycle-gather.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,9 +22,13 @@ import type { LifecycleSelectedItem } from './select-priority.js';
|
|
|
22
22
|
* **Three lifecycle sub-pools, gated by PURPOSE (ADR `ci-config-policy-and-gate-
|
|
23
23
|
* family.md` \u00a74 \u2014 gates govern CREATE only; CONSUME is always-on):**
|
|
24
24
|
*
|
|
25
|
-
* - **triage** \u2014 UNTRIAGED observations (no `triaged:` settled marker)
|
|
26
|
-
* act (the bot mints
|
|
27
|
-
* {@link LifecyclePoolGates.triage} (the future `observationTriage`
|
|
25
|
+
* - **triage** \u2014 UNTRIAGED observations (no `triaged:` settled marker) with NO
|
|
26
|
+
* sidecar yet. A CREATE act (the bot mints the deterministic triage question),
|
|
27
|
+
* so gated by {@link LifecyclePoolGates.triage} (the future `observationTriage`
|
|
28
|
+
* gate). Like SURFACE, a PENDING sidecar is NOT enumerated (already surfaced +
|
|
29
|
+
* awaiting the human, so re-enumerating only re-spawns the additive surface
|
|
30
|
+
* agent for a no-outcome no-op); it re-enters only when ANSWERED (to apply) or
|
|
31
|
+
* settled by a `triaged:` marker.
|
|
28
32
|
* - **surface** \u2014 `needsAnswers`-blocked tasks/prds with NO all-answered sidecar
|
|
29
33
|
* (no sidecar yet, or a still-pending one). A CREATE act (the bot mints the
|
|
30
34
|
* blocker question), so gated by {@link LifecyclePoolGates.surface} (the future
|
|
@@ -77,6 +81,39 @@ export interface LifecyclePoolGates {
|
|
|
77
81
|
* default is `true`). Spec `staging-surface-and-apply-promote-safety` F2.
|
|
78
82
|
* BUILD/claim eligibility is UNCHANGED in either mode — staging items stay
|
|
79
83
|
* non-claimable, the trust model is untouched.
|
|
84
|
+
*
|
|
85
|
+
* CREATE-vs-CONSUME EDGE (accepted, spec
|
|
86
|
+
* `staging-surface-and-apply-promote-safety` F2 follow-up): `surfaceStaging`
|
|
87
|
+
* gates the CREATE half (surface-side ENUMERATION of staged candidates).
|
|
88
|
+
* APPLY (the consume half) reads through the SAME enumeration, so flipping
|
|
89
|
+
* `surfaceStaging` true→false AFTER a surface tick has minted+answered a
|
|
90
|
+
* staged sidecar can STRAND that sidecar in staging until the flag is flipped
|
|
91
|
+
* back on. The realistic flip direction is off→on (opt-in widening), and an
|
|
92
|
+
* answered staged sidecar only exists if surfacing (opt-in) minted it, so the
|
|
93
|
+
* strand window is narrow and accepted. Revisit only if the create-vs-consume
|
|
94
|
+
* invariant must hold strictly (e.g. re-route `apply` to consume regardless of
|
|
95
|
+
* the surface gate).
|
|
96
|
+
*
|
|
97
|
+
* ## Decisions (ratified by task
|
|
98
|
+
* `f2-mirror-path-staging-test-and-ratify-decisions`, follow-up to slice
|
|
99
|
+
* `f2-surface-staging-config-and-pool-extension` — gate-2 review nits)
|
|
100
|
+
*
|
|
101
|
+
* 1. **Split default is intentional.** `LifecyclePoolGates.surfaceStaging`
|
|
102
|
+
* defaults `false` at the library boundary; `Config.surfaceStaging` defaults
|
|
103
|
+
* `true` at the user-visible layer. The calm library default is load-bearing
|
|
104
|
+
* for any direct caller of `gatherLifecycle*` that does NOT thread CLI gates
|
|
105
|
+
* — they get pool-only behaviour by default and opt IN to staging.
|
|
106
|
+
* 2. **Four new public methods on `LedgerReadStrategy` are intentional**
|
|
107
|
+
* (`resolveLocalTaskStaging`, `resolveLocalSpecStaging`,
|
|
108
|
+
* `resolveMirrorTaskStaging`, `resolveMirrorSpecStaging`), rather than
|
|
109
|
+
* overloading `resolveLocalState` / `resolveMirrorState` with a flag. Keeps
|
|
110
|
+
* the state vs. staging axes orthogonal at the interface.
|
|
111
|
+
* 3. **The `surfaceStaging` gate is consumed by the GATHER, not by pure
|
|
112
|
+
* `buildLifecyclePools`,** even though the field lives on
|
|
113
|
+
* `LifecyclePoolGates`. Placement acknowledged above; ratified as intentional
|
|
114
|
+
* so the gate colocates with its sibling create-side gates.
|
|
115
|
+
* 4. **`surfaceStaging` in `REPO_ALLOWED_KEYS` is intentional** so a repo's
|
|
116
|
+
* `.dorfl.json` can flip it via the normal resolution chain.
|
|
80
117
|
*/
|
|
81
118
|
surfaceStaging?: boolean;
|
|
82
119
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle-pools.d.ts","sourceRoot":"","sources":["../src/lifecycle-pools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,sBAAsB,CAAC;AAEhE
|
|
1
|
+
{"version":3,"file":"lifecycle-pools.d.ts","sourceRoot":"","sources":["../src/lifecycle-pools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,sBAAsB,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IAClC;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACrC,yFAAyF;IACzF,QAAQ,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,OAAO,EAAE,YAAY,GAAG,SAAS,CAAC;CAClC;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,oBAAoB;IACpC,4FAA4F;IAC5F,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,0FAA0F;IAC1F,OAAO,EAAE,YAAY,GAAG,SAAS,CAAC;CAClC;AAED,uFAAuF;AACvF,MAAM,WAAW,mBAAmB;IACnC,kFAAkF;IAClF,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC;;;OAGG;IACH,YAAY,EAAE,qBAAqB,EAAE,CAAC;IACtC;;;OAGG;IACH,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAC3B;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC9B,kEAAkE;IAClE,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAC/B,oFAAoF;IACpF,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,wEAAwE;IACxE,MAAM,EAAE,qBAAqB,EAAE,CAAC;CAChC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAClC,KAAK,EAAE,mBAAmB,GACxB,cAAc,CAkFhB"}
|
package/dist/lifecycle-pools.js
CHANGED
|
@@ -29,24 +29,44 @@ export function buildLifecyclePools(input) {
|
|
|
29
29
|
// with the triage create-gate off (the create-vs-consume invariant, ADR
|
|
30
30
|
// `ci-config-policy-and-gate-family` §4). An answered sidecar wins even
|
|
31
31
|
// when the observation body also carries a `triaged:` marker: a human's
|
|
32
|
-
// answer must never be stranded (
|
|
32
|
+
// answer must never be stranded (ADR
|
|
33
|
+
// `answered-observation-sidecar-dominates-triaged-marker.md`).
|
|
33
34
|
apply.push({
|
|
34
35
|
repoPath: input.repoPath,
|
|
35
36
|
slug: obs.slug,
|
|
36
37
|
namespace: 'observation',
|
|
37
38
|
});
|
|
38
39
|
}
|
|
39
|
-
else if (obs.triaged === undefined &&
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
//
|
|
40
|
+
else if (obs.triaged === undefined &&
|
|
41
|
+
obs.sidecar === undefined &&
|
|
42
|
+
triageOn) {
|
|
43
|
+
// CREATE (mint the deterministic triage question) — gated by
|
|
44
|
+
// `observationTriage`. ONLY an untriaged observation with NO sidecar yet is
|
|
45
|
+
// a triage candidate: it has never been surfaced. A PENDING sidecar (surfaced
|
|
46
|
+
// already, awaiting the human's answer) is DELIBERATELY DROPPED here — mirror
|
|
47
|
+
// of the SURFACE pool. The triage question is DETERMINISTIC (engine-built) +
|
|
48
|
+
// already present, so re-enumerating a pending observation every tick would
|
|
49
|
+
// only re-run a leg + re-spawn the additive surface agent for a NO-OUTCOME
|
|
50
|
+
// no-op (the persist appends no duplicate). It re-enters only when it is
|
|
51
|
+
// ANSWERED (→ apply, above) or a `triaged:` marker settles it. This is the
|
|
52
|
+
// enumerate-smartness fix: do NOT re-evaluate items that produce no outcome.
|
|
43
53
|
triage.push({
|
|
44
54
|
repoPath: input.repoPath,
|
|
45
55
|
slug: obs.slug,
|
|
46
56
|
namespace: 'observation',
|
|
47
57
|
});
|
|
48
58
|
}
|
|
49
|
-
|
|
59
|
+
else if (obs.triaged !== undefined) {
|
|
60
|
+
// EXPLICIT DROP: SETTLED (`triaged:` non-empty) with no answered sidecar
|
|
61
|
+
// — deliberately NOT enumerated. A pending sidecar on a settled
|
|
62
|
+
// observation would only no-op if re-enumerated, and a settled body is
|
|
63
|
+
// already resolved on the create side (ADR
|
|
64
|
+
// `answered-observation-sidecar-dominates-triaged-marker.md`). Codified
|
|
65
|
+
// as an explicit branch so a future reader does not resurface this cell.
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
// else: UNTRIAGED with no answered sidecar + triage gate OFF — implicit
|
|
69
|
+
// drop (the gate deliberately silences the pool).
|
|
50
70
|
}
|
|
51
71
|
// --- surface / apply: split `needsAnswers` items by sidecar answered-state ---
|
|
52
72
|
const surface = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle-pools.js","sourceRoot":"","sources":["../src/lifecycle-pools.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"lifecycle-pools.js","sourceRoot":"","sources":["../src/lifecycle-pools.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AA8MzC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,mBAAmB,CAClC,KAA0B;IAE1B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC;IACvC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC;IAEzC,kFAAkF;IAClF,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvE,IAAI,QAAQ,EAAE,CAAC;YACd,sEAAsE;YACtE,wEAAwE;YACxE,wEAAwE;YACxE,wEAAwE;YACxE,qCAAqC;YACrC,+DAA+D;YAC/D,KAAK,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,SAAS,EAAE,aAAa;aACxB,CAAC,CAAC;QACJ,CAAC;aAAM,IACN,GAAG,CAAC,OAAO,KAAK,SAAS;YACzB,GAAG,CAAC,OAAO,KAAK,SAAS;YACzB,QAAQ,EACP,CAAC;YACF,6DAA6D;YAC7D,4EAA4E;YAC5E,8EAA8E;YAC9E,8EAA8E;YAC9E,6EAA6E;YAC7E,4EAA4E;YAC5E,2EAA2E;YAC3E,yEAAyE;YACzE,2EAA2E;YAC3E,6EAA6E;YAC7E,MAAM,CAAC,IAAI,CAAC;gBACX,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,SAAS,EAAE,aAAa;aACxB,CAAC,CAAC;QACJ,CAAC;aAAM,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACtC,yEAAyE;YACzE,gEAAgE;YAChE,uEAAuE;YACvE,2CAA2C;YAC3C,wEAAwE;YACxE,yEAAyE;YACzE,SAAS;QACV,CAAC;QACD,wEAAwE;QACxE,kDAAkD;IACnD,CAAC;IAED,gFAAgF;IAChF,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QAC5C,MAAM,QAAQ,GACb,SAAS,CAAC,OAAO,KAAK,SAAS,IAAI,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACnE,IAAI,QAAQ,EAAE,CAAC;YACd,gFAAgF;YAChF,wEAAwE;YACxE,KAAK,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,SAAS,EAAE,SAAS,CAAC,SAAS;aAC9B,CAAC,CAAC;QACJ,CAAC;aAAM,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS,IAAI,SAAS,EAAE,CAAC;YACzD,gFAAgF;YAChF,2EAA2E;YAC3E,wEAAwE;YACxE,OAAO,CAAC,IAAI,CAAC;gBACZ,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,SAAS,EAAE,SAAS,CAAC,SAAS;aAC9B,CAAC,CAAC;QACJ,CAAC;QACD,4EAA4E;IAC7E,CAAC;IAED,OAAO,EAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAC,CAAC;AACjC,CAAC"}
|
|
@@ -114,10 +114,19 @@ export interface MergeQuestionSurfaced {
|
|
|
114
114
|
/** PR url when a GitHub ceiling matched the branch (advisory). */
|
|
115
115
|
prUrl?: string;
|
|
116
116
|
}
|
|
117
|
-
/**
|
|
117
|
+
/**
|
|
118
|
+
* One branch the surfacer considered but did not surface (with the reason).
|
|
119
|
+
*
|
|
120
|
+
* PROVISIONAL vocabulary. The `reason` union is scoped to this surfacer — no
|
|
121
|
+
* sibling surfacer exists yet, so it is deliberately NOT lifted to a shared
|
|
122
|
+
* skip-reason type. When a second STATE-sourced surfacer lands (e.g. a
|
|
123
|
+
* stuck-lock surfacer), promote this to a shared skip-reason vocabulary via a
|
|
124
|
+
* dedicated decision; until then it may change without notice.
|
|
125
|
+
*/
|
|
118
126
|
export interface MergeQuestionSkipped {
|
|
119
127
|
ref: string;
|
|
120
128
|
slug: string;
|
|
129
|
+
/** PROVISIONAL vocabulary — see {@link MergeQuestionSkipped}. */
|
|
121
130
|
reason: 'no-item-body' | 'already-pending-merge-question' | 'persist-nothing';
|
|
122
131
|
}
|
|
123
132
|
/** Aggregate result of one surfacer pass. */
|
|
@@ -161,6 +170,11 @@ export declare function listUnmergedWorkBranchesViaGit(input: ListUnmergedInput)
|
|
|
161
170
|
* results by their `headRefName` so the surfacer can enrich the matching
|
|
162
171
|
* branch's question. A non-zero / missing `gh` is treated as "no host
|
|
163
172
|
* metadata available" — the floor still surfaces every unmerged branch.
|
|
173
|
+
*
|
|
174
|
+
* Best-effort enrichment. The git-reachability FLOOR is authoritative; the
|
|
175
|
+
* `--state open`, `--base <base>`, and `--limit 200` arguments are DELIBERATE
|
|
176
|
+
* ceilings — a PR targeting a non-`main` base (e.g. a stacked PR) or the case
|
|
177
|
+
* of >200 open PRs degrades to floor-only output, never corrupts it.
|
|
164
178
|
*/
|
|
165
179
|
export declare function listOpenPullRequestsViaGh(input: ListPullRequestsInput): Map<string, MergeQuestionPullRequest>;
|
|
166
180
|
//# sourceMappingURL=merge-question-surfacer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-question-surfacer.d.ts","sourceRoot":"","sources":["../src/merge-question-surfacer.ts"],"names":[],"mappings":"AAUA,OAAO,EAEN,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,MAAM,sBAAsB,CAAC;AAG9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,uEAAuE;AACvE,MAAM,WAAW,kBAAkB;IAClC,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;CACb;AAED,yEAAyE;AACzE,MAAM,WAAW,wBAAwB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,uDAAuD;AACvD,MAAM,WAAW,iBAAiB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB;AAED,8EAA8E;AAC9E,MAAM,WAAW,4BAA4B;IAC5C,wEAAwE;IACxE,GAAG,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,kBAAkB,EAAE,CAAC;IAC9E;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,CACtB,KAAK,EAAE,qBAAqB,KACxB,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAC3C,2FAA2F;IAC3F,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,oBAAoB,CAAC;CACnE;AAED,yDAAyD;AACzD,MAAM,WAAW,qBAAqB;IACrC,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED
|
|
1
|
+
{"version":3,"file":"merge-question-surfacer.d.ts","sourceRoot":"","sources":["../src/merge-question-surfacer.ts"],"names":[],"mappings":"AAUA,OAAO,EAEN,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,MAAM,sBAAsB,CAAC;AAG9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,uEAAuE;AACvE,MAAM,WAAW,kBAAkB;IAClC,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;CACb;AAED,yEAAyE;AACzE,MAAM,WAAW,wBAAwB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,uDAAuD;AACvD,MAAM,WAAW,iBAAiB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB;AAED,8EAA8E;AAC9E,MAAM,WAAW,4BAA4B;IAC5C,wEAAwE;IACxE,GAAG,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,kBAAkB,EAAE,CAAC;IAC9E;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,CACtB,KAAK,EAAE,qBAAqB,KACxB,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAC3C,2FAA2F;IAC3F,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,oBAAoB,CAAC;CACnE;AAED,yDAAyD;AACzD,MAAM,WAAW,qBAAqB;IACrC,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,MAAM,EAAE,cAAc,GAAG,gCAAgC,GAAG,iBAAiB,CAAC;CAC9E;AAED,6CAA6C;AAC7C,MAAM,WAAW,2BAA2B;IAC3C,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAClC,sEAAsE;IACtE,OAAO,EAAE,oBAAoB,EAAE,CAAC;CAChC;AAED,4DAA4D;AAC5D,qBAAa,0BAA2B,SAAQ,KAAK;gBACxC,OAAO,EAAE,MAAM;CAI3B;AAsBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACpC,OAAO,EAAE,4BAA4B,GACnC,2BAA2B,CAqG7B;AAkFD;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC7C,KAAK,EAAE,iBAAiB,GACtB,kBAAkB,EAAE,CAmDtB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACxC,KAAK,EAAE,qBAAqB,GAC1B,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAkDvC"}
|
|
@@ -12,9 +12,19 @@ export class MergeQuestionSurfacerError extends Error {
|
|
|
12
12
|
this.name = 'MergeQuestionSurfacerError';
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
/**
|
|
16
|
-
*
|
|
17
|
-
* `advance.ts`'s
|
|
15
|
+
/**
|
|
16
|
+
* The lifecycle folders {@link findTaskItemPath} scans for a task body to flip
|
|
17
|
+
* `needsAnswers:true` on. This set DELIBERATELY DIVERGES from `advance.ts`'s
|
|
18
|
+
* `FOLDERS_FOR_TYPE.task` (`['tasks-backlog','tasks-ready','in-progress','done']`):
|
|
19
|
+
*
|
|
20
|
+
* - OMITS `in-progress` (and `needs-attention`): an unmerged `work/<slug>`
|
|
21
|
+
* branch whose body is mid-build should NOT trigger a merge-question — the
|
|
22
|
+
* build is still active, and surfacing a land-decision now would race the
|
|
23
|
+
* builder. Such tasks fall through to the `no-item-body` skip.
|
|
24
|
+
* - ADDS `cancelled`: a cancelled task with a lingering unmerged `work/*`
|
|
25
|
+
* branch SHOULD surface a merge-question so the operator explicitly decides
|
|
26
|
+
* whether to merge the branch or drop it.
|
|
27
|
+
*/
|
|
18
28
|
const TASK_FOLDERS = [
|
|
19
29
|
'tasks-ready',
|
|
20
30
|
'tasks-backlog',
|
|
@@ -246,6 +256,11 @@ export function listUnmergedWorkBranchesViaGit(input) {
|
|
|
246
256
|
* results by their `headRefName` so the surfacer can enrich the matching
|
|
247
257
|
* branch's question. A non-zero / missing `gh` is treated as "no host
|
|
248
258
|
* metadata available" — the floor still surfaces every unmerged branch.
|
|
259
|
+
*
|
|
260
|
+
* Best-effort enrichment. The git-reachability FLOOR is authoritative; the
|
|
261
|
+
* `--state open`, `--base <base>`, and `--limit 200` arguments are DELIBERATE
|
|
262
|
+
* ceilings — a PR targeting a non-`main` base (e.g. a stacked PR) or the case
|
|
263
|
+
* of >200 open PRs degrades to floor-only output, never corrupts it.
|
|
249
264
|
*/
|
|
250
265
|
export function listOpenPullRequestsViaGh(input) {
|
|
251
266
|
const { cwd, ghBin, base, env } = input;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-question-surfacer.js","sourceRoot":"","sources":["../src/merge-question-surfacer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,YAAY,EAAC,MAAM,SAAS,CAAC;AACjD,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAC,GAAG,EAAiB,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAC,kBAAkB,EAAE,cAAc,EAAC,MAAM,aAAa,CAAC;AAC/D,OAAO,EACN,YAAY,EACZ,cAAc,EACd,eAAe,GAEf,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,wBAAwB,GAGxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,WAAW,EAAqB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"merge-question-surfacer.js","sourceRoot":"","sources":["../src/merge-question-surfacer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ONE-SHOT migration of pre-existing `stuck` per-item lock refs into the
|
|
3
|
+
* post-`retire-stuck-lock-state` resting shape (surface-on-`main` +
|
|
4
|
+
* `needsAnswers:true` + release the lock).
|
|
5
|
+
*
|
|
6
|
+
* Context (spec `surface-stuck-as-questions-and-retire-stuck-lock-state`,
|
|
7
|
+
* resolved decision #3, user story 5; task
|
|
8
|
+
* `migrate-existing-stuck-locks-one-shot`):
|
|
9
|
+
* - Before the retirement, a bounced item was recorded as a `state: stuck`
|
|
10
|
+
* lock ref (`refs/dorfl/lock/<entry>`) with the bounce reason (+ any
|
|
11
|
+
* agent-surfaced questions) on the ref's blob body.
|
|
12
|
+
* - After the retirement (task `retire-stuck-lock-state`), `LockState`
|
|
13
|
+
* admits only `active`. {@link parseLockEntry} silently COERCES a legacy
|
|
14
|
+
* `state: stuck` blob to `active` on read, and the `stuck`-only body
|
|
15
|
+
* sections (`## Reason` / `## Questions`) are no longer emitted or
|
|
16
|
+
* parsed. So a legacy stuck ref is now invisible to the runner (it looks
|
|
17
|
+
* like a healthy in-flight `active` hold) and its reason/questions would
|
|
18
|
+
* rot forever if the state were not migrated at rollout.
|
|
19
|
+
*
|
|
20
|
+
* This module runs the migration ONCE per arbiter at rollout: for every held
|
|
21
|
+
* lock ref whose RAW blob body still carries `state: stuck` in its
|
|
22
|
+
* frontmatter, it extracts the reason (+ questions) directly from the legacy
|
|
23
|
+
* body (bypassing the coercing {@link parseLockEntry}) and drives the SAME
|
|
24
|
+
* ordered surface-first-release-second transition the new bounce uses
|
|
25
|
+
* ({@link surfaceStuckToNeedsAttention}) — writing the `stuck`-kind
|
|
26
|
+
* `work/questions/<entry>.md` sidecar + flipping `needsAnswers:true` on the
|
|
27
|
+
* item body on `<arbiter>/main`, then releasing the ref. After the migration
|
|
28
|
+
* no `stuck` lock ref remains and every previously-stuck item rests as a
|
|
29
|
+
* `needsAnswers:true` pool item with a sidecar (the same resting shape a
|
|
30
|
+
* fresh bounce produces).
|
|
31
|
+
*
|
|
32
|
+
* IDEMPOTENT by construction: the legacy shape is identified from the raw
|
|
33
|
+
* blob's `state: stuck` frontmatter line, which the new lock module NEVER
|
|
34
|
+
* writes; a re-run therefore finds no legacy stuck ref → the report has zero
|
|
35
|
+
* `migrated` entries and no arbiter mutation occurs. Bare-arbiter safe (a ref
|
|
36
|
+
* is a ref): every operation goes through the same lock-ref plumbing the
|
|
37
|
+
* live path uses, so it works on a `--bare file://` arbiter identically to a
|
|
38
|
+
* real remote.
|
|
39
|
+
*
|
|
40
|
+
* SCOPE FENCE: this migrates ONLY lock entries whose name reverse-derives to
|
|
41
|
+
* a CURRENT item-form (`task-*` / `spec-*` / `observation-*` via
|
|
42
|
+
* {@link hasCurrentItemForm}); a pre-cutover `slice-*` / `prd-*` legacy stuck
|
|
43
|
+
* ref has no on-`main` body to flip and is out of scope for the surface
|
|
44
|
+
* transition — such entries are reported as `skipped-no-item-form` and left
|
|
45
|
+
* for the existing `release-lock --entry <literal>` escape hatch to clear (a
|
|
46
|
+
* human still asserts the clear on those; the migration never `--force`s or
|
|
47
|
+
* deletes them). See the CLI verb `dorfl migrate-stuck-locks` for the
|
|
48
|
+
* user-facing surface + its help text.
|
|
49
|
+
*/
|
|
50
|
+
/** Per-lock outcome of the migration sweep. */
|
|
51
|
+
export type MigrateStuckLockOutcome = 'migrated' | 'migrated-body-absent' | 'not-stuck' | 'skipped-no-item-form' | 'lost' | 'error';
|
|
52
|
+
/** One lock's disposition in the {@link MigrateStuckLocksReport}. */
|
|
53
|
+
export interface MigrateStuckLockEntry {
|
|
54
|
+
/** The lock-entry name (`<type>-<slug>` or a pre-cutover `slice-*` / `prd-*`). */
|
|
55
|
+
entry: string;
|
|
56
|
+
/** The lock ref (`refs/dorfl/lock/<entry>`). */
|
|
57
|
+
ref: string;
|
|
58
|
+
/**
|
|
59
|
+
* The namespaced item form the entry reverse-derives to (`task:<slug>` /
|
|
60
|
+
* `spec:<slug>` / `observation:<slug>`), or the raw entry when it does not
|
|
61
|
+
* carry a current item-form prefix.
|
|
62
|
+
*/
|
|
63
|
+
item: string;
|
|
64
|
+
outcome: MigrateStuckLockOutcome;
|
|
65
|
+
/** Human-readable note (why it was left, or the surface + release result). */
|
|
66
|
+
message: string;
|
|
67
|
+
}
|
|
68
|
+
/** Result of {@link migrateStuckLocks}. A one-shot sweep report. */
|
|
69
|
+
export interface MigrateStuckLocksReport {
|
|
70
|
+
entries: MigrateStuckLockEntry[];
|
|
71
|
+
/** Count of legacy stuck refs surfaced on main + released. */
|
|
72
|
+
migrated: number;
|
|
73
|
+
/** Count of legacy stuck refs whose lock was released but had no on-`main` body
|
|
74
|
+
* to flip (body-absent D1 probe). Still a successful drain. */
|
|
75
|
+
migratedBodyAbsent: number;
|
|
76
|
+
/** Count of refs that were not the legacy stuck shape (healthy active holds
|
|
77
|
+
* or already-migrated). No mutation. */
|
|
78
|
+
notStuck: number;
|
|
79
|
+
/** Count of legacy stuck refs skipped because their entry has no current
|
|
80
|
+
* item-form (pre-cutover `slice-*` / `prd-*`). */
|
|
81
|
+
skippedNoItemForm: number;
|
|
82
|
+
/** Count of refs whose surface/release lost the CAS race. */
|
|
83
|
+
lost: number;
|
|
84
|
+
/** Count of refs where a read/plumbing fault prevented migration. */
|
|
85
|
+
errors: number;
|
|
86
|
+
}
|
|
87
|
+
export interface MigrateStuckLocksOptions {
|
|
88
|
+
cwd: string;
|
|
89
|
+
arbiter?: string;
|
|
90
|
+
env?: NodeJS.ProcessEnv;
|
|
91
|
+
/** Optional progress note sink (parity with `surfaceStuckToNeedsAttention`). */
|
|
92
|
+
note?: (message: string) => void;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Run the one-shot migration against the arbiter. Enumerates every held
|
|
96
|
+
* per-item lock ref, and for each whose RAW blob body carries `state: stuck`
|
|
97
|
+
* (the legacy shape the retired `stuck` state produced) drives the shared
|
|
98
|
+
* surface-first-release-second transition (reason + questions extracted from
|
|
99
|
+
* the legacy body). Idempotent: a re-run finds no legacy stuck refs and is a
|
|
100
|
+
* clean no-op.
|
|
101
|
+
*/
|
|
102
|
+
export declare function migrateStuckLocks(options: MigrateStuckLocksOptions): Promise<MigrateStuckLocksReport>;
|
|
103
|
+
/**
|
|
104
|
+
* True iff the migration report leaves a state a human should look at: a
|
|
105
|
+
* `lost` (CAS race) or an `error` (read/plumbing fault). A `not-stuck` /
|
|
106
|
+
* `skipped-no-item-form` outcome is INFORMATIONAL (the former is the normal
|
|
107
|
+
* healthy-hold state; the latter is deferred to `release-lock --entry`) and
|
|
108
|
+
* does NOT count. A pure "0 migrated, 0 lost, 0 error" report is exit-0.
|
|
109
|
+
*/
|
|
110
|
+
export declare function migrateStuckLocksNeedsAttention(report: MigrateStuckLocksReport): boolean;
|
|
111
|
+
/** Format the sweep for the terminal. An empty enumeration (no lock refs at
|
|
112
|
+
* all) yields no lines (silent, like the gc lock report). */
|
|
113
|
+
export declare function formatMigrateStuckLocksReport(report: MigrateStuckLocksReport): string[];
|
|
114
|
+
/** True iff `body` is the legacy `state: stuck` shape (the pre-retirement
|
|
115
|
+
* lock-entry blob). Matched on the raw frontmatter line so this is unaffected
|
|
116
|
+
* by the current parser's coercion to `active`. */
|
|
117
|
+
export declare function isLegacyStuckBlob(body: string): boolean;
|
|
118
|
+
/**
|
|
119
|
+
* Extract the bounce reason from a legacy stuck lock blob. Preference order
|
|
120
|
+
* (the two shapes the retired serialiser produced):
|
|
121
|
+
* 1. A `## Reason` block in the body (multi-line, blank-trimmed).
|
|
122
|
+
* 2. A one-line `reason:` field in the frontmatter (pre-cutover shape).
|
|
123
|
+
* Returns `undefined` when neither is present.
|
|
124
|
+
*/
|
|
125
|
+
export declare function extractLegacyReason(body: string): string | undefined;
|
|
126
|
+
/** Extract the `## Questions` bulleted list from a legacy stuck lock blob (or
|
|
127
|
+
* `[]` when absent). Each bullet becomes one question string. */
|
|
128
|
+
export declare function extractLegacyQuestions(body: string): string[];
|
|
129
|
+
//# sourceMappingURL=migrate-stuck-locks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-stuck-locks.d.ts","sourceRoot":"","sources":["../src/migrate-stuck-locks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAeH,+CAA+C;AAC/C,MAAM,MAAM,uBAAuB,GAChC,UAAU,GACV,sBAAsB,GACtB,WAAW,GACX,sBAAsB,GACtB,MAAM,GACN,OAAO,CAAC;AAEX,qEAAqE;AACrE,MAAM,WAAW,qBAAqB;IACrC,kFAAkF;IAClF,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,uBAAuB,CAAC;IACjC,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,oEAAoE;AACpE,MAAM,WAAW,uBAAuB;IACvC,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB;mEAC+D;IAC/D,kBAAkB,EAAE,MAAM,CAAC;IAC3B;4CACwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB;sDACkD;IAClD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,gFAAgF;IAChF,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACtC,OAAO,EAAE,wBAAwB,GAC/B,OAAO,CAAC,uBAAuB,CAAC,CA4KlC;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC9C,MAAM,EAAE,uBAAuB,GAC7B,OAAO,CAET;AAED;6DAC6D;AAC7D,wBAAgB,6BAA6B,CAC5C,MAAM,EAAE,uBAAuB,GAC7B,MAAM,EAAE,CAuCV;AAwBD;;mDAEmD;AACnD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOvD;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA0BpE;AAED;iEACiE;AACjE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAoB7D"}
|