ARCHITECTURAL DECISION: inbox requires an AppView (indexer) to discover cross-PDS grants. Grants live on the owner's PDS, not the recipient's — there's no way for the recipient to query 'what grants exist for me' without something aggregating across PDSes.
Plan: 1. Build keyrings first (#16) — finalize all record types before building the indexer 2. Build minimal AppView that subscribes to PDS event streams, indexes grants + keyring membership by recipient DID 3. Then implement inbox as a CLI command querying the AppView endpoint
The --grant flag on download stays permanently as a zero-trust/offline mode. User provides a grant URI out-of-band (DM, QR code, etc.) and the CLI uses it directly without discovery. This is useful even after inbox exists — explicit > implicit for security-sensitive workflows.
Additionally: local grant cache (option A) may be added alongside the AppView. When you download --grant <uri>, cache the grant metadata locally. inbox could show both AppView-discovered and locally-cached grants.
ARCHITECTURAL DECISION: inbox requires an AppView (indexer) to discover cross-PDS grants. Grants live on the owner's PDS, not the recipient's — there's no way for the recipient to query 'what grants exist for me' without something aggregating across PDSes.
Plan: 1. Build keyrings first (#16) — finalize all record types before building the indexer 2. Build minimal AppView that subscribes to PDS event streams, indexes grants + keyring membership by recipient DID 3. Then implement inbox as a CLI command querying the AppView endpoint
The --grant flag on download stays permanently as a zero-trust/offline mode. User provides a grant URI out-of-band (DM, QR code, etc.) and the CLI uses it directly without discovery. This is useful even after inbox exists — explicit > implicit for security-sensitive workflows.
Additionally: local grant cache (option A) may be added alongside the AppView. When you download --grant <uri>, cache the grant metadata locally. inbox could show both AppView-discovered and locally-cached grants.