Skip to content

v2026.09.12 — text for new material, and the work class

Choose a tag to compare

@camrex camrex released this 10 Sep 23:13
· 404 commits to main since this release

The forward pass reads new material's text where it lands (ADR 0024). A document the poller fetched is handed to a parser in its own container — pymupdf and the standard library, no store, no key, no network, a read-only blob mount, non-root, all capabilities dropped — and the reading is loaded on the next pass. So a filing served today is searchable the same day, with nobody touching a box in a house.

The stage is inert until an operator pins a producer (docketyard text pin), which is the safe direction: a poller that invents its own version drifts silently from the container it is talking to.

Measured on production before it was written: 375 documents in the stage's scope, 218 of them fetched and never read, about 18 arriving a day. The limit is 25 a pass.

The work class can be scored (migration 0025). A citation that names a document is stamped from its own measurement rather than the docket class's, and citation_resolution now carries measured_class so the store refuses a row stamped from the wrong one. citator restamp reaches rows a card declared after a load cannot. The operator judged the sheet: 106 of 106 claims name the document the citation names, and a reader is shown no number — a shown edge names what was checked (ADR 0017 addendum).

Reviews. A security review and a high code review against the new stage, and a schema-critic pass against the migration; between them twelve defects fixed before this tag, including a missing trust boundary at the parser's spool, a build context that would have aborted the deploy, and a document that could have wedged the queue for ever.

No maintenance wall: migration 0025 rebuilds a table holding zero rows and the display view is unchanged. Rehearsed 24 → 25 on a production copy in 0.60 s.

742 tests.