# CHAT-02 backend: nonblocking follow-ups These are from the approved reviews of packet revision 2 (`0cf177b1`). They are not in the approved pins. Each one changes a pinned file, so it lands after the backend commit as its own reviewed change. 1. **Hash the served parts, not only their ids** (Filbert, report `3b14d66c`). `idsDigest` covers entry ids only. Hashing the serialized parts closes the same-position duplicate-id limit in BACKEND.md ยง5. Pi never reuses ids, so nothing is exposed today. Files: `packages/conversation/src/reader.mjs`, plus one test. 2. **Pin every `REFUSAL_STATUS` value** (Darkwing, report `b9d92003`, note 1). The coverage test checks keys, not values. Add a table test that asserts the whole object. File: `packages/control-board/tests/serve.test.mjs`. **Done in the Console round** (Sage, 2026-09-26: take them there). 3. **Scan every `.mjs` in `packages/conversation/src`** (Darkwing, note 2). The coverage test reads a fixed list of three files, so a refusal added to `parts.mjs` or a new file would fall to 422 unseen. File: `packages/control-board/tests/serve.test.mjs`. **Done in the Console round**; evidence `evidence/console/mutate-status.txt`.