feat(fs): bind external scopes to current execution lineage
Add fail-closed Composition lifetime attestation for non-root scopes; preserve pinned deployment-root semantics and principal visibility. Fetch and dispatch bind optional published scope refs inside the refreshed backend boundary. Validation: cargo test -p wip-fs-server (25 unit, 8 HTTP, 31 extension tests and 1 doc-test); Nix clippy for FS and public example with -D warnings; git diff --check.
This commit is contained in:
@@ -125,6 +125,7 @@ struct Seen {
|
||||
#[derive(Default)]
|
||||
struct Controls {
|
||||
bump_before_execute: bool,
|
||||
bump_ancestor: Option<String>,
|
||||
hide_before_execute: bool,
|
||||
hide_ancestor: Option<String>,
|
||||
replace_ancestor: Option<String>,
|
||||
@@ -289,6 +290,9 @@ impl FilesystemBackend for MemoryBackend {
|
||||
entry.node.data.lock().unwrap().revision += 1;
|
||||
controls.bump_before_execute = false;
|
||||
}
|
||||
if let Some(path) = controls.bump_ancestor.take() {
|
||||
self.0.node(&path).data.lock().unwrap().revision += 1;
|
||||
}
|
||||
if controls.hide_before_execute {
|
||||
entry.node.data.lock().unwrap().hidden = true;
|
||||
}
|
||||
@@ -2188,8 +2192,11 @@ fn root_scope_replacement_during_call_rejects_the_prelookup() {
|
||||
);
|
||||
}
|
||||
|
||||
#[path = "support/scoped.rs"]
|
||||
mod scoped;
|
||||
|
||||
#[test]
|
||||
fn nonroot_registrations_fail_closed_until_the_engine_can_attest_their_lifetimes() {
|
||||
fn nonroot_registrations_fail_closed_without_composition_lifetime_attestation() {
|
||||
let fixture = Fixture::new();
|
||||
let mut registry = InterfaceRegistry::new();
|
||||
let root = Scope::new("/").unwrap();
|
||||
|
||||
Reference in New Issue
Block a user