Skip to content

Commit 729041c

Browse files
authored
Merge pull request #306 from flyingrobots/feat/adr-0008-0009-phase-8
Resolved 27 issues; v0.1.1.
2 parents 12b4cab + 470c190 commit 729041c

62 files changed

Lines changed: 3756 additions & 985 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ node_modules
66
dist
77
coverage
88
target
9+
target-ra
910
target-fmt
1011
target-clippy
1112
target-test
@@ -21,6 +22,7 @@ docs/.vitepress/cache
2122
.idea
2223
.vscode/*
2324
!.vscode/extensions.json
25+
!.vscode/settings.json
2426
.obsidian
2527
.claude/
2628

.vscode/settings.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"rust-analyzer.cargo.extraEnv": {
3+
"CARGO_TARGET_DIR": "target-ra"
4+
}
5+
}

CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,29 @@
55

66
## Unreleased
77

8+
### Fixed (PR #306 follow-up)
9+
10+
- The Phase 8 runtime-schema/tooling follow-ups so workspace Prettier usage is
11+
declared and lockfile-pinned, runtime schema validation now fails clearly
12+
when `node` is unavailable, dependency DAG generation uses
13+
`docs/archive/tasks/TASKS-DAG.md` as the default task source with UTC-stable
14+
fallback labels, and the tracked Rust Analyzer workspace target dir is
15+
repo-local and cross-platform.
16+
- Shared Phase 8 type extraction so `WorldlineId` is actually opaque like
17+
`HeadId`, `echo-wasm-abi` forwards `std`/`serde` into `echo-runtime-schema`
18+
explicitly, `echo-wasm-abi --no-default-features` avoids a stray `std`
19+
dependency, and positive-only scheduler/inbox schema inputs are represented
20+
explicitly as `PositiveInt`.
21+
- Late Phase 8 review follow-ups so contributor docs use portable workspace
22+
links, the runtime-schema README matches the default `serde` contract, the
23+
schema audit/inventory docs reflect the typed-id migration, and
24+
dependency-DAG docs use the correct GitHub workflow wording.
25+
- Final Phase 8 review follow-ups so shared logical counters enforce their
26+
checked-arithmetic boundary, runtime-schema validation runs through the
27+
pinned `pnpm schema:runtime:check` entrypoint, worldline-id/schema
28+
nullability docs match the frozen 32-byte and scheduler-state contracts, and
29+
backlog follow-up tasks now require `cargo xtask` as the maintenance surface.
30+
831
### Fixed (PR #304 follow-up)
932

1033
- **Fixed** the session WebSocket gateway TLS stack to use the Rustls ring

CONTRIBUTING.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,12 @@ Echo is a deterministic, renderer-agnostic engine. We prioritize:
101101
- rustup toolchain install 1.90.0
102102
- rustup override set 1.90.0
103103

104+
### Shared Workspace Settings
105+
106+
- The repo tracks a minimal [.vscode/settings.json](.vscode/settings.json) for project-safe tooling settings only.
107+
- Keep personal editor preferences such as theme, font family, and UI layout in your user-level VS Code settings, not the tracked workspace file.
108+
- 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.
109+
104110
## Communication
105111

106112
- Rely on GitHub discussions or issues for longer-form proposals.

Cargo.lock

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
# © James Ross Ω FLYING•ROBOTS <https://github.com/flyingrobots>
33
[workspace]
44
members = [
5+
"crates/echo-runtime-schema",
56
"crates/warp-core",
67

78
"crates/warp-wasm",
@@ -47,6 +48,7 @@ echo-config-fs = { version = "0.1.0", path = "crates/echo-config-fs" }
4748
echo-dind-tests = { version = "0.1.0", path = "crates/echo-dind-tests" }
4849
echo-dry-tests = { version = "0.1.0", path = "crates/echo-dry-tests" }
4950
echo-graph = { version = "0.1.0", path = "crates/echo-graph" }
51+
echo-runtime-schema = { version = "0.1.0", path = "crates/echo-runtime-schema", default-features = false }
5052
echo-registry-api = { version = "0.1.0", path = "crates/echo-registry-api" }
5153
echo-scene-codec = { version = "0.1.0", path = "crates/echo-scene-codec" }
5254
echo-scene-port = { version = "0.1.0", path = "crates/echo-scene-port" }

crates/echo-dind-harness/tests/digest_golden_vectors.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ fn tick_commit_hash_v2_full_chain_golden_vector() {
115115

116116
// Step 3: Compute tick commit hash using the above digests
117117
let schema_hash = make_hash(0xAB);
118-
let worldline_id = WorldlineId(make_hash(0xCD));
118+
let worldline_id = WorldlineId::from_bytes(make_hash(0xCD));
119119
let tick = 42u64;
120120
let parent = make_hash(0x11);
121121
let patch_digest = make_hash(0x22);
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# SPDX-License-Identifier: Apache-2.0
2+
# © James Ross Ω FLYING•ROBOTS <https://github.com/flyingrobots>
3+
[package]
4+
name = "echo-runtime-schema"
5+
version = "0.1.0"
6+
edition = "2024"
7+
rust-version = "1.90.0"
8+
description = "Shared ADR-0008 runtime schema types for Echo"
9+
license = "Apache-2.0"
10+
repository = "https://github.com/flyingrobots/echo"
11+
readme = "README.md"
12+
keywords = ["echo", "runtime", "schema", "worldline"]
13+
categories = ["data-structures"]
14+
15+
[dependencies]
16+
serde = { version = "1.0", default-features = false, features = ["derive"], optional = true }
17+
18+
[dev-dependencies]
19+
ciborium = "0.2"
20+
21+
[features]
22+
default = ["std", "serde"]
23+
serde = ["dep:serde"]
24+
std = ["serde?/std"]
25+
26+
[lints]
27+
workspace = true
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<!-- SPDX-License-Identifier: Apache-2.0 OR LicenseRef-MIND-UCAL-1.0 -->
2+
<!-- © James Ross Ω FLYING•ROBOTS <https://github.com/flyingrobots> -->
3+
4+
# echo-runtime-schema
5+
6+
Shared ADR-0008 runtime schema primitives for Echo.
7+
8+
This crate is the Echo-local shared owner for runtime-schema types that are not
9+
inherently ABI-only:
10+
11+
- opaque runtime identifiers
12+
- logical monotone counters
13+
- structural runtime key types
14+
15+
`warp-core` consumes or re-exports these semantic types. `echo-wasm-abi`
16+
converts to and from them where the host wire format differs.
17+
18+
Serde derives are feature-gated. The `serde` feature is enabled by default;
19+
consumers using `default-features = false` must enable `serde` explicitly.

0 commit comments

Comments
 (0)