@dzhechkov/harness-cli 0.8.25 → 0.8.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.
package/.dz-manifest.json CHANGED
@@ -9,7 +9,7 @@
9
9
  },
10
10
  {
11
11
  "path": "README.md",
12
- "sha256": "5ee90e7eda7d0d95f4ea8ed8df5ac2e487409d9c9805c7fbd22d91f69faae388"
12
+ "sha256": "04f79f962ddeb8712933c36d691eb3bb54c7a41f7e59d298ac3ad1862bc2d9ef"
13
13
  },
14
14
  {
15
15
  "path": "dist/bin.d.ts",
@@ -45,19 +45,19 @@
45
45
  },
46
46
  {
47
47
  "path": "dist/cli.d.ts",
48
- "sha256": "072300158117033a92fb1ca377e50a748e878bbd0ad29b1bca351a13f2fc8238"
48
+ "sha256": "1452c5529edf1c4d57711ae9c6610cf37c7619a88024c3874c499060fc4d1c31"
49
49
  },
50
50
  {
51
51
  "path": "dist/cli.d.ts.map",
52
- "sha256": "c6b19ec38d68a13c15fcd49cdc7214871b862fe6ad8479bbf008c2725c814aa5"
52
+ "sha256": "e750aecbc3e43a94e490b21d675f12f14dd24ddc364fb40ad811edc35e98af94"
53
53
  },
54
54
  {
55
55
  "path": "dist/cli.js",
56
- "sha256": "b35532d4be6887c70f8abb2954c49e1b15198f8065055a0d9db8846041436520"
56
+ "sha256": "b1a441c645ff9bcbc592069eab87742744fd6f6826cfa560f7b8203117ab927f"
57
57
  },
58
58
  {
59
59
  "path": "dist/cli.js.map",
60
- "sha256": "060b9b8d10025d5b55e40b2d91c2ed95fdd4593703f52b1521ab3d9c43c6e2b0"
60
+ "sha256": "c14e8a4542ac690b6033e69b01edf22554d6b9ac4e431a39ee0910445059e319"
61
61
  },
62
62
  {
63
63
  "path": "dist/command-inventory.d.ts",
@@ -129,15 +129,15 @@
129
129
  },
130
130
  {
131
131
  "path": "dist/known-flags.d.ts.map",
132
- "sha256": "4388c40ba547deb7c1cc8038faab8b34146f3abb5538d4e64b328da4fea2bb7f"
132
+ "sha256": "db7b4dead9a5ca4054c1e1e7df8c56eed65a9fa31771ab0b4930c67e228f326c"
133
133
  },
134
134
  {
135
135
  "path": "dist/known-flags.js",
136
- "sha256": "481e990a09740a1af38213787041bf2c70f54c3539ccfb49fb045bd374bc7669"
136
+ "sha256": "77eac32f2c0e552e0417205a43f40d18feacb951a768b9303360f0321fd79f6b"
137
137
  },
138
138
  {
139
139
  "path": "dist/known-flags.js.map",
140
- "sha256": "86d0e1be18f4bca85feafd2865b2371e77a04e202bf99b87ecda9483696e7433"
140
+ "sha256": "abf5332fb08f5403d244232cf7528be8163fad17de90ec48fb0d5dc5c995ec03"
141
141
  },
142
142
  {
143
143
  "path": "keys/README.md",
@@ -149,7 +149,7 @@
149
149
  },
150
150
  {
151
151
  "path": "package.json",
152
- "sha256": "e37b3688f2bd91ae1ab797399274350a57eed10a1c43d69c94efb747c3fb7dd8"
152
+ "sha256": "88f5df48323c83afd1153dc13dbd1452a2a635aea855dbd2b4ad06820e179f5c"
153
153
  },
154
154
  {
155
155
  "path": "src/bin.ts",
@@ -161,7 +161,7 @@
161
161
  },
162
162
  {
163
163
  "path": "src/cli.ts",
164
- "sha256": "8c831e3c524d6e38da9ea2360cdfb5ab5dfa939e8c4bf0eafe57724db472ec4d"
164
+ "sha256": "d1140c5f8c02f9eaf912a6c75d161de0be2413d9c2eec84446f3129caec6d2b4"
165
165
  },
166
166
  {
167
167
  "path": "src/command-inventory.ts",
@@ -181,9 +181,9 @@
181
181
  },
182
182
  {
183
183
  "path": "src/known-flags.ts",
184
- "sha256": "a181018a851bbc4b1a7f3a06962a50db138c451abd0e6cca3e89f5a9d1228fba"
184
+ "sha256": "31473bd65a04071f13b7a5994db1b0005b85494f8b8abcc4321c8f5927270fe0"
185
185
  }
186
186
  ]
187
187
  },
188
- "signature": "OGv5/A3HMsZs+oYSwfend7+sOZpFoSc7xjFaz1MG0Gw7z6raYgNxJhbp2iypLLKPtpUw2wO+Zi5lXOYYjicIDQ=="
188
+ "signature": "OP/y34/i1OigqorzDUD4re9FZNcB48J6joi+Uz1H9AMBpIfH2fxONGL59n3xh5aR1zaEOar2BnrVucP2udw3CQ=="
189
189
  }
package/README.md CHANGED
@@ -1321,6 +1321,40 @@ dz mutation-gate --json # machine contract {baseline, results, sum
1321
1321
  npm run test:mutation # the package's own alias for the full run
1322
1322
  ```
1323
1323
 
1324
+ **Scope the gate to what a FEATURE actually touched — `--touched` / `--added-since`.** A whole-registry
1325
+ sweep does not fit a per-feature Step 8: on this repo's core package it is 358 entries, 30-40 minutes,
1326
+ and hit the timeout wall INCONCLUSIVE every time (MEASURED 2026-09-12) — yet a feature usually owns only
1327
+ the files it edited and the entries it just added. `--touched <path[,path]>` selects entries whose `file`
1328
+ matches one of the given paths — accepted in package-relative POSIX form (the plain case), with a leading
1329
+ `./`, as an ABSOLUTE path inside the package, as a REPO-relative path (package prefix stripped, so a
1330
+ Step-7 change list in repo-relative form works unmodified), or backslash-separated (a Windows-authored
1331
+ change list handed to a POSIX runner); all forms normalize to package-relative POSIX before matching
1332
+ (fix-round 1, AM-1). A path that resolves OUTSIDE the package is not silently dropped — it is counted
1333
+ and reported as `<K> outside package` in the `selected N of M` line. `--added-since <git-ref>` selects
1334
+ entries whose `id` is NOT present in the registry as `git show <ref>:<registry path>` read it: a registry
1335
+ genuinely ABSENT at that ref means every current entry counts as added, and the run says so explicitly
1336
+ (`base registry absent at <ref> — all M entries count as added`); an unresolvable ref, any OTHER git
1337
+ failure, or a base registry that is present but INVALID/malformed at that ref is a usage error (exit 2),
1338
+ never folded into "absent" (fix-round 1, AM-3 — collapsing all three used to hide real failures behind a
1339
+ silently-too-generous selection). The two selectors UNION with each other and INTERSECT with `--only`
1340
+ when both are given — same set algebra as any filter chain — and the run prints exactly how it selected.
1341
+ `--json` always carries a `selection` object (`{selected, total, touched, addedSince, base,
1342
+ outsidePackage}`) on every scoped run, not only the empty-selection case (fix-round 1, AM-4):
1343
+
1344
+ ```bash
1345
+ dz mutation-gate --touched src/cli.ts,src/mutation-gate.ts # only entries on these two files
1346
+ dz mutation-gate --added-since HEAD # only entries this run just added
1347
+ dz mutation-gate --touched src/cli.ts --added-since HEAD --only gate-touched-selector
1348
+ # → mutation-gate: selected 1 of 81 entries (touched: 1; added-since HEAD: 1)
1349
+ ```
1350
+
1351
+ An empty match is SAID, never silent, and exits 0 without spending a scratch-copy run:
1352
+ `mutation-gate: 0 entries match touched: 0 — nothing to run`. **Recommended for Step 8 of `/feature-adr`**:
1353
+ scope to `--touched <this run's file list> --added-since <base ref>` for the per-feature gate; run the
1354
+ gate WITHOUT selectors as a separate, periodic regular task (not per feature) to keep the whole registry
1355
+ honest — the scoped run proves the feature's own protections, the full sweep proves the registry hasn't
1356
+ drifted anywhere else.
1357
+
1324
1358
  Expected output (abridged from a real run — MEASURED 2026-08-07, reproducer: `cd
1325
1359
  packages/@dzhechkov/health-advisor && dz mutation-gate`, 18 entries over a 484-test `node --test`
1326
1360
  suite; wall-clock 9m32s with the default per-entry re-baseline, 4m53s with `--rebaseline final` —
@@ -1358,6 +1392,36 @@ Four rules the gate itself obeys — these are what distinguish it from a green-
1358
1392
  4. **The gate carries its own discrimination proof**: a fixture package with a deliberately
1359
1393
  undefended property lives in this repo's test suite, and the gate MUST fail on it — a gate that
1360
1394
  cannot fail cannot pass.
1395
+ 5. **A suite timeout is a VERDICT, never a fabricated exit code** (mutation-gate-timeout-verdict,
1396
+ 2026-09-14). node's `spawnSync` sets `error.code === 'ETIMEDOUT'` on a real timeout regardless of
1397
+ whether the killed process manages to report its own numeric exit status first — MEASURED: a
1398
+ script that traps the kill signal and calls `process.exit(1)` makes `spawnSync` report
1399
+ `status: 1` AND `error.code: 'ETIMEDOUT'` at once. Before this fix, that numeric status silently
1400
+ outranked the timeout flag and the gate printed `baseline suite RED (exit 1)` for a suite that
1401
+ never actually ran to completion — indistinguishable from a real red suite. Now every ETIMEDOUT
1402
+ is reported `INCONCLUSIVE`, naming the elapsed time, the killed child's own exit/signal, and a
1403
+ `--timeout` suggestion (`ceil(2× elapsed)`).
1404
+ The suite-run ceiling itself resolves **`--timeout` flag > the registry's own `timeoutMs` field >
1405
+ the 300000ms default**, printed in the header as `mutation-gate: timeout: <ms> ms (<source>)`. A
1406
+ package whose real baseline run is longer than the default (this repo's `harness-core`, whose
1407
+ `test/mutation-registry.json` declares `"timeoutMs": 900000` — MEASURED ≈5–8 min baseline) needs
1408
+ no `--timeout` flag at all: a bare `dz mutation-gate` in that package now succeeds where it used
1409
+ to need a manually-remembered flag.
1410
+ 6. **A suite runs at vitest's DEFAULT worker count (= cpu cores) unless capped, and an uncapped full
1411
+ suite can take the machine down** (mutation-gate-baseline-honesty, 2026-09-15). MEASURED: under
1412
+ this repo's `harness-core` embedding-daemon tests (0.7–3.5 GB/process), an 8-core/16GB box hit
1413
+ load 62–358 and 0.4–1.8 GB free — three full overnight gate runs died. The same suite at
1414
+ `--maxWorkers=2` passed 6909/6909. The worker ceiling resolves **`--max-workers` flag > the
1415
+ registry's own `maxWorkers` field > `min(4, max(1, floor(cpus/2)))`**, is injected as
1416
+ `--maxWorkers=<n>` into a `vitest run` testCommand (unless the command already names the flag —
1417
+ never double-injected) and sets `VITEST_MAX_WORKERS=<n>` in the env unconditionally (a vitest
1418
+ command reached indirectly through a wrapper script is still capped). Printed as
1419
+ `mutation-gate: workers: <n> (<flag|registry|default>)`, or
1420
+ `mutation-gate: workers: n/a — test command is not vitest` for a non-vitest command. Also
1421
+ fixed the same session: vitest 3 prints an optional POOL LABEL between `FAIL` and the file path
1422
+ (`FAIL |serial| test/x.test.ts …`) — the baseline-attribution parser used to capture the label
1423
+ itself as "the file" and report a perfectly parseable red run as `unparseable from runner
1424
+ output`; the regex now skips the optional label.
1361
1425
 
1362
1426
  **Where the full output of a RED baseline/rebaseline line lives** (gate-stability, 2026-09-12,
1363
1427
  fix-round-1 2026-09-12): the bounded 3-line/20-line tail in the verdict is a teaser, and under a
@@ -2192,7 +2256,7 @@ probe that both selects the workspace build or PATH fallback and prints the sele
2192
2256
  dz runs [--settle] [--stall-minutes N] [--json] [--project <dir>] (read the run registry: live / stalled / orphaned / inconclusive / finished)
2193
2257
  dz runs-record --event started|heartbeat|finished [--run-id <id>] [--kind <kind>] [--slug <slug>] [--pid <pid|host>] [--parent-run-id <id>] [--outcome <text>] [--project <dir>] [--json] (append one run event)
2194
2258
  dz runs-clean [--apply] [--retention-days N] [--project <dir>] [--json] (plan cleanup of old clean merged worktrees and dead/finished registry histories; apply explicitly)
2195
- dz mutation-gate [--package <dir>] [--registry <file>] [--test-cmd "<cmd>"] [--only <id[,id]>] [--timeout <ms>] [--rebaseline per-entry|final] [--keep-scratch] [--json] # the mutation gate: for each NAMED protection in a declarative registry, copy the package to a scratch dir (shadow-repo layout, node_modules symlinked, git-initialized), verify the baseline is green, apply the entry's exact {find, replace} mutation, run the suite, REQUIRE red, restore — and require the red to be ATTRIBUTABLE to the protection: a mutated file that no longer parses is MUTATION_UNPARSEABLE, a failing count far above the entry's bound (maxFailing, default from observed) is OVER_FAILING, and a restored tree that does not reproduce green makes the entry INCONCLUSIVE (flaky suite). A mutation that does not apply, a green suite, or an inconclusive run is a FAILURE — never a skip. exit 0 all proven / 1 gate failed / 2 setup error
2259
+ dz mutation-gate [--package <dir>] [--registry <file>] [--test-cmd "<cmd>"] [--only <id[,id]>] [--touched <path[,path]>] [--added-since <git-ref>] [--timeout <ms>] [--max-workers <n>] [--rebaseline per-entry|final] [--keep-scratch] [--json] # the mutation gate: for each NAMED protection in a declarative registry, copy the package to a scratch dir (shadow-repo layout, node_modules symlinked, git-initialized), verify the baseline is green, apply the entry's exact {find, replace} mutation, run the suite, REQUIRE red, restore — and require the red to be ATTRIBUTABLE to the protection: a mutated file that no longer parses is MUTATION_UNPARSEABLE, a failing count far above the entry's bound (maxFailing, default from observed) is OVER_FAILING, and a restored tree that does not reproduce green makes the entry INCONCLUSIVE (flaky suite). A mutation that does not apply, a green suite, or an inconclusive run is a FAILURE — never a skip. `--touched <path[,path]>` / `--added-since <ref>` scope the run to a feature's own touched files and newly added entries (they UNION with each other and INTERSECT with `--only`; an empty selection prints `selected 0 of M entries (…)` and exits 0 without running the suite — never a silent skip) — MEASURED: an unscoped sweep of 358 entries on this repo's core package took 30-40 minutes and hit the timeout wall every time. `--timeout` resolves flag > the registry's own `timeoutMs` field > a 300000ms default (printed in the header); a real ETIMEDOUT is always INCONCLUSIVE, never read as the killed child's own numeric exit code. `--max-workers` resolves flag > the registry's own `maxWorkers` field > `min(4, max(1, floor(cpus/2)))`, injects `--maxWorkers=<n>` into a `vitest run` testCommand (unless it already names the flag) and always sets `VITEST_MAX_WORKERS=<n>` in the env — printed as `mutation-gate: workers: <n> (<flag|registry|default>)`, or `n/a — test command is not vitest` when the command isn't recognised as vitest; MEASURED: an uncapped full-suite baseline (vitest's default worker count = cpu cores) hit load 62-358 and <2GB free on an 8-core/16GB box under this repo's core-package embedding-daemon tests, killing full overnight gate runs — `--maxWorkers=2` passed 6909/6909. exit 0 all proven / 1 gate failed / 2 setup error
2196
2260
  dz delivery-check --slug <slug> [--context-only] [--findings <f.json>] [--strict] [--author <model>] [--json] # portable Step-10 Delivery Gate: the `manual` form that travels to every shell target — prints the 4-plane review brief (regressions ‖ security ‖ code-quality ‖ product-honesty) + artifact probes; --findings classifies a fed-back review into a fail-closed ready|blocked hand-off (only cross-validated BLOCKER/HIGH count) and writes features/<slug>/10_delivery_review.md; --strict exits 1 on blocked
2197
2261
  dz skills-verify [--dir <project>] [--expect a,b] [--static] [--strict] [--timeout <s>] [--json] # does .claude/skills/ actually REGISTER? --static = instant layout scan (CI-safe, no session): flags dirs that can never register; default also starts a real session and reads the authoritative system/init listing. exit 0 pass / 1 fail / 2 inconclusive — an unobservable registration is NEVER a pass
2198
2262
  dz compounding [--project <dir>] [--json] # honest learning-loop payoff report: pool/replay/guard instrumentation plus the monthly eligible→attempted→accepted→executions funnel. A missing source is NOT MEASURED; only a non-empty→empty named edge across three consecutive measured months is a funnel finding; text/JSON carry the same facts and no learning-health verdict
@@ -3327,7 +3391,7 @@ dz publish: BLOCKED harness-cli — sibling drift: @dzhechkov/memory@0.2.20 on t
3327
3391
  dz publish: refusing to publish (1 sibling-drift violation(s))
3328
3392
 
3329
3393
  $ dz publish --filter harness-cli --yes
3330
- dz publish: tarball @dzhechkov/harness-cli@0.8.25 sha256:9f2c…e10a
3394
+ dz publish: tarball @dzhechkov/harness-cli@0.8.27 sha256:9f2c…e10a
3331
3395
  dz publish: ✓ packed install smoke
3332
3396
  ✓ @dzhechkov/harness-cli 1.0.0 → 1.0.1 published (confirmed by registry after 1 probes)
3333
3397
  sha256:9f2c…e10a
@@ -3661,7 +3725,7 @@ changes nothing; a foreign hook you wrote yourself is left exactly where it is):
3661
3725
  |---|---|---|
3662
3726
  | `recall-hook.cjs` | `.claude/helpers/` | `UserPromptSubmit` hook — asks the embed daemon for relevant lessons, injects them as prompt context, silent when nothing clears the relevance floor |
3663
3727
  | `dz-embed-daemon.mjs` | `.claude/helpers/` | Resident embedding daemon behind a unix socket — keeps the ~1.5 s model-load cost off every single prompt |
3664
- | `UserPromptSubmit` entry | `.claude/settings.json` | Runs the recall hook (`node ".../recall-hook.cjs" 2>/dev/null \|\| true` — a broken hook never blocks a prompt) |
3728
+ | `UserPromptSubmit` entry | `.claude/settings.json` | Runs the recall hook (`node ".../recall-hook.cjs" \|\| true` — a broken hook never blocks a prompt; stderr is NOT redirected — see "The leg never fails silently" below) |
3665
3729
  | `SessionStart` entry | `.claude/settings.json` | Spawns the embed daemon detached (`sh -c 'nohup node ".../dz-embed-daemon.mjs" ... & exit 0'`) |
3666
3730
 
3667
3731
  The hook resolves your harness-core installation by an ABSOLUTE PATH baked in at `dz setup` time
@@ -3670,6 +3734,38 @@ The hook resolves your harness-core installation by an ABSOLUTE PATH baked in at
3670
3734
  global install elsewhere). Project-local candidates (`node_modules/`, a monorepo checkout) stay as
3671
3735
  fallbacks after it.
3672
3736
 
3737
+ **Installed at `$HOME` (a common single-machine layout)? The leg now finds ITSELF, not whatever
3738
+ project the current session happens to be in.** Both generated files used to resolve their store
3739
+ from `CLAUDE_PROJECT_DIR || cwd()` — the SESSION's project. A user-level install
3740
+ (`dz setup --target claude-code --memory agentdb --project $HOME`, expecting the leg everywhere)
3741
+ silently looked up a DIFFERENT project's `.dz/` from every other session, and the `UserPromptSubmit`
3742
+ command itself broke down to `Cannot find module` (swallowed silently) whenever `project === $HOME`
3743
+ and a session's own `CLAUDE_PROJECT_DIR` pointed elsewhere (issue #2, MEASURED on 0.8.25). Fixed: the
3744
+ hook and daemon now resolve their own INSTALL location first (`path.resolve(__dirname, '..', '..')`
3745
+ for the hook — the precedent already used by the destructive-guard hook), and `dz setup` writes the
3746
+ `UserPromptSubmit`/`SessionStart` commands as an ABSOLUTE path to that install root instead of the
3747
+ old `${CLAUDE_PROJECT_DIR:-.}`-relative form. A re-`dz setup` over a pre-feature relative entry
3748
+ upgrades it in place — never a second entry. The one-line reproducer:
3749
+
3750
+ ```bash
3751
+ # temp $HOME layout, matching the owner's real one
3752
+ export HOME=$(mktemp -d) && mkdir -p "$HOME/other-checkout"
3753
+ dz setup --target claude-code --memory agentdb --project "$HOME"
3754
+ dz teach "install-root beacon lesson" --project "$HOME"
3755
+
3756
+ # invoke the RECORDED command from a DIFFERENT checkout, CLAUDE_PROJECT_DIR pointing at it too —
3757
+ # the beacon still reaches additionalContext, because the hook found ITS OWN install, not $CLAUDE_PROJECT_DIR
3758
+ ( cd "$HOME/other-checkout" && CLAUDE_PROJECT_DIR="$HOME/other-checkout" \
3759
+ node "$HOME/.claude/helpers/recall-hook.cjs" <<< '{"prompt":"install-root beacon lesson"}' )
3760
+ # → one line of JSON, hookSpecificOutput.additionalContext containing the beacon
3761
+ ```
3762
+
3763
+ One named limit: from a foreign project's session the hook now injects the INSTALL ROOT's lessons,
3764
+ not the session project's — that is the requested one-store-per-install behavior, not a bug; a
3765
+ per-project store layered on top of a user-level one is a separate feature. The Codex host's own hook
3766
+ resolves its root from `payload.cwd`/`PWD`/`cwd()` — the SAME class of weakness — and is not fixed by
3767
+ this change; it is named in the harness-core README and the feature's own backlog entry.
3768
+
3673
3769
  **On the jsonl backend** (no `--memory agentdb`) the step reports `skipped` with the reason named —
3674
3770
  the embed daemon needs agentdb's transitive `@huggingface/transformers`/`@xenova/transformers`
3675
3771
  dependency, which jsonl mode never installs. This is an honest boundary, not a missing feature: run
@@ -3737,13 +3833,15 @@ dz teach "acceptance check lesson" --allow-cold-start # → "↳ mirrored to v
3737
3833
  # 5. The embed daemon comes up (spawned by SessionStart; give it up to ~20s to load the model).
3738
3834
  timeout 20 sh -c 'until [ -S .dz/embed.sock ]; do sleep 1; done' && echo "daemon socket is up"
3739
3835
 
3740
- # 6. The recall hook actually injects context for a relevant prompt, and stays silent for one
3741
- # that clears no relevance floor — never a hang, never a stray print on stdout.
3836
+ # 6. The recall hook actually injects context for a relevant prompt, and STAYS SILENT ON STDOUT for
3837
+ # one that clears no relevance floor — never a hang, never a stray print on stdout. stderr now
3838
+ # NAMES the no-hits case (apply-leg-never-silent, FR-1) instead of staying blank.
3742
3839
  echo '{"prompt":"acceptance check lesson"}' | node .claude/helpers/recall-hook.cjs # → one line of JSON, hookSpecificOutput.additionalContext non-empty
3743
- echo '{"prompt":"unrelated weather report"}' | node .claude/helpers/recall-hook.cjs # → empty stdout, exit 0
3840
+ echo '{"prompt":"unrelated weather report"}' | node .claude/helpers/recall-hook.cjs # → empty stdout, exit 0, stderr: [dz-recall] skipped reason=no-hits root=…
3744
3841
 
3745
- # 7. Doctor confirms the leg is alive, not merely installed.
3842
+ # 7. Doctor confirms the leg is ALIVE AND ACTUALLY INJECTING, not merely installed.
3746
3843
  dz doctor # → "apply-leg alive (embed daemon): embed socket present at <path> — recall injection can run"
3844
+ # → "apply-leg injects (live probe): live probe injected its beacon lesson in <N>ms"
3747
3845
  ```
3748
3846
 
3749
3847
  Every step above is a REPRODUCER, not a claim: run it on a scratch project before trusting a `dz
@@ -3808,6 +3906,55 @@ this machine. Caching that embedder lives one layer below this feature's touched
3808
3906
  (`agentdb-index.ts`, out of `hook-recall-hybrid-parity`'s scope) and is named as follow-up work in the
3809
3907
  manifest, not silently left unmeasured.
3810
3908
 
3909
+ ### The leg never fails silently — `dz doctor`/`dz parity` prove injection, not presence (`apply-leg-never-silent`)
3910
+
3911
+ Issue #2's second half, MEASURED: the recall hook exited 0 with NO stderr on every early-return path
3912
+ — dead store, dead socket, unresolvable core module, an empty prompt, no relevant lesson — and `dz
3913
+ setup`'s own UserPromptSubmit command swallowed even a `Cannot find module` behind
3914
+ `2>/dev/null || true`. `dz doctor` printed three green checks (`apply-leg installed`,
3915
+ `apply-leg alive`, `memory hooks match config`) and `dz parity` printed
3916
+ `✓ Self-learning … via UserPromptSubmit hook (auto recall)` on a project where the leg injected
3917
+ nothing in every session but one — both instruments were reading FILE PRESENCE as proof of FUNCTION.
3918
+
3919
+ **The hook now names every silent exit, on stderr, before returning:**
3920
+
3921
+ ```
3922
+ [dz-recall] skipped reason=<store-not-found|socket-absent|core-unavailable|empty-prompt|no-hits> root=<path> (<source>) session=<path>
3923
+ ```
3924
+
3925
+ Exit code stays 0 — a broken hook must never fail a prompt. `dz setup`'s UserPromptSubmit command no
3926
+ longer redirects that stream (`node ".../recall-hook.cjs" || true` — `2>/dev/null` is gone,
3927
+ `|| true` stays). **This is not for Claude Code's own transcript**: MEASURED against the real
3928
+ `claude` binary's own hook-reference table (`UserPromptSubmit`'s entry), exit 0 there is documented
3929
+ as `stdout shown to Claude` — stderr is named nowhere for that exit code, so a "verbose mode" hope of
3930
+ seeing it in-session does not hold. It is for two readers who read a spawned child's stderr directly:
3931
+ `dz doctor`/`dz parity`'s own live probe below, and a human running the hook by hand from a terminal.
3932
+
3933
+ **`dz doctor` and `dz parity` now measure whether the leg actually injects, not whether its files
3934
+ exist.** Both call the SAME `probeApplyLeg(root)`: it spawns the REAL configured hook command (read
3935
+ back from `.claude/settings.json`, not reconstructed) from a TEMPORARY cwd with `CLAUDE_PROJECT_DIR`
3936
+ pointing at that same temp dir — the shape of a real session — asks it to recall a throwaway beacon
3937
+ lesson written into the store just for the call, and is green ONLY when the beacon's own token comes
3938
+ back inside `additionalContext`. The beacon is removed immediately after, success or failure —
3939
+ proven by a count-before == count-after test, not merely claimed.
3940
+
3941
+ ```bash
3942
+ dz setup --target claude-code --memory agentdb # installs all three legs
3943
+ dz doctor # → "apply-leg injects (live probe): live probe injected its beacon lesson in 143ms — the recall hook actually finds this project's store"
3944
+ dz parity --target claude-code # → "✓ Self-learning: automatic apply-leg via UserPromptSubmit hook (auto recall)"
3945
+
3946
+ # now kill the daemon and re-check — files are still there, but the leg is silently dead:
3947
+ pkill -f dz-embed-daemon.mjs; rm -f .dz/embed.sock
3948
+ dz doctor # → "apply-leg injects (live probe): installed but silent: socket-absent (probed in 4ms)" — RED, with the reason
3949
+ dz parity --target claude-code # → "◐ Self-learning: automatic apply-leg via manual dz recall before a task — installed but silent: socket-absent"
3950
+ ```
3951
+
3952
+ `dz doctor` and `dz parity` cannot disagree about WHY a leg is dead: both read the same `reason`
3953
+ string off the same `probeApplyLeg` result, the same discipline `applyLegReasonMessage` already
3954
+ enforces for `stale-version`/`unreadable`. `dz doctor`/`dz parity` pay one probe's worth of wall time
3955
+ (measured: well under 200 ms when the leg is dead; ~100-200 ms once warm when it is alive) whenever
3956
+ the leg is wired — named here, not hidden.
3957
+
3811
3958
  ### AgentDB self-learning algorithms
3812
3959
 
3813
3960
  When using `--memory agentdb`, the following algorithms automatically tune search quality:
@@ -5243,8 +5390,29 @@ refusal as the honest answer.
5243
5390
 
5244
5391
  ## Status
5245
5392
 
5246
- `harness-core v0.8.34` · `harness-cli v0.8.25` — **this release: the recall hook and `dz recall` share ONE hybrid
5247
- engine, the embedder is cached per process, and every publish-gate verdict is a durable per-package audit record.**
5393
+ `harness-core v0.8.35` · `harness-cli v0.8.27` · `memory v0.2.22` — **this release (night 14→15.09, 8 features, each
5394
+ cross-family reviewed by Codex): the recall hook resolves its store from the INSTALL root, never from the session's cwd,
5395
+ and is never silent; the skill walker follows symlinks, drops build junk and names everything it skipped; one-character
5396
+ recall terms are searchable; and the mutation gate stays honest under load.**
5397
+ (a) `apply-leg-install-root` + `apply-leg-never-silent` (issue #2): the `UserPromptSubmit` recall hook computes
5398
+ `INSTALL_ROOT` from its own location and `SESSION_ROOT` from `CLAUDE_PROJECT_DIR`, settings commands are absolute and
5399
+ POSIX-quoted, a dead leg prints `[dz-recall] skipped reason=… root=…`, and `dz doctor`/`dz parity` report the leg
5400
+ green ONLY after a live injection probe (`apply-leg injects (live probe)`).
5401
+ (b) `skills-walk-symlinks-and-junk`: `walkFiles` → `{files, skipped}` — a symlink resolves via `stat`, a cycle guard
5402
+ tracks the ANCESTOR chain (aliases both walk), a symlink escaping the skill directory is skipped and named, an
5403
+ escaping `SKILL.md` refuses the whole skill in EVERY public reader, junk (`__pycache__`, `node_modules`, `.git`,
5404
+ `__MACOSX`, `.pytest_cache`, `.mypy_cache`, `*.pyc/*.pyo/*.swp/*.swo`, `.#*`, `.DS_Store`, `Thumbs.db`) is a published
5405
+ contract, and `dz install` prints `skills: skipped N junk entr(y|ies)` only when N > 0.
5406
+ (c) `recall-short-terms` (memory 0.2.22): ONE shared `tokenize()` for both backends, no length floor, diacritics folded
5407
+ for Latin script only (one combining mark — exactly FTS5 `unicode61 remove_diacritics=1`, measured), `hasSearchableTerms`
5408
+ / `noSearchableTermsReason` re-exported through core, and `dz recall ",,"` prints `reason: no-searchable-terms`.
5409
+ (d) `mutation-gate-baseline-honesty` + `--touched/--added-since`: the attribution regex reads vitest 3's pool label
5410
+ (`FAIL |serial| path`), `maxWorkers` lives in the registry (hub: 2) and is honoured by `--max-workers`, and a feature
5411
+ gates only its own entries. (e) `store-generation-counter`: the daemon's engine cache invalidates on a generation bump
5412
+ written under a named lock. (f) `sandbox-copy-remaining-sites` + `full-suite-flake-fixes-2`: measured budgets
5413
+ (≥ 2× p95 under load), spawn timeouts strictly below the test budget, `waitForSocketReady` for daemon tests.
5414
+ Previous release (v0.8.34 / v0.8.25): the recall hook and `dz recall` share ONE hybrid
5415
+ engine, the embedder is cached per process, and every publish-gate verdict is a durable per-package audit record.
5248
5416
  (0) Hook/CLI recall parity (`hook-recall-hybrid-parity`): the embed daemon answers `op: recall` through core's
5249
5417
  `recallHybrid` under a 500 ms budget (measured p95 100–190 ms on the real 743-pattern store, 99–100 of 100
5250
5418
  requests hybrid) with an honest cosine fallback labelled `engine`/`reason`, a warm-up at start, an in-flight cap,
@@ -5252,7 +5420,7 @@ and an engine cache used ONLY by the hook (`dz recall` itself resolves fresh); `
5252
5420
  The agentdb embedder is cached per process (`agentdb-embedder-cache`: cold 2117 ms → warm 1 ms). Sibling-drift
5253
5421
  inventories come from `pnpm pack` — the live transport — so the LICENSE pnpm synthesises from the workspace root
5254
5422
  no longer reads as drift; every gate verdict is one fsync'd audit record per package with `sha256:<hex|n/a>`.
5255
- Previous release (v0.8.33 / v0.8.25): `dz publish` refuses a broken pair, `dz setup`
5423
+ Previous release (v0.8.33 / v0.8.24): `dz publish` refuses a broken pair, `dz setup`
5256
5424
  reads the memory backend from config, and the embed daemon says "ready" only with a socket that exists.
5257
5425
  (1) Sibling-drift gate + packed install smoke: before any live `npm publish`, every `workspace:*` sibling on
5258
5426
  the registry is compared with the workspace (dist/files/bin + the shipping fields of package.json); a
package/dist/cli.d.ts CHANGED
@@ -32,6 +32,13 @@ export type MutationGateRunner = (command: string, options: {
32
32
  readonly timeoutMs: number;
33
33
  readonly phase: 'baseline' | 'mutation' | 'rebaseline' | 'final-rebaseline';
34
34
  readonly entryId?: string;
35
+ /**
36
+ * mutation-gate-baseline-honesty FR-3: the extra env vars the REAL executor would set on top of
37
+ * `process.env` for this run — currently just `VITEST_MAX_WORKERS`, set unconditionally
38
+ * regardless of whether the test command is recognised as vitest (a non-vitest command still
39
+ * gets the env var; only the command-string injection is vitest-gated).
40
+ */
41
+ readonly env: Readonly<Record<string, string>>;
35
42
  }) => MutationGateRunnerObservation;
36
43
  /** Output sink + working directory — injectable so the CLI is testable. */
37
44
  export interface CliIo {
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}