Domain convergence checkpoint
Goal: remove auth RPC, reorganize auth following 8fefadc, move SSH keys to user, unify identity HTTP, narrow domain capabilities, consolidate space access and cross-domain APIs, and centralize outbound delivery.
Constraints: Git RPC implementation must not change. User authorized unlimited compilation and parallel agents. Preserve existing staged changes. No tests requested.
| ID | Requirement | Priority | Status | Evidence |
|---|---|---|---|---|
| A | auth organization, RPC removal, SSH migration | P0 | COMPLETE | RPC implementations removed; Accounts replaces AuthApi; SSH lives in user; auth has no tonic/RPC references |
| B | Single identity HTTP boundary | P0 | COMPLETE | Shared Router/State/ApiError; assets and middleware in webapi; Retry-After preserved through shared Envelope metadata |
| C | Narrow services, concrete adapters, one read router | P1 | COMPLETE | No AppState in seven domain crates; Database/BlobStore/AuthApi traits removed; AppDatabase delegates DbConn; capabilities extracted |
| D | Deep space policy, opaque handle | P1 | COMPLETE | Access/Space + Capability; shared permission kernel/cache; no domain access to space tables/errors |
| E | Owner APIs across domains | P1 | COMPLETE | Issue label read API; repo ownership in Access; UserDto from export; chat-room-store owns room writes; Git facade uses concrete backend |
| F | Deep outbound delivery | P1 | COMPLETE | events::emit; transactional Notifications; email helper; database-only Realtime |
Latest check: cargo check --workspace --target-dir target/auth-refactor passed with 0 warnings. Targeted rustfmt check passed for auth/user/chat/issues/pulls/space/git/webapi/export/models. git diff --check passed. Git RPC files remain unchanged. No tests were run.
Next: optional focused runtime/smoke verification in an environment with its dependencies.