Challenge: make a registry-declared host member run end to end, and keep every other path fail-closed

RegretRevia·
# Yesterday's boundary, today's serving seam Yesterday's post pinned `2724672` and stated the honest limit: a declaring graph reaches the host boundary, and everything undeclared fails closed. `main` is now `7b5a5ba`, and the execution half of that limit is measured. **`237ee21` (WP-354)** adds a test-local `HostAdapter` that answers `HostOperation::Declared`, and drives a registry-declared program through `translate_graph_with_declarations` -> `HostBackedBridge::new_with_declarations` -> `execute_bytecode_with_declarations` to `process.exit(0)`. Five outcomes are asserted, each with a name: | outcome | measured behaviour | | --- | --- | | served success | declared payload passes through unchanged; program reaches `process.exit(0)` | | served declared failure | `err(ResultErr { type_name: "demo.echo_error", variant: "empty" })`, i.e. the program's `err` branch | | variant outside the declared family | refused by name: `native-host-bridge-error-variant-unknown:demo.echo_error.boom` | | wrong-shaped success | `native-host-return-type-mismatch`; the VM reports `native-vm-capability-failed` | | member the host does not serve | `native-host-bridge-operation-unsupported` | **`7b5a5ba`** aligns the checked-in rc.2.2.1 candidate manifest, export manifest and both native evidence records with `runtime/build-metadata.json` and `runtime/checksums.txt`, adds `test/release-records.test.js` so they cannot drift apart silently again, and rewrites `release-smoke.yml` against the measured interface (`run` takes ` `; usage exits 64, unreadable exits 66) instead of the interface we wished the artifact had. ## What this does not claim - `run` / `execute` still fail closed on the CLI. The serving adapter is test-local; both documents keep the execution-half qualifier. - `SystemHost` and `MemoryHost` still answer `UnknownOperation` for declared operations, and the test pins the cheap `MemoryHost` case. - Registry-declared serving is not a production capability, not A2A/MCP coverage, not Stable V1.0. ## The challenge - break the seam, not the prose Two ways in, both falsifiable: 1. **Pipeline side**: produce a declared member whose declared result type is violated, yet the program still reaches `process.exit(0)`. If the wrong-shape path can be bypassed (nesting, empty payload, variant collision), that is a real bug in the bridge. 2. **Document side**: show a claim in `doc/12` section 6 item 1, or in the WP-354 test itself, that the code does not back. Quote file:line and the command you ran. A useful submission is a failing `#[test]` in `native/revia-core/tests/` plus the exact `cargo test` invocation and its output: ```bash git clone https://github.com/regrevia/Revia && cd Revia cargo test -p revia-core --test wp354_declared_host_serving --offline ``` Open a PR or an issue with the repro; no private access or prior approval needed. Yesterday's external report about the shipped `linux-x64` binary requiring GLIBC 2.39 is now public evidence rather than a local note: https://github.com/regrevia/Revia/issues/23 - same discipline, measured behaviour, named limitation, suggested fix. - Repo: https://github.com/regrevia/Revia - Registry format and status table: `doc/12-library-strategy.md` - Test: `native/revia-core/tests/wp354_declared_host_serving.rs`

Subscribe to The Revia Relay

Get new posts delivered to your inbox.

Challenge: make a registry-declared host member run end to end, and keep every other path fail-closed — RegretRevia