[ALL] Cross-client acceptance: scan on web, verify on Godot, survive restart #946

Closed
opened 2026-08-06 16:11:59 +00:00 by spikerj · 1 comment
Owner

Part of the Game Unification lane: all games become one game — different modes over one shared persistent universe (space → scan → hex-TD conquest → voxel base → satellite logistics → dungeon portals). Clients = Angular web + Godot (iOS/Android embed Godot). Full plan: ~/.claude/plans/i-want-a-plan-breezy-eclipse.md on the 4090.

Part of EPIC #927.

One compose stack, both clients: scan on web → rejoin on Godot → identical report (proves determinism + persistence); restart gameserver mid-session → same body ids, reports intact. This is the slice's acceptance gate.

Part of the **Game Unification** lane: all games become one game — different modes over one shared persistent universe (space → scan → hex-TD conquest → voxel base → satellite logistics → dungeon portals). Clients = Angular web + Godot (iOS/Android embed Godot). Full plan: `~/.claude/plans/i-want-a-plan-breezy-eclipse.md` on the 4090. Part of EPIC #927. One compose stack, both clients: scan on web → rejoin on Godot → identical report (proves determinism + persistence); restart gameserver mid-session → same body ids, reports intact. This is the slice's acceptance gate.
spikerj added the enhancementagentic labels 2026-08-06 16:11:59 +00:00
Author
Owner

Migrated to spikerj/spikersoft-backend#562 as part of the umbrella-tracker breakup.

Verified 2026-08-07 against the synced default branch.

  • Code: spikersoft-backend@98102023 — no such acceptance harness exists. The integration compose stack in this repo is docker-compose.yml / SpikerSoft.Tests.Integration/docker-compose.test.yml; neither brings up both clients, and there is no cross-client scan/rejoin/restart scenario in SpikerSoft.Tests.Integration.
  • Live: Both halves the gate exercises do exist to test against: the Godot client has celestial targeting + survey scan (spikersoft-games-godot@75e0a4e5, PRs #10/#11 for #945) and the gameserver is live (docker service ps spikersoft-gameserver_spikersoft-gameserver → 1/1 Running on SERVER, redeployed 2026-08-07 12:25 UTC). The gate itself has never been run.
  • Routing note: Routed here rather than split three ways: this is an acceptance gate, and the guarantees it proves — deterministic body ids and survey-report persistence across a gameserver restart — are server-side, as is the compose stack that would host it. Splitting it would produce exactly the vague per-repo stubs the migration is trying to avoid.

Status: not started — nothing to preserve beyond the ticket text, which is carried over verbatim.

Closing here. Work now lives in the repo that holds the fix, so fixes #562 in a PR will
auto-close it on merge. The umbrella tracker keeps cross-repo epics only (parent epic
spikerj/spikersoft-issues#927 is untouched).

— Opus 5 Agent

Migrated to **spikerj/spikersoft-backend#562** as part of the umbrella-tracker breakup. Verified 2026-08-07 against the synced default branch. - **Code:** `spikersoft-backend@98102023` — no such acceptance harness exists. The integration compose stack in this repo is `docker-compose.yml` / `SpikerSoft.Tests.Integration/docker-compose.test.yml`; neither brings up both clients, and there is no cross-client scan/rejoin/restart scenario in `SpikerSoft.Tests.Integration`. - **Live:** Both halves the gate exercises do exist to test against: the Godot client has celestial targeting + survey scan (`spikersoft-games-godot@75e0a4e5`, PRs #10/#11 for #945) and the gameserver is live (`docker service ps spikersoft-gameserver_spikersoft-gameserver` → 1/1 Running on SERVER, redeployed 2026-08-07 12:25 UTC). The gate itself has never been run. - **Routing note:** Routed here rather than split three ways: this is an acceptance **gate**, and the guarantees it proves — deterministic body ids and survey-report persistence across a gameserver restart — are server-side, as is the compose stack that would host it. Splitting it would produce exactly the vague per-repo stubs the migration is trying to avoid. Status: **not started** — nothing to preserve beyond the ticket text, which is carried over verbatim. Closing here. Work now lives in the repo that holds the fix, so `fixes #562` in a PR will auto-close it on merge. The umbrella tracker keeps cross-repo epics only (parent epic spikerj/spikersoft-issues#927 is untouched). — Opus 5 Agent
Sign in to join this conversation.