Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
7daf735
docs(phase8): add runtime schema freeze inventory
flyingrobots Mar 22, 2026
219bb15
docs(phase8): define runtime schema artifact set
flyingrobots Mar 22, 2026
be8875c
feat(phase8): add runtime schema source fragments
flyingrobots Mar 22, 2026
e08a673
feat(phase8): add playback and scheduler schema fragments
flyingrobots Mar 22, 2026
1ec7dee
feat(phase8): validate local runtime schema fragments
flyingrobots Mar 22, 2026
fb32e42
docs(phase8): add runtime schema conformance audit
flyingrobots Mar 22, 2026
ec4478c
refactor(phase8): align writer head key naming
flyingrobots Mar 22, 2026
096f0c3
docs(phase8): add runtime schema mapping contract
flyingrobots Mar 22, 2026
637c707
refactor(phase8): type ABI runtime identifiers
flyingrobots Mar 22, 2026
fa95989
chore(tooling): track shared workspace settings
flyingrobots Mar 23, 2026
6ac3aba
fix(ci): restore tasks dag refresh inputs
flyingrobots Mar 23, 2026
5254e97
refactor(phase8): add shared runtime schema crate
flyingrobots Mar 23, 2026
ff7dcc0
docs(phase8): narrow shared runtime schema boundary
flyingrobots Mar 23, 2026
2af8725
docs(phase8): mark runtime schema freeze complete
flyingrobots Mar 23, 2026
0dc6f36
fix(phase8): restore schema feature gating and DAG defaults
flyingrobots Mar 23, 2026
2dfbc21
fix(phase8): harden schema freeze tooling
flyingrobots Mar 23, 2026
2521150
refactor(phase8): make worldline ids opaque
flyingrobots Mar 23, 2026
4cbeacb
docs(phase8): document review follow-ups
flyingrobots Mar 23, 2026
21a683e
docs: note phase 8 review fixes
flyingrobots Mar 23, 2026
67f57c7
docs(backlog): add review tooling follow-ups
flyingrobots Mar 24, 2026
629dccd
fix(phase8): resolve schema review follow-ups
flyingrobots Mar 24, 2026
d560ba2
docs(phase8): align review follow-ups
flyingrobots Mar 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ node_modules
dist
coverage
target
target-ra
target-fmt
target-clippy
target-test
Expand All @@ -21,6 +22,7 @@ docs/.vitepress/cache
.idea
.vscode/*
!.vscode/extensions.json
!.vscode/settings.json
.obsidian
.claude/

Expand Down
5 changes: 5 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"rust-analyzer.cargo.extraEnv": {
"CARGO_TARGET_DIR": "target-ra"
}
}
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,23 @@

## Unreleased

### Fixed (PR #306 follow-up)

- **Fixed** the Phase 8 runtime-schema/tooling follow-ups so workspace
Prettier usage is declared and lockfile-pinned, runtime schema validation now
fails clearly when `node` is unavailable, dependency DAG generation uses the
archived tasks DAG by default with UTC-stable fallback labels, and the
tracked Rust Analyzer workspace target dir is repo-local and cross-platform.
- **Fixed** shared Phase 8 type extraction so `WorldlineId` is actually opaque
like `HeadId`, `echo-wasm-abi` forwards `std`/`serde` into
`echo-runtime-schema` explicitly, `echo-wasm-abi --no-default-features`
avoids a stray `std` dependency, and positive-only scheduler/inbox schema
inputs are represented explicitly as `PositiveInt`.
- **Fixed** late Phase 8 review follow-ups so contributor docs use portable
workspace links, the runtime-schema README matches the default `serde`
contract, the schema audit/inventory docs reflect the typed-id migration, and
dependency-DAG docs use the correct GitHub workflow wording.

### Fixed (PR #304 follow-up)

- **Fixed** the session WebSocket gateway TLS stack to use the Rustls ring
Expand Down
6 changes: 6 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,12 @@ Echo is a deterministic, renderer-agnostic engine. We prioritize:
- rustup toolchain install 1.90.0
- rustup override set 1.90.0

### Shared Workspace Settings

- The repo tracks a minimal [.vscode/settings.json](.vscode/settings.json) for project-safe tooling settings only.
- Keep personal editor preferences such as theme, font family, and UI layout in your user-level VS Code settings, not the tracked workspace file.
- The tracked Rust Analyzer target dir uses the repo-local ignored `target-ra/` path to avoid fighting the default Cargo build directory during background checks.

## Communication

- Rely on GitHub discussions or issues for longer-form proposals.
Expand Down
10 changes: 10 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
# © James Ross Ω FLYING•ROBOTS <https://github.com/flyingrobots>
[workspace]
members = [
"crates/echo-runtime-schema",
"crates/warp-core",

"crates/warp-wasm",
Expand Down Expand Up @@ -47,6 +48,7 @@ echo-config-fs = { version = "0.1.0", path = "crates/echo-config-fs" }
echo-dind-tests = { version = "0.1.0", path = "crates/echo-dind-tests" }
echo-dry-tests = { version = "0.1.0", path = "crates/echo-dry-tests" }
echo-graph = { version = "0.1.0", path = "crates/echo-graph" }
echo-runtime-schema = { version = "0.1.0", path = "crates/echo-runtime-schema", default-features = false }
echo-registry-api = { version = "0.1.0", path = "crates/echo-registry-api" }
echo-scene-codec = { version = "0.1.0", path = "crates/echo-scene-codec" }
echo-scene-port = { version = "0.1.0", path = "crates/echo-scene-port" }
Expand Down
2 changes: 1 addition & 1 deletion crates/echo-dind-harness/tests/digest_golden_vectors.rs
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ fn tick_commit_hash_v2_full_chain_golden_vector() {

// Step 3: Compute tick commit hash using the above digests
let schema_hash = make_hash(0xAB);
let worldline_id = WorldlineId(make_hash(0xCD));
let worldline_id = WorldlineId::from_bytes(make_hash(0xCD));
let tick = 42u64;
let parent = make_hash(0x11);
let patch_digest = make_hash(0x22);
Expand Down
27 changes: 27 additions & 0 deletions crates/echo-runtime-schema/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# SPDX-License-Identifier: Apache-2.0
# © James Ross Ω FLYING•ROBOTS <https://github.com/flyingrobots>
[package]
name = "echo-runtime-schema"
version = "0.1.0"
edition = "2024"
rust-version = "1.90.0"
description = "Shared ADR-0008 runtime schema types for Echo"
license = "Apache-2.0"
repository = "https://github.com/flyingrobots/echo"
readme = "README.md"
keywords = ["echo", "runtime", "schema", "worldline"]
categories = ["data-structures"]

[dependencies]
serde = { version = "1.0", default-features = false, features = ["derive"], optional = true }

[dev-dependencies]
ciborium = "0.2"

[features]
default = ["std", "serde"]
serde = ["dep:serde"]
std = ["serde?/std"]

[lints]
workspace = true
19 changes: 19 additions & 0 deletions crates/echo-runtime-schema/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<!-- SPDX-License-Identifier: Apache-2.0 OR LicenseRef-MIND-UCAL-1.0 -->
<!-- © James Ross Ω FLYING•ROBOTS <https://github.com/flyingrobots> -->

# echo-runtime-schema

Shared ADR-0008 runtime schema primitives for Echo.

This crate is the Echo-local shared owner for runtime-schema types that are not
inherently ABI-only:

- opaque runtime identifiers
- logical monotone counters
- structural runtime key types

`warp-core` consumes or re-exports these semantic types. `echo-wasm-abi`
converts to and from them where the host wire format differs.

Serde derives are feature-gated. The `serde` feature is enabled by default;
consumers using `default-features = false` must enable `serde` explicitly.
Loading
Loading