Skip to content

[HT-71]: Branch & play — take over your seat mid-replay in a sandbox #119

Description

@Maiz27

Parent

PRD-05: Game History & Replay — #111

What to build

From any point in a replay, let the player take over their own seat (south) and keep playing from there against live CPUs, to try a different line. The sandbox is seeded from the reconstructed snapshot at the chosen step (reusing the replay driver from HT-68), then hands control to a live game: the player acts and the three CPUs respond live.

The branch is a throwaway sandbox — discarded on exit, never written to history, so experimenting can't pollute the archive. The player chooses blind (opponents' hands hidden, a faithful re-attempt) or full-visibility study mode when branching in. If the original match had the coach on, the existing live coach is available in the sandbox (consistent with how that table was actually played); otherwise it is not. Only the human's own seat is playable.

Acceptance criteria

  • From a replay, the player can branch at the current step and continue playing their own seat against live CPUs.
  • The sandbox is seeded correctly from the reconstructed snapshot at the branch point and plays as a real game from there.
  • The branch is discarded on exit and never written to history.
  • The player can choose blind play (opponent hands hidden) or full-visibility study mode at branch time.
  • The live coach is available in the sandbox only when the original setup had coaching on, and the analysis coach does not appear here (modes stay exclusive).
  • Only the human seat is playable; CPU seats are not taken over.
  • Sandbox lifecycle and entry/exit UX are validated by a human (HITL); a thin scenario covers branch entry and the discard-on-exit guarantee.

Blocked by

Metadata

Metadata

Assignees

No one assigned

    Labels

    ✅ readyWell-scoped, unblocked, and ready for implementation or review work to begin.🎨 designVisual design, interaction design, product tone, layout, animation, or design review work.📏 rulesClassic Hareeg rule-engine behavior, validation, turn state, scoring, or rule presets.🔹 p2Normal-priority work that matters but does not block the immediate critical path.🖥️ uiFlutter screens, navigation, table layout, controls, feedback states, or responsive UI.🙋 hitlRequires human-in-the-loop judgment for rules, naming, design, tone, or product behavior.🧠 aiCPU move selection, difficulty, personality, reaction timing, or strategy evaluation.🧩 featureA vertical slice that delivers user-visible behavior or playable product capability.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions