From a4336a8869271878c877b5df1e59092e840254fa Mon Sep 17 00:00:00 2001 From: prosolis <5590409+prosolis@users.noreply.github.com> Date: Sat, 9 May 2026 08:55:33 -0700 Subject: [PATCH] Adv 2.0 Phase L2 step 10: defer step 9, close L2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit go test ./... && go vet ./... clean on adv-2.0. L2 functionally complete through step 8 (arena boss flow wired, counters on player_meta, DnDCharacter level scale, bossflow win asserted in tests). Step 9 ("drop AdvCharacter imports from arena files") deferred. Arena code still depends on char.DisplayName (stats DM, T5/helm announces, render), char.PetName (pet-recovery game-room msg), char.DeathReprieveLast, char.CombatXP, and char.Alive/transitionDeath — none of which have an L2-era replacement. DisplayName migration is the L4f-prep / L5 pre-condition (per afaa055); the rest needs L4 hospital/pets/XP/render. Counter dual-writes to char.ArenaWins/Losses/InvasionScore are the only piece cleanly droppable at L2 time, but doing it alone leaves the surrounding loadAdvCharacter/saveAdvCharacter calls in place for the other fields, so it doesn't satisfy step 9's exit grep — not worth a partial pass. Migration doc updated to mark step 9 + the grep-empty exit criterion as deferred with the dependency reasoning inline. Revisit step 9 after DisplayName migration ships and L4 (hospital/pets/render) lands. Co-Authored-By: Claude Opus 4.7 (1M context) --- gogobee_legacy_migration.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gogobee_legacy_migration.md b/gogobee_legacy_migration.md index 4e86887..0e0027a 100644 --- a/gogobee_legacy_migration.md +++ b/gogobee_legacy_migration.md @@ -227,13 +227,13 @@ This is also the right shape because zone-boss plumbing (bestiary, mood events, 6. Swap render reads to DnDCharacter + player_meta. 7. Port `tierFromCombatLevel` → `tierFromLevel` with new brackets. 8. Port `adventure_arena_test.go`. Add a new test asserting arena win surfaces the staged combat log + TwinBee BossDeath line. -9. Drop AdvCharacter imports from arena files. +9. Drop AdvCharacter imports from arena files. **DEFERRED (2026-05-09):** blocked on DisplayName migration (L4f-prep, see §7) plus L4 hospital/pets/XP work. Arena code still needs `char.DisplayName` (stats DM, T5/helm announces, render), `char.PetName` (pet-recovery game-room msg), `char.DeathReprieveLast`, `char.CombatXP`, `char.Alive`/`transitionDeath`. Counter dual-writes to `char.ArenaWins/Losses/InvasionScore` could be dropped now (player_meta is source of truth post-step 6), but the surrounding `loadAdvCharacter`/`saveAdvCharacter` calls stay for the other fields, so step 9's exit grep can't pass at L2 time. Revisit after DisplayName migration ships and L4 (hospital/pets/render) lands. 10. `go test ./... && go vet`. **Feature flag.** Ship behind `ARENA_BOSS_FLOW=1` for one week of soak. Inside the flag the new flow runs; outside it falls back to the legacy path. Flip to default-on after the soak; remove the flag in the same commit that lands L4f (twinbee). **Exit criteria:** -- `grep -l 'AdventureCharacter\|CombatLevel\|combat_engine' internal/plugin/adventure_arena*.go` empty. +- ~~`grep -l 'AdventureCharacter\|CombatLevel\|combat_engine' internal/plugin/adventure_arena*.go` empty.~~ **Deferred** with step 9 — see note above. The grep will only clear once DisplayName migration + L4 (hospital/pets/XP/render) ship; L2 closes without it. - Arena win produces a staged combat log + TwinBee BossDeath line + payout, just like a zone boss. - Arena loss produces a TwinBee PlayerDeath line + arena death flag, no zone-run side effects. - Existing arena DB rows readable; ArenaWins backfill from AdvCharacter into `player_meta` (§8).