paqad-ai 1.76.0 → 1.76.2

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/CHANGELOG.md CHANGED
@@ -1,5 +1,49 @@
1
1
  # paqad-ai
2
2
 
3
+ ## 1.76.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 7ce4c34: fix: stop the `Stop says:` narration leak — silence Stop-hook `{systemMessage}` prose
8
+
9
+ Claude Code changed how it renders Stop-hook output: a Stop-hook `{systemMessage}` now renders on Desktop as literal `Stop says:` lines, inverting the premise the #368/#409 narration design was built on (that the channel was invisible, so the agent speaks the receipt and the hook echo is a silent backchannel). With the host inverted, paqad's three Stop-event emitters poured user-facing prose into that channel on every turn, across every onboarded repo and machine — duplicating the receipt the agent already speaks and leaking the model-only narration advisory into the developer's chat.
10
+
11
+ The Stop hooks no longer emit user-facing `{systemMessage}` prose:
12
+
13
+ - `runtime/scripts/verify-backstop.mjs` (`hook-completion`): writes nothing on a pass/inconclusive turn and only a model-only `{decision:'block'}` reason on a hard failure. Enforcement is unchanged — the block reason reaches the model (never rendered on either host) and the git/CI backstop still hard-fails with exit 2.
14
+ - `runtime/hooks/capability-gate.mjs` (`completion` seam): no longer echoes narration on the allow path; the `pre-mutation` (PreToolUse) seam is unchanged.
15
+ - `runtime/hooks/stage-marker-parse.mjs`: still records every parsed marker to the ledger; only the chat echo is removed.
16
+
17
+ The developer-facing channel is the agent's own final message (the #409 contract), which was always the intended primary channel. The narration contract docs and the verification module doc are corrected to state the new host behavior. Decision `D-01KZV9HFGDXZ03J0S6P9BTQ53Q` records the approach.
18
+
19
+ ## 1.76.1
20
+
21
+ ### Patch Changes
22
+
23
+ - 721b434: feat(#468): Phase C — writer cutover, retire the old evidence paths, add a warn-only existence gate
24
+
25
+ Third and final PR of the #339/#468 evidence-in-bundle cutover — the only phase that changes the on-disk layout, now that both writers (Phase A) and readers (Phase B) are proven.
26
+
27
+ - RAG (the deferred piece): the `runtime/scripts/rag-evidence-record.mjs` prompt seam and the TS recorder now write retrieval rows to the two-home `rag.jsonl` (the active feature's bundle, else `_chat/<session>/`), with the conversation ordinal re-homed to `_chat/<session>/`; the retired `paqad.rag-evidence/` substrate is gone. `foldRagEvidenceSession` reads `_chat` + the bundle projection (`readAllFeatureRag`) filtered by session.
28
+ - Writer cutover: the completion seam stops the old-home writes — the `rule-evidence` project ledger, the top-level `evidence.jsonl` / `receipts.jsonl` / `receipt.dsse.json` / `ai-bom.json`, and the duplication/change-metrics project ledgers — keeping every engine cache (`report.json`, `drift.json`, `duplication.json`) and the per-feature bundle receipt/evidence. The reproducibility context stamp moves to `.paqad/session/context-stamp.json`. `src/rule-scripts/rule-ledger.ts` is retired.
29
+ - Existence gate: a new `evidence_existence_gate=off|warn` knob (default `warn`, no exit-blocking tier) verifies the bundle's `rule-run.jsonl` / `duplication.jsonl` / `change-metrics.jsonl` / `rag.jsonl` exist backfill-first — minting the recoverable three deterministically from the caches (marked `backfilled: true`), and reporting an unrecoverable RAG absence as Inconclusive. Flag-aware: a flag-off / RAG-dark / copy-only / non-feature-dev change reads skipped, never a hard block. The gate runs at the completion backstop alongside the #394 plan/spec/review assertions and can only surface (pass/skipped/inconclusive), never fail.
30
+
31
+ - 721b434: Evidence-in-bundle cutover, Phase B (#468): re-point every evidence reader off the retired
32
+ session-ledger and top-level homes and onto the per-feature bundle projections. The Rule
33
+ Compliance collector reads findings from the bundle `rule-run.jsonl` (latest by `ts`) and
34
+ drift live from the `.cache/drift.json`; the Change Shape collector and `metrics report`
35
+ read the ts-sorted window of the bundle `change-metrics.jsonl`; the SIEM `audit export`
36
+ aggregate unions the bundle projections and projects attestation/evidence from per-feature
37
+ receipts; and the Trust panel (evidence feed, receipt feed, AI-BOM, attestation,
38
+ onboarding, inventory) projects from the bundle union via `projectAiBomFromFeatures` and new
39
+ per-feature receipt readers. The per-feature receipt now additionally carries the
40
+ authorship/compliance/reproducibility predicates the attestation surfaces read, so a bundle
41
+ receipt is a complete attestation record. The RAG session fold stays on the substrate in
42
+ this phase: its re-point is coupled to the prompt-seam writer and moves with it in Phase C.
43
+ No old-home write is removed and no path is retired — every old-home write still fires, so
44
+ rollback is a single revert. Phase C removes the old writes and adds the existence gates.
45
+ - 9ff0f23: Evidence-in-bundle cutover, Phase A (#468): add additive per-feature bundle writers for duplication counts (`duplication.jsonl`), change-metrics ratios (`change-metrics.jsonl`), and the graded gate rows (`evidence.jsonl`), plus their whole-project projections. Every existing project/session-scoped write is left untouched — this is a dual-write parity window, not a cutover. A parity test asserts the new bundle rows agree with the old-home rows for a real feature-development change. No reader is re-pointed and no path is retired yet (Phases B and C).
46
+
3
47
  ## 1.76.0
4
48
 
5
49
  ### Minor Changes