# 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.