···11----
22-"@atmo-dev/contrail-appview": minor
33----
44-55-feat(getRecord): resolve a handle in the URI authority
66-77-`<ns>.<collection>.getRecord` now accepts an AT-URI whose authority is a handle
88-(e.g. `at://alice.bsky.social/<coll>/<rkey>`), not just a DID. The authority is
99-resolved through the same `resolveActor` the actor-param endpoints
1010-(`listRecords`/`getProfile`/`getFeed`) already use — local-first via the indexed
1111-`identities` table, network only on a miss — so a handle-routed consumer can
1212-hand the URI straight to `getRecord` instead of resolving handle→DID itself.
1313-1414-Fully backward compatible: a DID authority resolves to itself unchanged, so
1515-existing DID-URI callers are unaffected. Applies to both the public and
1616-per-space (`?spaceUri=`) paths. `getRecord` stays a fast read — no blocking
1717-backfill is added. Unresolvable authority → 400 (matching `listRecords`),
1818-missing record → 404. Parsing now uses atcute's `parseResourceUri`, which
1919-validates the actor / NSID / record-key shapes, so a syntactically invalid
2020-`uri` returns 400 instead of silently 404ing.
2121-2222-Internal: the hand-rolled `parseAtUri` (notify) is reimplemented over atcute's
2323-`parseCanonicalResourceUri`; its signature is unchanged.
+30
packages/contrail-appview/CHANGELOG.md
···11# @atmo-dev/contrail-appview
2233+## 0.11.0
44+55+### Minor Changes
66+77+- 1aeee9a: feat(getRecord): resolve a handle in the URI authority
88+99+ `<ns>.<collection>.getRecord` now accepts an AT-URI whose authority is a handle
1010+ (e.g. `at://alice.bsky.social/<coll>/<rkey>`), not just a DID. The authority is
1111+ resolved through the same `resolveActor` the actor-param endpoints
1212+ (`listRecords`/`getProfile`/`getFeed`) already use — local-first via the indexed
1313+ `identities` table, network only on a miss — so a handle-routed consumer can
1414+ hand the URI straight to `getRecord` instead of resolving handle→DID itself.
1515+1616+ Fully backward compatible: a DID authority resolves to itself unchanged, so
1717+ existing DID-URI callers are unaffected. Applies to both the public and
1818+ per-space (`?spaceUri=`) paths. `getRecord` stays a fast read — no blocking
1919+ backfill is added. Unresolvable authority → 400 (matching `listRecords`),
2020+ missing record → 404. Parsing now uses atcute's `parseResourceUri`, which
2121+ validates the actor / NSID / record-key shapes, so a syntactically invalid
2222+ `uri` returns 400 instead of silently 404ing.
2323+2424+ Internal: the hand-rolled `parseAtUri` (notify) is reimplemented over atcute's
2525+ `parseCanonicalResourceUri`; its signature is unchanged.
2626+2727+### Patch Changes
2828+2929+- @atmo-dev/contrail-base@0.11.0
3030+- @atmo-dev/contrail-authority@0.11.0
3131+- @atmo-dev/contrail-record-host@0.11.0
3232+333## 0.10.0
434535### Minor Changes