Spaces:
Running
Running
| # Bound placeholder display compaction | |
| Status: approved narrow implementation contract | |
| ## Problem | |
| Schema-1.1 placeholders repeat one 80-bit document binding in every token. That binding protects against applying a valid Scrub Key to the wrong document, but makes the review pane unnecessarily difficult to scan. | |
| Example full token: | |
| ```text | |
| [LOCATIE_BSK732WYQ424ZIEQ6_02] | |
| ``` | |
| ## Decision | |
| Compact only the visible review representation: | |
| ```text | |
| [LOCATIE_BSK732WYQ424ZIEQ6_02] -> [LOCATIE_02] | |
| [EMAIL_BSK732WYQ424ZIEQ6_HANDMATIG_03] -> [EMAIL_H_03] | |
| ``` | |
| The complete source token remains unchanged and remains the only token used by server validation, replacement rows, exported documents, Scrub Key mappings and reinsert. | |
| ## Frozen boundaries | |
| - Binding grammar remains `B` plus sixteen uppercase RFC 4648 base32 characters. | |
| - Binding entropy remains 80 bits. | |
| - Compaction applies only to strict schema-1.1 bound placeholders. | |
| - Legacy placeholders, free replacement text and malformed near-placeholders remain visually unchanged. | |
| - Every display segment retains its exact source UTF-16 start and end offsets. | |
| - A selection after any compact placeholder resolves to the original source offset. | |
| - A selection intersecting a compact placeholder remains blocked. | |
| - Full tokens may be exposed as non-mutating hover/accessibility metadata. | |
| - No export, Scrub Key, reinsert, filename, MIME, recognizer, profile, dependency or cloud-processing change. | |
| - The review table remains source of truth. | |
| - The static fallback follows the same display rule but remains non-interactive. | |
| ## Validation gates | |
| 1. Pure Python display-helper tests. | |
| 2. Pure frontend core tests, including UTF-16 offsets after compact tokens. | |
| 3. Existing component and full Python regression. | |
| 4. GitHub-to-Hugging-Face byte equality and Space health. | |
| 5. Focused live app verification because the review UI changes. | |