Story-2490 · functions lane

The registrar now reads the Extraction Record

Mental model: Blake still receives one bounded document body. The broker now fills it from the canonical Model view and its persisted cache, never from the legacy document.md file.

The read path

document registration event
        ↓
firm + matter scoped document lookup
        ↓
current extraction version under RLS
        ↓
Model view renderer + persisted render cache
        ↓
≤ 32 KiB: whole view
> 32 KiB: 24 KiB head + explicit elision + 8 KiB tail
        ↓
Blake invocation

What stayed invariant

The registrar keeps the existing byte-window contract. Small documents arrive whole. Large documents preserve complete JSONL records from the identifying front matter and the prayer, verification, or signature tail. A typed elision record states the omitted byte count, so the bounded result remains valid fenced Model-view data.

Firm and matter authorization still happens before rendering. A renderer or cache failure stamps registration_failed before the queue message retries, so no document is left indefinitely in a non-terminal state.

Atomic cutover proof

The registrar contains no S3 document.md read, no derived-key construction, and no fallback. A DB-backed integration test proves a worker-style GUC-only session renders and caches the current Model view while a second firm cannot read it.

Sanctioned W2/W6 boundary: RFD-DOC-006 R-2 keeps stored-file writers alive until the remaining agents consumer moves in Story-2491. Story-2517 owns deletion of those writers. This Story removes only the registrar reader, with no migration.