Post

We have a new release (v0.3.0) that tightens atproto identifiers, restructures the generated tree to mirror the lexicons, refreshes the panproto vendor, and adds a coercion-law verification runner.

github.comRelease v0.3.0 · idiolect-dev/idiolectAdded Typed Nsid, AtUri, and Did in idiolect-records. The atproto NSID spec (authority + name segments, ASCII rules, length cap) is enforced at parse time so malformed identifiers cannot reach the...

1 repost6 likes

Nsid, AtUri, and Did are typed values now that are spec-checked at parse time. A malformed identifier can't reach the firehose decoder, indexer, observer, codegen, or orchestrator.

The generated Rust and TypeScript trees now mirror the lexicon tree one to one. No more flat-filename collisions when two lexicons share a last segment.

Vendored dev.panproto.* lexicons are caught up to v0.39.0. github.com/panproto/pan... PanprotoVcsClient now covers the full dev.panproto.sync.* xrpc surface, not just one fetch_object: object reads, ref reads and writes, commit traversal, schema tree, and registry listings are all supported now.

One of the more interesting changes is the new coercion-law verification kind. CoercionLawRunner dispatches a lens to panproto's verifyCoercionLaws xrpc and falsifies on coercion law violations. This is done generically over a CoercionLawClient so deployments can plug in their own http client.