Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
28 changes: 28 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,34 @@ architecture document, follow any explicit links into the historical ADR
archive, then inspect the current GitHub issue or pull request, `git log -n 5`,
and `git status`.

## Durable Decision Discipline

Important decisions are incomplete until their durable owner is current.
Architecture, authority, identity, canonical-format, recovery, compatibility,
ownership, public-API, and release-boundary decisions MUST be recorded in the
same change in the current document that owns the concept. Chat transcripts,
Think memories, pull-request prose, and review threads may explain or motivate
a decision, but they are not its canonical repository home.

For every such decision:

1. Name one canonical owner under `docs/architecture/`, `docs/spec/`,
`docs/invariants/`, or `docs/topics/` before completing the change.
2. Record the accepted rule, its current-versus-target posture, and explicit
refinement, supersession, dependency, and related-document edges.
3. Update `docs/README.md` or another relevant entrance when a durable page is
added, moved, or renamed.
4. Link to the canonical owner from reader-specific pages instead of copying
the same rule into several places.
5. Keep implementation checklists, review state, dates, and delivery status in
GitHub. Current docs define durable truth, not a second project tracker.
6. Revisit the same canonical owner whenever later work refines the decision.
A refinement is not complete while code, schemas, packages, or release
behavior disagree with the documented rule.

Do not allocate a new numbered ADR. Treat missing or stale canonical decision
documentation as incomplete engineering work, not optional polish.

## Work Loop

```text
Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@

### Added

- The unreleased `flyingrobots-echo-runtime` crate now proves the first sealed
Rust host facade over Echo's trusted runtime and WAL recovery lane. The
trusted host implementation can compile without `native_rule_bootstrap`, and
the facade exposes bounded configuration plus read-only recovery evidence
without exporting the underlying engine, native rule registration, or raw
receipt, authority-epoch, and commit constructors. Installation, submission,
scheduling, outcomes, and receipts remain outside this first boundary; the
crate is explicitly `publish = false` and authorizes no release.
- The checked Edict provider contract now admits generic nominal Core types as
exact contract coordinates over bounded storage representations. The
regenerated provider package remains application-neutral and adds no Jim,
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.

4 changes: 3 additions & 1 deletion 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",
"crates/echo-runtime-schema",
"crates/warp-math",
"crates/warp-core",
Expand Down Expand Up @@ -42,12 +43,13 @@ echo-file-aperture = { version = "0.1.0", path = "crates/echo-file-aperture" }
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-runtime = { version = "0.1.0-alpha.1", path = "crates/echo-runtime" }
echo-edict-canonical = { version = "0.1.0", path = "crates/echo-edict-canonical" }
echo-scene-codec = { version = "0.1.0", path = "crates/echo-scene-codec" }
echo-scene-port = { version = "0.1.0", path = "crates/echo-scene-port" }
echo-wasm-abi = { version = "0.1.0", path = "crates/echo-wasm-abi" }
warp-math = { version = "0.1.0", path = "crates/warp-math" }
warp-core = { version = "0.1.1", path = "crates/warp-core" }
warp-core = { version = "0.1.1", path = "crates/warp-core", default-features = false }

# ── Workspace-wide lint policy ──────────────────────────────────────
# Maximum strictness. Crates opt in via `[lints] workspace = true`.
Expand Down
11 changes: 7 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -196,10 +196,13 @@ application-owned Edict operation now crosses it through a compiler-produced
package and structurally separate accepted verification report, but no Jedit
rope lawpack or `ReplaceRange` operation uses it. It does not yet claim
cross-category scheduler composition or independently implemented semantic
conformance. It also temporarily reuses `TrustedRuntimeHost`'s joint
`native_rule_bootstrap` and `trusted_runtime` feature gate. The program itself
has no native hooks, but the host surface must be decoupled from the legacy
bootstrap feature before a product can remove that compatibility feature.
conformance. The existing `xtask` witness still enables both
`native_rule_bootstrap` and `trusted_runtime`, but the trusted host and WAL
implementation can now compile without `native_rule_bootstrap`. The unreleased
`flyingrobots-echo-runtime` crate proves a sealed
construction-and-recovery facade over that lane. Package installation,
submission, scheduling, and receipt access have not yet moved to the facade, so
it remains `publish = false` and is not yet the external product host boundary.

The following sequence is the existing Wesley bootstrap fixture:

Expand Down
28 changes: 28 additions & 0 deletions crates/echo-runtime/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# SPDX-License-Identifier: Apache-2.0
# © James Ross Ω FLYING•ROBOTS <https://github.com/flyingrobots>

[package]
name = "flyingrobots-echo-runtime"
version = "0.1.0-alpha.1"
edition = "2021"
rust-version = "1.90.0"
description = "Sealed host facade for the Echo causal runtime"
license = "Apache-2.0"
repository = "https://github.com/flyingrobots/echo"
readme = "README.md"
publish = false
include = ["src/**", "tests/**", "README.md"]

[lib]
name = "echo_runtime"

[dependencies]
blake3 = "1.0"
thiserror = "1.0"
warp-core = { workspace = true, default-features = false, features = ["trusted_runtime"] }

[dev-dependencies]
tempfile = "3"

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

# Echo Runtime for Rust

`flyingrobots-echo-runtime` exposes the Rust library name `echo_runtime`. It is
the first sealed host facade for constructing and recovering a local Echo
runtime and WAL shell without exposing native rule registration or raw receipt,
authority-epoch, and commit constructors.

Package installation, application submission, scheduling, and receipt access
are not yet exposed through this facade. Those capabilities remain release
engineering work and must be added only through bounded, authority-safe APIs.

This package is an unreleased alpha boundary with `publish = false`. It is not
available on crates.io and does not authorize publication.
Loading
Loading