Branching zones G9c: drop legacy columns + add purge gate

Final G9 step. The schema no longer creates current_room or
room_seq_json on fresh installs, and existing prod schemas drop them
via purgeLegacyZoneRunColumns() once the operator flips
GOGOBEE_BRANCHING_PURGE=1.

- CREATE TABLE dnd_zone_run loses both columns; comment updated to
  point at G1's columnMigrations for the graph-mode columns.
- cleanup_g9.go mirrors the L5 idempotent-purge shape: ALTER TABLE
  DROP COLUMN per legacy column, "no such column" treated as already
  done, default-off.
- Wired into adventure Init alongside purgeLegacyAdvCharacterTable.
- Plan doc marks G9 complete.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
prosolis
2026-05-09 17:23:08 -07:00
parent a5c0a83e2a
commit 7ec78f3cd9
4 changed files with 50 additions and 16 deletions

View File

@@ -200,6 +200,10 @@ func (p *AdventurePlugin) Init() error {
// Phase L5 close-out — drop the now-cold adventure_characters table when
// the operator sets GOGOBEE_LEGACY_PURGE=1. Default off; idempotent.
purgeLegacyAdvCharacterTable()
// Phase G9 close-out — drop the now-cold current_room / room_seq_json
// columns from dnd_zone_run when the operator sets
// GOGOBEE_BRANCHING_PURGE=1. Default off; idempotent.
purgeLegacyZoneRunColumns()
// Phase R1 orphan-archive used to run here on every Init, but it
// over-archived: it treats any active dnd_zone_run row not linked to
// an active expedition as a legacy `!adventure dungeon` orphan, which