Skip to content

Version history ​

GAOS used the v0.x line to refine its contracts before v1.0. Products should review the migration notes before adopting the stable surface.

Latest release: v1.0.1

The additive patch carries unfinished final speech fragments through correlated run supersession while preserving v1.0 replay, session, and room-agent contracts.

v1.0.1: speech supersession patch ​

Prepared August 30, 2026. Hosts can select append semantics for an unfinished speech segment, replace semantics for a correction, or ordinary admission for a new turn. Fragment joining and durable replacement admission are deterministic, bounded, retry-safe, and preserve a waiting transition that wins the race.

Migration and release notes →

v1.0.0: stable complete SDK ​

Release candidate refreshed August 29, 2026. v1.0 includes the previously planned v0.27 and v0.29 scope without publishing intermediate packages. It freezes the neutral API, removes the scheduled Grid*/grid-named aliases, and ships unified sessions, portal-aware paths, unified actor control sources, self-reported benchmark resource observations, unified command effects, historical verifier kits, and provider-neutral room-agent contracts and runtime orchestration for guides, NPCs, referees, and audience interaction, including privacy-bounded routing, channel transcripts, interruption, speech/caption adapters, reconnect, services, committed watchers, deterministic polls, and durable streamed runs with progress, checkpoints, continuation, deadlines, and recovery. A presentation-cue bridge adds retry-safe browser/native effects. Historical replay, signature, schema, and verifier semantics remain compatible.

Migration and release notes →

Unpublished v0.27 scope: portal-aware paths and unified sessions ​

Prepared July 31, 2026 as an additive scope and incorporated into v1.0.0.

  • Portal-aware layout neighbors reuse ordinary breadth-first pathfinding while preserving the separate authoritative transit plan/commit boundary.
  • Create and attach produce the same live-session handle at the durable head; close remains local-only.
  • Product-owned create and attach routes can synchronously adopt an existing binding with either a full initial tick or the standard resolved-head projection into that same handle without another request.
  • Generic attachment receipts are canonically digested and independently chain-verifiable.
  • Normal and evaluated play share one immutable finalization operation.
  • runSession makes pacing presentation-only and supports fresh agent context at authoritative episode transitions without changing session identity.
  • Session-backed benchmark execution uses runSession while retaining existing adapters and deterministic batch behavior.

Unified session lifecycle → · Portal-aware pathfinding →

v0.26.0: canonical GAOS identity and product boundary ​

Released July 29, 2026 as the coordinated pre-1.0 breaking rename.

  • TypeScript now ships as @yugao-gaos/gaos-sdk; Python ships as gaos-sdk and imports as gaos_sdk.
  • gaos.ticks v1 and gaos.* standalone schema identities replace the former agilabs.* namespace. Published schema $id values use the canonical GAOS Pages domain.
  • Generic TypeScript, synchronous Python, and asynchronous Python SessionClient APIs keep hosted-session contracts product-neutral.
  • Arena/Zonoid clients and environments moved to the Zonoid product repository, removing the SDK's dependency on reference-product behavior.
  • The package entry-point table now covers all public surfaces, and automated architecture checks enforce browser safety, acyclic dependencies, direct internal imports, canonical schema identity, and product isolation.
  • gaos.replay v1.0–v1.3, verifier-kit v1, CLI names, and evidence semantics retain their existing interpretation.

Migration guide →

v0.25.0: product-owned historical verifier kits ​

Released July 27, 2026 with the additive RFC-016 verifier distribution path.

  • Deterministic canonical tar packing gives identical product inputs identical sha256: kit identities.
  • Strict inspection rejects traversal, duplicate paths, non-regular entries, malformed archives, and file-integrity mismatches before extraction.
  • Replay references keep untrusted mirrors separate from independently pinned kit authorization.
  • Digest-keyed cache admission is atomic and rechecks integrity for offline use.
  • A pinned-container runner disables networking, inherits no product environment, mounts only read-only inputs, and applies process, memory, CPU, wall-time, and output limits.
  • TypeScript and Python inspect the same v1 manifest and reference contracts.

Product-owned verifier kits →

v0.24.0: interoperability and verifiable benchmark publication ​

Released July 27, 2026 with the RFC-014 interoperability/dynamic-control milestone and RFC-015 benchmark publication.

  • Bounded parallel execution, interruption, and resume preserve the authored plan and deterministic aggregate.
  • Reproducible gaos.benchmark-bundle.v1 packaging and independent verification reject missing, duplicate, modified, or incompatible evidence and recompute every score.
  • Manifest-pinned external authority facts remain separate from replay, reproduction, openness, model identity, and hidden-test facts.
  • Qualified payoff, action-efficiency, and rating helpers enforce declared preconditions.
  • The neutral leaderboard starter includes SQLite/PostgreSQL schemas, object storage and worker-queue boundaries, artifact download, and local verification.

Verifiable benchmark publication →

RFC-014 compatibility milestone ​

Incorporated into v0.24.0; no separate v0.23.0 artifact was released.

  • A versioned executable host-conformance report covers the common lifecycle failures and repair/control transitions.
  • Host and rendering-engine guides state the simulation and evidence authority boundary for every supported integration.
  • TypeScript, C#, C++, and GDScript-compatible clients share schemas and one golden presentation fixture.
  • gaos.submission.ed25519.v2 binds commands to authenticated controller epochs, signed handoffs, checkpoint continuity, and offline verifier facts.
  • Product-pinned external trust reports cryptographic, pin, expiry, revocation, and subject-binding facts without GAOS private-key custody.

Interoperability and dynamic-control evidence →

v0.22.0: ecosystem and benchmark contracts ​

Released July 27, 2026 as the RFC-013 foundation release.

  • Transport-neutral host and versioned presentation-frame contracts establish stable boundaries for hosts and rendering engines.
  • SeatControlLedger records fixed logical seats, explicit vacancy, consecutive controller epochs, atomic swaps, stale-authority rejection, and checkpoint digest continuity without reinterpreting v1 signatures.
  • Machine-readable descriptors, explicit chance, observer and policy contracts ship with legality, normalization, entropy, and win-rate checks.
  • Benchmark manifest validation, deterministic episode planning, weighted aggregation, leaderboard entry types, and distinct trust claims keep benchmark mechanics separate from product-owned meaning.
  • JSON Schemas and a golden presentation fixture begin cross-language conformance.

Ecosystem bridges and benchmark contracts →

RFC-014 and RFC-015 build additively on these foundations in v0.24.

v0.21.0: durable long-running sessions ​

Released July 26, 2026 after the Arena and TabletopLabs v0.20 migrations identified the remaining authoritative-session gaps.

  • Canonical integrity-checked checkpoints capture reducer state and the full live protocol surface; restore accepts only a contiguous durable event tail.
  • Explicitly confirmed compaction bounds in-memory history while preserving permanent submission identity through a host history index. Old reconnect watermarks return resync_required.
  • PredictionSession implements deterministic optimistic reconciliation, and ./session-host supplies a serialized persist-before-publish lane, publication retry, and event-store conformance tests.
  • nextDeadline() exposes tick-window scheduling; declared seats remain immutable while occupancy and spectators stay product/host state.
  • Cursor precedence and reducer rejection typing complete RFC-011 A1/A2.
  • SessionView.status adds ended; gaos.replay v1.3 exports it with stars: null, while v1.0/v1.1/v1.2 remain compatible.
  • Participation diagnostics now name both declared and supplied seat sets.

Sessions and integrity → · Portable replay →

v0.20.0: signed portable evidence ​

Released July 26, 2026 after Arena and TabletopLabs returned their v0.19 integration findings. v0.20 makes the resulting signed artifacts fully third-party verifiable with a pinned historical adapter and no GAOS service, providing the evidence layer for Game-as-a-Benchmark products.

  • gaos.replay v1.2 validates and verifies gaos.submission.ed25519.v1, with canonical command/cursor/time material for chained submissions, order-independent roster hashing, roster-bound chain genesis, and per-seat signingTier.N.
  • Commit/reveal and rejected reveal submissions require tier-1 signatures. High-rate submissions can be covered by periodic signed chain heads recorded in the durable seat-signature lane.
  • TypeScript and zero-dependency Python share RFC 8032 checks, deterministic signing, three complete framed vectors, and independent chain verification.
  • Replay facts remain separate: ok is computation consistency, signatures.state is signed / partial / unsigned, and verdict is trusted / unverifiable / rejected.
  • semantics independently reports signed command and timeout action reconstruction. Tick-bounded policies fix timeout position at windowRef + windowTicks; wall-clock earliness is not claimed.
  • Offline gaos verify and gaos-verify commands compose signature facts with a pinned product adapter. No GAOS service, account, or network is involved.
  • The session hot path reuses canonical seat-view bytes and one cloned delta graph, removing the pre-pin serialization duplication without changing the wire contract.
  • Tier-2-signed (seat, scopeId) interest declarations narrow partitioned views without widening visibility, survive replay, and emit independently reconstructible delivery streams.
  • Observation codec v2 is the only v0.20 delivery codec. It uses bounded safe JSON patches with snapshot fallback; adaptive delivery backs off after an uneconomic probe with an exponential per-scope circuit breaker, while patchStrategy: 'never' keeps v2 snapshots and skips diff CPU entirely. Derived observation caches use copy-on-write ownership without weakening public snapshot isolation. Clients migrate from snapshot-only v1 through applyObservationDelta. Repair origins, opaque product action payloads, pre-ingest legality, typed view failures, play-all-level runs, and host recovery helpers incorporate the two product migrations' findings.
  • SessionView separates generic lifecycle observations from the action/grid-shaped TickView; non-HUD reducers report deterministic replay counters through replayMetrics, while existing reducers remain unchanged.
  • Arena chooser and dialogue navigation is classified as host/UI state. Confirmed choices become normal SDK actions, so no seat-local state-changing kernel transition or revision exception is introduced.

Trust and verification → · Portable replay →

v0.19.0: authoritative sessions and integrity ​

Prepared July 25, 2026.

  • New optional ./session kernel with persist-before-publish prepared transitions, explicit commit/abort lifecycle, mutable-state isolation, durable partial-window intents, crash rehydration, and per-seat observation revisions with canonical applied-submission acknowledgements and routable rejection identities recoverable by durable transition watermark. Accepted submission IDs are permanently single-use.
  • Multi-level finalizeRunReplay projection with derived level seeds, global action/record numbering, aggregate totals, and run-terminal validation.
  • gaos.replay v1.1 grouped resolutions preserve one reducer call per authoritative resolution and add timeout, extension, and mismatch audit records. The parser continues to accept and reproduce v1.0 artifacts; TypeScript and Python share Unicode-code-point canonical key order, JavaScript-safe integers, and strict schema semantics.
  • dmath-1 contexts provide deterministic sin, cos, atan2, clamp, and roundTo, frozen for the first time by this release with a 512-bit independent oracle and Node/Chromium/Firefox/WebKit/workerd bit-vector CI.
  • gaos.commit.sha256.v1 provides byte-exact framing, canonical payload validation, synchronous SHA-256 replay verification, published complete preimage vectors, and explicit non-fatal replay diagnostics. The v1.1 audit lane is advisory host attestation; additive v1.2 signature/chain/roster fields are reserved for RFC-010 under seatKeys, clientTime, timeoutPolicy, and seat-signature. Session construction requires an explicit UTC-epoch clock provider or 'none'; event hostTime is advisory and optional, and portable projection is opt-in.
  • Migration: the final API/wire name is timeout, not deadline, and finalizeRunReplay source transcripts must use seedPolicy: 'explicit'. Hosts must also add the explicit hostTime policy; timestamp-free persisted events remain valid.

Sessions and integrity → · Portable replay →

v0.18.0: one coherent tick model ​

Released July 24, 2026.

  • TickReducer.advance(state, inputs) defines one deterministic tick with zero, one, or many canonical inputs.
  • Existing settlement resolution steps execute within that tick.
  • Turn order and turn-scoped durations are product concerns and no longer ship as SDK mechanics.
  • The wire protocol became tick-native, with a protocol identifier, tickId, kind: "tick", and a tick observation.
  • TypeScript and Python agent step() calls each advance exactly one tick. Products own decision cadence and action-holding policy.

v0.17.0: portable benchmark replays ​

Released July 24, 2026.

  • SDK-owned gaos.replay v1 JSONL envelope for both single-level sessions and ordered multi-level runs.
  • Explicit per-level seeds, pinned content/results, reducer adapter identity, aggregate totals, and level-indexed actions.
  • Canonical serialization, strict parsing, transport validation, whole-run reducer recheck, and a creator-platform results.replayFormat integration constant.
  • Packaged JSON Schema, cross-language golden fixture, and zero-dependency Python parsing, validation, and canonical serialization.
  • Lossless adapter from the existing TranscriptHeader/TranscriptAction pair, allowing Arena and creator-platform results to share verifier tooling.
  • Public documentation and capability map present GAOS as a general game SDK, spanning card, puzzle, tactics, simulation, and hybrid games, with grids as one optional mechanism.
  • Six playable browser demos cover card, puzzle, hex, graph, hybrid, and real-time scheduled game loops.

Portable replay specification →

Composable game mechanisms ​

v0.16.0: portals and multi-agent play ​

Prepared July 23, 2026.

  • Atomic portal planning and commit across square, hex, and graph boards and ordered, bag, or slotted zones.
  • Bounded multi-hop traversal, cycles, groups, footprints, transformations, destination capacity, and deterministic contention.
  • Frame skipping for decision-point agents with transcript v1.2.
  • Seat-redacted MultiAgentEnvironment episodes with canonical simultaneous batches and per-seat rewards.
  • Authoritative hidden-information deployment guidance, including per-match server resolvers and optimistic P2P dispute verification.

Portal reference → · Multi-agent reference → · High-frequency turns →

v0.15.0: zones and card composition ​

Prepared July 23, 2026.

  • Ordered, bag, and sparse slotted zones with atomic transfers.
  • Seeded shuffle, draw, round-robin dealing, and batch dealing.
  • Keyword layers, response priority, declarative targets, durations, phase hooks, and deck/squad validation.
  • Priority resource claims for contested draft picks and capacity.

Zones and card play →

v0.14.0: information partitions ​

Prepared July 23, 2026.

  • Deterministic viewFor(state, seat) observations.
  • Independent identity and order visibility for zones.
  • Fog-of-war, entity shells, leak assertions, revelations, teams, spectators, and ranked multi-seat outcomes.
  • Turn order, participation descriptors, pattern matching, sparse tick transcripts, rollback resimulation, and state digests.

Information partitions → · Ticks and lockstep →

v0.13.0: neutral core and layouts ​

Prepared July 23, 2026.

  • Genre-neutral reducer, action, solver, and replay names.
  • Deprecated v0.12 aliases retained with equivalent behavior.
  • LocationRef addressing across multiple containers.
  • Square, axial-hex, and directed-graph layouts with generic pathfinding, line-of-sight, fields, and keyed movement.

Locations and layouts → · Migration table →

Foundation releases ​

VersionDateMain addition
v0.12.02026-07-22Runtime validation, integrity, retry lifecycle, and deterministic edge-case hardening
v0.11.02026-07-22Atomic, product-defined resource transactions
v0.10.02026-07-22Resumable agent interruption
v0.9.22026-07-21Complete mechanism documentation, benchmark mission, and Build Week release packet
v0.9.12026-07-21Nearest reachable qualified paths and the public VitePress site
v0.9.02026-07-21Gates, latched triggers, policy-driven rays, and generic behavior trees
v0.8.02026-07-21Chain reactions, projectiles, push chains, arrivals, claims, transport, and interlocks
v0.7.02026-07-21Deterministic multi-wave settlement
v0.6.02026-07-21Local Ollama-backed CLI agent support
v0.5.12026-07-21Product and action-prompt composition
v0.5.02026-07-21Extensible keyed-model drivers and the gaos-agent CLI
v0.4.02026-07-21Deterministic agent environment, portable tools, and Python evaluation
v0.3.02026-07-21Reusable geometry and pathfinding
v0.2.02026-07-21Reusable engine core, generic solver, and replay verification
v0.1.12026-07-21Build output for Git-based package installation
v0.1.02026-07-21TypeScript and Python turn SDKs, protocol documentation, and release automation

Compatibility policy ​

  • v0.13 through v0.17 are additive.
  • Existing single-board and perfect-information reducers continue to work.
  • The old Grid* core names remain deprecated aliases through v0.x.
  • v1.0 removes those aliases and is the next intentional breaking boundary.

For migration details and maintainer publishing instructions, see Release process and migrations.

Game-as-a-Benchmark: one product reducer for human play, agent evaluation, and verifiable exact runs.