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.
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.
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.
runSessionmakes pacing presentation-only and supports fresh agent context at authoritative episode transitions without changing session identity.- Session-backed benchmark execution uses
runSessionwhile 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 asgaos-sdkand imports asgaos_sdk. gaos.ticksv1 andgaos.*standalone schema identities replace the formeragilabs.*namespace. Published schema$idvalues use the canonical GAOS Pages domain.- Generic TypeScript, synchronous Python, and asynchronous Python
SessionClientAPIs 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.replayv1.0–v1.3, verifier-kit v1, CLI names, and evidence semantics retain their existing interpretation.
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.
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.v1packaging 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.v2binds 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.
SeatControlLedgerrecords 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. PredictionSessionimplements deterministic optimistic reconciliation, and./session-hostsupplies 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.statusaddsended;gaos.replayv1.3 exports it withstars: 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.replayv1.2 validates and verifiesgaos.submission.ed25519.v1, with canonical command/cursor/time material for chained submissions, order-independent roster hashing, roster-bound chain genesis, and per-seatsigningTier.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-signaturelane. - TypeScript and zero-dependency Python share RFC 8032 checks, deterministic signing, three complete framed vectors, and independent chain verification.
- Replay facts remain separate:
okis computation consistency,signatures.stateissigned/partial/unsigned, andverdictistrusted/unverifiable/rejected. semanticsindependently reports signed command and timeout action reconstruction. Tick-bounded policies fix timeout position atwindowRef + windowTicks; wall-clock earliness is not claimed.- Offline
gaos verifyandgaos-verifycommands 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 throughapplyObservationDelta. 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. SessionViewseparates generic lifecycle observations from the action/grid-shapedTickView; non-HUD reducers report deterministic replay counters throughreplayMetrics, 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
./sessionkernel 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
finalizeRunReplayprojection with derived level seeds, global action/record numbering, aggregate totals, and run-terminal validation. gaos.replayv1.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-1contexts provide deterministicsin,cos,atan2,clamp, androundTo, 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.v1provides 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 underseatKeys,clientTime,timeoutPolicy, andseat-signature. Session construction requires an explicit UTC-epoch clock provider or'none'; eventhostTimeis advisory and optional, and portable projection is opt-in.- Migration: the final API/wire name is
timeout, notdeadline, andfinalizeRunReplaysource transcripts must useseedPolicy: 'explicit'. Hosts must also add the explicithostTimepolicy; 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 atickobservation. - 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.replayv1 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.replayFormatintegration constant. - Packaged JSON Schema, cross-language golden fixture, and zero-dependency Python parsing, validation, and canonical serialization.
- Lossless adapter from the existing
TranscriptHeader/TranscriptActionpair, 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
MultiAgentEnvironmentepisodes 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.
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.
LocationRefaddressing 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
| Version | Date | Main addition |
|---|---|---|
| v0.12.0 | 2026-07-22 | Runtime validation, integrity, retry lifecycle, and deterministic edge-case hardening |
| v0.11.0 | 2026-07-22 | Atomic, product-defined resource transactions |
| v0.10.0 | 2026-07-22 | Resumable agent interruption |
| v0.9.2 | 2026-07-21 | Complete mechanism documentation, benchmark mission, and Build Week release packet |
| v0.9.1 | 2026-07-21 | Nearest reachable qualified paths and the public VitePress site |
| v0.9.0 | 2026-07-21 | Gates, latched triggers, policy-driven rays, and generic behavior trees |
| v0.8.0 | 2026-07-21 | Chain reactions, projectiles, push chains, arrivals, claims, transport, and interlocks |
| v0.7.0 | 2026-07-21 | Deterministic multi-wave settlement |
| v0.6.0 | 2026-07-21 | Local Ollama-backed CLI agent support |
| v0.5.1 | 2026-07-21 | Product and action-prompt composition |
| v0.5.0 | 2026-07-21 | Extensible keyed-model drivers and the gaos-agent CLI |
| v0.4.0 | 2026-07-21 | Deterministic agent environment, portable tools, and Python evaluation |
| v0.3.0 | 2026-07-21 | Reusable geometry and pathfinding |
| v0.2.0 | 2026-07-21 | Reusable engine core, generic solver, and replay verification |
| v0.1.1 | 2026-07-21 | Build output for Git-based package installation |
| v0.1.0 | 2026-07-21 | TypeScript 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.