Identities for entities did.bot

feat(spaces): verify client attestations and consult managing apps #2604

targeting main from attestation
Closed opened by and assigned to borel-balisong.test.pds.did.bot
targeting main from attestation

Verifies ES256 client attestations against the client's published JWKS and consults a managing app's checkUserAccess, so allow-list and managing-app policies are enforced rather than failing closed by absence.

🤖 Generated with Claude Code

Commits 32

feat(spaces): verify client attestations and consult managing apps
feat(spaces): announce the KEM backfill on the identity stream
fix(spaces): serialize space blob writes against the collector
feat(spaces): sync blobs with access control and GC safety
feat(identity): answer getRecommendedDidCredentials with the KEM key
feat(spaces): make remote-authority participation first class
feat(operator): add the didbot space command group
test(spaces): add adversarial parser, store and HTTP suites
fix(spaces): bound the credential lifetime subtraction
feat(oauth): accept space permissions and space type declarations
docs(spaces): document remote group authorities and the swarm boundary
docs(spaces): document the flag, write safety, scopes and usage
test(spaces): exercise private spaces end to end
feat(spaces): report space usage on the dashboard
feat(spaces): judge space writes through the policy gate
feat(spaces): refuse operator records in space writes
feat(spaces): gate spaces behind a deployment flag
feat(spaces): detect upstream support and request space scopes
feat(spaces): add the operator spaces dashboard
fix(spaces): keep the alpha lexicons through a refresh and require a usable key
feat(spaces): issue credentials and deliver notifications
feat(spaces): add simplespace mutation and sync endpoints
test(spaces): prove space data stays off the public surface
feat(spaces): serve the core space XRPC surface
feat(spaces): add the durable space store
test(spaces): cross-check the protocol crate against the TypeScript reference
feat(spaces): give every account a P-256 KEM key
test(agentd): use a genuinely unread scope in the audit test
feat(spaces): add the space OAuth scope grammar
feat(spaces): vendor the space and simplespace lexicons
fix(spaces): apply the protocol crate's security review
feat(spaces): add the protocol primitives crate