Feature 02 · The exhibits
The case file: fetched by reference, indexed in one scope
A sync event names an exhibit; AIOL fetches its bytes itself, signed, from a host it was told to trust, and indexes it in a namespace that is the dispute and nothing else. A party may add scratch files — private, and refused once the case is closed.
01What you see
aiol · /case/documents — Dossier documents

02How it is used
- Nothing to do for the case file itself — it fills as ADR announces documents and AIOL fetches them.
- Open an exhibit — the viewer shows the real text blocks, or the pipeline's state in words while it is still being ingested.
- Add a scratch file of your own — it is yours alone, in list and in content.
- A removed exhibit is tombstoned and leaves the index; the record keeps the fact that it existed.
- A closed dispute refuses new scratch uploads.
- No file from a browser is ever taken as “the ADR document”.
03Technically
- By reference + fetch.
document.addedcarries metadata and afetch_url; AIOL GETs it with the same HMAC scheme, only fromADR_FETCH_ALLOWED_HOSTS, size-capped. A URL elsewhere fails the document without a call. - One pipeline, two realms. Quarantine, scan, sandboxed extraction, index — the firm's own pipeline, now realm-agnostic:
document_chunks.realm = dispute,scope_id = dispute_id, keys underdisputes/<id>/. - The namespace is the boundary. A model answer can never cite another dispute — that index is outside its retrieval, not filtered out of it.
- Inline or queued. Dev and tests pull inside the webhook; production leaves
fetchrows to the worker that serves both realms.
a scratch upload, as a party
POST /api/v1/adr/documents · multipart 201 origin="aiol_created" visibility="private" 409 · the dispute is closed
| case file | origin adr_sync · readable by every party · immutable |
| scratch | origin aiol_created · private to the uploading party · refused when frozen |
04The explainer · play, pause, step, full screen
Scene 1 of 4
An exhibit arrives by reference
The sync event names the document — its number, title, kind, who filed it, and a URL to fetch it from. It carries no bytes. AIOL never accepts a file from a browser as "the ADR document".
0:00 / 0:21