Files
Hare 755e6aeb88 feat: bind Host interfaces to scope Object lifetimes
Register explicit scope/name coordinates independently of Definition type. Require provider-attested current scope snapshots for fetch and dispatch, compare optional scope_ref at membership precedence, and retain the same Descriptor through result validation.

Migrate FS pinned-root boundaries and public self-scope example; document provider atomicity/lifecycle and root-only FS support. Add lifecycle, ref, replacement-race, root-lineage and compile-time exposure regressions.

Validation: cargo fmt --all --check; git diff --check; cargo check --workspace --all-targets; cargo test --workspace --all-targets and --doc (232 passing test-harness cases including doctests); nix develop --command cargo clippy --workspace --all-targets -- -D warnings; RUSTDOCFLAGS=-Dwarnings cargo doc --workspace --no-deps. Narrow wip-host suite also passed.
2026-10-08 03:18:13 +09:00
..

wip-host

Framework-independent Host publication and operation dispatch for the Web Interface Protocol (WIP).

wip-host registers generated interfaces, explicitly publishes them on request-scoped objects, validates object and interface preconditions, and performs interface-qualified operation dispatch against one host-owned instance. Backend transactions, persistence, and network serving remain application responsibilities.

[dependencies]
wip-host = "0.1.0"
wip-interface = "0.1.0"

Protocol publication and dispatch use wip_protocol::InterfaceReference { scope, name } and compare both fields exactly. The legacy InterfaceRef registration token remains Host-private: protocol_reference() maps its opaque string verbatim to the name at root scope /, without parsing it. Registry lookup and fetch accept structured references; non-root references do not resolve legacy registrations. Legacy responses omit scope_ref.

Malformed interface-reference shapes fail calls as InvalidRequest before object resolution. A well-shaped reference outside the target path's ancestor-or-self scope fails at the membership check as InterfaceMismatch.

See the API documentation for publication, provider, execution-context, and effect-guarantee boundaries.

Licensed under either of Apache-2.0 or MIT at your option.