@lannguyensi/harness 0.59.2 → 0.60.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.
Files changed (86) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +1 -1
  3. package/dist/cli/apply/apply.d.ts +20 -0
  4. package/dist/cli/apply/apply.js +13 -7
  5. package/dist/cli/apply/apply.js.map +1 -1
  6. package/dist/cli/apply/install-codex-config.d.ts +11 -3
  7. package/dist/cli/apply/install-codex-config.js +130 -52
  8. package/dist/cli/apply/install-codex-config.js.map +1 -1
  9. package/dist/cli/approve/understanding.js +34 -28
  10. package/dist/cli/approve/understanding.js.map +1 -1
  11. package/dist/cli/doctor/format.js +22 -0
  12. package/dist/cli/doctor/format.js.map +1 -1
  13. package/dist/cli/doctor/index.js +60 -31
  14. package/dist/cli/doctor/index.js.map +1 -1
  15. package/dist/cli/doctor/types.d.ts +17 -0
  16. package/dist/cli/dry-run.js +7 -0
  17. package/dist/cli/dry-run.js.map +1 -1
  18. package/dist/cli/index.js +46 -144
  19. package/dist/cli/index.js.map +1 -1
  20. package/dist/cli/pack/auto-approve-path.js +25 -11
  21. package/dist/cli/pack/auto-approve-path.js.map +1 -1
  22. package/dist/cli/pack/hook-codex-post-tool-use.js +2 -2
  23. package/dist/cli/pack/hook-codex-post-tool-use.js.map +1 -1
  24. package/dist/cli/pack/hook-codex-pre-tool-use.js +32 -5
  25. package/dist/cli/pack/hook-codex-pre-tool-use.js.map +1 -1
  26. package/dist/cli/pack/hook-post-merge-gate-record.d.ts +7 -0
  27. package/dist/cli/pack/hook-post-merge-gate-record.js +39 -2
  28. package/dist/cli/pack/hook-post-merge-gate-record.js.map +1 -1
  29. package/dist/cli/pack/hook-post-tool-use.js +2 -2
  30. package/dist/cli/pack/hook-post-tool-use.js.map +1 -1
  31. package/dist/cli/pack/hook-pre-tool-use.js +60 -15
  32. package/dist/cli/pack/hook-pre-tool-use.js.map +1 -1
  33. package/dist/cli/policy/intercept.js +5 -1
  34. package/dist/cli/policy/intercept.js.map +1 -1
  35. package/dist/cli/record/index.d.ts +11 -2
  36. package/dist/cli/record/index.js +18 -5
  37. package/dist/cli/record/index.js.map +1 -1
  38. package/dist/cli/session-start/branch-check.d.ts +3 -29
  39. package/dist/cli/session-start/branch-check.js +7 -37
  40. package/dist/cli/session-start/branch-check.js.map +1 -1
  41. package/dist/cli/session-start/index.d.ts +16 -30
  42. package/dist/cli/session-start/index.js +72 -26
  43. package/dist/cli/session-start/index.js.map +1 -1
  44. package/dist/cli/session-start/shared-options.d.ts +92 -0
  45. package/dist/cli/session-start/shared-options.js +109 -0
  46. package/dist/cli/session-start/shared-options.js.map +1 -0
  47. package/dist/cli/session-start/stale-base-check.d.ts +3 -28
  48. package/dist/cli/session-start/stale-base-check.js +7 -37
  49. package/dist/cli/session-start/stale-base-check.js.map +1 -1
  50. package/dist/cli/session-start/toolchain-parity.d.ts +5 -21
  51. package/dist/cli/session-start/toolchain-parity.js +6 -38
  52. package/dist/cli/session-start/toolchain-parity.js.map +1 -1
  53. package/dist/cli/smoke/index.d.ts +1 -1
  54. package/dist/cli/smoke/index.js +8 -11
  55. package/dist/cli/smoke/index.js.map +1 -1
  56. package/dist/policy-packs/builtin/post-merge-gate-runtime.d.ts +11 -0
  57. package/dist/policy-packs/builtin/post-merge-gate-runtime.js +11 -0
  58. package/dist/policy-packs/builtin/post-merge-gate-runtime.js.map +1 -1
  59. package/dist/policy-packs/builtin/understanding-before-execution/expiry-reason.d.ts +36 -0
  60. package/dist/policy-packs/builtin/understanding-before-execution/expiry-reason.js +73 -0
  61. package/dist/policy-packs/builtin/understanding-before-execution/expiry-reason.js.map +1 -0
  62. package/dist/policy-packs/builtin/understanding-before-execution/index.d.ts +3 -2
  63. package/dist/policy-packs/builtin/understanding-before-execution/index.js +5 -2
  64. package/dist/policy-packs/builtin/understanding-before-execution/index.js.map +1 -1
  65. package/dist/policy-packs/builtin/understanding-before-execution/markers.js +1 -0
  66. package/dist/policy-packs/builtin/understanding-before-execution/markers.js.map +1 -1
  67. package/dist/policy-packs/builtin/understanding-before-execution/persisted-reports.d.ts +205 -1
  68. package/dist/policy-packs/builtin/understanding-before-execution/persisted-reports.js +360 -3
  69. package/dist/policy-packs/builtin/understanding-before-execution/persisted-reports.js.map +1 -1
  70. package/dist/policy-packs/builtin/understanding-before-execution/post-tool-use-boundary.d.ts +1 -1
  71. package/dist/policy-packs/builtin/understanding-before-execution/post-tool-use-boundary.js +2 -2
  72. package/dist/policy-packs/builtin/understanding-before-execution/post-tool-use-boundary.js.map +1 -1
  73. package/dist/policy-packs/builtin/understanding-before-execution/task-markers.d.ts +36 -0
  74. package/dist/policy-packs/builtin/understanding-before-execution/task-markers.js +50 -0
  75. package/dist/policy-packs/builtin/understanding-before-execution/task-markers.js.map +1 -1
  76. package/dist/runtime/bash-prefix-parse.js +319 -126
  77. package/dist/runtime/bash-prefix-parse.js.map +1 -1
  78. package/dist/runtime/intercept.d.ts +38 -0
  79. package/dist/runtime/intercept.js +224 -5
  80. package/dist/runtime/intercept.js.map +1 -1
  81. package/dist/runtime/read-only-bash.js +11 -1
  82. package/dist/runtime/read-only-bash.js.map +1 -1
  83. package/dist/runtime/shell-word.d.ts +16 -1
  84. package/dist/runtime/shell-word.js +82 -1
  85. package/dist/runtime/shell-word.js.map +1 -1
  86. package/package.json +1 -1
@@ -471,7 +471,8 @@ function scanOwnedContentEnd(text, start) {
471
471
  * `scanOwnedContentEnd`; when only blank or comment lines precede the found
472
472
  * marker in the zone -- so the pre-marker lookup finds no content line to
473
473
  * report -- the header is looked up again just past that marker's own
474
- * line, since the wedged table then sits after it, not before; printed
474
+ * line, since the wedged table then sits after it, not before, and the
475
+ * message says the marker line sits above the table (task e8f4fc03); printed
475
476
  * through `describeTableHeader`, so only the header's own bracketed key
476
477
  * path appears, never a trailing comment), and
477
478
  * the line number and marker of the first line beyond it
@@ -485,7 +486,12 @@ function scanOwnedContentEnd(text, start) {
485
486
  * document (`to` is `text.length`), telling the operator to move something
486
487
  * below a marker that does not exist would be nonsensical, so a different
487
488
  * fix (add one, or move the table below the last harness hook table) is
488
- * offered instead (task 6a037359). `blockOpening` names the line the block
489
+ * offered instead (task 6a037359). When the named table is a hook event
490
+ * table spelled without the `[[hooks.` prefix, the guidance offers deleting
491
+ * it if harness wrote it, since the scan reads such a table as foreign with
492
+ * or without a comment line above it (task e8f4fc03). The legacy paths call
493
+ * this too, so the substring matching above applies there as well: a value
494
+ * holding marker text refuses. `blockOpening` names the line the block
489
495
  * starts at in the delete-the-lines fix: the BEGIN marker by default; a
490
496
  * legacy config (no BEGIN marker) whose END marker survived passes its
491
497
  * source-prefix line or generated header instead, since a BEGIN marker it
@@ -526,9 +532,15 @@ export function assertNoSplitBlock(text, from, to, configPath, hasEndMarker, blo
526
532
  // the foreign table that split the block is wedged after the marker's own
527
533
  // line instead, so look there.
528
534
  const markerLineEnd = lineEndAfter(text, zoneStart + markerOffset);
529
- const foreignHeaderLine = firstContentLine(text, zoneStart, zoneStart + markerOffset) ??
530
- firstContentLine(text, markerLineEnd, zoneEnd);
535
+ const headerBeforeMarker = firstContentLine(text, zoneStart, zoneStart + markerOffset);
536
+ const foreignHeaderLine = headerBeforeMarker ?? firstContentLine(text, markerLineEnd, zoneEnd);
531
537
  const firstForeignHeader = describeForeignHeaderLine(text, foreignHeaderLine);
538
+ // Where the marker line sits relative to the named table, so the message
539
+ // stays true when the table was found past the marker (a respelled hook
540
+ // table with its own '# harness hook:' comment line above it, say).
541
+ const placement = headerBeforeMarker === null
542
+ ? `below harness-owned content: line ${offendingLineNumber}, above it, contains '${marker}'`
543
+ : `sitting before more harness-owned content: line ${offendingLineNumber} contains '${marker}'`;
532
544
  const fixes = hasEndMarker
533
545
  ? [
534
546
  `move ${firstForeignHeader} below the '${CODEX_MANAGED_END}' marker`,
@@ -548,13 +560,21 @@ export function assertNoSplitBlock(text, from, to, configPath, hasEndMarker, blo
548
560
  // right for an operator-owned one; name the restore option first (task
549
561
  // 01053b27).
550
562
  const isHookTable = HOOK_ARRAY_HEADER_RE.test(foreignHeaderLine?.line ?? "");
563
+ // A hook event table spelled another way (`[[ hooks.Stop ]]`) is read as
564
+ // foreign with or without a comment line above it, so restoring one does
565
+ // not help; deleting it does, if harness wrote it (task e8f4fc03).
566
+ const isRespelledHookTable = isHookEventArrayHeader(foreignHeaderLine?.line ?? "");
551
567
  const guidance = isHookTable
552
568
  ? `If ${firstForeignHeader} is a harness hook table whose '${HARNESS_HOOK_COMMENT_PREFIX}<id> ` +
553
569
  "(budget_ms=<n>)' comment line was deleted, restore that comment line directly above it. " +
554
570
  `If it is an operator-owned table, ${fixes.join(", or ")}`
555
- : fixes.join(", or ").replace(/^./, (c) => c.toUpperCase());
556
- throw new CodexInstallRefusalError(`Codex config ${configPath} has a foreign table (${firstForeignHeader}) sitting before ` +
557
- `more harness-owned content: line ${offendingLineNumber} contains '${marker}' and still ` +
571
+ : isRespelledHookTable
572
+ ? `If ${firstForeignHeader} is a harness hook table, delete it together with any ` +
573
+ `'${HARNESS_HOOK_COMMENT_PREFIX}<id> (budget_ms=<n>)' comment line above it (the install ` +
574
+ "replaces only hook tables spelled '[[hooks.<Event>]]' with that comment line above " +
575
+ `them, and writes the fresh block). If it is an operator-owned table, ${fixes.join(", or ")}`
576
+ : fixes.join(", or ").replace(/^./, (c) => c.toUpperCase());
577
+ throw new CodexInstallRefusalError(`Codex config ${configPath} has a foreign table (${firstForeignHeader}) ${placement} and still ` +
558
578
  "looks like part of the harness-managed hook block; refusing to guess the block " +
559
579
  `boundaries. ${guidance}, then re-run \`harness apply --runtime codex --install\`. As a ` +
560
580
  `last resort, restore ${configPath} from the most recent .harness-backup-* file (if one exists), but ` +
@@ -638,18 +658,22 @@ function foreignSectionRootKey(headerLine) {
638
658
  * so the operator reads "a whole namespace, N tables" rather than
639
659
  * mistaking the printed header for the only table kept; exactly one table
640
660
  * under a root prints its own header. Headers print through
641
- * `describeTableHeader` (no trailing comment). */
642
- function collectForeignSectionHeaders(text, from, to) {
661
+ * `describeTableHeader` (no trailing comment). A header that is one of the
662
+ * `kept` operator hook tables (a hook event table spelled without the
663
+ * `[[hooks.` prefix, see `collectKeptHookTables`) is named there instead and
664
+ * not listed twice. */
665
+ function collectForeignSectionHeaders(text, from, to, kept = []) {
643
666
  const seenRoots = new Set();
644
667
  const headers = [];
645
668
  const counts = new Map();
669
+ const keptStarts = new Set(kept.map((t) => t.start));
646
670
  let pos = Math.max(from, 0);
647
671
  const limit = Math.max(to, from);
648
672
  const classify = createLineClassifier(text);
649
673
  while (pos < limit) {
650
674
  const lineEnd = Math.min(lineEndAfter(text, pos), limit);
651
675
  const rawLine = text.slice(pos, lineEnd);
652
- if (classify(pos, rawLine) === "foreignHeader") {
676
+ if (classify(pos, rawLine) === "foreignHeader" && !keptStarts.has(pos)) {
653
677
  const trimmed = rawLine.trim();
654
678
  const root = foreignSectionRootKey(trimmed);
655
679
  counts.set(root, (counts.get(root) ?? 0) + 1);
@@ -676,17 +700,28 @@ function extractHookIds(content) {
676
700
  return ids;
677
701
  }
678
702
  /**
679
- * The operator-authored hook tables directly after a managed range that
680
- * ended at one (`scanOwnedContentEnd`'s `endedAtOperatorHookTable`): every
681
- * `[[hooks.*]]` header from `from` up to the first non-hook table header or
682
- * `to`, each by header, line number and offset. Lines are read by
703
+ * The operator-authored hook tables directly after a managed range: every
704
+ * hook event table header from `from` up to the first non-hook table header
705
+ * or `to`, each by header, line number and offset. A hook event table is a
706
+ * `[[hooks.*]]` header, or an array-of-tables header spelled another way
707
+ * whose first key resolves to `hooks` and that names an event
708
+ * (`isHookEventArrayHeader`: `[[ hooks.Stop ]]`, `[["hooks".Stop]]`,
709
+ * `[[hooks . Stop]]`). The ownership scan reads such a respelled header as a
710
+ * foreign table, so it ends the managed range there; collected here, it is
711
+ * named and its commands are checked like any kept hook table, instead of
712
+ * being kept as a foreign section whose harness command would then run next
713
+ * to the fresh block's (task e8f4fc03). Lines are read by
683
714
  * `createLineClassifier`, so an array element on its own line inside a kept
684
715
  * table's multi-line value neither ends the run nor is named, and a hook
685
- * table after it is still collected (task 01053b27). Empty for any other ending
686
- * (the first header at `from` is then a non-hook table, or there is none).
687
- * The caller has already refused a zone that holds a harness marker
688
- * (`assertNoSplitBlock`), so no header found here carries a `# harness
689
- * hook:` comment.
716
+ * table after it is still collected (task 01053b27). Empty when the first
717
+ * header at `from` is a non-hook table, or there is none. A hook table after
718
+ * the first non-hook table is not collected: it is kept, not named and not
719
+ * checked, a deliberate boundary (only the run of hook tables directly after
720
+ * the harness tables is examined). The caller refuses a zone that holds a
721
+ * harness marker (`assertNoSplitBlock`) before it uses the tables: over the
722
+ * whole zone on the BEGIN path and when an END marker follows, over the run
723
+ * of hook tables (up to the returned `end`) on the legacy path without one,
724
+ * so no table the install keeps carries a `# harness hook:` comment.
690
725
  */
691
726
  function collectKeptHookTables(text, from, to) {
692
727
  const tables = [];
@@ -696,14 +731,15 @@ function collectKeptHookTables(text, from, to) {
696
731
  const lineEnd = Math.min(lineEndAfter(text, pos), to);
697
732
  const rawLine = text.slice(pos, lineEnd);
698
733
  const kind = classify(pos, rawLine);
699
- if (kind === "foreignHeader")
734
+ const hookTable = kind === "hookHeader" || (kind === "foreignHeader" && isHookEventArrayHeader(rawLine.trim()));
735
+ if (kind === "foreignHeader" && !hookTable)
700
736
  break;
701
- if (kind === "hookHeader") {
737
+ if (hookTable) {
702
738
  tables.push({ header: describeTableHeader(rawLine), line: lineNumberAt(text, pos), start: pos });
703
739
  }
704
740
  pos = lineEnd;
705
741
  }
706
- return tables;
742
+ return { tables, end: pos };
707
743
  }
708
744
  /** A kept table as the install names it: its header, its 1-based line
709
745
  * number in the config before the install and in the config the install
@@ -733,15 +769,15 @@ function rangeBeforeStrayEnd(text, start, end, configPath, blockOpening) {
733
769
  const strayIdx = findExactLine(text, CODEX_MANAGED_END, end);
734
770
  if (strayIdx === -1) {
735
771
  assertNoSplitBlock(text, end, text.length, configPath, false);
736
- const foreignSectionsPreserved = collectForeignSectionHeaders(text, end, text.length);
737
- const keptHookTables = collectKeptHookTables(text, end, text.length);
772
+ const keptHookTables = collectKeptHookTables(text, end, text.length).tables;
773
+ const foreignSectionsPreserved = collectForeignSectionHeaders(text, end, text.length, keptHookTables);
738
774
  return { start, end, foreignSectionsPreserved, keptHookTables };
739
775
  }
740
776
  const strayLineStart = lineStartAt(text, strayIdx);
741
777
  const strayLineEnd = lineEndAfter(text, strayIdx);
742
778
  assertNoSplitBlock(text, end, strayLineStart, configPath, true, blockOpening);
743
- const foreignSectionsPreserved = collectForeignSectionHeaders(text, end, strayLineStart);
744
- const keptHookTables = collectKeptHookTables(text, end, strayLineStart);
779
+ const keptHookTables = collectKeptHookTables(text, end, strayLineStart).tables;
780
+ const foreignSectionsPreserved = collectForeignSectionHeaders(text, end, strayLineStart, keptHookTables);
745
781
  return {
746
782
  start,
747
783
  end,
@@ -753,28 +789,50 @@ function rangeBeforeStrayEnd(text, start, end, configPath, blockOpening) {
753
789
  /**
754
790
  * The range of a legacy (no BEGIN marker) config: the source-prefix or
755
791
  * generated-header paths. When the scan ended at an operator hook table,
756
- * the zone after it is handled like the BEGIN path's
757
- * (`rangeBeforeStrayEnd`): an END marker that survived its deleted BEGIN
758
- * line, sitting after the kept tables, is excised like a drifted END, so
759
- * the install leaves no orphan END line below the kept tables and the
760
- * kept-table refusal offers moving an operator-owned table below that END;
761
- * a harness-commented table after the kept tables refuses through the
762
- * split-block check instead of being kept as if it were operator content
763
- * (the fresh block would repeat it) when it sits before that END, or
764
- * anywhere later when no END follows. Content below that END is untouched,
765
- * as on the BEGIN path, so a harness-commented table there is kept and not
766
- * named. The split-block refusal names `blockOpening` (the source-prefix
767
- * line or the generated header) as the start of the block, since there is
768
- * no BEGIN marker (task 01053b27). Other endings keep the legacy behaviour.
792
+ * or at a foreign table with an END marker after it, the zone after it is
793
+ * handled like the BEGIN path's (`rangeBeforeStrayEnd`): an END marker that
794
+ * survived its deleted BEGIN line, sitting after the kept tables or the
795
+ * foreign table, is excised like a drifted END, so the install leaves no
796
+ * orphan END line and the kept-table refusal offers moving an operator-owned
797
+ * table below that END; a harness-commented table after the kept tables or
798
+ * the foreign table refuses through the split-block check instead of being
799
+ * kept as if it were operator content (the fresh block would repeat it)
800
+ * when it sits before that END, or, after kept tables, anywhere later when
801
+ * no END follows (task e8f4fc03 extends the END case to a foreign table).
802
+ * Content below that END is untouched, as on the BEGIN path, so a
803
+ * harness-commented table there is kept and not named. The split-block
804
+ * refusal names `blockOpening` (the source-prefix line or the generated
805
+ * header) as the start of the block, since there is no BEGIN marker (task
806
+ * 01053b27). A scan that ended at a foreign table with no END marker
807
+ * anywhere after it keeps the legacy behaviour (no split-block check), except
808
+ * that hook event tables directly after the block are collected, named and
809
+ * checked (`collectKeptHookTables`), and a harness marker in their run
810
+ * refuses through the split-block check. The END marker is looked up as a
811
+ * whole line outside multi-line strings (`findExactLine`), so END text in a
812
+ * foreign table's value does not route a config here. Like the BEGIN path,
813
+ * the split-block check matches its markers as substrings, so a value in the
814
+ * zone that holds marker text refuses too (see `assertNoSplitBlock`).
769
815
  */
770
816
  function legacyManagedRange(text, start, scan, configPath, blockOpening) {
771
- if (scan.endedAtOperatorHookTable) {
817
+ if (scan.sawEndMarker) {
818
+ return { start, end: scan.end, foreignSectionsPreserved: [], keptHookTables: [] };
819
+ }
820
+ if (scan.endedAtOperatorHookTable || findExactLine(text, CODEX_MANAGED_END, scan.end) !== -1) {
772
821
  return rangeBeforeStrayEnd(text, start, scan.end, configPath, blockOpening);
773
822
  }
774
- const foreignSectionsPreserved = scan.sawEndMarker
775
- ? []
776
- : collectForeignSectionHeaders(text, scan.end, text.length);
777
- return { start, end: scan.end, foreignSectionsPreserved, keptHookTables: [] };
823
+ const run = collectKeptHookTables(text, scan.end, text.length);
824
+ // The scan ended at a hook table spelled without the `[[hooks.` prefix: a
825
+ // harness marker in the run of hook tables after it (a harness-commented
826
+ // table, or the respelled table's own comment line) is harness content the
827
+ // scan could not read, so refuse through the split-block check, as the
828
+ // BEGIN path does, instead of naming a table with that comment line above it
829
+ // as one without (task e8f4fc03). The run stops at the first non-hook table:
830
+ // past it the legacy reading below stays unchanged.
831
+ if (run.tables.length > 0)
832
+ assertNoSplitBlock(text, scan.end, run.end, configPath, false);
833
+ const keptHookTables = run.tables;
834
+ const foreignSectionsPreserved = collectForeignSectionHeaders(text, scan.end, text.length, keptHookTables);
835
+ return { start, end: scan.end, foreignSectionsPreserved, keptHookTables };
778
836
  }
779
837
  function findManagedRange(text, configPath) {
780
838
  const begin = text.indexOf(CODEX_MANAGED_BEGIN);
@@ -1189,6 +1247,17 @@ function resolvedKeyName(segment) {
1189
1247
  function hooksRooted(trimmed) {
1190
1248
  return resolvedKeyName(parseTableHeader(trimmed)?.keys[0] ?? "") === "hooks";
1191
1249
  }
1250
+ /** Whether a header line is an array-of-tables header that appends to a
1251
+ * hook event array or below one (`[[hooks.Stop]]`, `[[ hooks.Stop ]]`,
1252
+ * `[["hooks".Stop]]`, `[[hooks . Stop.hooks]]`): double brackets, a first key
1253
+ * that resolves to `hooks` (`hooksRooted`) and at least an event key after
1254
+ * it. A one-key line (`[["hooks"]]`, which may also be an array element on
1255
+ * its own line) is not one. Used by `collectKeptHookTables` for the
1256
+ * spellings the `[[hooks.` prefix does not catch (task e8f4fc03). */
1257
+ function isHookEventArrayHeader(trimmed) {
1258
+ const parsed = parseTableHeader(trimmed);
1259
+ return (parsed !== null && parsed.header.startsWith("[[") && parsed.keys.length >= 2 && hooksRooted(trimmed));
1260
+ }
1192
1261
  function subKey(event, index) {
1193
1262
  return `${event}\u0000${index}`;
1194
1263
  }
@@ -1210,11 +1279,12 @@ function subKey(event, index) {
1210
1279
  * scan resolves has the root `hooks` (a `[[hooks.` line has it by its
1211
1280
  * prefix), a table outside `hooks` never shifts the order match, and an
1212
1281
  * array element on its own line (`["x"]`, `[1]`) costs no parse in this
1213
- * scan, unless the element is the string `hooks` (`["hooks"]`,
1214
- * `['hooks']`): that line reads as a `hooks` root, so it is probed like the
1215
- * `hooks`-rooted spellings that `[[hooks.` does not catch
1216
- * (`[[ hooks.Stop ]]`, `[["hooks".Stop]]`, `[hooks.Stop]`), and the probe
1217
- * finds it inside the array.
1282
+ * scan, unless the element line reads as a header whose first key is
1283
+ * `hooks` (`["hooks"]`, `['hooks']`, `[["hooks"]]`, `[[ 'hooks' ]]`): that
1284
+ * line reads as a `hooks` root, so it is probed like the `hooks`-rooted
1285
+ * spellings that `[[hooks.` does not catch (`[[ hooks.Stop ]]`,
1286
+ * `[["hooks".Stop]]`, `[hooks.Stop]`), and the probe finds it inside the
1287
+ * array.
1218
1288
  */
1219
1289
  function mapHookArrayHeaders(text) {
1220
1290
  const map = { slots: new Map(), eventCounts: new Map(), subCounts: new Map() };
@@ -1375,14 +1445,22 @@ function assertKeptHookTablesAreOperatorOwned(kept, currentContent, generatedCon
1375
1445
  const harnessShaped = commands.some((command) => freshCommands.has(command) || command.startsWith("harness "));
1376
1446
  if (!harnessShaped)
1377
1447
  continue;
1448
+ // harness writes every hook table as `[[hooks.<Event>]]`; a table spelled
1449
+ // another way (`[[ hooks.Stop ]]`) never was one, and with the comment
1450
+ // line restored above it the scan would still read it as a foreign
1451
+ // table, so the restore fix is offered only for the harness spelling
1452
+ // (task e8f4fc03).
1453
+ const fix = HOOK_ARRAY_HEADER_RE.test(table.header)
1454
+ ? `Restore the comment line directly above ${table.header}, so the install replaces the table ` +
1455
+ `with the fresh block${moveBelowEndOption(hasEndMarker)}, or delete the table`
1456
+ : "Delete the table (the install replaces only hook tables spelled '[[hooks.<Event>]]' with " +
1457
+ `that comment line above them)${moveBelowEndOption(hasEndMarker)}`;
1378
1458
  throw new CodexInstallRefusalError(`Codex config ${configPath} has a hook table ${table.header} (line ${table.line}) with no ` +
1379
1459
  `'${HARNESS_HOOK_COMMENT_PREFIX}<id> (budget_ms=<n>)' comment line above it, placed after the ` +
1380
1460
  "harness hook tables, whose command is one harness itself writes. harness cannot tell it " +
1381
1461
  "from a harness hook table whose comment line was deleted, and keeping it next to the " +
1382
1462
  "fresh harness block would run that hook twice (or keep a retired harness hook running). " +
1383
- `Restore the comment line directly above ${table.header}, so the install replaces the table ` +
1384
- `with the fresh block${moveBelowEndOption(hasEndMarker)}, or delete the table, then re-run ` +
1385
- `\`harness apply --runtime codex --install\`. The file is untouched.`, configPath);
1463
+ `${fix}, then re-run \`harness apply --runtime codex --install\`. The file is untouched.`, configPath);
1386
1464
  }
1387
1465
  }
1388
1466
  export function planCodexConfigInstall(opts) {
@@ -1 +1 @@
1
- {"version":3,"file":"install-codex-config.js","sourceRoot":"","sources":["../../../src/cli/apply/install-codex-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install-codex-config.js","sourceRoot":"","sources":["../../../src/cli/apply/install-codex-config.ts"],"names":[],"mappings":"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"}
@@ -17,9 +17,8 @@ import * as fs from "node:fs";
17
17
  import * as os from "node:os";
18
18
  import * as path from "node:path";
19
19
  import { atomicWriteFile } from "../../io/atomic-write.js";
20
- import { approvedLedgerTagFor, defaultReportsDir, listPersistedReports, readActiveClaim, selectReportForSession, TOLERANT_FALLBACK_MAX_AGE_MS, writeApprovalMarker, writeTaskApprovalMarker, } from "../../policy-packs/builtin/understanding-before-execution-runtime.js";
20
+ import { approvedLedgerTagFor, canonicalReportHashOfFile, defaultReportsDir, hashReportFile, listPersistedReports, readActiveClaim, selectReportForSession, TOLERANT_FALLBACK_MAX_AGE_MS, writeApprovalMarker, writeTaskApprovalMarker, } from "../../policy-packs/builtin/understanding-before-execution-runtime.js";
21
21
  import { PACK_NAME as UNDERSTANDING_PACK_NAME, resolveMode, toPackageMode, } from "../../policy-packs/builtin/understanding-before-execution.js";
22
- import { sha256Hex } from "../../runtime/approval-signing.js";
23
22
  import { addLedgerFact } from "../../runtime/ledger-add.js";
24
23
  import { clearPendingApproval, resolveGeneratedDir, } from "../../runtime/pending-approval.js";
25
24
  import { resolveApprovalSessionId } from "../../runtime/session-id.js";
@@ -305,9 +304,9 @@ export function rewriteReportApproved(filePath, approvedAt, approvedBy, sessionI
305
304
  parsed["approvalStatus"] = "approved";
306
305
  parsed["approvedAt"] = approvedAt;
307
306
  parsed["approvedBy"] = approvedBy;
308
- // `expiredAt` is `expirePersistedReport`'s stamp for how a report
309
- // reached "expired" (understanding-before-execution-runtime.ts); it
310
- // describes that specific past state, not the report's current one.
307
+ // `expiredAt` and `expiredBy` are `expirePersistedReport`'s stamp for how a
308
+ // report reached "expired" (understanding-before-execution-runtime.ts); they
309
+ // describe that specific past state, not the report's current one.
311
310
  // Approving a report that was previously expired must not let that
312
311
  // stale timestamp survive into the new snapshot, or the persisted
313
312
  // record becomes self-contradictory: {approvalStatus: "approved",
@@ -317,6 +316,7 @@ export function rewriteReportApproved(filePath, approvedAt, approvedBy, sessionI
317
316
  // drops the key entirely instead of serializing `"expiredAt": null`-
318
317
  // adjacent noise.
319
318
  delete parsed["expiredAt"];
319
+ delete parsed["expiredBy"];
320
320
  // Stamp the session id when the report lacks one (older Stop-hook
321
321
  // package versions write reports without a `sessionId` field). This
322
322
  // binds the report to the session that approved it, so every later
@@ -548,6 +548,23 @@ export async function approveUnderstanding(opts = {}) {
548
548
  else {
549
549
  const v = validatePersistedReport(parsed);
550
550
  validation = v.ok ? v : { ...v, enforced: !opts.force };
551
+ // A report the canonical hash cannot cover (larger than the size cap
552
+ // the gate reads, not a regular file, nested too deeply) would sign a
553
+ // marker whose `reportContentHash` is null, i.e. one the gate-read
554
+ // content check never applies to, so it fails validation instead
555
+ // (`--force` still overrides, as for any other validation failure).
556
+ // `hashReportFile` reads the file exactly as the gate-read scan does.
557
+ if (validation.ok) {
558
+ const hashed = hashReportFile(latest.filePath);
559
+ if (!hashed.ok) {
560
+ validation = {
561
+ ok: false,
562
+ field: "report",
563
+ reason: `${hashed.detail}, so the approval could not bind it`,
564
+ enforced: !opts.force,
565
+ };
566
+ }
567
+ }
551
568
  }
552
569
  }
553
570
  // Task 5d73d78d review HIGH-2: a stdin report that was REJECTED (failed
@@ -632,30 +649,19 @@ export async function approveUnderstanding(opts = {}) {
632
649
  };
633
650
  }
634
651
  // Report-content hash the marker's signature binds to (harness/f9485cc7):
635
- // sha256 of the persisted report's raw bytes AT APPROVAL TIME, read
652
+ // the canonical hash of the persisted report AT APPROVAL TIME, computed
636
653
  // BEFORE `rewriteReportApproved` below flips its status/approvedAt/
637
- // approvedBy fields — this hashes what the operator actually reviewed,
638
- // not the post-approval-flip artefact. null when no persisted report was
639
- // resolved (ledger-only / --force paths have nothing to bind).
640
- //
641
- // This is GROUNDWORK ONLY, not yet enforced at gate-check time: nothing
642
- // today cross-checks the hash carried in a signed marker against the
643
- // CURRENTLY-selected persisted report, so on its own this does not stop
644
- // a stale-report adoption. The live cross-check ("does this marker's
645
- // reportContentHash match the report the gate is about to consult right
646
- // now") is the C1 staleness follow-up (task fa423e9b), out of scope
647
- // here; this just makes the binding exist and be forensically
648
- // inspectable so that follow-up can add the comparison without a
649
- // marker-format change.
650
- let reportContentHash = null;
651
- if (latest) {
652
- try {
653
- reportContentHash = sha256Hex(fs.readFileSync(latest.filePath, "utf8"));
654
- }
655
- catch {
656
- reportContentHash = null;
657
- }
658
- }
654
+ // approvedBy fields, so it covers what the operator actually reviewed.
655
+ // `canonicalReportHash` leaves the lifecycle fields out, which is why the
656
+ // value survives that flip and a later `expirePersistedReport` rewrite;
657
+ // both PreToolUse hooks look for a report file with that hash at gate-read
658
+ // time (`verifyApprovedReportHash`, task fa423e9b) and refuse the marker
659
+ // when none is left. null when no persisted report was resolved or it
660
+ // cannot be read as a JSON object (validation skipped above, nothing to
661
+ // bind), or when it cannot be hashed: larger than the size cap, not a
662
+ // regular file, nested too deeply (reachable only under --force: the
663
+ // validation above refuses such a report otherwise).
664
+ const reportContentHash = latest ? canonicalReportHashOfFile(latest.filePath) : null;
659
665
  // Write the canonical approval marker first. The gate consults this
660
666
  // file (not the ledger) since agent-tasks/88ca4bb3 closed the self-
661
667
  // approval backdoor: the agent has direct MCP access to the ledger,