H3 soak close-out: drop dead handleHarvestCmd / handleStandaloneHarvest

H3 retired the manual !forage/!mine/!scavenge/!fish/!essence/!commune
verbs from the command dispatcher in e05da91; the underlying handlers
were left parked behind an operator-gated 2-week soak. The expedition
sim has since exercised the auto-harvest path 15k+ times per sweep
across every class, level, and zone — vastly more coverage than the
soak would have collected in production. Pull the dead handlers now.

Removed:
- handleHarvestCmd (dnd_expedition_harvest.go, ~175 lines)
- handleStandaloneHarvest (dnd_zone_harvest.go, ~80 lines)
- dnd_zone_harvest_test.go (three tests against the deleted handler;
  the autopilot's standalone-storage path is what runs in prod and is
  covered by the cmd/expedition-sim sweep + adv2 scenario test)

The deprecation DM in adventure.go ("Harvest is automatic now — just
walk.") stays for now — muscle memory takes longer than two weeks to
fade and the redirect costs 7 lines.

adv2 scenario test rewired to drive autoHarvestRoom directly.
This commit is contained in:
prosolis
2026-05-17 17:03:20 -07:00
parent d225fc8185
commit b76d9bc577
6 changed files with 15 additions and 379 deletions

View File

@@ -146,9 +146,8 @@ func (p *AdventurePlugin) autoHarvestRoom(
// Josie semantics: swing exactly once per remaining charge.
// Each swing consumes a charge regardless of outcome.
for n.CurrentCharges > 0 {
// Interrupt roll, same model as handleHarvestCmd —
// expedition-only. Standalone zone runs already have a
// patrol mechanism in the advance pipeline.
// Interrupt roll, expedition-only. Standalone zone runs
// already have a patrol mechanism in the advance pipeline.
if exp != nil {
interrupt, intTotal := resolveCombatInterrupt(
exp.ThreatLevel, int(zone.Tier), char.Class, zoneID, nil)