## Change Fixes BigscreenVR/spt-bs-releases#276. Route the provenance-stamped echo brief directly through the shared `spt_live::ingest_body` into the durable context tiers. The echo never writes the agent's `-commune.md` drop path. Publish the verbatim COMMUNE frame after successful ingest, consume the intent marker, and retain the existing hard-fault path on ingest failure. The Self-drop ingest path uses the same body router and retains its existing pending-project preservation behavior. Signoff now sees the echo's durable tier write before composition. Two explicit behavior changes: - An adapter declaring `[session.echo_commune]` without `commune_dir` now echoes; it previously no-opped. - A nonempty echo project slice without a project anchor is loudly discarded with `ECHO_PROJECT_UNROUTABLE`; no pending file is created. Its verbatim COMMUNE frame remains the record. The Self-drop deferred-project behavior is unchanged. The cwd-to-project-id blocks now share one helper, including the owlery-internal exclusion. KNOWN-HAZARDS 6.12 and its traceable unit/integration evidence protect the agent's unread drop. ## Rebase provenance Rebased without conflicts after deployah's v0.67.1 release call: - Head: `59b11525d276485fe18fb10834ea64f6f0142a41`. - Parent: released main `04e32c8c95cf09ddc2a44a51cd0233b0d13bdc64`. - One-for-one pick audit: `git range-diff 8a21a3b0..f8e60415 04e32c8c..59b11525` reports `1: f8e60415 = 1: 59b11525` (unchanged patch). - `traceable-reqs check` at the rebased head: exit 0, 876 requirements complete, 0 findings. Post-rebase Rust execution has not run locally: release/thin-CI box occupancy remains reserved until deployah's publish-complete call. The thin PR checks and doyle's gate remain required; the old green below is not relabeled as a new-SHA run. ## Pre-rebase evidence Implementation tip: `f8e60415`, based on `8a21a3b0`. The runtime evidence below predates the rebase; it is not execution evidence at `59b11525`. - Windows: check, clippy (zero warnings), xtask check, mdbook, and traceability exit 0; nextest `--no-fail-fast` completed 1240/1240, exit 0. - Linux, kitsubito: prebuild, clippy, mdbook exit 0; nextest completed 1220/1220, exit 0. - Exit files, not harness completion notices, were the gate evidence. ## Mutation proof — verbatim assertion dump Restoring the old echo file write made both hazard cells fail. `E276_mutation.exit` contains `100`; the summary records 2 tests run, 0 passed, 2 failed. The mutation was reverted before the implementation tip. ```text thread 'lifecycle::tests::echo_never_overwrites_an_authored_commune_drop' (46524) panicked at crates\spt-daemon\src\lifecycle.rs:3558:13: assertion `left == right` failed: the echo overwrote the agent's unread commune (KNOWN-HAZARDS 6.12) left: [60, 108, 105, 118, 101, 45, 99, 111, 110, 116, 101, 120, 116, 62, 10, 116, 104, 101, 32, 97, 103, 101, 110, 116, 39, 115, 32, 111, 119, 110, 32, 119, 111, 114, 100, 115, 44, 32, 110, 111, 116, 32, 121, 101, 116, 32, 105, 110, 103, 101, 115, 116, 101, 100, 10, 60, 47, 108, 105, 118, 101, 45, 99, 111, 110, 116, 101, 120, 116, 62, 10] right: [83, 111, 117, 114, 99, 101, 58, 32, 101, 99, 104, 111, 45, 99, 111, 109, 109, 117, 110, 101, 10, 10] ``` The replacement bytes spell `Source: echo-commune\n\n`: core overwrote the agent's authored live-context bytes. The real-daemon integration cell also failed: ```text thread 'the_echo_brief_reaches_a_shell_as_a_commune_frame_and_writes_no_file' (38088) panicked at crates\spt-daemon\tests\echo_direct_route_int.rs:143:5: the echo must not write the agent's drop path (KNOWN-HAZARDS 6.12) ```