audit-tools 0.32.22 → 0.32.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/README.md +10 -4
  2. package/dist/audit/cli/conceptualDispatch.d.ts +11 -0
  3. package/dist/audit/cli/conceptualDispatch.d.ts.map +1 -1
  4. package/dist/audit/cli/conceptualDispatch.js +31 -1
  5. package/dist/audit/cli/conceptualDispatch.js.map +1 -1
  6. package/dist/audit/cli/nextStepHelpers.d.ts +46 -0
  7. package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
  8. package/dist/audit/cli/nextStepHelpers.js +14 -14
  9. package/dist/audit/cli/nextStepHelpers.js.map +1 -1
  10. package/dist/audit/contracts/workerSchemas.d.ts +4 -4
  11. package/dist/audit/contracts/wrapperResponse.d.ts +6 -6
  12. package/dist/audit/orchestrator/advance.d.ts +18 -19
  13. package/dist/audit/orchestrator/advance.d.ts.map +1 -1
  14. package/dist/audit/orchestrator/advance.js +32 -40
  15. package/dist/audit/orchestrator/advance.js.map +1 -1
  16. package/dist/audit/orchestrator/advanceTypes.d.ts +0 -17
  17. package/dist/audit/orchestrator/advanceTypes.d.ts.map +1 -1
  18. package/dist/audit/orchestrator/hostInputPause.d.ts +69 -0
  19. package/dist/audit/orchestrator/hostInputPause.d.ts.map +1 -0
  20. package/dist/audit/orchestrator/hostInputPause.js +90 -0
  21. package/dist/audit/orchestrator/hostInputPause.js.map +1 -0
  22. package/dist/audit/quota/index.d.ts +24 -24
  23. package/dist/audit/types.d.ts +2 -2
  24. package/dist/remediate/contractPipeline/artifactStore.d.ts +27 -0
  25. package/dist/remediate/contractPipeline/artifactStore.d.ts.map +1 -1
  26. package/dist/remediate/contractPipeline/artifactStore.js +34 -0
  27. package/dist/remediate/contractPipeline/artifactStore.js.map +1 -1
  28. package/dist/remediate/contractPipeline/changeClassification.d.ts +9 -3
  29. package/dist/remediate/contractPipeline/changeClassification.d.ts.map +1 -1
  30. package/dist/remediate/contractPipeline/changeClassification.js +25 -6
  31. package/dist/remediate/contractPipeline/changeClassification.js.map +1 -1
  32. package/dist/remediate/contractPipeline/derive.d.ts +42 -0
  33. package/dist/remediate/contractPipeline/derive.d.ts.map +1 -1
  34. package/dist/remediate/contractPipeline/derive.js +108 -0
  35. package/dist/remediate/contractPipeline/derive.js.map +1 -1
  36. package/dist/remediate/index.d.ts.map +1 -1
  37. package/dist/remediate/index.js +9 -1
  38. package/dist/remediate/index.js.map +1 -1
  39. package/dist/remediate/intake.d.ts +10 -0
  40. package/dist/remediate/intake.d.ts.map +1 -1
  41. package/dist/remediate/intake.js +20 -1
  42. package/dist/remediate/intake.js.map +1 -1
  43. package/dist/remediate/phases/grounding.d.ts +7 -4
  44. package/dist/remediate/phases/grounding.d.ts.map +1 -1
  45. package/dist/remediate/phases/grounding.js +52 -8
  46. package/dist/remediate/phases/grounding.js.map +1 -1
  47. package/dist/remediate/steps/contractPipelinePrompts.d.ts +1 -0
  48. package/dist/remediate/steps/contractPipelinePrompts.d.ts.map +1 -1
  49. package/dist/remediate/steps/contractPipelinePrompts.js +2 -2
  50. package/dist/remediate/steps/contractPipelinePrompts.js.map +1 -1
  51. package/dist/remediate/steps/dispatch/acceptNode.d.ts +25 -0
  52. package/dist/remediate/steps/dispatch/acceptNode.d.ts.map +1 -1
  53. package/dist/remediate/steps/dispatch/acceptNode.js +65 -7
  54. package/dist/remediate/steps/dispatch/acceptNode.js.map +1 -1
  55. package/dist/remediate/steps/dispatch/common.d.ts +11 -0
  56. package/dist/remediate/steps/dispatch/common.d.ts.map +1 -1
  57. package/dist/remediate/steps/dispatch/common.js +16 -0
  58. package/dist/remediate/steps/dispatch/common.js.map +1 -1
  59. package/dist/remediate/steps/dispatch/implementPrompt.d.ts +13 -0
  60. package/dist/remediate/steps/dispatch/implementPrompt.d.ts.map +1 -1
  61. package/dist/remediate/steps/dispatch/implementPrompt.js +33 -7
  62. package/dist/remediate/steps/dispatch/implementPrompt.js.map +1 -1
  63. package/dist/remediate/steps/dispatch/marshal.d.ts.map +1 -1
  64. package/dist/remediate/steps/dispatch/marshal.js +77 -9
  65. package/dist/remediate/steps/dispatch/marshal.js.map +1 -1
  66. package/dist/remediate/steps/dispatch/worktreeLifecycle.d.ts +55 -16
  67. package/dist/remediate/steps/dispatch/worktreeLifecycle.d.ts.map +1 -1
  68. package/dist/remediate/steps/dispatch/worktreeLifecycle.js +119 -16
  69. package/dist/remediate/steps/dispatch/worktreeLifecycle.js.map +1 -1
  70. package/dist/remediate/steps/dispatch.d.ts +2 -2
  71. package/dist/remediate/steps/dispatch.d.ts.map +1 -1
  72. package/dist/remediate/steps/dispatch.js +2 -2
  73. package/dist/remediate/steps/dispatch.js.map +1 -1
  74. package/dist/remediate/steps/nextStep.d.ts.map +1 -1
  75. package/dist/remediate/steps/nextStep.js +12 -1
  76. package/dist/remediate/steps/nextStep.js.map +1 -1
  77. package/dist/remediate/validation/artifacts.d.ts.map +1 -1
  78. package/dist/remediate/validation/artifacts.js +38 -1
  79. package/dist/remediate/validation/artifacts.js.map +1 -1
  80. package/dist/remediate/validation/contractPipeline.d.ts +1 -1
  81. package/dist/remediate/validation/contractPipeline.d.ts.map +1 -1
  82. package/dist/remediate/validation/contractPipeline.js +1 -1
  83. package/dist/remediate/validation/contractPipeline.js.map +1 -1
  84. package/dist/remediate/validation/contractPipelineGates.d.ts +15 -0
  85. package/dist/remediate/validation/contractPipelineGates.d.ts.map +1 -1
  86. package/dist/remediate/validation/contractPipelineGates.js +168 -2
  87. package/dist/remediate/validation/contractPipelineGates.js.map +1 -1
  88. package/dist/shared/dispatch/admissionLoop.d.ts +12 -12
  89. package/dist/shared/dispatch/costRank.d.ts +17 -1
  90. package/dist/shared/dispatch/costRank.d.ts.map +1 -1
  91. package/dist/shared/dispatch/costRank.js +8 -4
  92. package/dist/shared/dispatch/costRank.js.map +1 -1
  93. package/dist/shared/friction/captureFrictionEvent.d.ts +13 -0
  94. package/dist/shared/friction/captureFrictionEvent.d.ts.map +1 -1
  95. package/dist/shared/friction/captureFrictionEvent.js.map +1 -1
  96. package/dist/shared/friction/frictionRecord.d.ts +55 -1
  97. package/dist/shared/friction/frictionRecord.d.ts.map +1 -1
  98. package/dist/shared/friction/frictionRecord.js +40 -0
  99. package/dist/shared/friction/frictionRecord.js.map +1 -1
  100. package/dist/shared/friction/stepBoundaryCapture.d.ts +14 -0
  101. package/dist/shared/friction/stepBoundaryCapture.d.ts.map +1 -1
  102. package/dist/shared/friction/stepBoundaryCapture.js +47 -0
  103. package/dist/shared/friction/stepBoundaryCapture.js.map +1 -1
  104. package/dist/shared/friction/triage.d.ts +94 -14
  105. package/dist/shared/friction/triage.d.ts.map +1 -1
  106. package/dist/shared/friction/triage.js +0 -0
  107. package/dist/shared/friction/triage.js.map +1 -1
  108. package/dist/shared/index.d.ts +1 -1
  109. package/dist/shared/index.d.ts.map +1 -1
  110. package/dist/shared/index.js +1 -1
  111. package/dist/shared/index.js.map +1 -1
  112. package/dist/shared/quota/capacity.d.ts +4 -4
  113. package/dist/shared/quota/modelStatics.d.ts +15 -7
  114. package/dist/shared/quota/modelStatics.d.ts.map +1 -1
  115. package/dist/shared/quota/modelStatics.js +60 -13
  116. package/dist/shared/quota/modelStatics.js.map +1 -1
  117. package/dist/shared/quota/quotaSource.d.ts +2 -2
  118. package/dist/shared/validation/designFindingGrounding.d.ts.map +1 -1
  119. package/dist/shared/validation/designFindingGrounding.js +9 -3
  120. package/dist/shared/validation/designFindingGrounding.js.map +1 -1
  121. package/dist/shared/validation/findingGrounding.d.ts +40 -0
  122. package/dist/shared/validation/findingGrounding.d.ts.map +1 -1
  123. package/dist/shared/validation/findingGrounding.js +83 -0
  124. package/dist/shared/validation/findingGrounding.js.map +1 -1
  125. package/docs/audit-pkg/operator-guide.md +84 -0
  126. package/package.json +2 -2
@@ -14,11 +14,11 @@ import { AGENT_FEEDBACK_FILENAME, readJsonFile, readOptionalJsonFile, writeJsonF
14
14
  import { validateImplementWorkerResult } from "../../validation/artifacts.js";
15
15
  import { REMEDIATION_DISPATCH_PLAN_CONTRACT_VERSION, } from "../types.js";
16
16
  import { specIndicatesNoChange, hasExecutableEvidence, dependencyVerifiedComplete, } from "../stepUtils.js";
17
- import { isTerminalStatus, isVerifiedCompleteStatus, } from "../../state/itemStatus.js";
17
+ import { isTerminalStatus, isVerifiedCompleteStatus, isSkipStatus, } from "../../state/itemStatus.js";
18
18
  import { resnapshotAffectedFileHashes } from "../../utils/fileIntegrity.js";
19
19
  import { createReservationLedger } from "audit-tools/shared";
20
- import { runDir, dispatchPlanPath, getCachedConventions, estimateImplementSlotTokens, worktreeBranchForBlock, gitBranchExists, gitEditedFilesForBranch, gitHunksForBranch, toRepoRelative, } from "./common.js";
21
- import { worktreePath, ensureRemediationBranchCheckedOut, } from "./worktreeLifecycle.js";
20
+ import { runDir, dispatchPlanPath, getCachedConventions, estimateImplementSlotTokens, worktreeBranchForBlock, gitBranchExists, gitEditedFilesForBranch, gitHunksForBranch, gitCommitIsAncestor, toRepoRelative, } from "./common.js";
21
+ import { worktreePath, ensureRemediationBranchCheckedOut, quarantineCommitByOid, } from "./worktreeLifecycle.js";
22
22
  import { scheduleWave, buildDispatchQuota } from "./waveScheduling.js";
23
23
  import { buildBlockAliasMap, collapseItemResults, buildNodeDisposition, attributeSiblingRed, detectOverlappingEdits, } from "./writeScope.js";
24
24
  import { buildImplementDispatchItem, blockReadFiles, detectPackageRoot, buildTestFileIndex, collectReferencingTests, implementPrompt, } from "./implementPrompt.js";
@@ -589,6 +589,50 @@ async function mergeImplementResultsIntoState(options, runId, plan, state) {
589
589
  : "");
590
590
  continue;
591
591
  }
592
+ // INV-WTS-7: a resolved_no_change is genuine ONLY when the node captured NO
593
+ // commit OID and git ground truth confirms an empty branch. A node that DID
594
+ // capture a commit OID but whose branch now reads empty is a CLOBBER (a
595
+ // concurrent sweep/accept reset its ref toward base) — an ancestry mismatch,
596
+ // NOT a genuine no-change: re-block to triage and recover its committed work
597
+ // from quarantine, never flip it terminal on a race-corrupted live read. A
598
+ // worker-claimed no-change whose branch actually HAS edits is likewise
599
+ // re-blocked (git ground truth over the self-report). Only fires on the
600
+ // rolling path (an accept-outcome exists); the interim main-tree path has no
601
+ // git ground truth and is unaffected.
602
+ if (itemResult.status === "resolved_no_change" && acceptOutcome) {
603
+ const noChangeBranch = worktreeBranchForBlock(blockId, runId);
604
+ const branchPresent = gitBranchExists(options.root, noChangeBranch);
605
+ const branchEdits = branchPresent
606
+ ? gitEditedFilesForBranch(options.root, noChangeBranch)
607
+ : null;
608
+ const branchHasEdits = !!branchEdits && branchEdits.available && branchEdits.files.size > 0;
609
+ const branchEmpty = !branchPresent ||
610
+ (!!branchEdits && branchEdits.available && branchEdits.files.size === 0);
611
+ const capturedOid = acceptOutcome.committedOid;
612
+ if (capturedOid && branchEmpty) {
613
+ quarantineCommitByOid(options.root, runId, blockId, capturedOid);
614
+ stateItem.status = "blocked";
615
+ markTerminal(stateItem);
616
+ stateItem.failure_reason =
617
+ `Node ${blockId} reported finding ${itemResult.finding_id} ` +
618
+ `resolved_no_change, but it had captured commit ${capturedOid.slice(0, 8)} and ` +
619
+ `its branch now reads empty — a concurrent sweep/accept clobbered its ref toward ` +
620
+ `base (ancestry mismatch, not a genuine no-change). Its committed work is ` +
621
+ `preserved under quarantine and the finding is routed to triage.`;
622
+ continue;
623
+ }
624
+ if (branchHasEdits) {
625
+ stateItem.status = "blocked";
626
+ markTerminal(stateItem);
627
+ const sample = [...branchEdits.files].slice(0, 5).join(", ");
628
+ stateItem.failure_reason =
629
+ `Node ${blockId} reported finding ${itemResult.finding_id} ` +
630
+ `resolved_no_change, but its worktree branch actually has edits ` +
631
+ `(${sample}${branchEdits.files.size > 5 ? ", …" : ""}); git ground truth ` +
632
+ `contradicts the no-change claim. Routed to triage.`;
633
+ continue;
634
+ }
635
+ }
592
636
  const spec = stateItem.item_spec;
593
637
  // The worker's explicit `resolved_no_change` is a no-change signal in its
594
638
  // own right; the spec heuristic is the fallback for a plain `resolved`.
@@ -749,22 +793,46 @@ async function mergeImplementResultsIntoState(options, runId, plan, state) {
749
793
  // "resolved" but committed nothing); the hard-failure case (outcome=error|timeout)
750
794
  // is caught earlier, in the collapsed loop's resolve branch, so a mislabeled
751
795
  // `resolved_no_change` can't slip past this resolvedFindingIds keying.
752
- if (resolvedFindingIds.length > 0) {
753
- if (acceptOutcome && !acceptOutcome.merged) {
796
+ if (resolvedFindingIds.length > 0 && acceptOutcome) {
797
+ const notLanded = !acceptOutcome.merged;
798
+ // INV-WTS-3: node-IDENTITY ancestry reconcile. A merged:true accept is only
799
+ // trusted after confirming THIS node's own landed cherry-pick commit is still
800
+ // reachable from the remediation HEAD (`git merge-base --is-ancestor`). A bare
801
+ // path-existence probe (`cat-file -e HEAD:<path>`) would false-PASS when a
802
+ // sibling or a pre-existing file sits at the same path (CE-001); the captured
803
+ // commit OID cannot. If the landing was rolled back / clobbered after accept,
804
+ // the OID is no longer an ancestor → re-block + recover from quarantine.
805
+ const ancestryLost = acceptOutcome.merged &&
806
+ !!acceptOutcome.landedHeadOid &&
807
+ !gitCommitIsAncestor(options.root, acceptOutcome.landedHeadOid);
808
+ if (notLanded || ancestryLost) {
809
+ if (ancestryLost && acceptOutcome.committedOid) {
810
+ quarantineCommitByOid(options.root, runId, blockId, acceptOutcome.committedOid);
811
+ }
754
812
  for (const findingId of resolvedFindingIds) {
755
813
  const stateItem = state.items[findingId];
756
- if (!stateItem || isTerminalStatus(stateItem.status))
814
+ // These findings were just set to `resolved` by THIS merge pass, so the
815
+ // re-block must be allowed to flip resolved→blocked. Only a user-SKIP
816
+ // terminal (deemed_inappropriate / ignored) is protected — never a bare
817
+ // `isTerminalStatus` guard, which would (wrongly) skip the resolved item
818
+ // this gate exists to override (INV-WTS-5).
819
+ if (!stateItem || isSkipStatus(stateItem.status))
757
820
  continue;
758
821
  stateItem.status = "blocked";
759
822
  markTerminal(stateItem);
760
- stateItem.failure_reason =
761
- `Node ${blockId} reported finding ${findingId} resolved, but its tool-owned ` +
823
+ stateItem.failure_reason = notLanded
824
+ ? `Node ${blockId} reported finding ${findingId} resolved, but its tool-owned ` +
762
825
  `verify/merge did not land the edits (outcome=${acceptOutcome.outcome}, ` +
763
826
  `verify_passed=${acceptOutcome.verifyPassed}, merged=false); the fix is not in ` +
764
827
  `the main tree. Routed to triage.` +
765
828
  (acceptOutcome.diagnostic
766
829
  ? `\nFailing command output:\n${acceptOutcome.diagnostic}`
767
- : "");
830
+ : "")
831
+ : `Node ${blockId} reported finding ${findingId} resolved and merged, but its ` +
832
+ `landed commit ${acceptOutcome.landedHeadOid.slice(0, 8)} is no longer an ` +
833
+ `ancestor of the remediation HEAD — a concurrent sweep/accept rolled its landing ` +
834
+ `back (ancestry mismatch, closing the CE-001 path-existence false-close). Its ` +
835
+ `committed work is preserved under quarantine and the finding is routed to triage.`;
768
836
  }
769
837
  }
770
838
  }
@@ -1 +1 @@
1
- {"version":3,"file":"marshal.js","sourceRoot":"","sources":["../../../../src/remediate/steps/dispatch/marshal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"marshal.js","sourceRoot":"","sources":["../../../../src/remediate/steps/dispatch/marshal.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,16 @@ export declare function createWorktree(root: string, worktreePath: string, branc
26
26
  * Best-effort: a copy failure must not abort the dispatch (logged, not thrown).
27
27
  */
28
28
  export declare function seedUntrackedDeclaredPaths(root: string, worktreeRoot: string, declaredPaths: Iterable<string>): void;
29
- /** Remove a git worktree. Best-effort: logs but does not throw on failure. */
29
+ /**
30
+ * Remove ONE git worktree, PATH-SCOPED (INV-WTS-1/4). Always addresses only the
31
+ * named `worktreePath` via `git worktree remove --force <path>` — never a global
32
+ * `git worktree prune` that could drop a SIBLING node's registered-but-transiently-
33
+ * absent worktree. `git worktree remove --force` clears the registration even when
34
+ * the directory is already MISSING (a stale admin entry), so this alone replaces
35
+ * the prior global-prune reset step. Best-effort: a genuinely-absent + unregistered
36
+ * path (git reports "is not a working tree" and the dir does not exist) is a silent
37
+ * no-op; any other failure is surfaced on stderr, never thrown.
38
+ */
30
39
  export declare function removeWorktree(root: string, worktreePath: string): void;
31
40
  /**
32
41
  * Fully reset a node's isolated worktree + branch so a fresh `createWorktree -b`
@@ -40,25 +49,29 @@ export declare function removeWorktree(root: string, worktreePath: string): void
40
49
  * worktree/branch is the expected first-attempt case, not an error). Any partial
41
50
  * edits from a throttled prior attempt are intentionally discarded — the
42
51
  * re-dispatch redoes the node from HEAD.
52
+ *
53
+ * INV-WTS-1/4 (no sibling clobber, stale-sweep never prunes in-flight work): every
54
+ * step is scoped to THIS node's own `worktreePath` / `branchName`. There is NO
55
+ * global `git worktree prune` — a global prune drops the admin entry of ANY sibling
56
+ * worktree whose directory is transiently absent (a sibling between its own rmSync
57
+ * and re-create), which is the exact data-loss race this module closes. Path-scoped
58
+ * `removeWorktree` clears even a stale registration whose dir is already gone, so
59
+ * the prune is unnecessary. Callers serialize a node's reset/create against its own
60
+ * accept via `worktreeNodeLockPath` (INV-WTS-8), so two operations on the SAME node
61
+ * never interleave, while DIFFERENT nodes never touch each other's path.
43
62
  */
44
63
  export declare function resetNodeWorktreeAndBranch(root: string, worktreePath: string, branchName: string): void;
64
+ export declare function verifyNodeInWorktree(worktreePath: string, targetedCommands: string[],
45
65
  /**
46
- * Run each targeted command in the worktree directory. Returns pass/fail and
47
- * combined output.
48
- *
49
- * `targeted_commands` are opaque host-authored command *strings* (e.g.
50
- * `npm run build`, `grep -c '/packages/' .gitignore`, anything with pipes,
51
- * quotes, or redirections), NOT pre-tokenized argv. They are run through the
52
- * platform shell (`runShellCommand` `spawnSync(..., { shell: true })`, the
53
- * same path `close.ts` uses for `test_command`/`e2e_command`) so the shell — not
54
- * a word-split + `spawnSync(shell:false)` — resolves the verb. That is what
55
- * makes this OS-agnostic: on win32 `cmd.exe` natively execs `.cmd` shims (npm,
56
- * npx, …) and resolves PATH commands; on darwin/linux `/bin/sh` does. The prior
57
- * argv path ENOENT'd the *spawn itself* for any verb that wasn't a bare
58
- * executable (e.g. `grep` on Windows), turning a correct fix into a phantom
59
- * contract failure that burned the retry budget.
66
+ * INV-WTS-2: enforce that the verify cwd IS its own git top-level (a per-node
67
+ * ISOLATED worktree). Set by the accept-node path (`acceptNodeWorktree`) — the
68
+ * enforcement point — so a worktree deleted out from under the verify fails LOUD
69
+ * instead of resolving up to the enclosing MAIN checkout and false-greening
70
+ * against unrelated code. Left OFF (default) for the deliberately-main-rooted
71
+ * re-verify callers (triage re-runs a node's `targeted_commands` at the repo root,
72
+ * which is legitimately a subdir of no isolated worktree).
60
73
  */
61
- export declare function verifyNodeInWorktree(worktreePath: string, targetedCommands: string[]): WorktreeVerifyResult;
74
+ enforceWorktreeRoot?: boolean): WorktreeVerifyResult;
62
75
  /** Merge the worktree branch into the current HEAD via cherry-pick. On failure, removes the worktree and returns the error. */
63
76
  export declare function mergeWorktree(root: string, worktreePath: string, branchName: string): {
64
77
  success: true;
@@ -109,6 +122,18 @@ export declare function remediationBranchName(runId: string): string;
109
122
  * cherry-pick → cross-package check → reset sequence through this single lock.
110
123
  */
111
124
  export declare function baseBranchLockPath(root: string, runId: string): string;
125
+ /**
126
+ * Per-node worktree lock path (INV-WTS-1/8). Serializes create / reset / remove /
127
+ * accept for ONE node so a concurrent operation on the SAME node never interleaves
128
+ * (and a scoped removal can't race its own re-create). DISTINCT from
129
+ * {@link baseBranchLockPath} (base-branch.lock) and the per-run `rolling-session.lock`
130
+ * — `withFileLock` is a non-reentrant `wx` create, so sharing a path self-deadlocks
131
+ * (INV-WTS-6). Keyed on the block id so two DIFFERENT nodes hold DIFFERENT locks and
132
+ * never contend. INV-WTS-8: whenever both are held, this per-node lock is acquired
133
+ * BEFORE the base-branch lock on every accept path, so the fixed total order makes an
134
+ * AB/BA cross-lock deadlock unreachable by construction.
135
+ */
136
+ export declare function worktreeNodeLockPath(root: string, runId: string, blockId: string): string;
112
137
  /** Durable ref under which a failed-but-committed node's commit is preserved. */
113
138
  export declare function quarantineRef(runId: string, blockId: string): string;
114
139
  /**
@@ -142,6 +167,20 @@ export declare function quarantineUncommittedWorktreeEdits(root: string, worktre
142
167
  ref: string;
143
168
  commit: string;
144
169
  } | null;
170
+ /**
171
+ * Point a node's durable quarantine ref straight at a captured commit OID, with no
172
+ * live branch dependency (INV-WTS-3/7 clobber recovery). Used when a concurrent
173
+ * sweep/accept has already reset or deleted the node's branch ref toward base so
174
+ * `quarantineFailedNodeCommit` (which rev-parses the branch) can no longer resolve
175
+ * the work — the captured OID from the node's own accept-outcome is still a
176
+ * reachable commit object, so preserving it here keeps the honest committed work
177
+ * recoverable instead of silently lost. Best-effort; returns the ref + commit, or
178
+ * null when the update-ref failed.
179
+ */
180
+ export declare function quarantineCommitByOid(root: string, runId: string, blockId: string, commitOid: string): {
181
+ ref: string;
182
+ commit: string;
183
+ } | null;
145
184
  /** Clear a node's quarantine ref (e.g. once a later re-dispatch landed successfully). Best-effort. */
146
185
  export declare function clearQuarantinedCommit(root: string, runId: string, blockId: string): void;
147
186
  /** Quarantined failed-node commits still preserved for a run, for recovery surfacing in the report. */
@@ -1 +1 @@
1
- {"version":3,"file":"worktreeLifecycle.d.ts","sourceRoot":"","sources":["../../../../src/remediate/steps/dispatch/worktreeLifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worktreeLifecycle.d.ts","sourceRoot":"","sources":["../../../../src/remediate/steps/dispatch/worktreeLifecycle.ts"],"names":[],"mappings":"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"}
@@ -69,18 +69,28 @@ export function seedUntrackedDeclaredPaths(root, worktreeRoot, declaredPaths) {
69
69
  }
70
70
  }
71
71
  }
72
- /** Remove a git worktree. Best-effort: logs but does not throw on failure. */
72
+ /**
73
+ * Remove ONE git worktree, PATH-SCOPED (INV-WTS-1/4). Always addresses only the
74
+ * named `worktreePath` via `git worktree remove --force <path>` — never a global
75
+ * `git worktree prune` that could drop a SIBLING node's registered-but-transiently-
76
+ * absent worktree. `git worktree remove --force` clears the registration even when
77
+ * the directory is already MISSING (a stale admin entry), so this alone replaces
78
+ * the prior global-prune reset step. Best-effort: a genuinely-absent + unregistered
79
+ * path (git reports "is not a working tree" and the dir does not exist) is a silent
80
+ * no-op; any other failure is surfaced on stderr, never thrown.
81
+ */
73
82
  export function removeWorktree(root, worktreePath) {
74
- // Already-absent worktree = silent no-op: no spawn, no stderr, no throw. A
75
- // path that still exists but fails git-remove for another reason is surfaced
76
- // exactly as before. We do NOT match on the 'not a working tree' stderr text.
77
- if (!existsSync(worktreePath))
78
- return;
79
83
  const result = spawnSyncHidden("git", ["worktree", "remove", "--force", worktreePath], { cwd: root, encoding: "utf8", shell: false });
80
- if (result.status !== 0) {
81
- const stderr = (result.stderr ?? "").trim();
82
- process.stderr.write(`[remediate-code] worktree remove failed (exit ${result.status ?? "unknown"}): ${stderr}\n`);
83
- }
84
+ if (result.status === 0)
85
+ return;
86
+ const stderr = (result.stderr ?? "").trim();
87
+ // "not a working tree" = the path was never a registered worktree. When the
88
+ // directory is ALSO absent there is genuinely nothing to remove → silent no-op.
89
+ // When the directory still exists (an orphaned plain dir) it is a real failure
90
+ // worth surfacing (the caller's rmSync then clears the leftover dir).
91
+ if (/not a working tree/i.test(stderr) && !existsSync(worktreePath))
92
+ return;
93
+ process.stderr.write(`[remediate-code] worktree remove failed (exit ${result.status ?? "unknown"}): ${stderr}\n`);
84
94
  }
85
95
  /**
86
96
  * Fully reset a node's isolated worktree + branch so a fresh `createWorktree -b`
@@ -94,19 +104,28 @@ export function removeWorktree(root, worktreePath) {
94
104
  * worktree/branch is the expected first-attempt case, not an error). Any partial
95
105
  * edits from a throttled prior attempt are intentionally discarded — the
96
106
  * re-dispatch redoes the node from HEAD.
107
+ *
108
+ * INV-WTS-1/4 (no sibling clobber, stale-sweep never prunes in-flight work): every
109
+ * step is scoped to THIS node's own `worktreePath` / `branchName`. There is NO
110
+ * global `git worktree prune` — a global prune drops the admin entry of ANY sibling
111
+ * worktree whose directory is transiently absent (a sibling between its own rmSync
112
+ * and re-create), which is the exact data-loss race this module closes. Path-scoped
113
+ * `removeWorktree` clears even a stale registration whose dir is already gone, so
114
+ * the prune is unnecessary. Callers serialize a node's reset/create against its own
115
+ * accept via `worktreeNodeLockPath` (INV-WTS-8), so two operations on the SAME node
116
+ * never interleave, while DIFFERENT nodes never touch each other's path.
97
117
  */
98
118
  export function resetNodeWorktreeAndBranch(root, worktreePath, branchName) {
119
+ // Path-scoped removal: clears the registration (even a stale one whose dir is
120
+ // missing) for THIS node only — never a global prune that could drop a sibling.
99
121
  removeWorktree(root, worktreePath);
100
- // Prune stale worktree admin entries (e.g. a dir deleted out from under git),
101
- // otherwise `git worktree add` can refuse a path it still thinks is registered.
102
- spawnSyncHidden("git", ["worktree", "prune"], { cwd: root, shell: false });
103
122
  // Force-delete the leftover branch from a prior attempt so `-b` recreates it.
104
123
  spawnSyncHidden("git", ["branch", "-D", branchName], { cwd: root, shell: false });
105
124
  // Force-remove a leftover worktree DIRECTORY: when a prior attempt's worktree
106
125
  // became an orphaned dir (registered admin entry gone but files remain),
107
- // `git worktree remove` no-ops ("is not a working tree") and `git worktree add`
126
+ // `git worktree remove` reports "is not a working tree" and `git worktree add`
108
127
  // then refuses because the path already exists. Deleting the dir makes the
109
- // re-create succeed. Best-effort.
128
+ // re-create succeed. Best-effort, and scoped to this node's own path.
110
129
  if (existsSync(worktreePath)) {
111
130
  rmSync(worktreePath, { recursive: true, force: true });
112
131
  }
@@ -127,7 +146,51 @@ export function resetNodeWorktreeAndBranch(root, worktreePath, branchName) {
127
146
  * executable (e.g. `grep` on Windows), turning a correct fix into a phantom
128
147
  * contract failure that burned the retry budget.
129
148
  */
130
- export function verifyNodeInWorktree(worktreePath, targetedCommands) {
149
+ /**
150
+ * INV-WTS-2 escape check: returns a LOUD diagnostic string when `worktreeRoot` is
151
+ * NOT safe to run a build-free verify in — either the cwd was removed (a concurrent
152
+ * sweep deleted the worktree → a bare command would ENOENT or resolve up to MAIN),
153
+ * or git resolves an ENCLOSING top-level distinct from the cwd (the worktree escaped
154
+ * to the main checkout). Returns null when the cwd IS its own git top-level (the
155
+ * healthy isolated-worktree case). A cwd that exists but is not inside any git work
156
+ * tree (`status != 0`, no spawn error) is NOT an escape — only a resolved enclosing
157
+ * top-level is — so that case returns null too (never a false refusal).
158
+ */
159
+ function verifyCwdEscapeDiagnostic(worktreeRoot) {
160
+ const probe = spawnSyncHidden("git", ["rev-parse", "--show-toplevel"], { cwd: worktreeRoot, encoding: "utf8", shell: false });
161
+ if (probe.error) {
162
+ return (`[remediate-code] verify REFUSED: the verify cwd ${worktreeRoot} no longer exists ` +
163
+ `(${probe.error.code ?? "spawn error"}). The worktree was ` +
164
+ `removed out from under the verify (a concurrent sweep/accept); refusing to run a ` +
165
+ `build-free verify that would false-green against unrelated code.`);
166
+ }
167
+ if (probe.status === 0) {
168
+ const top = (probe.stdout ?? "").trim();
169
+ if (top.length > 0 && canonicalPathKey(top) !== canonicalPathKey(worktreeRoot)) {
170
+ return (`[remediate-code] verify REFUSED: git top-level for ${worktreeRoot} is ${top}, not ` +
171
+ `the cwd itself — the verify cwd is INSIDE an enclosing checkout (a per-node worktree ` +
172
+ `deleted out from under it resolves up to MAIN). Refusing to run a build-free verify ` +
173
+ `that would false-green against unrelated code.`);
174
+ }
175
+ }
176
+ return null;
177
+ }
178
+ export function verifyNodeInWorktree(worktreePath, targetedCommands,
179
+ /**
180
+ * INV-WTS-2: enforce that the verify cwd IS its own git top-level (a per-node
181
+ * ISOLATED worktree). Set by the accept-node path (`acceptNodeWorktree`) — the
182
+ * enforcement point — so a worktree deleted out from under the verify fails LOUD
183
+ * instead of resolving up to the enclosing MAIN checkout and false-greening
184
+ * against unrelated code. Left OFF (default) for the deliberately-main-rooted
185
+ * re-verify callers (triage re-runs a node's `targeted_commands` at the repo root,
186
+ * which is legitimately a subdir of no isolated worktree).
187
+ */
188
+ enforceWorktreeRoot = false) {
189
+ if (enforceWorktreeRoot) {
190
+ const escape = verifyCwdEscapeDiagnostic(worktreePath);
191
+ if (escape !== null)
192
+ return { passed: false, output: escape };
193
+ }
131
194
  const outputs = [];
132
195
  for (const cmd of targetedCommands) {
133
196
  const r = runShellCommand(cmd, {
@@ -267,6 +330,20 @@ export function remediationBranchName(runId) {
267
330
  export function baseBranchLockPath(root, runId) {
268
331
  return join(root, ".audit-tools", "remediation", "runs", refSafeSegment(runId, "run"), "base-branch.lock");
269
332
  }
333
+ /**
334
+ * Per-node worktree lock path (INV-WTS-1/8). Serializes create / reset / remove /
335
+ * accept for ONE node so a concurrent operation on the SAME node never interleaves
336
+ * (and a scoped removal can't race its own re-create). DISTINCT from
337
+ * {@link baseBranchLockPath} (base-branch.lock) and the per-run `rolling-session.lock`
338
+ * — `withFileLock` is a non-reentrant `wx` create, so sharing a path self-deadlocks
339
+ * (INV-WTS-6). Keyed on the block id so two DIFFERENT nodes hold DIFFERENT locks and
340
+ * never contend. INV-WTS-8: whenever both are held, this per-node lock is acquired
341
+ * BEFORE the base-branch lock on every accept path, so the fixed total order makes an
342
+ * AB/BA cross-lock deadlock unreachable by construction.
343
+ */
344
+ export function worktreeNodeLockPath(root, runId, blockId) {
345
+ return join(root, ".audit-tools", "remediation", "runs", refSafeSegment(runId, "run"), `worktree-${refSafeSegment(blockId, "node")}.lock`);
346
+ }
270
347
  /** Durable ref under which a failed-but-committed node's commit is preserved. */
271
348
  export function quarantineRef(runId, blockId) {
272
349
  return `refs/remediation-quarantine/${refSafeSegment(runId, "run")}/${refSafeSegment(blockId, "node")}`;
@@ -342,6 +419,32 @@ export function quarantineUncommittedWorktreeEdits(root, worktreeRoot, branch, r
342
419
  }
343
420
  return quarantineFailedNodeCommit(root, branch, runId, blockId);
344
421
  }
422
+ /**
423
+ * Point a node's durable quarantine ref straight at a captured commit OID, with no
424
+ * live branch dependency (INV-WTS-3/7 clobber recovery). Used when a concurrent
425
+ * sweep/accept has already reset or deleted the node's branch ref toward base so
426
+ * `quarantineFailedNodeCommit` (which rev-parses the branch) can no longer resolve
427
+ * the work — the captured OID from the node's own accept-outcome is still a
428
+ * reachable commit object, so preserving it here keeps the honest committed work
429
+ * recoverable instead of silently lost. Best-effort; returns the ref + commit, or
430
+ * null when the update-ref failed.
431
+ */
432
+ export function quarantineCommitByOid(root, runId, blockId, commitOid) {
433
+ if (!commitOid)
434
+ return null;
435
+ const ref = quarantineRef(runId, blockId);
436
+ const upd = spawnSyncHidden("git", ["update-ref", ref, commitOid], {
437
+ cwd: root,
438
+ encoding: "utf8",
439
+ shell: false,
440
+ });
441
+ if (upd.status !== 0) {
442
+ process.stderr.write(`[remediate-code] could not quarantine ${blockId} commit ${commitOid.slice(0, 8)}: ${(upd.stderr ?? "").trim()}\n`);
443
+ return null;
444
+ }
445
+ process.stderr.write(`[remediate-code] preserved clobbered node ${blockId} commit ${commitOid.slice(0, 8)} at ${ref} for recovery\n`);
446
+ return { ref, commit: commitOid };
447
+ }
345
448
  /** Clear a node's quarantine ref (e.g. once a later re-dispatch landed successfully). Best-effort. */
346
449
  export function clearQuarantinedCommit(root, runId, blockId) {
347
450
  spawnSyncHidden("git", ["update-ref", "-d", quarantineRef(runId, blockId)], {