R4 Release-Risk Refactoring — 2026-07-16
Result
Release orchestration and the packaged playground now have explicit ownership
boundaries without removing or renaming a documented 1.x command. A generated
inventory covers every maintained shell and Python entry point. Named pr,
nightly, rc, and full-matrix tiers use a declarative registry with
dependencies, cross-process exclusive-resource locks, timeouts, thresholds,
dataset provenance, fingerprints, and atomic resumable evidence.
The playground separates environment configuration, reconnectable database ownership, public bootstrap/registration, bounded execution, result formatting, structured query metadata, and Streamlit rendering. The UI and release gate share stable query IDs and explicit statement lists. The user-facing app no longer truncates internal catalogs or calls test-only SQL.
Evidence
| Gate | Exact command | Result |
|---|---|---|
| Script inventory/static checks | PYTHONDONTWRITEBYTECODE=1 python3 scripts/check_script_inventory.py |
PASS: 75 maintained entry points; bash -n complete and ShellCheck error checks enabled when installed |
| Unsafe boundary inventory | PYTHONDONTWRITEBYTECODE=1 python3 scripts/check_unsafe_allowlist.py |
PASS: 10 explained blocks in 9 owned files |
| Playground units | PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=sandbox/playground python3 -m unittest sandbox/playground/test_catalog.py |
PASS: catalog IDs/boundaries/modes, formatting, reconnect, and bounded error shape |
| Named PR tier | PYTHONDONTWRITEBYTECODE=1 python3 scripts/run_release.py --tier pr --evidence todo/measurements/2026-07-16-r4-pr-evidence.json |
PASS: script contracts, docs/contract drift, and strict Clippy |
| CSR packaged playground | cd graph && PREPARE_PLAYGROUND=0 PGGRAPH_DSN=postgresql://postgres:postgres@localhost:55432/postgres ./tests/heavy/playground_release_gate.sh |
PASS: 40 expected query summaries on PostgreSQL 17 |
| Mutable packaged playground | cd graph && PREPARE_PLAYGROUND=0 PGGRAPH_PLAYGROUND_MODE=mutable PGGRAPH_DSN=postgresql://postgres:postgres@localhost:55432/postgres ./tests/heavy/playground_release_gate.sh |
PASS: 41 expected query summaries on PostgreSQL 17 |
The initial CSR run caught terminal semicolons embedded in checksum CTEs; the
catalog now retains terminators only for editor display. The initial mutable
run caught production-scale durable catch-up between example statements; the
disposable mutable session now uses the documented query_freshness = off
isolation policy while separate examples exercise explicit sync and
maintenance. Both fixes were applied at shared boundaries and the full catalogs
then passed without expectation changes.