--- id: SLICE-0003 type: slice status: done parent: NS-0001 title: Protect keyed collection regressions with generated-resource assertions refs: - REQUIREMENTS.md - examples/html_examples/src/main.rs - hemx-test/src/lib.rs --- ## Objective Make keyed list regressions easy to catch without raw selector or raw effect coupling: tests should assert generated resource behavior for remove, replace, and append paths. ## Authority `REQUIREMENTS.md` `list/006`, `test/008`, `test/009`, `test/010`, and `test/017` constrain keyed collection behavior and test diagnostics. ## Close when - Filtered keyed collections are tested for removing filtered-out keys, replacing retained keys, and appending newly visible keys. - Assertions use generated resource helpers or `hemx_test` inspection adapters, not raw runtime ids as app-facing API. - Failure messages name generated resources where practical. ## Verification - `cargo test -p hemx-html-examples` - `cargo test -p hemx-test --test inspector` - `cargo run -p hemx-xtask -- html-examples-smoke` ## Non-goals - Do not add app authoring APIs for selectors or raw runtime ids. - Do not test private runtime payload layout unless the slice changes wire semantics. ## Evidence Done at HEAD `2122b3c`: `cargo test -p hemx-html-examples` covers active-search keyed remove/replace/append behavior through generated `gallery::search_result` assertions, `cargo test -p hemx-test --test inspector` covers rendered target/handle helper diagnostics with generated names, and `cargo run -p hemx-xtask -- html-examples-smoke` covers the browser active-search path. No app-facing selector/raw-id API was added.