# Validation record — 25 October 2026

Package: D30-F05-A01, Append-Only Journal Enforcement. Local private package; visitor integration is independently accepted by the coordinating author. No remote deployment/publication or encoded-video production is asserted here.

## Executable evidence

- `python -B tests/test_implementation.py`: passed the independent scenario assertions.
- `python -B tests/run_parity.py`: strict TypeScript compilation passed; **86 complete Python/TypeScript transition outputs** matched, including result, reason, state, nullability, exact decimal strings and original replay result. These are 74 scenarios with multiple actions, not 86 separate test functions.
- `python -B tests/run_postgresql.py --port 55430`: **24 named actual PostgreSQL evidence groups passed**. These include multiple invalid-input/permission assertions within groups. The runner initialized and authenticated to its own temporary PostgreSQL18.1 cluster, checked exact data-directory/port and `fsync`, `full_page_writes`, `synchronous_commit`, then stopped/removed that exact child cluster. Existing PostgreSQL13/18 Windows services were not used.

Database groups cover independent accounting-oracle values, malformed/zero/over-limit amounts, invalid/future timestamps, wrong scopes/currencies, closed accounts/periods, whole rollback, disconnected uncommitted session, discarded response, concurrent duplicate/conflict/rollback, observed session blocking and commit order, actual runtime permissions, protected helper/owner-role denial, safe search path, original replay after account/period closure, exact correction/original preservation, invalid replacement rollback, competing correction identities, explicit current-period adjustment, controlled restart and the owner boundary.

Unicode regressions freeze Python's explicit whitespace set in SQL: tab and NEL cannot authorize an otherwise blank reason; leading/trailing NEL makes an untrimmed correction reason invalid. A BOM alone is not in that whitespace set and remains nonempty. Exactly240emoji Unicode scalars are accepted and retained;241 are rejected. This does not assert byte-length or JavaScript UTF-16 code-unit equivalence.

Independent-session orchestration uses a READY sentinel followed by an observed `pg_blocking_pids` wait before releasing COMMIT or ROLLBACK. No in-memory simulation is presented as database contention. The SQL entry point returns the original stored result with its original committed status; the portable transition wrapper separately labels delivery as replayed. Semantic guarantees are aligned; SQL and reducer wire-format equality is not claimed.

Raw artifacts: `tests/parity-results.json`, `tests/postgresql-results.json`, and public-download copies under `examples/`. The final SQL migration is copied byte-for-byte to `examples/postgresql18.sql`; source remains `implementations/sql/postgresql18.sql`.

Portable final edge audit: TypeScript now uses the same explicit Unicode whitespace set as Python str.strip for trusted adjustment reasons. NEL-only and control-separator-only reasons reject; BOM remains nonblank and is retained. Twelve harmless identifier/amount/period terminator regressions also pass. The parity runner decodes Node stdout explicitly as UTF-8 so Unicode result fields are compared correctly on Windows.

## Visual and browser evidence

`node tests/browser_qa.cjs` passed with bundled Playwright and installed headless Chrome, using a temporary read-only loopback file server. It:

- Checked390/768/1440 widths with no document overflow and minimum44px non-checkbox targets.
- Verified original100000, appended fee250, count2 and Ada99750 at the canonical fee step.
- Exercised canonical/boundary/failure scenarios with writer/reader/owner trusted-context comparisons.
- Verified Back/Step/Play/Pause, keyboard arrows, deterministic Reset, and scenario changes stopping playback.
- Verified reduced-motion Play advances exactly one transition with no timer.
- Opened the static SVG, parsed/rendered both Mermaid sources, and emitted screenshots and rendered SVG artifacts.
- Recorded zero console warnings/errors and zero page exceptions.

The generated390/1440 lab screenshots, static control-boundary PNG and Mermaid screenshot were visually inspected: legible labels, no clipped controls, informative initial accepted state, correct preserved funding and visible owner boundary. Raw evidence: `tests/browser-results.json`; screenshots: `visuals/qa/`.

`validate_topic_package.py` full mode: **0errors,0warnings**. `validate_playground.py`: **1passed,0failed**. Both checks were run after final article/visual sources were present. They are structural checks, not replacements for the behavioral/browser evidence.

## Limits retained

The portable model does not prove database privileges, persistence or concurrency. A controlled process restart is not a physical power-loss experiment. The profile does not claim actual Serializable/deadlock retry evidence, independent retention, legal-compliance certification, administrator-proof history, production throughput or a full period-lock lifecycle. The sacrificial owner override is intentionally successful and occurs only after ordinary correctness tests. Browser lab role selection is a teaching simulation, not a client-controlled production privilege.

## Root visitor acceptance receipt

Reviewed2026-10-25. An isolated copy of the real visitor website passed production build, TypeScript, governed content and breadcrumb checks. This topic's article and standalone/embedded lab returned HTTP200 at390/768/1440px; H1, inline images, rendered Mermaid, public evidence links, control targets>=44px and reader/iframe containment passed. Browser application errors:0. Original website working files were untouched.

One pre-existing host iframe warning is recorded per embedded lab: the host combines allow-scripts and allow-same-origin sandbox tokens. It remains an explicit host-configuration limitation before publication; these content packages do not claim to resolve host security policy. Standalone package labs have no console warnings/errors. No remote publication or rendered video is claimed.

Raw proof: reports/domain-production/2026-10-24-D30-stage-0-1/{visitor-build-results.json,visitor-qa-results.json}. A preview-only native image-worker workaround reused cached cards and rendered missing cards serially after the original concurrent renderer crashed. It does not change algorithm behavior or the website checkout.
