Skip to content

chore: synchronize workspace version to 0.3.3 and protocol to 0.2.5 - #8

Merged
garnizeh-labs merged 5 commits into
mainfrom
feat/m10146-protocol-cleanup
Apr 20, 2026
Merged

garnizeh-labs merged 5 commits into
mainfrom
feat/m10146-protocol-cleanup

Conversation

@garnizeh

@garnizeh garnizeh commented Apr 19, 2026

Copy link
Copy Markdown
Collaborator

Synchronizes the client workspace version and protocol dependencies to match the latest engine and protocol releases.

Summary by CodeRabbit

  • New Features

    • Added asset loading system for procedural mesh management and WASM asset fetching
    • Added automatic reconnection with exponential backoff retry logic and reconnect API
  • Documentation

    • Updated platform terminology and architecture docs
    • Added comprehensive WASM runtime design guide and worker-communication notes
  • Chores

    • Version bumped to 0.3.3; updated dependencies and workspace config
    • Enhanced CI/docs checks and added branding validation and dev toggle tooling
  • Style

    • Updated README badges and copy tweaks

@coderabbitai

coderabbitai Bot commented Apr 19, 2026

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 781fc383-a858-4c23-b41a-b3f98a858a1a

📥 Commits

Reviewing files that changed from the base of the PR and between f943eee and 8cce05a.

📒 Files selected for processing (1)
  • crates/aetheris-client-wasm/Cargo.toml

📝 Walkthrough

Walkthrough

Adds a wasm asset registry with .aeb parsing and Zstd decompression, introduces reconnection logic and MockTransport for testing, updates workspace versions and wasm build cfg, adds CI branding checks and dev toggle scripts, and renames “Nexus” terminology to “Extended Platform” in docs.

Changes

Cohort / File(s) Summary
WASM Asset & Serialization
crates/aetheris-client-wasm/src/assets.rs, crates/aetheris-client-wasm/src/render_primitives.rs
New AssetRegistry and AssetHandle; .aeb parser validating magic/version, streaming Zstd decompression, rmp_serde deserialization; Vertex and MeshData now derive Serialize/Deserialize.
Client Core & Bindings
crates/aetheris-client-wasm/src/lib.rs
Added asset_registry to client, new wasm-bindgen methods wasm_load_asset and reconnect; changed transport type to Option<Box<dyn GameTransport>>; updated tick handling and reconnection state transitions.
Transport & Testing
crates/aetheris-client-wasm/src/transport.rs, crates/aetheris-client-wasm/src/transport_mock.rs
poll_events now appends Disconnected when bridge closed; new MockTransport implementing GameTransport for tests with inbound/outbound queues and closable state.
Playground Reconnect Logic
playground/src/game.worker.ts
Added reconnection state machine with exponential backoff + jitter, persisted connection params, UI notifications, and tick-triggered reconnection attempts.
Workspace & Wasm Config
Cargo.toml, crates/aetheris-client-wasm/Cargo.toml, .cargo/config.toml
Workspace version bumps and dependency updates (including dashmap); added rustflags for wasm32-unknown-unknown to enable web_sys_unstable_apis; reorganized target/dev deps for wasm crate.
CI / Dev Tooling
.github/workflows/ci.yml, .github/workflows/release-plz.yml, justfile, scripts/check_branding.py, scripts/dev_toggle.py
Docs-audit job now runs branding check; release-plz concurrency no longer cancels in-progress runs; added link-dev/unlink-dev tasks and scripts to toggle local patches and scan for forbidden branding.
Docs & Guidance
.github/copilot-instructions.md, README.md, docs/...
Added copilot instructions for WASM three-worker architecture and SAB ABI; README badges/milestone updated; replaced “Nexus” terminology with “Extended Platform” across design docs and renamed example structs.
Misc / Utilities
scratch/gen_test_data.rs, playground/..., /.github/...
Added test data stub executable and other small auxiliary changes (test scaffolding, workflow edits).

Sequence Diagram(s)

sequenceDiagram
    participant GameWorker as Game Worker
    participant AetherisClient as Aetheris Client
    participant AssetRegistry as Asset Registry
    participant HTTP as HTTP Fetch
    participant Parser as Asset Parser
    participant MeshStore as DashMap Storage

    GameWorker->>AetherisClient: wasm_load_asset(handle, url)
    AetherisClient->>AssetRegistry: load_asset(handle, url)
    AssetRegistry->>HTTP: fetch(url)
    HTTP-->>AssetRegistry: Vec<u8>
    AssetRegistry->>Parser: parse_asset(bytes)
    Note over Parser: Validate AEB_MAGIC<br/>Check version (0)<br/>Decompress Zstd payload<br/>Deserialize with rmp_serde
    Parser-->>AssetRegistry: MeshData
    AssetRegistry->>MeshStore: insert(handle, mesh)
    AssetRegistry-->>AetherisClient: Result<(), JsValue>
    AetherisClient-->>GameWorker: Result<(), JsValue]
Loading
sequenceDiagram
    participant GameWorker as Game Worker
    participant Client as Aetheris Client
    participant Transport as GameTransport
    participant Server as Server
    participant ReconnectFn as attemptReconnection()

    GameWorker->>Client: tick()
    Client->>Transport: poll_events()
    Transport-->>Client: NetworkEvent::Disconnected
    Client->>Client: set connection_state = Disconnected
    GameWorker->>ReconnectFn: (on disconnected)
    ReconnectFn->>ReconnectFn: calc exponential backoff + jitter
    ReconnectFn->>GameWorker: postMessage({type:'reconnecting'})
    ReconnectFn->>Client: reconnect(url, cert_hash)
    Client->>Transport: connect(url, cert_hash)
    Transport->>Server: establish connection
    alt success
        Server-->>Transport: connected
        Transport-->>Client: connection ready
        ReconnectFn->>GameWorker: postMessage({type:'connection_ready'})
    else failure
        Transport-->>Client: error
        ReconnectFn->>ReconnectFn: schedule retry
    end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

Poem

🐰 I hop through bytes and mesh arrays bright,
Decompressing night into rendered light.
When links go down I plot and retry,
Mock tests cheer as packets fly.
A whisper: "Extended Platform"—huzzah! 🥕✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 55.88% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the primary change: workspace and protocol version synchronization is the central theme across multiple Cargo.toml files and dependency updates.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/m10146-protocol-cleanup

Comment @coderabbitai help to get the list of available commands and usage tips.

@garnizeh-labs
garnizeh-labs merged commit ca5936c into main Apr 20, 2026
9 checks passed
@garnizeh-labs
garnizeh-labs deleted the feat/m10146-protocol-cleanup branch April 20, 2026 00:06
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.

2 participants