Skip to content

Commit 927ea3d

Browse files
dzhelezovclaude
andcommitted
docs(validation): register ponder@0.16.8 as a tested compat version (§2/§6)
versions.json already registers 0.16.8 in compat.tested (status: verified, full Portal suite green on ponder@0.16.8, seam-identity basis — #129), but VALIDATION.md §2/§6 still capped the supported set at 0.16.7. Bring the evidence doc in sync with the code: - §2 Layer A: the suite now runs against all four supported versions (adds the 0.16.8 --test line); register 0.16.8 on the same seam-identity + full-suite basis as 0.16.7, mirroring versions.json — the 0.16.7->0.16.8 upstream delta is realtime-only (isAsyncExecutionChain in sync-realtime/index.ts + utils/finality.ts), off the Portal graft surface, so the 81 Portal realtime tests pass unchanged. Honesty boundary preserved: NOT a fresh RPC byte-diff (as for 0.15.17). - §6 + reproducing table: four versions, not three. Registration counts cited point-in-time (272/272 at #74, 310/310 at #129), consistent with the suite's growth. README left unchanged: 0.16.8-sqd.1 is published:false, so it stays out of the user-facing published-versions table until the release is cut. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent ec1e24b commit 927ea3d

1 file changed

Lines changed: 21 additions & 14 deletions

File tree

VALIDATION.md

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -59,25 +59,32 @@ live in [`portal/INVARIANTS.md`](portal/INVARIANTS.md); the runtime asserts them
5959
whole-structure O(n) checks used in CI), and the suite proves them with property-based tests
6060
(`fast-check`, seed-pinned for deterministic runs).
6161

62-
The suite runs **against all three supported upstream Ponder versions**`0.15.17`, `0.16.6`, and
63-
`0.16.7` — by grafting the Portal layer onto a pinned Ponder checkout:
62+
The suite runs **against all four supported upstream Ponder versions**`0.15.17`, `0.16.6`,
63+
`0.16.7`, and `0.16.8` — by grafting the Portal layer onto a pinned Ponder checkout:
6464

6565
```bash
6666
scripts/sync-upstream.sh 0.15.17 --test
6767
scripts/sync-upstream.sh 0.16.6 --test
6868
scripts/sync-upstream.sh 0.16.7 --test
69+
scripts/sync-upstream.sh 0.16.8 --test
6970
```
7071

7172
(config `portal/vite.portal.config.ts`, files `portal/*.test.ts`). The seam
7273
(`HistoricalSync.syncBlockRangeData` / `syncBlockData`) is verified identical in shape across that
73-
version range (`versions.json`), and CI's seam matrix (derived from `compat.tested`) runs all three on
74-
every push. The newest, `0.16.7`, was registered by **[#74](../../pull/74)** (2026-07-06) on a
74+
version range (`versions.json`), and CI's seam matrix (derived from `compat.tested`) runs all four on
75+
every push. `0.16.7` was registered by **[#74](../../pull/74)** (2026-07-06) on a
7576
**seam-identity + full-suite** basis: the `0.16.6` wiring patch applies to the `0.16.7` tree
76-
byte-identically (zero rejects, all 10 files) and the full Portal suite (**272/272**) passes on the
77-
graft; the lone upstream delta `0.16.6 → 0.16.7` is a single DB-layer PR (`ponder-sh/ponder#2314`,
78-
live-query notification batching) with **zero Portal-graft-surface overlap**. As with `0.15.17`, that
79-
basis is **not** a fresh RPC byte-diff or cross-validation — the §3 / §5 byte-diff and A/B evidence
80-
remains on `0.16.6`.
77+
byte-identically (zero rejects, all 10 files) and the full Portal suite (**272/272** at that cut) passes
78+
on the graft; the lone upstream delta `0.16.6 → 0.16.7` is a single DB-layer PR (`ponder-sh/ponder#2314`,
79+
live-query notification batching) with **zero Portal-graft-surface overlap**. The newest, `0.16.8`, was
80+
registered on the **same basis** by **[#129](../../pull/129)** (2026-07-10): the same wiring patch
81+
applies to the `0.16.8` tree byte-identically (same 10 files) and the full Portal suite (**310/310** at
82+
that cut) passes on the graft; the lone upstream delta `0.16.7 → 0.16.8` is realtime-only — it adds
83+
`isAsyncExecutionChain` (in `sync-realtime/index.ts` + `utils/finality.ts`) so async-execution chains
84+
can surface blocks before `logsBloom` is execution-ready — and **neither file is on the Portal graft
85+
surface** (`sync-historical`, `runtime/historical`, `sync-store`, `rpc`, `sync`), so the 81 Portal
86+
realtime tests pass unchanged. As with `0.15.17`, that basis is **not** a fresh RPC byte-diff or
87+
cross-validation — the §3 / §5 byte-diff and A/B evidence remains on `0.16.6`.
8188

8289
### Layer B — Mutation-verified regression tests
8390

@@ -1509,10 +1516,10 @@ against the running soak — the evidence is the tested logic and the differ, st
15091516

15101517
**Proven today (with reproducible evidence in this repo):**
15111518

1512-
- The Portal layer's invariants (INV-1 … INV-18) hold under property-based tests **on all three
1513-
supported upstream Ponder versions** (`0.15.17`, `0.16.6`, `0.16.7` — the last registered by
1514-
[#74](../../pull/74) on a seam-identity + full-suite basis, §2), and every fix is backed by a
1515-
mutation-verified regression test.
1519+
- The Portal layer's invariants (INV-1 … INV-18) hold under property-based tests **on all four
1520+
supported upstream Ponder versions** (`0.15.17`, `0.16.6`, `0.16.7`, `0.16.8` — the last two
1521+
registered by [#74](../../pull/74) / [#129](../../pull/129) on a seam-identity + full-suite basis,
1522+
§2), and every fix is backed by a mutation-verified regression test.
15161523
- **Crash/resume is safe, and resume-from-partial-persisted-state is now proven.** Tier 0 (PGlite,
15171524
§4.1): 203 kills across 41/41 completed backfills, `SIGKILL`-atomic and restart-idempotent,
15181525
byte-identical to an unkilled baseline across all five row families, intervals tiling exactly, zero
@@ -1578,7 +1585,7 @@ All tooling is `bash` + `node` only (no extra dependencies) and lives in this re
15781585

15791586
| Evidence | Tool | Doc |
15801587
|----------|------|-----|
1581-
| Unit + invariant suite (all three versions) | `scripts/sync-upstream.sh <ver> --test` | `CLAUDE.md`, `portal/INVARIANTS.md` |
1588+
| Unit + invariant suite (all four versions) | `scripts/sync-upstream.sh <ver> --test` | `CLAUDE.md`, `portal/INVARIANTS.md` |
15821589
| Chaos kill-loop + resume (Tier 0, PGlite byte-diff) | `harness/chaos/kill-loop.sh`, `verify-resume.sh`, `proxy.mjs` | `harness/validate/README.md` §Chaos |
15831590
| Chaos resume-from-partial (Tier 1, Postgres logical-digest) | `harness/chaos/chaos-pg-driver.sh`, `build-baseline-pg.sh`, `pg-ctl-chaos.sh`, `verify-resume-pg.sh`, `pg-digest.mjs`, `snapshot-coverage-pg.mjs`, `check-intervals-pg.mjs` | §4.2 (this doc); tool headers |
15841591
| Validation matrix (fork vs stock) | `harness/validate/run-cell.sh`, `ctrl-cell.sh`, `cells.json` | `harness/validate/README.md` |

0 commit comments

Comments
 (0)