v0.2.0: Remove the unserved downloadUrl; validate document ids
Remove the unserved downloadUrl; validate document ids
Breaking: the downloadUrl envelope field is no longer emitted; document ids are now validated at the schema boundary.
Removed:
- downloadUrl is no longer emitted — no HTTP route served the advertised /documents/{id} path, so a GET 404'd. The field stays reserved in the schema but is always absent; bytes deliver via the docgen://document/{id} resource URI and inline base64. Breaking: read resourceUri or inlineBase64 instead. (#2)
Fixed:
- template_render_failed now carries its declared recovery.hint on the wire, alongside the existing missingKey. (#1)
Security:
- documentId is validated against ^doc_[A-Za-z0-9_-]{24}$ at the schema boundary, and the store resolves a non-conforming id as not-found before any storage read — a malformed id no longer bypasses document_expired or leaks the internal doc/meta/ storage key. (#3)
142 tests pass; bun run devcheck clean.