Skip to content

SYNC-01: define save-bundle identity and conflict contract #647

Closed

Description

@boburning

Work package

SYNC-01 from the repository-owned v3 autonomous work program.

Scope

Define the transport-independent, versioned contract for immutable save bundles before any sync engine, transport, or UI exists.

Acceptance criteria

  • A bounded schema covers bundle ID, canonical Bloom GameID, normalized content identity, system, save/state kind and compatibility group, exact backend/component identity when required, source device, lineage, generation, parent payload hash, payload hash/size, optional advisory wall timestamp, and authentication metadata.
  • The contract fixes the canonical signed representation and algorithm, paired-device/key identity, deauthorization, rotation, cloned-device, and replay behavior.
  • Conflict outcomes are deterministic from identity, compatibility, lineage, generation, parent hash, and payload hash. Wall time never silently selects a winner.
  • Invalid, unauthenticated, incompatible, forked, gapped, replay-collision, or unknown-version input fails closed or requires explicit review; it never writes live save directories.
  • A checked-in authority, validator, negative fixtures/tests, normative architecture/security documentation, test-matrix entry, release preflight, and risk-scoped CI mapping prevent contract drift.
  • This package has no transport, network, device mutation, runtime import/export, live-save access, or UI scope. Those remain SYNC-02 through SYNC-04.

Evidence required

Focused contract tests, Python 3.8 compatibility, CI-scope tests, release preflight, and the repository's risk-3 host gates. No device claim is expected.

Activity

  1. boburning commented on Aug 31, 2026

    @boburning
    OwnerAuthor

    SYNC-01 is complete on main.

    • implementation PR SYNC-01: define authenticated save bundle contract #648 merged as 7cf81bc308fdb440c28be0a944a4d3e11b035bc1
    • ledger follow-up PR docs(program): close SYNC-01 ledger state #649 merged as a01f2a7fa7cfc3877405b4ba2005d600cbf2ec70
    • required checks passed: clean ARM build, native, AddressSanitizer, static analysis, and exact 830-test shell suite
    • local evidence also passed focused SYNC-01 9/9, native 595/595, ASan 595/595, UI gallery 10/10, and pinned-toolchain validation
    • scope remains transport-independent and host-only; no handheld deployment or device claim was made

    One first-attempt shell run observed an unrelated existing developer-SSH concurrency timing failure; the exact retry passed 830/830 without code changes.

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