paqad-ai 1.63.1 → 1.63.3
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 +54 -0
- package/dist/cli/index.js +1106 -944
- package/dist/cli/index.js.map +1 -1
- package/dist/feature-evidence/adoption.d.ts +64 -0
- package/dist/feature-evidence/adoption.js +537 -0
- package/dist/feature-evidence/adoption.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.js +987 -827
- package/dist/index.js.map +1 -1
- package/dist/kernel/gate.js +203 -72
- package/dist/kernel/gate.js.map +1 -1
- package/dist/rule-scripts/index.js +216 -63
- package/dist/rule-scripts/index.js.map +1 -1
- package/dist/stage-evidence/live-writer.js +214 -81
- package/dist/stage-evidence/live-writer.js.map +1 -1
- package/dist/stage-evidence/marker-parse.js +227 -98
- package/dist/stage-evidence/marker-parse.js.map +1 -1
- package/dist/stage-evidence/narration.js +144 -17
- package/dist/stage-evidence/narration.js.map +1 -1
- package/package.json +4 -4
- package/runtime/base/agents/requirement-analyst.md +2 -0
- package/runtime/hooks/agent-entry-session-start.mjs +10 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,59 @@
|
|
|
1
1
|
# paqad-ai
|
|
2
2
|
|
|
3
|
+
## 1.63.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- eb1fa9a: fix(#401): spec freeze now runs the spec-quality review it always claimed to require
|
|
8
|
+
|
|
9
|
+
`paqad-ai spec freeze` told you, in both the rule pack and the workflow contract, that
|
|
10
|
+
freezing enforces "no critical spec-review defects". It never did: the CLI evaluated the
|
|
11
|
+
freeze with no review attached, so that clause was enforced nowhere. Agents closed the gap by
|
|
12
|
+
hand-running `compliance review`, which left a stray `.paqad/compliance/<slug>/spec-review.json`
|
|
13
|
+
behind that was neither part of the change's evidence bundle nor git-ignored.
|
|
14
|
+
|
|
15
|
+
Freeze now runs the review itself and blocks on a critical defect like any other blocker, so
|
|
16
|
+
there is no second command to run and no stray artifact. On a clean freeze the defect summary
|
|
17
|
+
is folded into the bundle's `specification.json`, so the review evidence travels with the spec
|
|
18
|
+
of record. Non-critical findings never block.
|
|
19
|
+
|
|
20
|
+
Two related fixes: `spec freeze` and `compliance review` now reject a spec file that resolves
|
|
21
|
+
outside the project root and record `spec_file` as a project-relative posix path, and the
|
|
22
|
+
managed `.paqad/.gitignore` covers `compliance/` so a compliance artifact can never surface as
|
|
23
|
+
an untracked, committable file.
|
|
24
|
+
|
|
25
|
+
## 1.63.2
|
|
26
|
+
|
|
27
|
+
### Patch Changes
|
|
28
|
+
|
|
29
|
+
- 462e891: Keep one change in one evidence bundle when the session id rotates mid-change (#404).
|
|
30
|
+
|
|
31
|
+
The active feature is tracked per session, so when the host session id rotated partway
|
|
32
|
+
through a change — an app relaunch, a resumed conversation, a rotated `SE_SESSION` — the
|
|
33
|
+
new session read a fresh control, found nothing active, and minted a second
|
|
34
|
+
`change-<ULID>`. The bundle the change was already recorded in got orphaned, and the
|
|
35
|
+
stages recorded before the rotation had to be re-recorded by hand.
|
|
36
|
+
|
|
37
|
+
A session's control is now reconciled before anything mints: when its active pointer
|
|
38
|
+
names no evidence, it is repointed at the in-flight bundle **for the current branch**.
|
|
39
|
+
This runs on both the write and the read paths, and from the SessionStart hook so a
|
|
40
|
+
rotation is carried over before the agent records anything. It never mints a bundle,
|
|
41
|
+
never adopts when two or more changes are in flight on the branch, and never resumes a
|
|
42
|
+
feature the session paused.
|
|
43
|
+
|
|
44
|
+
The branch is what makes this usable. "In flight" alone means real stage rows and no
|
|
45
|
+
close row, and that set only grows — an abandoned change and a change shipped without a
|
|
46
|
+
passing verdict never get a close row either, so a real repo accumulates them (this one
|
|
47
|
+
held 13). Scoped that way, an "exactly one in flight" rule could never fire. A session id
|
|
48
|
+
rotates within a change and a change is built on one branch, so the branch identifies the
|
|
49
|
+
rotated session's own work, with no clock heuristic and no tunable window. The branch is
|
|
50
|
+
stamped on the bundle's `open` row and falls back to the branch `delivery.json` already
|
|
51
|
+
recorded; a bundle with no knowable branch is never adopted while on one.
|
|
52
|
+
|
|
53
|
+
`closeActiveFeature` also stamps a `close` row on the bundle now. Releasing one session's
|
|
54
|
+
pointer was previously the only record that a change had finished, which no other session
|
|
55
|
+
could see — so adoption would have resurrected it.
|
|
56
|
+
|
|
3
57
|
## 1.63.1
|
|
4
58
|
|
|
5
59
|
### Patch Changes
|