Skip to content

id: PoC: game-post with async turn passing — tic-tac-toe as a board post, signed turns, concession result, save-point fork (from #2053) #2266

Open

Description

@dezren39

From the #2053 investigation (embedded playable posts)

Investigation #2053 (queue task 3358, result posted on that issue 2026-10-29) designed the game-post model: a board post carrying a world/app package reference + mode (live-session | async-turns | succession), turns as signed events, save-point objects with handoff/fork semantics, and #2037 attestation as an opt-in plug-in. This issue is the proof of concept for the async-turns mode — not the permanent feature (program rule, epic #2056).

PoC scope

Using the existing tic-tac-toe example (pkgs/id/examples/tic-tac-toe) as the game package:

  1. A game-post object referencing the package (hash + version), mode async-turns, two player IDs, attestation mode concession.
  2. A challenge flow: post → challenge-acceptance object by the second player → alternating signed turn objects, each naming the prior state frontier — played fully asynchronously (no live session; the two sides sync between turns).
  3. Game end emits the id: investigate: match-result attestation — mutual concession, witness adjudication, offline play #2037 pair of signed result claims; agreeing claims compute agreed (per the id: investigate: match-result attestation — mutual concession, witness adjudication, offline play #2037 model / id: PoC: mutual-concession match attestation on the tic-tac-toe example — genesis agreement + dual signed result claims, offline-first (from #2037) #2248 PoC shapes if it lands first — coordinate, do not duplicate).
  4. A save-point + fork demonstration: from a mid-game frontier, a third ID forks a continuation; both lines proceed independently and the fork object preserves attribution to the original line.

Out of scope

Live-session (real-time) games, succession handoff chains (the fork primitive here is their foundation; the chain policy is #2054's), board UI, sandbox policy changes.

Acceptance criteria

  • PoC demonstrates scope points 1–4 with the object shapes documented in the PR/issue
  • Findings note posted on this issue: what the PoC proved about the game-post model, what it did not
  • No production game-post feature claimed or merged under this issue

Program: ID platform expansion, epic #2056. Parent investigation: #2053. Related: #2052 (boards), #2054 (boards v1 synthesis), #2037/#2248 (attestation), #2026 (app packaging).

Activity

  1. added
    priority/highImportant and time-sensitive
    app/idPackage/app: id (pkgs/ or apps/ in this repo)
    on Oct 29, 2026
  2. developing-today commented on Oct 29, 2026

    @developing-today
    Contributor
  3. dezren39 commented on Oct 30, 2026

    @dezren39
    MemberAuthor

    Agent note — picked up (queue task 3421, openchamber scheduled lane)

    Claimed 2026-10-30 ~11:54Z for revalidation. Fresh GitHub check: issue OPEN (priority/high), no PR references it, no live branch. This is a 120m PoC-build task (async-turn tic-tac-toe proving the #2053 game-post model), beyond this ~30m lane — parking untouched (no branch, no worktree, no edits).

  4. dezren39 commented on Oct 30, 2026

    @dezren39
    MemberAuthor

    Agent note — parked untouched (needs a full-budget shift)

    • Queue task 3421 re-parked with zero state: no branch, no worktree, no edits. Next lane starts clean.
    • Resume brief: packet revalidated 2026-10-30 ~11:56Z — issue OPEN, PR search shows no owning PR, no queue/3421 or 2266 branch on the laptop clone. Deliverable is a working PoC (four scope points on the issue, object shapes documented) plus a findings note of what it proved and did not prove — a single build shift, not a short-lane slice. Note the acceptance guardrail: no production game-post feature under this issue.
    • Labels: issue carried queue/queued + status/needs-triage, so this pass sets the parked end-state directly (queue/parked + status/parked + work/assigned, queued/needs-triage removed).
    • Lane note: laptop gh hosts.yml token was stale in this session; notes posted with transient GH_TOKEN from vault key github-cli.hosts-yml.
  5. added
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    status/parkedDeliberately paused with a recorded resume condition
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Oct 30, 2026
  6. 32 remaining items

  7. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    agent-note:v1 — state: picked-up (task 3970, OpenChamber scheduled lane)

  8. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    agent-note:v1 — state: done (task 3970, OpenChamber scheduled lane)

  9. added
    queue/queuedHas a queued task in the Supabase agent queue
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 3, 2026
  10. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  11. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · triaged

    • Verified on: fresh origin/main 5fbb1b3 in /home/user/git/fleet/7320.
    • Already built: PR test(id): PoC — game-post with async turn passing on tic-tac-toe (#2266) #2755 is MERGED at 62f5829 and changed only pkgs/id/tests/game_post_async_turns_poc.rs. Its tests model signed game.post/challenge.accept objects, alternating async turns, mutual-concession result agreement, and save-point/fork behavior.
    • Adjacent production support: pkgs/id/src/boards.rs:76 documents a typed reference to a signed game-post object and explicitly says game execution is out of scope. pkgs/id/src/world/tests.rs:4794 exercises alternating signed tic-tac-toe moves through the world path, separately.
    • Not built: a production game-post lifecycle/handler integrating challenges, async turns, concession, and save-point/fork behavior. Those protocol behaviors remain in the test-only PoC.
    • Disposition: this PoC slice is landed; id: PoC: game-post with async turn passing — tic-tac-toe as a board post, signed turns, concession result, save-point fork (from #2053) #2266 remains OPEN for the production-scope/ownership decision. Per packet, user/escalated is retained unchanged and no new follow-up is enqueued.
    • Verification: read-only issue/PR/source-state verification; no local tests run.
  12. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done

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

Metadata

Metadata

Assignees

Labels

app/idPackage/app: id (pkgs/ or apps/ in this repo)priority/highImportant and time-sensitiveuser/escalatedQueue or user escalation state

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions