**FAIL — 4 blocking findings** 1. **Exact mapping identity is lost after a successful queue submission.** - The redirect returns the submitted key with `map_status=open`: `scripts/health/health_dashboard_server.py:803-810`. - The frontend immediately classifies that exact row as `queued`, excludes queued rows from the `open` filter, then selects the first different visible row and replaces the URL: `scripts/health/assets/health-assets/dashboard-v5.js:525-529, 552-560, 617-621`. - Result: the receipt can be shown beside another product’s editable form, violating the exact fail-closed queue-identity contract. 2. **Document deep links, reload, and history restoration now depend on membership in the first filtered 25-row list page.** - Selection only searches the current page: `dashboard-v5-record.js:324, 328-337`. - Initial and `popstate` restoration route document URLs through that list instead of resolving the opaque document directly: `dashboard-v5-record.js:605-623`. - Documents outside that page—including extracted-preview routes—render “Dokument auswählen” rather than the requested document. The existing synthetic record matrix confirmed the regression: **5 failed / 9 passed**, including direct document reload/history and original-access restoration. 3. **New document status filters run after the backend page limit.** - The request fetches only 25 rows without the new status filters, then filters those rows client-side: `dashboard-v5-record.js:322-333`. - Matching documents after the first page are silently reported as absent, while the displayed coverage remains global/unfiltered: `dashboard-v5-record.js:325-335`. - This violates filter-before-limit and truthful completeness contracts for sensitive medical records. 4. **Unrestricted queue `reason` text is newly exposed and used for medical/product classification.** - An unconstrained DB text column is projected using only `public_text`, rather than safe metadata or an enum allowlist: `scripts/health/dashboard_v5/data_provider.py:278-291`; schema source is `database/schema.sql:397-407`. - It is rendered into the form and used by a keyword regex that defaults unmatched products to `simple`: `dashboard-v5.js:525-533, 714-717`. - This can disclose paths/URLs/source identifiers contained in legacy reasons and can fail-open mixed/composite products as simple. **Verification** - New B1 browser group: **7 passed**. - Focused Python contract tests: **4 passed**. - JavaScript syntax and `git diff --check`: passed. - Existing record browser group: **5 failed / 9 passed**, exposing the routing regression above. - No source files were edited. Review-created ignored `test-results/` residue was removed. Concurrent tracked screenshot churn appeared during review; reviewed product-file hashes remained stable across final captures.