Skip to content

docs(architecture): define greenfield Rust Oteryn client - #45

Merged
blakinio merged 58 commits into
mainfrom
docs/OTC-20260726-rust-client-architecture
Jul 26, 2026
Merged

docs(architecture): define greenfield Rust Oteryn client#45
blakinio merged 58 commits into
mainfrom
docs/OTC-20260726-rust-client-architecture

Conversation

@blakinio

@blakinio blakinio commented Jul 26, 2026

Copy link
Copy Markdown
Owner

Purpose

Define one normative, agent-ready architecture for a greenfield Rust Oteryn client while keeping the current C++/Lua/OTUI client operational as a separately documented legacy/reference track.

Greenfield scope

  • isolated oteryn-client/ product directory and nested agent rules
  • data-oriented runtime, chunked world model and wgpu renderer boundary
  • native Rust UI, input, audio, assets, diagnostics and launcher/updater boundaries
  • static first-party feature crates with optional capability-limited WebAssembly extensions
  • Canary-first protocol adapter and separate future Oteryn adapter over stable GameEvent/GameCommand contracts
  • Oteryn Identity Authorization Code + PKCE and one-shot game-session handoff
  • account, character, world and gameplay-channel selection
  • Channel 1 -> Channel 2 changes through relog with a fresh ticket/session
  • measurable performance/test/security requirements

Agent program

  • mandatory foundation audit before Cargo/workspace bootstrap
  • ten required audit outputs covering product, Canary, Identity/session, assets/licensing, performance, platform, fixtures, risks and decisions
  • workstream/path ownership map
  • copy-ready prompt for the first audit-only agent
  • five accepted ADRs for the core architecture decisions

Legacy preservation

The existing client remains untouched and buildable. Its maintenance knowledge is preserved in:

  • docs/architecture/LEGACY_OTCLIENT_ARCHITECTURE.md
  • docs/agents/LEGACY_OTCLIENT_WORKSTREAMS.md

Legacy code is audit evidence only for the Rust track and is not a runtime dependency or architectural template.

Product constraint

A gameplay channel is a parallel instance of one world. It is selected during login or relog; it is not a network multiplexing stream. Seamless in-game channel transfer is out of scope.

Safety and review

Validation

  • complete 31-file documentation/governance path review: passed
  • architecture, route, terminology and legacy/Rust separation review: passed
  • exact-head CI run 30222662629: passed
  • Detect Build Scope, both Fast Checks, Lua Syntax and CI / Required: passed
  • Windows build correctly skipped for documentation-only scope
  • no open comments or requested changes

Task

OTC-20260726-rust-client-architecture

Ready for squash merge after the final mergeability, changed-file and required-check verification.

blakinio added 30 commits July 26, 2026 23:31
@blakinio
blakinio marked this pull request as ready for review July 26, 2026 22:14
@blakinio
blakinio merged commit 8f46706 into main Jul 26, 2026
17 checks passed
@blakinio
blakinio deleted the docs/OTC-20260726-rust-client-architecture branch July 26, 2026 22:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant