vdelta 0.1.0 → 0.1.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.
package/dist/schema.js CHANGED
@@ -5,9 +5,23 @@
5
5
  * backward-compatibility scaffolding.
6
6
  */
7
7
  export const SCHEMA_VERSION = 'veridelta/1';
8
- export const VERDICTS = ['pass', 'fail', 'error', 'skip', 'xfail', 'xpass', 'not_run'];
8
+ export const VERDICTS = [
9
+ 'pass',
10
+ 'fail',
11
+ 'error',
12
+ 'skip',
13
+ 'xfail',
14
+ 'xpass',
15
+ 'not_run',
16
+ ];
9
17
  export const RED_SET = ['fail', 'error'];
10
- export const COMPARABILITIES = ['exact', 'scope_changed', 'subset', 'partial', 'none'];
18
+ export const COMPARABILITIES = [
19
+ 'exact',
20
+ 'scope_changed',
21
+ 'subset',
22
+ 'partial',
23
+ 'none',
24
+ ];
11
25
  export const NONE_REASONS = [
12
26
  'baseline-missing',
13
27
  'stream-mismatch',
@@ -18,8 +32,29 @@ export const NONE_REASONS = [
18
32
  'record-integrity-failed',
19
33
  ];
20
34
  export const DETAIL_KINDS = ['determined', 'failed'];
21
- export const OUTCOME_VERDICTS = ['regressed', 'improved', 'unchanged', 'inconclusive'];
22
- export const SURFACE_STATUSES = ['intact', 'changed', 'reduced', 'inconclusive'];
35
+ export const STREAM_KEY_FIELDS = [
36
+ 'repo.identity',
37
+ 'repo.worktree',
38
+ 'repo.branch',
39
+ 'repo.cwd',
40
+ 'invocation.command',
41
+ 'invocation.selector',
42
+ 'instrument.adapter',
43
+ 'instrument.adapter_version',
44
+ 'instrument.config_digest',
45
+ ];
46
+ export const OUTCOME_VERDICTS = [
47
+ 'regressed',
48
+ 'improved',
49
+ 'unchanged',
50
+ 'inconclusive',
51
+ ];
52
+ export const SURFACE_STATUSES = [
53
+ 'intact',
54
+ 'changed',
55
+ 'reduced',
56
+ 'inconclusive',
57
+ ];
23
58
  export const SURFACE_EVENT_KINDS = [
24
59
  'test-added',
25
60
  'test-removed',
@@ -40,7 +75,11 @@ export const BASELINE_MODES = [
40
75
  'previous-superset',
41
76
  ];
42
77
  export const COMPLETENESS_STATUSES = ['complete', 'partial', 'crashed'];
43
- export const RECORD_INTEGRITIES = ['advisory', 'tamper-evident', 'trusted-environment'];
78
+ export const RECORD_INTEGRITIES = [
79
+ 'advisory',
80
+ 'tamper-evident',
81
+ 'trusted-environment',
82
+ ];
44
83
  export const GATE_POLICIES = ['report-only', 'advisory', 'blocking'];
45
84
  export const GATE_VERDICTS = ['pass', 'fail', 'inconclusive'];
46
85
  export const GATE_TARGET_KINDS = ['head', 'merge'];
@@ -116,6 +155,22 @@ function validateStringMap(v, path) {
116
155
  for (const [k, val] of Object.entries(o))
117
156
  asString(val, `${path}.${k}`);
118
157
  }
158
+ function validateNearMiss(v, path) {
159
+ const o = asObject(v, path);
160
+ checkKeys(o, path, ['run_id', 'mismatches']);
161
+ asString(o.run_id, `${path}.run_id`);
162
+ if (!Array.isArray(o.mismatches))
163
+ fail(`${path}.mismatches`, 'expected array');
164
+ if (o.mismatches.length === 0)
165
+ fail(`${path}.mismatches`, 'expected non-empty array');
166
+ o.mismatches.forEach((m, i) => {
167
+ const mo = asObject(m, `${path}.mismatches[${i}]`);
168
+ checkKeys(mo, `${path}.mismatches[${i}]`, ['field', 'recorded', 'current']);
169
+ asEnum(mo.field, STREAM_KEY_FIELDS, `${path}.mismatches[${i}].field`);
170
+ asString(mo.recorded, `${path}.mismatches[${i}].recorded`);
171
+ asString(mo.current, `${path}.mismatches[${i}].current`);
172
+ });
173
+ }
119
174
  function validateStillFailEntry(v, path) {
120
175
  if (typeof v === 'string')
121
176
  return;
@@ -129,7 +184,12 @@ function validateStillFailEntry(v, path) {
129
184
  }
130
185
  function validateUpdatedFailEntry(v, path) {
131
186
  const o = asObject(v, path);
132
- checkKeys(o, path, ['test_id', 'evidence_digest_before', 'evidence_digest_after', 'failure_mode_changed'], ['degraded_capabilities']);
187
+ checkKeys(o, path, [
188
+ 'test_id',
189
+ 'evidence_digest_before',
190
+ 'evidence_digest_after',
191
+ 'failure_mode_changed',
192
+ ], ['degraded_capabilities']);
133
193
  asString(o.test_id, `${path}.test_id`);
134
194
  asString(o.evidence_digest_before, `${path}.evidence_digest_before`);
135
195
  asString(o.evidence_digest_after, `${path}.evidence_digest_after`);
@@ -157,13 +217,19 @@ function validateTransitions(v, path) {
157
217
  if (!Array.isArray(arr))
158
218
  fail(`${path}.${key}`, 'expected array');
159
219
  if (key === 'still_fail_unchanged') {
160
- arr.forEach((e, i) => validateStillFailEntry(e, `${path}.${key}[${i}]`));
220
+ arr.forEach((e, i) => {
221
+ validateStillFailEntry(e, `${path}.${key}[${i}]`);
222
+ });
161
223
  }
162
224
  else if (key === 'updated_fail') {
163
- arr.forEach((e, i) => validateUpdatedFailEntry(e, `${path}.${key}[${i}]`));
225
+ arr.forEach((e, i) => {
226
+ validateUpdatedFailEntry(e, `${path}.${key}[${i}]`);
227
+ });
164
228
  }
165
229
  else {
166
- arr.forEach((e, i) => asString(e, `${path}.${key}[${i}]`));
230
+ arr.forEach((e, i) => {
231
+ asString(e, `${path}.${key}[${i}]`);
232
+ });
167
233
  }
168
234
  }
169
235
  }
@@ -178,7 +244,14 @@ function validateSurfaceEvent(v, path) {
178
244
  }
179
245
  function validateGate(v, path) {
180
246
  const o = asObject(v, path);
181
- checkKeys(o, path, ['policy', 'verdict', 'triggered', 'target', 'staleness', 'record_integrity']);
247
+ checkKeys(o, path, [
248
+ 'policy',
249
+ 'verdict',
250
+ 'triggered',
251
+ 'target',
252
+ 'staleness',
253
+ 'record_integrity',
254
+ ]);
182
255
  asEnum(o.policy, GATE_POLICIES, `${path}.policy`);
183
256
  asEnum(o.verdict, GATE_VERDICTS, `${path}.verdict`);
184
257
  asStringArray(o.triggered, `${path}.triggered`);
@@ -253,9 +326,11 @@ export function parseReport(value) {
253
326
  asString(cov.baseline, 'report.observation_coverage.baseline');
254
327
  if ('comparability_detail' in o) {
255
328
  const d = asObject(o.comparability_detail, 'report.comparability_detail');
256
- checkKeys(d, 'report.comparability_detail', ['reason', 'kind']);
329
+ checkKeys(d, 'report.comparability_detail', ['reason', 'kind'], ['near_miss']);
257
330
  asEnum(d.reason, NONE_REASONS, 'report.comparability_detail.reason');
258
331
  asEnum(d.kind, DETAIL_KINDS, 'report.comparability_detail.kind');
332
+ if ('near_miss' in d)
333
+ validateNearMiss(d.near_miss, 'report.comparability_detail.near_miss');
259
334
  }
260
335
  else if (comparability === 'none') {
261
336
  fail('report.comparability_detail', 'required when comparability is "none" (§6.3)');
@@ -266,12 +341,17 @@ export function parseReport(value) {
266
341
  asEnum(s.status, SURFACE_STATUSES, 'report.verification_surface.status');
267
342
  if (!Array.isArray(s.events))
268
343
  fail('report.verification_surface.events', 'expected array');
269
- s.events.forEach((e, i) => validateSurfaceEvent(e, `report.verification_surface.events[${i}]`));
344
+ s.events.forEach((e, i) => {
345
+ validateSurfaceEvent(e, `report.verification_surface.events[${i}]`);
346
+ });
270
347
  }
271
348
  if ('transitions' in o)
272
349
  validateTransitions(o.transitions, 'report.transitions');
273
350
  const fe = asObject(o.failure_evidence, 'report.failure_evidence');
274
- checkKeys(fe, 'report.failure_evidence', ['composition_id', 'degraded_capabilities']);
351
+ checkKeys(fe, 'report.failure_evidence', [
352
+ 'composition_id',
353
+ 'degraded_capabilities',
354
+ ]);
275
355
  asString(fe.composition_id, 'report.failure_evidence.composition_id');
276
356
  asStringArray(fe.degraded_capabilities, 'report.failure_evidence.degraded_capabilities');
277
357
  const trust = asObject(o.trust, 'report.trust');
@@ -292,7 +372,13 @@ export function parseReport(value) {
292
372
  }
293
373
  function validateFinding(v, path) {
294
374
  const o = asObject(v, path);
295
- checkKeys(o, path, ['evidence_digest', 'structural_fingerprint', 'evidence', 'context_digest', 'annex']);
375
+ checkKeys(o, path, [
376
+ 'evidence_digest',
377
+ 'structural_fingerprint',
378
+ 'evidence',
379
+ 'context_digest',
380
+ 'annex',
381
+ ]);
296
382
  asString(o.evidence_digest, `${path}.evidence_digest`);
297
383
  asString(o.structural_fingerprint, `${path}.structural_fingerprint`);
298
384
  const ev = asObject(o.evidence, `${path}.evidence`);
@@ -306,7 +392,9 @@ function validateFinding(v, path) {
306
392
  asString(eo.message, `${path}.evidence.errors[${i}].message`);
307
393
  if (!Array.isArray(eo.rel_offsets))
308
394
  fail(`${path}.evidence.errors[${i}].rel_offsets`, 'expected array');
309
- eo.rel_offsets.forEach((n, j) => asInteger(n, `${path}.evidence.errors[${i}].rel_offsets[${j}]`));
395
+ eo.rel_offsets.forEach((n, j) => {
396
+ asInteger(n, `${path}.evidence.errors[${i}].rel_offsets[${j}]`);
397
+ });
310
398
  });
311
399
  asString(o.context_digest, `${path}.context_digest`);
312
400
  const annex = asObject(o.annex, `${path}.annex`);
@@ -339,16 +427,36 @@ export function parseRunRecord(value) {
339
427
  asStringArray(invocation.command, 'record.invocation.command');
340
428
  asStringArray(invocation.selector, 'record.invocation.selector');
341
429
  const instrument = asObject(o.instrument, 'record.instrument');
342
- checkKeys(instrument, 'record.instrument', ['adapter', 'adapter_version', 'composition_id', 'config_digest']);
430
+ checkKeys(instrument, 'record.instrument', [
431
+ 'adapter',
432
+ 'adapter_version',
433
+ 'composition_id',
434
+ 'config_digest',
435
+ ]);
343
436
  const environment = asObject(o.environment, 'record.environment');
344
- checkKeys(environment, 'record.environment', ['runner', 'runner_version', 'runtime', 'os', 'env_fingerprint']);
437
+ checkKeys(environment, 'record.environment', [
438
+ 'runner',
439
+ 'runner_version',
440
+ 'runtime',
441
+ 'os',
442
+ 'env_fingerprint',
443
+ ]);
345
444
  const provenance = asObject(o.provenance, 'record.provenance');
346
- checkKeys(provenance, 'record.provenance', ['head', 'dirty_diff_digest', 'tree_digest']);
445
+ checkKeys(provenance, 'record.provenance', [
446
+ 'head',
447
+ 'dirty_diff_digest',
448
+ 'tree_digest',
449
+ ]);
347
450
  if (provenance.head !== null)
348
451
  asString(provenance.head, 'record.provenance.head');
349
452
  asString(provenance.tree_digest, 'record.provenance.tree_digest');
350
453
  const surface = asObject(o.surface, 'record.surface');
351
- checkKeys(surface, 'record.surface', ['inventory_digest', 'test_sources', 'config_sources', 'suppressed']);
454
+ checkKeys(surface, 'record.surface', [
455
+ 'inventory_digest',
456
+ 'test_sources',
457
+ 'config_sources',
458
+ 'suppressed',
459
+ ]);
352
460
  validateStringMap(surface.test_sources, 'record.surface.test_sources');
353
461
  validateStringMap(surface.config_sources, 'record.surface.config_sources');
354
462
  asStringArray(surface.suppressed, 'record.surface.suppressed');
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
package/dist/store.d.ts CHANGED
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Content-addressed run store (spec §4): immutable records, atomic writes,
3
+ * fail-open advisory lock, enforced gitignore. Recency is store insertion
4
+ * order (the append-only index), never timestamps (§7.8).
5
+ */
1
6
  import { type RunRecord } from './schema.js';
2
7
  export declare class StoreCorruptError extends Error {
3
8
  constructor(message: string);
package/dist/store.js CHANGED
@@ -3,9 +3,9 @@
3
3
  * fail-open advisory lock, enforced gitignore. Recency is store insertion
4
4
  * order (the append-only index), never timestamps (§7.8).
5
5
  */
6
- import { appendFileSync, existsSync, mkdirSync, readFileSync, readdirSync, renameSync, rmdirSync, writeFileSync, } from 'node:fs';
7
- import { join } from 'node:path';
8
6
  import { randomUUID } from 'node:crypto';
7
+ import { appendFileSync, existsSync, mkdirSync, readdirSync, readFileSync, renameSync, rmdirSync, writeFileSync, } from 'node:fs';
8
+ import { join } from 'node:path';
9
9
  import { canonicalJson } from './canonical.js';
10
10
  import { sha256Hex } from './digest.js';
11
11
  import { parseRunRecord } from './schema.js';
@@ -123,7 +123,9 @@ export class RunStore {
123
123
  /** Resolve a possibly-prefixed run id to a stored full id (§3.5 MAY). */
124
124
  resolveRunId(idOrPrefix) {
125
125
  if (RUN_ID_RE.test(idOrPrefix)) {
126
- return existsSync(join(this.runsDir, `${idOrPrefix}.json`)) ? idOrPrefix : null;
126
+ return existsSync(join(this.runsDir, `${idOrPrefix}.json`))
127
+ ? idOrPrefix
128
+ : null;
127
129
  }
128
130
  if (!existsSync(this.runsDir))
129
131
  return null;
package/dist/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
@@ -5,19 +5,31 @@
5
5
  * excluding committed-gitignore'd paths, computed against a dedicated
6
6
  * throwaway index seeded from HEAD, with host-dependent git settings pinned.
7
7
  * Rendered as a bare 40-hex OID (documented deviation from sha256:).
8
+ *
9
+ * treeDigest() is read-only with respect to the observed repo: all git
10
+ * object writes (blobs from `add -A`, the tree from `write-tree`) are
11
+ * redirected to a throwaway GIT_OBJECT_DIRECTORY under tmpdir(), while the
12
+ * repo's real objects (resolved via `--git-path objects`, which also
13
+ * handles linked worktrees whose objects live in the common dir) are made
14
+ * available for reads through GIT_ALTERNATE_OBJECT_DIRECTORIES. The
15
+ * throwaway directory is removed again once the digest has been computed.
8
16
  */
9
17
  import { execFile } from 'node:child_process';
10
- import { promisify } from 'node:util';
11
18
  import { randomUUID } from 'node:crypto';
12
- import { rm } from 'node:fs/promises';
19
+ import { mkdir, rm } from 'node:fs/promises';
13
20
  import { tmpdir } from 'node:os';
14
- import { join } from 'node:path';
21
+ import { delimiter, join } from 'node:path';
22
+ import { promisify } from 'node:util';
15
23
  const execFileP = promisify(execFile);
16
24
  const PIN = [
17
- '-c', 'core.autocrlf=false',
18
- '-c', 'core.eol=lf',
19
- '-c', 'core.excludesFile=/dev/null',
20
- '-c', 'advice.addEmbeddedRepo=false',
25
+ '-c',
26
+ 'core.autocrlf=false',
27
+ '-c',
28
+ 'core.eol=lf',
29
+ '-c',
30
+ 'core.excludesFile=/dev/null',
31
+ '-c',
32
+ 'advice.addEmbeddedRepo=false',
21
33
  ];
22
34
  async function git(worktree, args, env) {
23
35
  const { stdout } = await execFileP('git', [...PIN, '-C', worktree, ...args], {
@@ -28,8 +40,24 @@ async function git(worktree, args, env) {
28
40
  }
29
41
  export async function treeDigest(worktree) {
30
42
  const idx = join(tmpdir(), `vd-idx-${randomUUID()}`);
31
- const idxEnv = { GIT_INDEX_FILE: idx };
43
+ const objDir = join(tmpdir(), `vd-obj-${randomUUID()}`);
32
44
  try {
45
+ await mkdir(objDir, { recursive: true });
46
+ const realObjects = await git(worktree, [
47
+ 'rev-parse',
48
+ '--path-format=absolute',
49
+ '--git-path',
50
+ 'objects',
51
+ ]);
52
+ const existingAlternates = process.env.GIT_ALTERNATE_OBJECT_DIRECTORIES;
53
+ const alternates = existingAlternates
54
+ ? `${realObjects}${delimiter}${existingAlternates}`
55
+ : realObjects;
56
+ const env = {
57
+ GIT_INDEX_FILE: idx,
58
+ GIT_OBJECT_DIRECTORY: objDir,
59
+ GIT_ALTERNATE_OBJECT_DIRECTORIES: alternates,
60
+ };
33
61
  let hasHead = true;
34
62
  try {
35
63
  await git(worktree, ['rev-parse', '--verify', '-q', 'HEAD']);
@@ -38,16 +66,17 @@ export async function treeDigest(worktree) {
38
66
  hasHead = false;
39
67
  }
40
68
  if (hasHead) {
41
- await git(worktree, ['read-tree', 'HEAD'], idxEnv);
69
+ await git(worktree, ['read-tree', 'HEAD'], env);
42
70
  }
43
71
  else {
44
- await git(worktree, ['read-tree', '--empty'], idxEnv);
72
+ await git(worktree, ['read-tree', '--empty'], env);
45
73
  }
46
- await git(worktree, ['add', '-A'], idxEnv);
47
- return await git(worktree, ['write-tree'], idxEnv);
74
+ await git(worktree, ['add', '-A'], env);
75
+ return await git(worktree, ['write-tree'], env);
48
76
  }
49
77
  finally {
50
78
  await rm(idx, { force: true });
79
+ await rm(objDir, { recursive: true, force: true });
51
80
  }
52
81
  }
53
82
  export async function gitHead(worktree) {
@@ -78,7 +107,11 @@ export async function gitRepoRoot(dir) {
78
107
  /** Resolve a ref to {commitSha, treeOid}; null when unresolvable. */
79
108
  export async function resolveRef(worktree, ref) {
80
109
  try {
81
- const commit = await git(worktree, ['rev-parse', '--verify', `${ref}^{commit}`]);
110
+ const commit = await git(worktree, [
111
+ 'rev-parse',
112
+ '--verify',
113
+ `${ref}^{commit}`,
114
+ ]);
82
115
  const tree = await git(worktree, ['rev-parse', '--verify', `${ref}^{tree}`]);
83
116
  return { commit, tree };
84
117
  }
@@ -89,7 +122,11 @@ export async function resolveRef(worktree, ref) {
89
122
  /** Deterministic digest material for the dirty state (status + diff vs HEAD). */
90
123
  export async function dirtyDiffMaterial(worktree) {
91
124
  try {
92
- const status = await git(worktree, ['status', '--porcelain=v1', '--untracked-files=all']);
125
+ const status = await git(worktree, [
126
+ 'status',
127
+ '--porcelain=v1',
128
+ '--untracked-files=all',
129
+ ]);
93
130
  let diff = '';
94
131
  if ((await gitHead(worktree)) !== null) {
95
132
  diff = await git(worktree, ['diff', 'HEAD', '--no-color']);
@@ -1 +1 @@
1
- {"version":3,"file":"tree-digest.js","sourceRoot":"","sources":["../src/tree-digest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tree-digest.js","sourceRoot":"","sources":["../src/tree-digest.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vdelta",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Reference implementation of veridelta/1 — proof-carrying verification deltas for coding-agent development loops",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -39,13 +39,16 @@
39
39
  },
40
40
  "scripts": {
41
41
  "build": "tsc -p tsconfig.build.json",
42
- "prepublishOnly": "npm run build && npm run test",
42
+ "lint": "biome check .",
43
+ "lint:fix": "biome check --write .",
44
+ "prepublishOnly": "npm run lint && npm run build && npm run test",
43
45
  "test": "vitest run",
44
46
  "test:unit": "vitest run --project unit",
45
47
  "test:conformance": "vitest run --project conformance",
46
48
  "typecheck": "tsc --noEmit"
47
49
  },
48
50
  "devDependencies": {
51
+ "@biomejs/biome": "^2.5.4",
49
52
  "@types/node": "^24.0.0",
50
53
  "typescript": "^5.9.0",
51
54
  "vitest": "^4.0.0"
@@ -4,7 +4,7 @@
4
4
  |---|---|
5
5
  | **Status** | Draft |
6
6
  | **Schema identifier** | `veridelta/1` |
7
- | **Spec revision** | 0.3.0 — 2026-07-16 |
7
+ | **Spec revision** | 0.3.1 — 2026-07-16 |
8
8
  | **License** | MIT |
9
9
  | **Reference implementation** | `vdelta` (this repository; in development) |
10
10
 
@@ -375,6 +375,37 @@ sufficient for the consumer to verify the choice (e.g.,
375
375
  comparator MUST abstain with comparability `none` (§6.3), never fall back
376
376
  silently to a weaker match.
377
377
 
378
+ ### 5.4. Near-miss disclosure
379
+
380
+ When `previous-comparable` selection abstains with `baseline-missing` (§6.3)
381
+ and the store contains at least one complete run other than the current run,
382
+ the report MUST enrich `comparability_detail` with a `near_miss` disclosure
383
+ identifying the nearest stored complete run and the stream-key component(s)
384
+ (§5.1) on which it differs from the current run.
385
+
386
+ Selection rule (normative, deterministic): candidates are all stored complete
387
+ runs excluding the current run, in store insertion order; each candidate is
388
+ scored by the number of mismatching components among the nine stream-key
389
+ components in the canonical order `repo.identity, repo.worktree, repo.branch,
390
+ repo.cwd, invocation.command, invocation.selector, instrument.adapter,
391
+ instrument.adapter_version, instrument.config_digest`; the candidate with the
392
+ fewest mismatches is selected; ties break by recency, where recency is store
393
+ insertion order, never timestamps (§7.8).
394
+
395
+ `mismatches` lists each differing component in the canonical order above with
396
+ the candidate's recorded value and the current run's value; array-valued
397
+ components (`invocation.command`, `invocation.selector`) are rendered as their
398
+ elements joined by a single space. Values are drawn from stored run records,
399
+ which are redacted before persistence (§15), so the disclosure never widens
400
+ the exposure surface.
401
+
402
+ The disclosure is informative context only: it MUST NOT alter baseline
403
+ selection, the abstention reason, or comparability — the report still
404
+ abstains with `baseline-missing`/`determined`, and this section does not
405
+ weaken the stream key. Other baseline modes (`git-ref`, `explicit-run-id`,
406
+ `previous-superset`) MUST NOT emit `near_miss`. The component-name vocabulary
407
+ is a closed enum (§14).
408
+
378
409
  ## 6. Comparability
379
410
 
380
411
  ### 6.1. Levels and permitted claims
@@ -412,6 +443,9 @@ is REQUIRED whenever `comparability` is `none`:
412
443
  { "reason": "baseline-missing", "kind": "determined" }
413
444
  ```
414
445
 
446
+ For `previous-comparable` `baseline-missing`, `comparability_detail`
447
+ additionally carries the `near_miss` disclosure when §5.4 requires it.
448
+
415
449
  | `reason` | `kind` |
416
450
  |---|---|
417
451
  | `baseline-missing` | `determined` |
@@ -656,6 +690,10 @@ rendering of this schema with no independent logic.
656
690
  Additional REQUIRED-when-applicable fields:
657
691
 
658
692
  - `comparability_detail` when `comparability` is `none` (§6.3).
693
+ - `comparability_detail.near_miss` when §5.4 applies — an object
694
+ `{"run_id": ..., "mismatches": [{"field": ..., "recorded": ..., "current": ...}]}`
695
+ where `field` is one of the nine stream-key component names (closed enum)
696
+ and `mismatches` is non-empty.
659
697
  - `budget_exceeded_for_safety: true` when §8's budget rule fires.
660
698
  - `masking_applied` with count and example when §7.6 dedup fired.
661
699
  - `trust.record_integrity`: `advisory | tamper-evident | trusted-environment`
@@ -920,9 +958,17 @@ Adapter roadmap for the reference implementation (informative): `vitest`
920
958
  native reporter first — agent-authored code skews heavily toward TS/JS, the
921
959
  maintainer's own repositories (the cheapest dogfood subjects) are TypeScript,
922
960
  and empirical probing confirmed the channel satisfies §3.6 with no
923
- stale-cache path in run mode. `pytest` native second (its richer structured
924
- channel is already probed and its composition pre-designed); JUnit XML third,
925
- for CI breadth, under the constraints above.
961
+ stale-cache path in run mode. Playwright native reporter second, by the same
962
+ dogfood-first criterion: maintained end-to-end suites are available as
963
+ dogfood subjects, e2e suites are where flakiness attribution and fail-closed
964
+ delta gating pay most, and first-class retries, per-project repetition of
965
+ the same title, and worker parallelism exercise adapter-interface edges
966
+ vitest does not. Commitment is contingent on an empirical probe confirming
967
+ the structured reporter channel satisfies §3.6. `pytest` native is
968
+ demand-driven rather than scheduled — its structured channel is already
969
+ probed and its composition pre-designed, so the banked design does not decay
970
+ while parked. JUnit XML is likewise demand-driven, for CI breadth, under the
971
+ constraints above.
926
972
 
927
973
  ## 13. Conformance
928
974
 
@@ -1071,6 +1117,14 @@ None violates an invariant; each is disclosed rather than papered over.
1071
1117
 
1072
1118
  ## Revision history
1073
1119
 
1120
+ - **0.3.1 (2026-07-16)** — Adapter roadmap reordered (§12, informative):
1121
+ Playwright second, by the same dogfood-first criterion that flipped the
1122
+ first target to vitest in 0.3.0 — maintained e2e suites are available as
1123
+ dogfood subjects, flakiness attribution and fail-closed gating pay most in
1124
+ e2e, and retries/projects/worker parallelism exercise adapter-interface
1125
+ edges vitest lacks — contingent on a §3.6 probe of its structured reporter
1126
+ channel. `pytest` and JUnit XML moved to demand-driven; pytest's probe
1127
+ results and pre-designed composition remain banked. No normative changes.
1074
1128
  - **0.3.0 (2026-07-16)** — First adapter target flipped to vitest after an
1075
1129
  empirical probe confirmed §3.6 satisfiability (core digest stable across
1076
1130
  rerun/line-shift/unrelated-edit, sensitive only to genuine signal; no