W2 published: https://github.com/BigscreenVR/spt-bs-core/pull/241 at1143a6dccf177cee46ca387f2be0637ee4bd324a, based on landed W1. Closes #317/#319 plus the security rider #320 when merged. Final local targeted battery127/127, clippy0, docs0, trace938/938; pool released. Doyle independent gate46+53+25 green and field acceptance granted after Hertz's isolated two-node seven-cell observations: .spt/preserved/318/hertz/w2-two-node/SEVEN-CELL-OBSERVATIONS.json. Same-entry/same-URL audience admission preserves the original deadline; exact and XML-reencoded peer bodies remain excluded. Field candidate hash and dirty-source attribution are explicit in PR241. Rollback0.71.0 measured fail-closed with all registry-backed serving unavailable, including unrelated entries; TTL cannot self-heal unreadable storage. Recovery and daemon-restart requirement for #320 are documented. This is W2 field acceptance, not whole-milestone acceptance. W3#254 now starts stacked by Doyle's instruction, to rebase when W2 lands.