@dzhechkov/harness-cli 0.8.16 → 0.8.18

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": "650d078c061e10082536c72852622b391e76ad35d89ae1ae710ff2209eef4686"
12
+ "sha256": "7188b390d9105e8d440468cde453309ee5ac8e9b6505f3ebe609393224dd6926"
13
13
  },
14
14
  {
15
15
  "path": "dist/bin.d.ts",
@@ -33,31 +33,31 @@
33
33
  },
34
34
  {
35
35
  "path": "dist/boolean-flags.d.ts.map",
36
- "sha256": "a15e65e835e952abf9d93fba352c2c6f840ce37458e22b52e8be2b6bd87b99fd"
36
+ "sha256": "5d168189752313c0592f291f57187feab46445478bb3c6d1f6b9330de4205c83"
37
37
  },
38
38
  {
39
39
  "path": "dist/boolean-flags.js",
40
- "sha256": "a0168adf31a200eaf7891f99ba6609cb08b5a1960ef1aaeff678e976ebc1f458"
40
+ "sha256": "88ddbf29e0b97f22ad8c8cb65fae8202098627decf4f4d0bdbb24374be7e273c"
41
41
  },
42
42
  {
43
43
  "path": "dist/boolean-flags.js.map",
44
- "sha256": "879fce0bcbe4d86f4c45920fb55696d674e4b13753c34223570e1ce4cc4845ab"
44
+ "sha256": "5a772e4d7d6c1515d31645b689e2bd92d1c1c42625ea0f439981c2d5b0f8dd0d"
45
45
  },
46
46
  {
47
47
  "path": "dist/cli.d.ts",
48
- "sha256": "ed6343630400b6607e3b2eaadd9d57e694da5e0465a5136e802e6937175de190"
48
+ "sha256": "a4f6ad121c0e81336e517b10ba656af428cc07d9f41fdc00967d1cd0122be1ee"
49
49
  },
50
50
  {
51
51
  "path": "dist/cli.d.ts.map",
52
- "sha256": "a8f5e5f83daaff53ce46607c9b3e69fb97f0e84223e819bb9e740ce5517b99f9"
52
+ "sha256": "40ce13aec8fc6cb0beb1ed02f07bb22438f940d52ef59d02f6dc9352e67b8d79"
53
53
  },
54
54
  {
55
55
  "path": "dist/cli.js",
56
- "sha256": "958649fbb537b1bab400f7860ba540aa2cf62799317bcdacdf8e1e6010f2629e"
56
+ "sha256": "b5b87557988b5ec5e58913f53068e35dd5a8f8aac6c62f409d13ab9d9b8202b7"
57
57
  },
58
58
  {
59
59
  "path": "dist/cli.js.map",
60
- "sha256": "718094c24661e25bfca2ef64c46b62e1a0fb9871969cd9c315fbf173186ba82f"
60
+ "sha256": "4d0925b3047fc96233ddb1118b071a0a1eca35995a06f30cdfc8b2e613f1ec31"
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": "30ee87b379eddb4da7f497c7b5f330e803e15d667d875a77f36eea9a374b8949"
132
+ "sha256": "703058c8bbf0307ab29f12f8355c8984508f38214c32ab85da790446f0cb9699"
133
133
  },
134
134
  {
135
135
  "path": "dist/known-flags.js",
136
- "sha256": "9d526ae74a6026c47e0fcbce5b5fd1e980fe1a5c9bd80a95d878f31b83c530cb"
136
+ "sha256": "6bae6e7f551b6024e3212655f4c5a8f9e426ae0858ff3e65f08d0539bb617028"
137
137
  },
138
138
  {
139
139
  "path": "dist/known-flags.js.map",
140
- "sha256": "23c7e0e140989a4aa1225b6b0027cffdc69e38a0ab2a1842c6b17e85e0685eb3"
140
+ "sha256": "9edabc481a2545ac56ddfdfba82623cd3ac1cf8a37551b5ff43930bf5f2ef48f"
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": "1052ef8c24990eb1a2f6eed3db71d84240f6ecc2f7e1db1d50af10fa6c33c2af"
152
+ "sha256": "9d2e42a35ece84729f572ffbf225665cf5ac9c815c88381dfbd79cd69b4661cd"
153
153
  },
154
154
  {
155
155
  "path": "src/bin.ts",
@@ -157,11 +157,11 @@
157
157
  },
158
158
  {
159
159
  "path": "src/boolean-flags.ts",
160
- "sha256": "36af96b1f0d629d90edbceafa2ce94aee5d31b51cb9ce9dbb73163d3f6643121"
160
+ "sha256": "f8f029ad790f43d28fcc1e520c4f74ee39b3a9591d71619546165149a914b054"
161
161
  },
162
162
  {
163
163
  "path": "src/cli.ts",
164
- "sha256": "43cd47da3a2ffdd54b48989c1b30430473d4d20a903c44c6f640284ffa90fb6c"
164
+ "sha256": "5ba834f5795e8d4208159aa6fbee738f38978ada811f49ba85f6798079970144"
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": "a744b4f1ec364464ae63acbdba613eb7a389c14cf8f98c89b5d712877326966f"
184
+ "sha256": "f00496dde83db529d8dde54cf1a5a0048c4c08c49c085e035ad1c90d6a602b30"
185
185
  }
186
186
  ]
187
187
  },
188
- "signature": "kG1LHcsT58yugD68UaYwCAP6hf97/t0j6FICg9Ggas8cXrsjoMh71dUXLDbi1wu9j+kK4VPaMznY3gof0YXWCg=="
188
+ "signature": "mNtrVxRpvSORGA3ncJqLRrOUsXWZpQT4VwrQPu/0Ev92RVXbvZQfa4JoJeBf/Rabd6cXdlc1Sq1S35KeVOSzDg=="
189
189
  }
package/README.md CHANGED
@@ -279,7 +279,7 @@ you know exactly which file is at fault, and you know whose defect it is.
279
279
 
280
280
  ## User Journey — from install to mastery
281
281
 
282
- All 87 commands (MEASURED — reproducer: `node --input-type=module -e "import('./dist/index.js').then(m=>console.log(m.DZ_COMMANDS.length))"` from this package; rendered help documents 88 unique top-level names — the 87 plus the built-in `help` — pinned NAME-FOR-NAME by `test/command-inventory-parity.test.ts`) mapped to a real workflow:
282
+ All 91 commands (MEASURED — reproducer: `node --input-type=module -e "import('./dist/index.js').then(m=>console.log(m.DZ_COMMANDS.length))"` from this package; rendered help documents 92 unique top-level names — the 91 plus the built-in `help` — pinned NAME-FOR-NAME by `test/command-inventory-parity.test.ts`) mapped to a real workflow:
283
283
 
284
284
  ```
285
285
  DISCOVER → INSTALL → USE → CREATE → MAINTAIN → SHARE
@@ -651,6 +651,7 @@ Three surfaces, three strictness levels — and promotion is EARNED, never autom
651
651
 
652
652
  ```bash
653
653
  dz teach "..." # → "⚠ quarantined: excluded from auto-inject, damped in recall"
654
+ dz teach "..." # the same normalized text reinforces the existing lesson instead of adding a duplicate; quarantine is preserved
654
655
  dz recall "topic" # ⚠q hits are VISIBLE but marked + rank-damped (never hidden)
655
656
  # the UserPromptSubmit auto-inject hook EXCLUDES ⚠q lessons entirely (logged, never silent)
656
657
 
@@ -1938,10 +1939,10 @@ runs a command that MEASURES the declared artifacts itself. It refuses a null re
1938
1939
  never recorded as done), an absent or partially-present artifact set, and a stage that declares nothing
1939
1940
  to witness — so a stage that did not happen can no longer be recorded, which the old mechanism allowed.
1940
1941
 
1941
- ## All Commands (87)
1942
+ ## All Commands (91)
1942
1943
 
1943
- *(87 MEASURED from the bounded command inventory below; rendered `dz --help` exposes 88 unique
1944
- top-level names — the 87 plus the built-in `help`, which prints USAGE before the dispatch switch and
1944
+ *(91 MEASURED from the bounded command inventory below; rendered `dz --help` exposes 92 unique
1945
+ top-level names — the 91 plus the built-in `help`, which prints USAGE before the dispatch switch and
1945
1946
  is therefore documented without being a command. Both numbers are COMPUTED, never typed: the name
1946
1947
  sets of this section, the root README, the docs site and `DZ_COMMANDS` are pinned to each other by
1947
1948
  `test/command-inventory-parity.test.ts`.)*
@@ -2006,7 +2007,11 @@ dz bto-optimize --split|--plan|--select|--scope-check|--diff [--json] # determ
2006
2007
  dz discrimination-check --test <f[,f]> [--base <ref>] [--name <filter>] [--runner <cmd>] [--timeout <ms>] [--json] # §42 test-discrimination gate for feature-adr Step-8: run the ADR's property test in an isolated git worktree at pre-feature base — it MUST go red without the fix. SEVEN verdicts, each gated on EXECUTION evidence: DISCRIMINATES · DISCRIMINATES_VIA_ERROR · NON_DISCRIMINATING (false green) · TEST_FILE_ABSENT · LOAD_ERROR_AT_BOTH_REVS · FAILS_AT_TIP · CANNOT_ISOLATE (+ typed reason). Advisory, never auto-aborts
2007
2008
  dz amendment-check --slug <slug> | --feature-dir <dir> | --all [--json] (every AM-N / AM-CP-N amendment row must resolve to a test found INSIDE the file the row names; the PLAN is authoritative when it carries rows, and an ideation amendment the plan drops is a failure; --all is a census that always exits 0; exit 0 pass/skip, 1 fail, 3 NOT-ESTABLISHED — ZERO parsed rows may skip only when the whole first paragraph or heading suffix is exactly "None"/"N/A"/"нет", optionally with a full stop; an optional CommonMark closing # sequence is heading furniture, qualified text is refused, and AM-like content beside the declaration is NOT-ESTABLISHED)
2008
2009
  dz contract-check --slug <s> [--json] (read-only retrospective feature contract gate: canonical AC-N + ADR Confirmation → CC-N; every item needs one artifact-anchored met|unmet|not-testable verdict; A/B with unmet is refused; exit 0 pass / 1 readable violation / 2 invalid invocation or unreadable/not-established artifacts)
2010
+ dz journal add --kind decision|verdict|run|error|block "<text>" [--ref <trace>] [--at <ISO>] [--quote <file>] [--commit-quote]; show [--day|--week] [--at <date>] [--kind <kind>] [--json] # UTC day files, witnessed append; quotes local by default
2009
2011
  dz feature-adr-record --kind ledger|training-pair --stage <s> [--slug <s>] [--row|--pair <json>] [--mark <n>] [--once] [--json] (the witnessed writer: payload as an ARGUMENT never as shell, refused before any write, timestamp stamped before serialising, append verified by re-reading the tail; exit 0 written|duplicate|skipped, 2 refused, 3 not-verified, never blocking)
2012
+ dz runs [--settle] [--stall-minutes N] [--json] [--project <dir>] (read the run registry: live / stalled / orphaned / inconclusive / finished)
2013
+ 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)
2014
+ dz runs-clean [--apply] [--retention-days N] [--project <dir>] [--json] (plan cleanup of old clean merged worktrees and dead/finished registry histories; apply explicitly)
2010
2015
  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
2011
2016
  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
2012
2017
  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
@@ -2063,7 +2068,7 @@ dz import-ecc [--local-path <dir>] [--select id,id,...] [--limit N] [--out
2063
2068
  ```
2064
2069
 
2065
2070
  Built-in, not a command: `dz help` prints this same USAGE and is handled before the dispatch switch,
2066
- so `dz --help` lists 88 names while the canonical inventory above holds 87 (ADR-001 of feature
2071
+ so `dz --help` lists 92 names while the canonical inventory above holds 91 (ADR-001 of feature
2067
2072
  `command-count-triad`).
2068
2073
 
2069
2074
  **Adding a command — the whole checklist, in order.** It replaces the seven-place folklore that used
@@ -3075,6 +3080,15 @@ dz mcp-scan . --reconcile --fail-on-undergrant # CI: exit 1 if a skill declare
3075
3080
 
3076
3081
  ### dz publish — automated npm publish
3077
3082
 
3083
+ For a live publish, the CLI prints `published` only after npm answers with the exact new package
3084
+ version, followed by the receipt text `confirmed by registry after N probes`. A zero exit from
3085
+ `pnpm publish` alone is not success. The publisher tries up to 30 registry probes with 10-second
3086
+ pauses between misses; an unconfirmed version is an error and its local bump is restored.
3087
+ `--dry-run` and `--bump-only` do not probe for this receipt because neither performs a live publish.
3088
+ When the receipt never arrives, the CLI adds one line telling you what to check: `npm view <pkg>@<version>` —
3089
+ if the registry answers, the publish DID land and only the local bump was rolled back; re-apply it by hand.
3090
+ Registry probes run `npm view … --prefer-online`, because the publisher itself warms the packument cache before publishing (measured 2026-09-10: 30 misses on a landed package).
3091
+
3078
3092
  ```bash
3079
3093
  dz publish --dry-run # preview what would publish
3080
3094
  dz publish --filter skills-devops # publish specific package
@@ -4361,7 +4375,7 @@ The learned store round-trips across machines in **two** formats, and de-duplica
4361
4375
 
4362
4376
  **`dz vector harmonize` — semantic merge.** `dz teach --from-json` only dedups by *exact* text, so paraphrases survive: *"use DataLoader to batch queries"* and *"batch DB round-trips with a dataloader"* are separate rows. Harmonize finds near-duplicate **clusters** by cosine similarity (θ default `0.92`, `--threshold`), keeps the **highest-reward** member of each (tie-break: longer/more-specific text, then newer `ts`), folds reinforcement signal into the keeper (`uses = Σ member uses + drops`, `avgReward` = honest mean of observed member rewards, `mergedFrom` = dropped ids), then removes the rest only on `--apply`. Dry-run previews and writes nothing; apply writes a restorable backup first. It **never** drops a unique pattern. With no vector engine it degrades to **exact-text dedup + an honest note** — never throws.
4363
4377
 
4364
- **Learning signal seam.** Ranking reinforcement is behind `memory.learning.backend`: default `native` (bounded uses/recency/reward signal), kill switch `off`, and reserved `ruvector-gnn` (accepted by config with an honest fallback to native; no RuVector dependency is installed). `memory.learning.onRecallHits:false` disables the default recall-hit auto-bump. `dz teach --reinforce "<id-or-text>"` records an explicit use; `dz teach --guard` is opt-in and only reinforces near-duplicates at θ ≥ `0.95`, while a different reward still writes a new record. `dz recall --all --stats` shows store size, domains, top uses, duplicate groups, and re-teach/reinforce trend counters.
4378
+ **Learning signal seam.** Ranking reinforcement is behind `memory.learning.backend`: default `native` (bounded uses/recency/reward signal), kill switch `off`, and reserved `ruvector-gnn` (accepted by config with an honest fallback to native; no RuVector dependency is installed). `memory.learning.onRecallHits:false` disables the default recall-hit auto-bump. On the ordinary path, teaching the same normalized exact text in the same domain reinforces the existing lesson instead of writing a duplicate; a quarantined lesson stays quarantined. `dz teach --reinforce "<id-or-text>"` records an explicit use; `dz teach --guard` is opt-in and only reinforces near-duplicates at θ ≥ `0.95`, while a different reward still writes a new record. `dz recall --all --stats` shows store size, domains, top uses, duplicate groups, and re-teach/reinforce trend counters.
4365
4379
 
4366
4380
  **Before → after** (one near-dup cluster):
4367
4381
 
@@ -4628,6 +4642,14 @@ repository-relative evidence paths declared by that report. It writes no feature
4628
4642
  usage ledger, or checkpoint. Slug traversal, absolute/traversing evidence, symlink escape, and QE
4629
4643
  self-citation are refused.
4630
4644
 
4645
+ When `features/<slug>/03_adr` is absent, the command reads
4646
+ `features/<slug>/00_complexity_assessment.md`. An unambiguous S tier establishes a requirements-only
4647
+ contract and adds the informational diagnostic `adr-not-required-for-tier` without changing the
4648
+ outcome. For M, L, or XL, the same missing directory remains NOT-ESTABLISHED with the distinct code
4649
+ `adr-directory-missing`; an unreadable or ambiguous tier keeps the fail-closed
4650
+ `adr-directory-unreadable` result. An existing but unreadable ADR directory is unchanged and remains
4651
+ an `adr-directory-unreadable` refusal.
4652
+
4631
4653
  The source vocabulary is exact: `## Acceptance criteria`, one-line `AC-N: ...`, `## Confirmation`,
4632
4654
  one-line `- Load-bearing property: ...`, and one-line `- Required automated check: ...`. The QE report
4633
4655
  keeps its holistic Grade and adds one `## Contract checklist` fenced JSON payload:
@@ -4671,7 +4693,7 @@ refusal as the honest answer.
4671
4693
 
4672
4694
  ## Status
4673
4695
 
4674
- `harness-core v0.8.22` · `harness-cli v0.8.16` — **this release: the instruments stopped lying in
4696
+ `harness-core v0.8.25` · `harness-cli v0.8.18` — **this release: the instruments stopped lying in
4675
4697
  four measured ways.** (1) A test run's exit code no longer conflates "a test failed" with "the runner
4676
4698
  choked": `classifyRunFailure` names `runner-infrastructure` with the closed reason
4677
4699
  `worker-rpc-timeout` when zero tests failed AND the runner's own worker-RPC pattern is present — an
@@ -4694,7 +4716,7 @@ exports (`commandInventory`, `declaredCommands`, `dispatchedCommands`, `document
4694
4716
  `stripNonCode`, `validateExceptionList`, `INTERNAL_ENTRY_POINTS`, `PSEUDO_COMMANDS`) — instead of a
4695
4717
  fourth private regex and a fourth number. Four hidden commands (`mr-rakes`, `retro`,
4696
4718
  `feature-adr-setup`, `bto-optimize`) gained USAGE lines, so `--help` changed; `help` is a documented
4697
- pseudo-command, not a `case` label. **87 canonical commands, 88 names in rendered `--help`** (the 87
4719
+ pseudo-command, not a `case` label. **91 canonical commands, 92 names in rendered `--help`** (the 91
4698
4720
  plus the built-in `help`) — both COMPUTED from `cli.ts`, neither typed into a test. Three cross-family QE rounds closed
4699
4721
  six parser defects the naive version had: four that INVENTED a command (regex literals with a lone
4700
4722
  `}`, `case` labels in comments or templates, sub-verb labels from nested switches, ` dz <name>` lines
@@ -4708,7 +4730,7 @@ the Russian-catalogue stemming, the fixed `discrimination-check` / `mutation-gat
4708
4730
  `volume-shadow/v1` publish observations with structured human/JSON/audit parity. All four remain
4709
4731
  SOFT-only; incomplete evidence is unknown, and source-comment justification is out of scope.
4710
4732
 
4711
- `harness-core v0.8.10` · `skills-feature-adr v1.5.9` — **staged, not published:** the packaged
4733
+ `harness-core v0.8.10` · `skills-feature-adr v1.5.9` — **published 2026-09-09:** the packaged
4712
4734
  feature-adr workflow performs advisory top-3 micro-recall at the live Step 3 ADR choice and Step 6
4713
4735
  plan-route choice. Every failure is fail-open; versioned `.fa-state/decision-recall.jsonl` rows make
4714
4736
  receipt coverage and repeat-related outcomes derivable offline. The hypothesis is external `[SRC],
@@ -4909,3 +4931,58 @@ harness-core's `src/markdown-masker.ts`. It runs without a core build. Amendment
4909
4931
  and K2 share the parser while retaining their existing unclosed-block and indentation policies.
4910
4932
  The four-space indented-code gap remains open for amendment checks and K2; swarm briefs retain their
4911
4933
  existing masking of indented code. Versions are unchanged in this staged change.
4934
+
4935
+
4936
+ ### Run registry
4937
+
4938
+ `dz runs --project <repo> [--json]` reads `.dz/runs/registry.jsonl`. The feature-adr workflow
4939
+ appends `started`, a `heartbeat` at each phase boundary, and `finished` through `dz runs-record`.
4940
+ Each invocation allocates its own run ID. Pass Workflow `args.runPid` for an explicit host PID,
4941
+ and `args.parentRunId` when nesting runs; otherwise the writer resolves the Claude ancestor PID
4942
+ and refuses if it cannot establish one. The courier checks the write response. Registry failures
4943
+ log `run registry: <event> UNVERIFIED — <reason>` and mark the registry outcome `unverified`;
4944
+ the workflow continues. Finalization runs on normal returns and exceptions; host termination
4945
+ can leave a started run without finished.
4946
+
4947
+ `live` requires a responding PID. `orphaned` requires a recorded finish or confirmed absent PID;
4948
+ missing parents, inaccessible PID probes and unreadable registries remain `inconclusive`, with
4949
+ a reason. A confirmed live PID with a heartbeat older than `--stall-minutes` (default 120)
4950
+ is `stalled`; a missing heartbeat remains `live`. Stalled parents remain alive for their children. Completed runs display
4951
+ `finished`; a child of a finished parent is `orphaned`. An unreadable registry exits 1.
4952
+ Before the first run, an absent registry reports `нет реестра: .dz/runs/registry.jsonl ещё не создан (ни одного прогона)`
4953
+ and exits 0 (`status: "missing"` in JSON).
4954
+
4955
+ The core exports `appendRunEvent`, `readRunRegistry`, `probePid`, `liveness`, `liveParents`, and
4956
+ `runRecordCommand`. Appends preserve event identity and bound diagnostic `reason` text below
4957
+ PIPE_BUF with `truncated: true`; oversized identity fields are refused.
4958
+
4959
+
4960
+ ### Run cleanup and settlement
4961
+
4962
+ `dz runs --settle` appends `finished` with outcome `died` only for confirmed absent PIDs.
4963
+ A second invocation reports `nothing to settle`. `inconclusive` is preserved. Use
4964
+ `dz runs --stall-minutes 150` to change the heartbeat threshold; `stalled` only changes the display.
4965
+
4966
+ ```bash
4967
+ dz runs-clean --project /path/to/repo # inspect the plan first
4968
+ dz runs-clean --project /path/to/repo --retention-days 7 --json
4969
+ # After reviewing the plan, explicitly apply:
4970
+ dz runs-clean --project /path/to/repo --retention-days 7 --apply
4971
+ ```
4972
+
4973
+ Only non-main worktrees merged into `main`, clean, and strictly older than the retention
4974
+ (default 2 days, measured from their latest commit) qualify. Detached worktrees use their HEAD's
4975
+ ancestry. Dirty worktrees stay, with the file count and first five paths printed. Unknown merge
4976
+ or commit-age facts stay; unreadable status refuses cleanup. Removal uses Git without force and
4977
+ is reported successful only after rereading the worktree list.
4978
+
4979
+ With `--apply`, whole finished or confirmed-dead run histories whose newest event exceeds retention
4980
+ move to `.dz/runs/registry.archive.jsonl`; live and inconclusive runs stay in `registry.jsonl`.
4981
+ CLI appends, settlement, and archive read/plan/rewrite share the named `run-registry-archive` lock
4982
+ under `.dz/runs`. Archive writes append before temp-file rename; a crash between those operations
4983
+ can duplicate archive events on retry. Direct API writers must coordinate with that same lock.
4984
+
4985
+ Core APIs: `settleDeadRuns` and `planRegistryArchive` are pure registry decisions;
4986
+ `planWorktreeCleanup` accepts injected `WorktreeFact` values and returns remove/keep decisions;
4987
+ `renderCleanupPlan` renders them. `worktreeRemovalsToApply` selects removals only when apply is true.
4988
+ No process is terminated and no branch is deleted.
@@ -1 +1 @@
1
- {"version":3,"file":"boolean-flags.d.ts","sourceRoot":"","sources":["../src/boolean-flags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CA6FhD,CAAC;AAEH,gGAAgG;AAChG,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAAc,CAAC;AAElE,iGAAiG;AACjG,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAGpE"}
1
+ {"version":3,"file":"boolean-flags.d.ts","sourceRoot":"","sources":["../src/boolean-flags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAiGhD,CAAC;AAEH,gGAAgG;AAChG,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAAc,CAAC;AAElE,iGAAiG;AACjG,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAGpE"}
@@ -35,7 +35,9 @@ export const BOOLEAN_CLI_FLAGS = new Set([
35
35
  'by-stage',
36
36
  'calibrate',
37
37
  'check',
38
+ 'commit-quote',
38
39
  'confirm',
40
+ 'day',
39
41
  'context-only',
40
42
  'deep',
41
43
  'diff',
@@ -98,6 +100,7 @@ export const BOOLEAN_CLI_FLAGS = new Set([
98
100
  'scope-check',
99
101
  'semantic',
100
102
  'send',
103
+ 'settle',
101
104
  'split',
102
105
  'stages-json',
103
106
  'static',
@@ -108,6 +111,7 @@ export const BOOLEAN_CLI_FLAGS = new Set([
108
111
  'usage',
109
112
  'validate',
110
113
  'weak',
114
+ 'week',
111
115
  'with-pairs',
112
116
  'with-references',
113
117
  'yes',
@@ -1 +1 @@
1
- {"version":3,"file":"boolean-flags.js","sourceRoot":"","sources":["../src/boolean-flags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC;IAC5D,UAAU;IACV,UAAU;IACV,KAAK;IACL,kBAAkB;IAClB,mBAAmB;IACnB,sBAAsB;IACtB,KAAK;IACL,OAAO;IACP,WAAW;IACX,MAAM;IACN,OAAO;IACP,KAAK;IACL,WAAW;IACX,UAAU;IACV,WAAW;IACX,OAAO;IACP,SAAS;IACT,cAAc;IACd,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,MAAM;IACN,QAAQ;IACR,WAAW;IACX,oBAAoB;IACpB,UAAU;IACV,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,WAAW;IACX,MAAM;IACN,eAAe;IACf,MAAM;IACN,SAAS;IACT,gBAAgB;IAChB,cAAc;IACd,MAAM;IACN,cAAc;IACd,QAAQ;IACR,SAAS;IACT,MAAM;IACN,cAAc;IACd,MAAM;IACN,OAAO;IACP,YAAY;IACZ,UAAU;IACV,UAAU;IACV,iBAAiB;IACjB,UAAU;IACV,WAAW;IACX,WAAW;IACX,eAAe;IACf,WAAW;IACX,aAAa;IACb,UAAU;IACV,WAAW;IACX,MAAM;IACN,UAAU;IACV,SAAS;IACT,YAAY;IACZ,aAAa;IACb,kBAAkB;IAClB,SAAS;IACT,WAAW;IACX,oBAAoB;IACpB,mBAAmB;IACnB,QAAQ;IACR,OAAO;IACP,cAAc;IACd,iBAAiB;IACjB,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,aAAa;IACb,UAAU;IACV,MAAM;IACN,OAAO;IACP,aAAa;IACb,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,KAAK;IACL,OAAO;IACP,OAAO;IACP,UAAU;IACV,MAAM;IACN,YAAY;IACZ,iBAAiB;IACjB,KAAK;CACN,CAAC,CAAC;AAEH,gGAAgG;AAChG,MAAM,CAAC,MAAM,qBAAqB,GAAsB,CAAC,OAAO,CAAC,CAAC;AAElE,iGAAiG;AACjG,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,OAAe;IACzD,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACtE,OAAO,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"boolean-flags.js","sourceRoot":"","sources":["../src/boolean-flags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAwB,IAAI,GAAG,CAAC;IAC5D,UAAU;IACV,UAAU;IACV,KAAK;IACL,kBAAkB;IAClB,mBAAmB;IACnB,sBAAsB;IACtB,KAAK;IACL,OAAO;IACP,WAAW;IACX,MAAM;IACN,OAAO;IACP,KAAK;IACL,WAAW;IACX,UAAU;IACV,WAAW;IACX,OAAO;IACP,cAAc;IACd,SAAS;IACT,KAAK;IACL,cAAc;IACd,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,MAAM;IACN,QAAQ;IACR,WAAW;IACX,oBAAoB;IACpB,UAAU;IACV,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,WAAW;IACX,MAAM;IACN,eAAe;IACf,MAAM;IACN,SAAS;IACT,gBAAgB;IAChB,cAAc;IACd,MAAM;IACN,cAAc;IACd,QAAQ;IACR,SAAS;IACT,MAAM;IACN,cAAc;IACd,MAAM;IACN,OAAO;IACP,YAAY;IACZ,UAAU;IACV,UAAU;IACV,iBAAiB;IACjB,UAAU;IACV,WAAW;IACX,WAAW;IACX,eAAe;IACf,WAAW;IACX,aAAa;IACb,UAAU;IACV,WAAW;IACX,MAAM;IACN,UAAU;IACV,SAAS;IACT,YAAY;IACZ,aAAa;IACb,kBAAkB;IAClB,SAAS;IACT,WAAW;IACX,oBAAoB;IACpB,mBAAmB;IACnB,QAAQ;IACR,OAAO;IACP,cAAc;IACd,iBAAiB;IACjB,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,aAAa;IACb,UAAU;IACV,MAAM;IACN,QAAQ;IACR,OAAO;IACP,aAAa;IACb,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,KAAK;IACL,OAAO;IACP,OAAO;IACP,UAAU;IACV,MAAM;IACN,MAAM;IACN,YAAY;IACZ,iBAAiB;IACjB,KAAK;CACN,CAAC,CAAC;AAEH,gGAAgG;AAChG,MAAM,CAAC,MAAM,qBAAqB,GAAsB,CAAC,OAAO,CAAC,CAAC;AAElE,iGAAiG;AACjG,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,OAAe;IACzD,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACtE,OAAO,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC"}
package/dist/cli.d.ts CHANGED
@@ -4,6 +4,7 @@
4
4
  * @packageDocumentation
5
5
  */
6
6
  import { spawn, type ChildProcess } from 'node:child_process';
7
+ import { type JournalIo } from '@dzhechkov/harness-core';
7
8
  import { runSyncCodexHooks, type CodexHooksSyncReport, type BridgeFamily } from '@dzhechkov/harness-core';
8
9
  import type { RecallPatternsOptions, TeachGuardResult, IntegrationOutcome } from '@dzhechkov/harness-core';
9
10
  /** Literal command inventory, pinned against the main dispatch switch by a layer-1 test. */
@@ -67,6 +68,8 @@ export interface CliIo {
67
68
  readonly installRunner?: (command: string, cwd: string) => void;
68
69
  /** Fault seam for proving mutation-gate catches and retries thrown runner internals. */
69
70
  readonly mutationGateRunner?: MutationGateRunner;
71
+ /** Read-back fault seam; production uses the real filesystem. */
72
+ readonly journalIo?: JournalIo;
70
73
  }
71
74
  /** Injected subprocess runner used by `dz release` (see {@link CliIo.releaseRunner}). */
72
75
  export type ReleaseExecRunner = (cmd: string, opts: {
@@ -78,6 +81,7 @@ export type ReleaseExecRunner = (cmd: string, opts: {
78
81
  stderr: string;
79
82
  timedOut?: boolean;
80
83
  };
84
+ type Write = (line: string) => void;
81
85
  /**
82
86
  * Команда npm для установки пакета В ЦЕЛЕВОЙ КАТАЛОГ, а не куда решит npm.
83
87
  *
@@ -166,6 +170,12 @@ export declare function __wfKillGroupTestSeam(): {
166
170
  killAll: () => number[];
167
171
  size: () => number;
168
172
  };
173
+ /** Git effects are injected; the core owns eligibility and the explicit apply boundary. */
174
+ export declare function cmdRunsClean(options: Map<string, string>, flags: Set<string>, cwd: string, write: Write, exec?: (command: string, options: {
175
+ cwd: string;
176
+ encoding: 'utf8';
177
+ stdio: ['ignore', 'pipe', 'pipe'];
178
+ }) => string | Buffer): number;
169
179
  export interface ClaudeBridgeRun {
170
180
  stdout: string;
171
181
  stderr: string;
@@ -221,4 +231,5 @@ export declare function runChildBridge(bin: string, argv: string[], opts: {
221
231
  envExtra?: readonly string[];
222
232
  }): Promise<ClaudeBridgeRun>;
223
233
  export declare function runCli(argv: string[], io?: CliIo): Promise<number>;
234
+ export {};
224
235
  //# sourceMappingURL=cli.d.ts.map
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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"}