Skip to content

worker offline start: first activities on reveal-prefetched nodes #649

Description

@zgeoff

The reveal-time seed mint (#509) prepares nodes server-side, but nothing yet tracks the client half of the promise: a worker that starts a first activity on a prefetched node while offline and reconciles when the connection returns. Today an activity row only ever comes from a live start response or a resync anchored on an existing row, so the first step into fresh territory still requires a connection.

Player story

You're away from a connection, and you finish clearing the place you're in. You move on into ground you'd already uncovered and start fighting there right away — no pause, no "come back online first". When your connection returns, everything you did while away lands once: the runs you started offline count exactly as if you'd been connected, nothing is doubled, and nothing you earned is lost.

In one sentence: ground you've already uncovered is playable the moment you arrive, connection or not, and it all settles up cleanly when you're back.

Scope

  • worker starts a first activity on a revealed node offline, deriving the simulation input locally from the reveal-prefetched genesis seed instead of a live start call
  • server rows for offline-started attempts are created at reconnect and checkpoint batches delivered in chain order, deduplicated exactly like resubmitted live batches
  • resync and fast-forward can anchor on a scope with no server row yet — today both require an existing row
  • offline continuation across node boundaries (finish one node, travel, start the next) within the offline-progress cap; the prefetch radius (seed chain: revealNodes genesis mint at reveal + prefetch; retire genesis-on-first-start #509) bounds how far this reaches
  • offline cap accounting unchanged: the meter debits on append, exactly as for live and fast-forward play

Notes

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/gamearea: simulation, aether, game systemsfeaturenew featurep2-mediumpriority: medium

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions