@surlymochan/evalid 0.5.12 → 0.5.14

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
@@ -5,6 +5,25 @@ All notable changes to this project are documented here. Detailed notes live in
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.5.14] - 2026-11-09
9
+
10
+ ### Added
11
+ - **PR comment ledger (#75)**: the proof-ledger workflow now posts the claim-vs-evidence ledger as a PR comment (`action/ledger-comment.mjs`, `.github/workflows/proof-ledger.yml`). A green proof gets a ✅ comment naming the verified change; a tampered proof fails the `ledger` check and gets a ❌ comment naming the exact break point, so a replay mismatch can no longer pass CI silently. Test evidence: 18 new tests in `test/github-action-ledger-comment.test.js` 18/18 pass; local full `npm test` 464 tests / 463 pass / 0 fail / 1 skipped (pre-existing); PR CI run 42505482112 success.
12
+
13
+ Milestone M1 "GitHub Action end-to-end" acceptance evidence (issue #73, comment 6724800077): ① green path — PR #75 merged af88e2da, proof-ledger run 42505482067 success, ✅ ledger comment 6724656930; ② red path — demo PR #76 (closed unmerged by plan) turned the `ledger` check red (run 42505769769) and the ❌ comment 6724768829 names the break point `green_tree_mismatch: test/demo-tamper.test.js`; ③ CI replay and local replay agree on both verdicts (`valid` green, `green_tree_mismatch` tampered) through the same validator entry.
14
+
15
+ Acceptance debt, stated plainly: the bench-number acceptance for P1-2 / P1-3 / P2-1 / P2-3 still awaits the MiniMax full-matrix batch (15 instances × 4 arms × reps 3), which is stopped on MiniMax Token Plan quota exhaustion. No bench numbers are claimed in this release.
16
+
17
+ ## [0.5.13] - 2026-11-09
18
+
19
+ ### Added
20
+ - **Proof-seal verification GitHub Action (#71)**: new JavaScript action (`action.yml`, node22) that runs the existing i6b seal validator for one change-id/phase/attempt and exits non-zero unless the seal verifies and the clean replay matches the claim. Inputs: change-id, phase, attempt, project-root, tdd-mode; outputs: ok, verdict. Test evidence: 6 new tests in `test/github-action-verify-proof.test.js` (valid sealed green proof verifies; tampered proof fails with `binding_mismatch`; test drift after the seal fails with `green_tree_mismatch`; missing proof fails with `missing`; CLI entry exit 0/1; action.yml declares inputs and entry) 6/6 pass; RED→GREEN verified (`ERR_MODULE_NOT_FOUND` before the entry existed); PR CI run 42494536803 success.
21
+
22
+ ### Changed
23
+ - **Removed dead phase-run-dispatch atom wrapper (#68)**: `src/agent_team/atoms/phase-run-dispatch.js` had zero callers — repo-wide grep finds only its own definition site, it is absent from `atoms/registry.json` and from the public `src/index.js` surface, and registry entry `I2.phase_run.dispatch` points elsewhere. No runtime behaviour changed. Test evidence: local full `npm test` 440 tests / 439 pass / 0 fail / 1 skipped (pre-existing); PR CI run 42483989723 verify pass.
24
+
25
+ Acceptance debt, stated plainly: the bench-number acceptance for P1-2 / P1-3 / P2-1 / P2-3 still awaits the MiniMax full-matrix batch (15 instances × 4 arms × reps 3), which is stopped on MiniMax Token Plan quota exhaustion. No bench numbers are claimed in this release.
26
+
8
27
  ## [0.5.12] - 2026-11-08
9
28
 
10
29
  ### Added
package/README.md CHANGED
@@ -149,6 +149,67 @@ node bin/xflow.js compare codex-goal
149
149
  node bin/xflow.js launch copy
150
150
  ```
151
151
 
152
+ ## GitHub Action: verify proofs in CI
153
+
154
+ evalid ships as a GitHub Action (`action.yml` at the repo root). Add it to a
155
+ workflow to verify a sealed TDD proof on every PR: a valid proof keeps the
156
+ check green, a broken seal (or a test edited after the seal) turns it red —
157
+ and the claim-vs-evidence ledger is posted as a PR comment either way, so
158
+ the reviewer sees the claim next to the replay evidence without opening
159
+ the workflow log.
160
+
161
+ ```yaml
162
+ name: Proof ledger
163
+ on:
164
+ pull_request:
165
+ types: [opened, synchronize, reopened]
166
+ permissions:
167
+ contents: read
168
+ pull-requests: write
169
+ jobs:
170
+ ledger:
171
+ runs-on: ubuntu-24.04
172
+ steps:
173
+ - uses: actions/checkout@v7.0.1
174
+ with:
175
+ fetch-depth: 0 # replay materializes files from the recorded HEAD
176
+ - uses: actions/setup-node@v7.1.0
177
+ with:
178
+ node-version: '22'
179
+ - uses: surlymochan/evalid@main # or a release tag (see CHANGELOG)
180
+ with:
181
+ change-id: my-change
182
+ phase: green
183
+ github-token: ${{ secrets.GITHUB_TOKEN }}
184
+ ```
185
+
186
+ Inputs: `change-id` (required), `phase` (`green`, default), `attempt` (`0`,
187
+ default), `project-root` (`.`, default), `tdd-mode` (auto-detect, default),
188
+ `post-comment` (`true`, default — set `false` to skip the comment),
189
+ `github-token` (defaults to `$GITHUB_TOKEN`), `pr-number` (auto-detects
190
+ from the event payload or ref when empty).
191
+
192
+ The comment is upserted on a stable marker
193
+ (`<!-- evalid-ledger: <change-id>/<phase>/<attempt> -->`), so re-runs
194
+ update the same comment instead of posting a new one per push. A failed
195
+ comment post never masks the verdict: the step still exits on the proof
196
+ result, and `comment_posted` / `comment_url` are exposed as outputs.
197
+ The check fails (exit 1) on `binding_mismatch`, `snapshot_mismatch`,
198
+ `green_tree_mismatch`, replay mismatches, or a missing proof; the comment
199
+ names the breakage point (for example the test files that drifted after
200
+ the seal).
201
+
202
+ Local equivalent of the CI replay — same validator, same entry:
203
+
204
+ ```bash
205
+ node action/verify-proof.mjs --project-root . --change-id my-change --phase green
206
+ ```
207
+
208
+ This repo dogfoods the Action on its own PRs via
209
+ `.github/workflows/proof-ledger.yml`: it discovers every sealed proof
210
+ added or changed by the PR (`specs/changes/*/tdd/*.json`) and verifies
211
+ each one.
212
+
152
213
  ## Commands
153
214
 
154
215
  The installed binary is `xflow` (`npm install -g evalid` installs the `xflow` CLI). Every
package/RELEASE_NOTES.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # Release Notes
2
2
 
3
+ ## 0.5.14 - PR comment ledger (milestone M1 accepted)
4
+
5
+ Patch release. One new feature since 0.5.13, verified end to end in CI and locally.
6
+
7
+ **PR comment ledger (#75).** The proof-ledger workflow now posts the claim-vs-evidence ledger as a PR comment: a green proof gets a ✅ comment on the PR, and a tampered proof fails the `ledger` check and gets a ❌ comment naming the exact break point, so a replay mismatch can no longer pass CI silently. Test evidence: 18 new tests in `test/github-action-ledger-comment.test.js` 18/18 pass; local full `npm test` 464 tests / 463 pass / 0 fail / 1 skipped (pre-existing); PR CI run 42505482112 success.
8
+
9
+ **Milestone M1 "GitHub Action end-to-end" — accepted.** Evidence in issue #73, comment 6724800077: ① green path — PR #75 merged (af88e2da), proof-ledger run 42505482067 success, ✅ ledger comment 6724656930; ② red path — demo PR #76 (closed unmerged by plan) turned the `ledger` check red (run 42505769769) and the ❌ comment 6724768829 names the break point `green_tree_mismatch: test/demo-tamper.test.js`; ③ CI replay and local replay agree on both verdicts (`valid` green, `green_tree_mismatch` tampered) through the same validator entry.
10
+
11
+ Acceptance debt, stated plainly: the bench-number acceptance for P1-2, P1-3, P2-1 and P2-3 — the wall-clock/token/resolved lines from issue #5 — still awaits the MiniMax full-matrix batch (15 instances × 4 arms × reps 3), which is stopped on MiniMax Token Plan quota exhaustion. No bench numbers are claimed in this release.
12
+
13
+ ## 0.5.13 - Proof-seal verification action
14
+
15
+ Patch release. One new feature and one dead-code removal since 0.5.12, both verified by the test suite.
16
+
17
+ **Proof-seal verification GitHub Action (#71).** A new JavaScript GitHub Action (`action.yml`, node22) runs the existing i6b seal validator for one change-id/phase/attempt and fails the check unless the seal verifies and the clean replay matches the claim, so a replay mismatch can no longer pass CI silently. Test evidence: 6 new tests in `test/github-action-verify-proof.test.js` 6/6 pass (valid sealed green proof verifies; tampered proof fails with `binding_mismatch`; test drift after the seal fails with `green_tree_mismatch`; missing proof fails with `missing`; CLI entry exit 0/1; action.yml declares inputs and entry); RED→GREEN verified; PR CI run 42494536803 success.
18
+
19
+ **Removed dead phase-run-dispatch atom wrapper (#68).** `src/agent_team/atoms/phase-run-dispatch.js` had zero callers and is absent from the atom registry and the public surface, so the wrapper is gone with no behaviour change. Test evidence: local full `npm test` 440 tests / 439 pass / 0 fail / 1 skipped (pre-existing); PR CI run 42483989723 verify pass.
20
+
21
+ Acceptance debt, stated plainly: the bench-number acceptance for P1-2, P1-3, P2-1 and P2-3 — the wall-clock/token/resolved lines from issue #5 — still awaits the MiniMax full-matrix batch (15 instances × 4 arms × reps 3), which is stopped on MiniMax Token Plan quota exhaustion. No bench numbers are claimed in this release.
22
+
3
23
  ## 0.5.12 - Policy resolve atom test coverage
4
24
 
5
25
  Patch release. One test-coverage addition since 0.5.11, verified by the full test suite. No runtime behaviour changed.
@@ -1,6 +1,6 @@
1
1
  # evalid Launch Dossier
2
2
 
3
- Generated: 2026-11-08T01:34:24.683Z
3
+ Generated: 2026-11-09T01:50:00.000Z
4
4
  Mode: post_publish
5
5
  Verdict: conditionally ready: engine and adoption evidence are strong, registry publication remains required for a splash launch
6
6
  Launch ready: not yet
@@ -117,7 +117,7 @@ Evidence:
117
117
  - Adoption records: 1; status: pass
118
118
  - Goal audit: pass; goal: Keep evalid credible as an open-source agent delivery runtime: repo-owned workflow contracts, executable verification gates, durable project context, and honest benchmark evidence.
119
119
  - Package evidence: missing; source: registry_json
120
- - Package name/version: @surlymochan/evalid@0.5.12
120
+ - Package name/version: @surlymochan/evalid@0.5.14
121
121
 
122
122
  ## Passing Evidence
123
123
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@surlymochan/evalid",
3
- "version": "0.5.12",
3
+ "version": "0.5.14",
4
4
  "description": "Claimed != verified: a runtime verification layer for coding agents. It seals each test run and replays it from a clean snapshot, with a zero-judge gate pipeline (spec clarification, code review, TDD proof) and the xflow CLI.",
5
5
  "keywords": [
6
6
  "ai-agents",
@@ -1,8 +0,0 @@
1
- import { synthesizePhaseArtifact } from '../common.js';
2
-
3
- export async function phaseRunDispatch(input = {}, context = {}) {
4
- return synthesizePhaseArtifact(input, context, {
5
- phase: input.phase || context.phase?.id || 'execute',
6
- summary: 'Phase-run dispatch completed and execution evidence was recorded.',
7
- });
8
- }