paqad-ai 1.67.0 → 1.69.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,66 @@
1
1
  # paqad-ai
2
2
 
3
+ ## 1.69.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 09ef89f: Prove "less, better code" with per-change shape metrics (#362).
8
+
9
+ Two deterministic, diff-scoped, zero-model-token numbers are now computed for
10
+ every feature-development change:
11
+
12
+ - **duplication on new code** (`dup_new_pct`) — the % of the change's meaningful
13
+ new lines that near-duplicate existing code, folded from the #358 duplication
14
+ cache.
15
+ - **reuse rate** (`reuse_rate`) — cross-file calls from the change's new code
16
+ into pre-existing, untouched files per 100 changed lines, from the #353
17
+ code-knowledge index.
18
+
19
+ They fold over caches the completion gates already produced (no second scan) and
20
+ surface everywhere the developer already looks: one honest `change shape` line on
21
+ the end-of-change receipt, a metrics block on the feature bundle receipt, a
22
+ `change-metrics` row on the session ledger (which flows into the SIEM export), a
23
+ new **Change Shape** dashboard trend section with bands (green 0–3%, amber
24
+ 3–10%, red >10%), and a new `paqad-ai metrics report` verb that prints the last N
25
+ changes offline. Either metric degrades to `n/a` when its source cache is absent.
26
+ Controlled by the `metrics_enabled` config knob (default on; respects the global
27
+ disable).
28
+
29
+ ## 1.68.0
30
+
31
+ ### Minor Changes
32
+
33
+ - 9f35bb7: Arm the create-vs-reuse decision pause from evidence instead of the agent's
34
+ honesty (#361).
35
+
36
+ The `create-vs-reuse` pause used to fire only when the model volunteered that
37
+ it was at a reuse fork, and the packet's `callers` / `similarity` evidence
38
+ fields were computed by nothing. Now the framework mints that packet itself,
39
+ with the proof filled in, on two deterministic triggers:
40
+
41
+ - **Plan time:** at `plan compile`, each declared `new_constructs[]` entry is
42
+ scored against the code-knowledge index (#353). A name/spec similarity at or
43
+ above `decision_arm_plan_threshold` (default 0.85) opens a `create-vs-reuse`
44
+ packet whose reuse option carries `{ file, last_modified, callers, similarity }`
45
+ and whose create-new option carries the plan's own justification. The
46
+ recommendation is reuse once the existing symbol has at least three callers.
47
+ - **Change time:** a blocking-band duplication finding (#358) opens the same
48
+ packet from the finding, through one shared minter.
49
+
50
+ Both mints go through `paqad-ai decision create` (never hand-authored JSON),
51
+ carry `origin: "evidence-armed"`, and honour a `decision_arm_max_per_change`
52
+ cap (default 1 — only the strongest fork is asked; the rest surface as warnings).
53
+ An identical fork already answered under `.paqad/decisions/resolved/`
54
+ auto-applies that prior answer instead of re-asking and records
55
+ `reused_decision:<id>`. The `ContractDecisionOption` shape gains an optional
56
+ `evidence` field (additive, backward-compatible) so the pause gate and existing
57
+ packets are unaffected.
58
+
59
+ Governed by `decision_arm_mode` (off | warn | strict, team value is a floor):
60
+ `warn` (default) reports the fork without minting; `strict` opens the blocking
61
+ pause; `off` is identical to prior behavior. With the code-knowledge index
62
+ absent, plan-time arming no-ops silently.
63
+
3
64
  ## 1.67.0
4
65
 
5
66
  ### Minor Changes