Skip to content
Merged
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
3 changes: 3 additions & 0 deletions .ban-nondeterminism-allowlist
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ std-fs crates/warp-core/tests/causal_wal_hardening_tests.rs WAL filesystem fixtu
std-env crates/warp-core/tests/external_action_protocol_tests.rs external-action filesystem WAL fixture temp directory selection only.
std-fs crates/warp-core/tests/external_action_protocol_tests.rs external-action filesystem WAL fixture I/O only.
std-process crates/warp-core/tests/external_action_protocol_tests.rs external-action filesystem WAL fixture temp directory disambiguation only.
std-env crates/warp-core/tests/bounded_workspace_observation_tests.rs bounded-observation filesystem fixture temp directory selection only.
std-fs crates/warp-core/tests/bounded_workspace_observation_tests.rs bounded-observation filesystem fixture I/O only.
std-process crates/warp-core/tests/bounded_workspace_observation_tests.rs bounded-observation filesystem fixture temp directory disambiguation only.
std-fs crates/warp-core/tests/external_consumer_contract_fixture_tests.rs installed-contract restart WAL fixture I/O only.
std-fs crates/warp-core/tests/executable_operation_pipeline_tests.rs executable-operation restart WAL fixture I/O only.
std-fs crates/warp-core/tests/provider_contract_admission_tests.rs provider invocation restart WAL fixture I/O only.
Expand Down
17 changes: 16 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,21 @@

### Added

- Echo now independently admits compiler-produced Edict Core and Target IR for
one non-callable external request, verifies its exact source, target profile,
result, basis, and capability closure, independently corroborates the complete
Target IR request against Core, and evaluates argument-rooted runtime fields
under both compiler-declared and Echo-owned step, allocation, and output
ceilings. Admission also requires enough capacity for every terminal
settlement posture. The derived generic request invokes no provider. The
first operation-specific adapter observes an explicit relative-path set
through a capability-rooted directory after request and claim commits. It
refuses traversal, duplicate or unauthorized paths, symlinks, special files,
stale bases, malformed settlements, substituted success apertures, and
aggregate byte-budget overruns; revalidates registry authority before
settlement; retains canonical path/content bytes plus complete basis
evidence; admits `OutcomeUnknown` explicitly; and replays settled bytes
without reopening the workspace.
- Echo now admits domain-neutral external actions through separate
request-before-effect, bounded claim, and settlement-before-resumption WAL
transactions (ADR 0026). Canonical requests bind worldline, operation,
Expand Down Expand Up @@ -112,7 +127,7 @@
and 277,836 bytes /
`279738ffeea40027eb493c15e873b87cf3aa0677a57f9f03fb824698e532322f`,
respectively. The resulting 25-file package has provider identity
`sha256:fe1a1f1c05e88bb3caeadb2d77fb17a906a4819674c50d75b2dcaca0fb6058ec`.
`sha256:6685b7c629ae6955515d69158feb1d7db06af2193de7e5d13e1095101670b977`.
This package build proves generic compiler/provider lowering and independent
verification. The separate `run-edict-operation` witness now consumes that
crossing through Echo-owned runtime execution.
Expand Down
2 changes: 2 additions & 0 deletions Cargo.lock

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

Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"apiVersion":"wesley.generation-provenance-manifest/v1","contractVersions":{"generatorAbi":"wesley.extension-generator/v1","inputSchema":"wesley.extension-generation-input/v1","provenanceSchema":"wesley.generation-provenance-manifest/v1"},"emittedArtifacts":[{"coordinate":"echo.dpo-authority-facts@1","digest":"sha256:e2a6a539a7156296c18ff1bc02f80dcabf62b42bb4314d0737527869e43986d6"},{"coordinate":"echo.dpo-lawpack-authority-facts@1","digest":"sha256:ce1af559551f8b8242c4b290b620c5a28323b9e43f8bc6bb161a191001b6f4b9"},{"coordinate":"echo.dpo-lawpack@1","digest":"sha256:8c570362671a0b1cd1a992d8210e4a90ffd153ad06dcdf1e0cb36033cc971e2c"},{"coordinate":"echo.dpo.registration/v1","digest":"sha256:4ef3aaad0d2131ba7129a3e2ae178d10c44f7e9b062af2c1fe211de781462f34"},{"coordinate":"echo.dpo@1","digest":"sha256:1b105d1b1f6cdf5fecdef98b7adeb238525047d43581fe9fd8c44fd213e1788e"},{"coordinate":"echo.provider-artifacts.cddl@1","digest":"sha256:730ce72f6658fe8cc9302221c32ad5992492e190674ddd69c1b164749d2bb669"}],"generationInputDigest":"sha256:57f5f67172544014af9c92e658301b9fcec69fd77fba9d251b258b59e3591380","generator":{"coordinate":"echo-wesley-gen.provider-artifact-generator@1","digest":"sha256:434467463d311ae5df7b3f778b75cb19113ec31ec2b82e572316c2f788f35346","version":"0.1.0"},"settingsDigest":"sha256:0f708e76898de6fdb8186352e81d0f5c445adf94bb6c7de9204952d9fe913d4a","sourceArtifacts":[{"coordinate":"echo.semantic-schema@1","digest":"sha256:322d9eb5eb8273108eaa602f2eb58ba591efcf829fecb10bb705717efae18852"},{"coordinate":"edict.provider-contract-pack.cddl@1","digest":"sha256:ff5405708185e0bcf33dac263000fcb772c79e21145ad69da7cad0692e1a9552"},{"coordinate":"edict.provider-contract-pack.manifest@1","digest":"sha256:e31d0452bf9d8ba84eaa1ce8c09fa1c25f740decd0ab08cd9c2fde533bdef1fa"}]}
{"apiVersion":"wesley.generation-provenance-manifest/v1","contractVersions":{"generatorAbi":"wesley.extension-generator/v1","inputSchema":"wesley.extension-generation-input/v1","provenanceSchema":"wesley.generation-provenance-manifest/v1"},"emittedArtifacts":[{"coordinate":"echo.dpo-authority-facts@1","digest":"sha256:e2a6a539a7156296c18ff1bc02f80dcabf62b42bb4314d0737527869e43986d6"},{"coordinate":"echo.dpo-lawpack-authority-facts@1","digest":"sha256:ce1af559551f8b8242c4b290b620c5a28323b9e43f8bc6bb161a191001b6f4b9"},{"coordinate":"echo.dpo-lawpack@1","digest":"sha256:8c570362671a0b1cd1a992d8210e4a90ffd153ad06dcdf1e0cb36033cc971e2c"},{"coordinate":"echo.dpo.registration/v1","digest":"sha256:4ef3aaad0d2131ba7129a3e2ae178d10c44f7e9b062af2c1fe211de781462f34"},{"coordinate":"echo.dpo@1","digest":"sha256:1b105d1b1f6cdf5fecdef98b7adeb238525047d43581fe9fd8c44fd213e1788e"},{"coordinate":"echo.provider-artifacts.cddl@1","digest":"sha256:730ce72f6658fe8cc9302221c32ad5992492e190674ddd69c1b164749d2bb669"}],"generationInputDigest":"sha256:57f5f67172544014af9c92e658301b9fcec69fd77fba9d251b258b59e3591380","generator":{"coordinate":"echo-wesley-gen.provider-artifact-generator@1","digest":"sha256:48e583f8c29af45bb89d0e4f883b4fc478f7ec65f887612b865ebd4e1895b0a8","version":"0.1.0"},"settingsDigest":"sha256:0f708e76898de6fdb8186352e81d0f5c445adf94bb6c7de9204952d9fe913d4a","sourceArtifacts":[{"coordinate":"echo.semantic-schema@1","digest":"sha256:322d9eb5eb8273108eaa602f2eb58ba591efcf829fecb10bb705717efae18852"},{"coordinate":"edict.provider-contract-pack.cddl@1","digest":"sha256:ff5405708185e0bcf33dac263000fcb772c79e21145ad69da7cad0692e1a9552"},{"coordinate":"edict.provider-contract-pack.manifest@1","digest":"sha256:e31d0452bf9d8ba84eaa1ce8c09fa1c25f740decd0ab08cd9c2fde533bdef1fa"}]}
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"apiVersion":"wesley.generation-review/v1","authoritative":false,"emittedArtifacts":[{"coordinate":"echo.dpo-authority-facts@1","digest":"sha256:e2a6a539a7156296c18ff1bc02f80dcabf62b42bb4314d0737527869e43986d6"},{"coordinate":"echo.dpo-lawpack-authority-facts@1","digest":"sha256:ce1af559551f8b8242c4b290b620c5a28323b9e43f8bc6bb161a191001b6f4b9"},{"coordinate":"echo.dpo-lawpack@1","digest":"sha256:8c570362671a0b1cd1a992d8210e4a90ffd153ad06dcdf1e0cb36033cc971e2c"},{"coordinate":"echo.dpo.registration/v1","digest":"sha256:4ef3aaad0d2131ba7129a3e2ae178d10c44f7e9b062af2c1fe211de781462f34"},{"coordinate":"echo.dpo@1","digest":"sha256:1b105d1b1f6cdf5fecdef98b7adeb238525047d43581fe9fd8c44fd213e1788e"},{"coordinate":"echo.provider-artifacts.cddl@1","digest":"sha256:730ce72f6658fe8cc9302221c32ad5992492e190674ddd69c1b164749d2bb669"}],"generationInputDigest":"sha256:57f5f67172544014af9c92e658301b9fcec69fd77fba9d251b258b59e3591380","generator":{"coordinate":"echo-wesley-gen.provider-artifact-generator@1","digest":"sha256:434467463d311ae5df7b3f778b75cb19113ec31ec2b82e572316c2f788f35346","version":"0.1.0"},"projectionRoles":["authority-facts.echo-dpo","authority-facts.echo-lawpack","generated-artifact-profile.echo-dpo-registration","lawpack.echo-dpo","schema.echo-provider-artifacts","target-profile.echo-dpo"],"provenanceManifestDigest":"sha256:998426658fbcbd44bff4f28d0d4c82df7aaf05bdbcdb736db9cf481a1948ec82","sourceArtifacts":[{"coordinate":"echo.semantic-schema@1","digest":"sha256:322d9eb5eb8273108eaa602f2eb58ba591efcf829fecb10bb705717efae18852"},{"coordinate":"edict.provider-contract-pack.cddl@1","digest":"sha256:ff5405708185e0bcf33dac263000fcb772c79e21145ad69da7cad0692e1a9552"},{"coordinate":"edict.provider-contract-pack.manifest@1","digest":"sha256:e31d0452bf9d8ba84eaa1ce8c09fa1c25f740decd0ab08cd9c2fde533bdef1fa"}]}
{"apiVersion":"wesley.generation-review/v1","authoritative":false,"emittedArtifacts":[{"coordinate":"echo.dpo-authority-facts@1","digest":"sha256:e2a6a539a7156296c18ff1bc02f80dcabf62b42bb4314d0737527869e43986d6"},{"coordinate":"echo.dpo-lawpack-authority-facts@1","digest":"sha256:ce1af559551f8b8242c4b290b620c5a28323b9e43f8bc6bb161a191001b6f4b9"},{"coordinate":"echo.dpo-lawpack@1","digest":"sha256:8c570362671a0b1cd1a992d8210e4a90ffd153ad06dcdf1e0cb36033cc971e2c"},{"coordinate":"echo.dpo.registration/v1","digest":"sha256:4ef3aaad0d2131ba7129a3e2ae178d10c44f7e9b062af2c1fe211de781462f34"},{"coordinate":"echo.dpo@1","digest":"sha256:1b105d1b1f6cdf5fecdef98b7adeb238525047d43581fe9fd8c44fd213e1788e"},{"coordinate":"echo.provider-artifacts.cddl@1","digest":"sha256:730ce72f6658fe8cc9302221c32ad5992492e190674ddd69c1b164749d2bb669"}],"generationInputDigest":"sha256:57f5f67172544014af9c92e658301b9fcec69fd77fba9d251b258b59e3591380","generator":{"coordinate":"echo-wesley-gen.provider-artifact-generator@1","digest":"sha256:48e583f8c29af45bb89d0e4f883b4fc478f7ec65f887612b865ebd4e1895b0a8","version":"0.1.0"},"projectionRoles":["authority-facts.echo-dpo","authority-facts.echo-lawpack","generated-artifact-profile.echo-dpo-registration","lawpack.echo-dpo","schema.echo-provider-artifacts","target-profile.echo-dpo"],"provenanceManifestDigest":"sha256:45670aa10682d15f8349865c7e94d3938b8229f83dab91cb4b7f4865b035d656","sourceArtifacts":[{"coordinate":"echo.semantic-schema@1","digest":"sha256:322d9eb5eb8273108eaa602f2eb58ba591efcf829fecb10bb705717efae18852"},{"coordinate":"edict.provider-contract-pack.cddl@1","digest":"sha256:ff5405708185e0bcf33dac263000fcb772c79e21145ad69da7cad0692e1a9552"},{"coordinate":"edict.provider-contract-pack.manifest@1","digest":"sha256:e31d0452bf9d8ba84eaa1ce8c09fa1c25f740decd0ab08cd9c2fde533bdef1fa"}]}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"providerAbi": "edict:target-provider@1.0.0",
"provider": {
"coordinate": "echo.edict-provider@1",
"digest": "sha256:fe1a1f1c05e88bb3caeadb2d77fb17a906a4819674c50d75b2dcaca0fb6058ec"
"digest": "sha256:6685b7c629ae6955515d69158feb1d7db06af2193de7e5d13e1095101670b977"
},
"artifacts": [
{
Expand All @@ -21,7 +21,7 @@
},
"generator": {
"coordinate": "echo-wesley-gen.provider-artifact-generator@1",
"digest": "sha256:434467463d311ae5df7b3f778b75cb19113ec31ec2b82e572316c2f788f35346"
"digest": "sha256:48e583f8c29af45bb89d0e4f883b4fc478f7ec65f887612b865ebd4e1895b0a8"
}
}
},
Expand All @@ -40,7 +40,7 @@
},
"generator": {
"coordinate": "echo-wesley-gen.provider-artifact-generator@1",
"digest": "sha256:434467463d311ae5df7b3f778b75cb19113ec31ec2b82e572316c2f788f35346"
"digest": "sha256:48e583f8c29af45bb89d0e4f883b4fc478f7ec65f887612b865ebd4e1895b0a8"
}
}
},
Expand All @@ -59,7 +59,7 @@
},
"generator": {
"coordinate": "echo-wesley-gen.provider-artifact-generator@1",
"digest": "sha256:434467463d311ae5df7b3f778b75cb19113ec31ec2b82e572316c2f788f35346"
"digest": "sha256:48e583f8c29af45bb89d0e4f883b4fc478f7ec65f887612b865ebd4e1895b0a8"
}
}
},
Expand All @@ -78,7 +78,7 @@
},
"generator": {
"coordinate": "echo-wesley-gen.provider-artifact-generator@1",
"digest": "sha256:434467463d311ae5df7b3f778b75cb19113ec31ec2b82e572316c2f788f35346"
"digest": "sha256:48e583f8c29af45bb89d0e4f883b4fc478f7ec65f887612b865ebd4e1895b0a8"
}
}
},
Expand All @@ -102,7 +102,7 @@
"artifactKind": "generationProvenance",
"resource": {
"coordinate": "echo.edict-provider-generation-provenance@1",
"digest": "sha256:720076fdd6462ab5500e944408199a141d07eca8e4e73d542e01e7fcdc715ac4"
"digest": "sha256:42f43a9bd874fe7808f3edce7491899ec21c991d33526e5802e6a3ad1edd2020"
},
"source": {
"kind": "generated",
Expand All @@ -112,7 +112,7 @@
},
"generator": {
"coordinate": "echo-wesley-gen.provider-artifact-generator@1",
"digest": "sha256:434467463d311ae5df7b3f778b75cb19113ec31ec2b82e572316c2f788f35346"
"digest": "sha256:48e583f8c29af45bb89d0e4f883b4fc478f7ec65f887612b865ebd4e1895b0a8"
}
}
},
Expand All @@ -121,7 +121,7 @@
"artifactKind": "reviewArtifact",
"resource": {
"coordinate": "echo.edict-provider-generation-review@1",
"digest": "sha256:592af76dab9f354a4afb663365990e8a14bf07c1721cdc2242319ad457ee5e2b"
"digest": "sha256:1459a631c3ca083de2ccfa3e73eded405b8cdf9b969a0ec6519c1e0484e34877"
},
"source": {
"kind": "generated",
Expand All @@ -131,7 +131,7 @@
},
"generator": {
"coordinate": "echo-wesley-gen.provider-artifact-generator@1",
"digest": "sha256:434467463d311ae5df7b3f778b75cb19113ec31ec2b82e572316c2f788f35346"
"digest": "sha256:48e583f8c29af45bb89d0e4f883b4fc478f7ec65f887612b865ebd4e1895b0a8"
}
}
},
Expand All @@ -150,7 +150,7 @@
},
"generator": {
"coordinate": "echo-wesley-gen.provider-artifact-generator@1",
"digest": "sha256:434467463d311ae5df7b3f778b75cb19113ec31ec2b82e572316c2f788f35346"
"digest": "sha256:48e583f8c29af45bb89d0e4f883b4fc478f7ec65f887612b865ebd4e1895b0a8"
}
}
},
Expand All @@ -169,7 +169,7 @@
},
"generator": {
"coordinate": "echo-wesley-gen.provider-artifact-generator@1",
"digest": "sha256:434467463d311ae5df7b3f778b75cb19113ec31ec2b82e572316c2f788f35346"
"digest": "sha256:48e583f8c29af45bb89d0e4f883b4fc478f7ec65f887612b865ebd4e1895b0a8"
}
}
},
Expand Down

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

2 changes: 1 addition & 1 deletion crates/echo-wesley-gen/tests/provider_package.rs
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ const SEMANTIC_DIGEST: &str =
const RELEASE_DIGEST: &str =
"sha256:c39449495281b51f978468d08c21e93bcfa423176063b41675da61e4674b0066";
const PACKAGE_ARTIFACT_SHA256: &str =
"fe1a1f1c05e88bb3caeadb2d77fb17a906a4819674c50d75b2dcaca0fb6058ec";
"6685b7c629ae6955515d69158feb1d7db06af2193de7e5d13e1095101670b977";
const OTHER_PACKAGE_ARTIFACT_SHA256: &str =
"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";

Expand Down
4 changes: 2 additions & 2 deletions crates/echo-wesley-gen/tests/provider_package_corpus.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ use std::sync::atomic::{AtomicU64, Ordering};
use sha2::{Digest as _, Sha256};

const EXPECTED_PROVIDER_DIGEST: &str =
"sha256:fe1a1f1c05e88bb3caeadb2d77fb17a906a4819674c50d75b2dcaca0fb6058ec";
"sha256:6685b7c629ae6955515d69158feb1d7db06af2193de7e5d13e1095101670b977";
const EXPECTED_MANIFEST_RAW_SHA256: &str =
"49bf01c6c2a7c5295d011e58b9b2a6e0c0436f067a1eb94144dbe27cdad3fef2";
"3a31b133321f9611d2b90ecf99162aa05027f4d6d600740550259dd2596722e9";

const PACKAGE_PATHS: [&str; 25] = [
"components/lowerer.echo-dpo.component.wasm",
Expand Down
4 changes: 4 additions & 0 deletions crates/warp-core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ echo-registry-api = { workspace = true }
echo-edict-canonical = { workspace = true }
warp-math = { workspace = true }

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
cap-fs-ext = "=4.0.2"
cap-std = "=4.0.2"

[dev-dependencies]
proptest = { version = "1.5" }
echo-dry-tests = { workspace = true }
Expand Down
Loading
Loading