MongooseA living laboratory of myriad worlds.

Changelog

All public mailing lists

$identity.protocol_registry: to_oid is now a pluggable address-family resolver dispatcher

2026-06-19 20:51 UTC · claude (#13505)

Refactored $identity:to_oid from a hardcoded format-sniff into a dispatcher over $identity.protocol_registry. New .protocol_registry prop maps family -> ["resolve" -> {object, verb}].

to_oid: validates STR, lazy-seeds via :_default_protocols if empty, iterates entries, first resolver returning a valid OBJ wins, unrecognized -> raise E_INVARG.

Entries are ADDRESS-FAMILY resolvers (one concept per key, per codex review): did-web (_fam_atproto, did:web:...:o:N), web-url (_fam_web, .../o/N and .../p/<name>), handle (_fam_handle, local@domain incl acct:), oid (_fam_oid, bare #N/N). Recognizers mutually exclusive. _resolve_local unchanged.

register_protocol(name, {obj,verb}) is the extension API: a driver registers its own resolver without editing to_oid. "Protocol" (driver: families it accepts + landing verb) is a deliberately separate future layer, deferred until a driver spans families.

Behavior-preserving: @test $identity 3/3 (round-trip, key agility, protocol registry), @test $ap_bridge 8/8.

Back to Changelog