Skip to content

v0.5: Hardening, edge cases and reconnect policy #6

Description

@Mewt0

Goal

Harden SmartReconnect against races, unusual battle states and long outages before release.

Scope

  • Explicit reconnect state machine and transition logging.
  • Cooldown and retry/backoff policy.
  • Handle client already disconnected before SmartReconnect acts.
  • Handle battle exit, arena change, postmortem/spectator, prebattle/loading and afterbattle states.
  • Handle long local internet outage and server outage/restart.
  • Ensure callbacks/observers/events are always removed on fini/transition.
  • Confirm no reconnect loops after failed WGC login.
  • Review grace period using real v0.1 telemetry rather than guessing.

Acceptance criteria

  • No duplicate callbacks or observers after repeated battles/reconnects.
  • No automatic action in replay.
  • No infinite reconnect/login loop.
  • One outage is bounded by configured attempt/cooldown policy.
  • Every terminal path returns the controller to a known safe state.
  • python.log is sufficient to reconstruct the state transitions of a failed session.

Test matrix

Include threshold-boundary race, client timeout race, battle ending during reconnect, reconnect after death/spectator, server unavailable, token failure, multiple successive outages, and clean client shutdown.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions