@journeykit/canon 0.24.0 → 0.24.1

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.
@@ -223,8 +223,11 @@ accepted divergences: 1 known gap(s) — not failing the gate:
223
223
  Re-verification is one rule with two triggers: a blocker whose latest
224
224
  disposition is `fixed`, and a chore change once approved, keep the subject
225
225
  from shipping until every one of its evidenced scenarios has evidence
226
- recorded after the close or the approval. The refusal names the scenarios
227
- and the batch command: `canon evidence add --project-id <root-id>
226
+ recorded after the close or the approval. A blocker that names its
227
+ scenarios (`finding add --scenario-id`) asks only those, and the refusal
228
+ names them with the per-scenario command (`canon evidence add --project-id
229
+ <root-id> --scenario-id <id> --report <format>:<path> …`). Otherwise the
230
+ refusal names the scenarios and the batch command: `canon evidence add --project-id <root-id>
228
231
  --all-scenarios --report <format>:<path> --kind test-run --role
229
232
  implementer --ref "<test command>" …`. Reviews pin what the evidence says
230
233
  (its verdict and the identity of its checks), not which record it is, so
@@ -70,11 +70,17 @@ work collapsed into one identity.
70
70
  canon finding add --change-id <c> --round <n> --seq <n> \
71
71
  --severity blocker|should-fix|note --disposition open \
72
72
  --reviewer <who> --summary "<one line>" \
73
- [--reviewed-sha <sha>] [--file-ref path/to/file.rs:120-134] [--actor-id <id>] [--session-id <id>]
73
+ [--reviewed-sha <sha>] [--file-ref path/to/file.rs:120-134] [--scenario-id <id> …] [--actor-id <id>] [--session-id <id>]
74
74
  canon finding close --change-id <c> --round <n> --seq <n> \
75
75
  --disposition fixed --resolution-sha <sha> [--session-id <id>] # or rejected / deferred / open
76
76
  ```
77
77
 
78
+ `--scenario-id` (repeatable, each a scenario the index knows; refused with
79
+ `FINDING_UNKNOWN_SCENARIO` otherwise) names the scenarios the finding is
80
+ about. After a `fixed` close, fresh evidence for those scenarios alone
81
+ re-verifies the fix; a finding naming none asks every evidenced scenario of
82
+ the subject, as before. `finding close` copies the list.
83
+
78
84
  Both stage a candidate. Under `write: { promote: auto }` (what
79
85
  `canon init` writes) the same run promotes it and the success line names
80
86
  the committed record (``wrote kind=finding/… — staged and promoted in this
@@ -12,7 +12,7 @@ a `specs.roots[]` entry in `canon.yaml` (`root` by default).
12
12
  ```bash
13
13
  canon brief check --change-id <slug> --as reviewer --json
14
14
  canon gate check --as reviewer --json # once, before review add
15
- canon finding add --change-id <slug> --round <n> --seq <n> --severity <blocker|should-fix|note> --reviewer <me> --actor-id <me> --session-id <session> --summary "<defect>" --as reviewer --json
15
+ canon finding add --change-id <slug> --round <n> --seq <n> --severity <blocker|should-fix|note> --reviewer <me> --actor-id <me> --session-id <session> --summary "<defect>" --scenario-id <id> --scenario-id <id> --as reviewer --json # one --scenario-id per scenario the defect is about
16
16
  canon finding list --change-id <slug> --open --as reviewer --json
17
17
  canon finding close --change-id <slug> --round <n> --seq <n> --disposition fixed --resolution-sha <sha> --as reviewer --json
18
18
  canon review add --project-id <root-id> --scenario-id <id> --scenario-id <id> --reviewer <me> --actor-id <me> --role reviewer --session-id <session> --pin <sha> --upstream-ref <ref> --as reviewer --json
@@ -97,8 +97,12 @@ ship guard and stays listed as `accepted-divergence` in `status` and
97
97
  - Sign off in one batch with `review add`, all or nothing. It writes
98
98
  directly; nothing to promote. canon stores and re-checks attached bytes
99
99
  and never compares images.
100
- - A blocker you close `fixed` stays blocking until the implementer records
101
- the whole suite again (`evidence add --all-scenarios`); your pinned review
100
+ - Pass `--scenario-id` for each scenario a finding is about. A blocker you
101
+ close `fixed` then stays blocking until the implementer records evidence
102
+ again for those scenarios alone (`evidence add --scenario-id <id> …`); the
103
+ close inherits the list. A blocker naming no scenario asks for the whole
104
+ suite again (`evidence add --all-scenarios`), which on a big suite is
105
+ a long e2e run for a one-scenario fix, so name them. Your pinned review
102
106
  stays current when the new evidence says the same, otherwise look again.
103
107
  - Fixes you ask for return as a re-review of the same change. When new
104
108
  evidence changes a verdict or the checks and so stales your review, look
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@journeykit/canon",
3
- "version": "0.24.0",
3
+ "version": "0.24.1",
4
4
  "description": "canon — harness knowledge substrate. JS launcher: platform detection + native binary resolution.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -30,9 +30,9 @@
30
30
  },
31
31
  "dependencies": {},
32
32
  "optionalDependencies": {
33
- "@journeykit/canon-core-darwin-arm64": "0.24.0",
34
- "@journeykit/canon-core-linux-x64": "0.24.0",
35
- "@journeykit/canon-core-win32-x64": "0.24.0"
33
+ "@journeykit/canon-core-darwin-arm64": "0.24.1",
34
+ "@journeykit/canon-core-linux-x64": "0.24.1",
35
+ "@journeykit/canon-core-win32-x64": "0.24.1"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@types/node": "^20.0.0",