docs(email): record provider read boundary
CI and Deploy / test (pull_request) Failing after 1m29s
CI and Deploy / deploy (pull_request) Has been skipped

This commit is contained in:
cesnimda
2026-08-09 21:38:21 +02:00
parent 536d403b08
commit 6f0e9bb516
7 changed files with 43 additions and 22 deletions
+14 -6
View File
@@ -2,7 +2,7 @@
Updated: 2026-08-09
Status: `IN PROGRESS`. Canonical hub routing is implemented and locally verified; provider/domain/draft-send work remains.
Status: `IN PROGRESS`. Canonical hub routing and provider-neutral read capability discovery are implemented and locally verified; provider actions and draft/send work remain.
## Revalidated current boundaries
@@ -20,16 +20,24 @@ Status: `IN PROGRESS`. Canonical hub routing is implemented and locally verified
- Switching to review does not issue the linked-correspondence query; switching views reuses the existing tested review component and APIs.
- No provider connection, sync, import, link or send behavior changed.
## Implemented provider-neutral read increment
- Added one authenticated `/api/email` controller over the existing `IEmailProviderRegistry` for provider status, search, thread summaries and plain-text message detail.
- Every operation passes the authenticated owner ID into the registered Gmail, Outlook or IMAP adapter and rejects unknown or disconnected providers before mailbox access.
- Message detail intentionally omits provider HTML. Untrusted provider markup is not exposed through this shared endpoint.
- The hub now identifies connected and disconnected providers and advertises their actual capability. Gmail, Outlook and IMAP are currently shown as read-only because their installed scopes/contracts do not implement provider send.
- The controller does not change OAuth scopes, connect accounts, invoke providers in tests or claim that the legacy SMTP follow-up sender is provider-native.
## Verification
- Focused hub/review: 2 suites, 5/5 tests, including legacy redirect.
- Full frontend: 49/49 suites, 186/186 tests.
- Focused provider controller: 3/3 tests; focused hub/review: 2 suites, 5/5 tests.
- Full backend: 604/604; full frontend: 49/49 suites, 186/186 tests.
- Production build/TypeScript and `git diff --check`: pass.
- Implementation commit: `6008b4a`.
- Implementation commits: `6008b4a`, `536d403`.
## Remaining MAIL-001 work
- Define one provider-neutral thread/list/detail view while preserving Gmail/Graph/IMAP capability differences.
- Use the provider-neutral thread/list/detail API in a shared hub/application message view while preserving provider capability differences.
- Surface provider identity, reauthorization, read/unread, pin/read-later/archive/spam/trash only where the provider supports it.
- Share thread detail and link/unlink actions between hub and job workspace.
- Design editable provider drafts with recipient/subject/thread/provider review and explicit confirmed, idempotent send; uncertain failures must not be retried blindly.
@@ -42,4 +50,4 @@ The first focused Jest invocation exhibited the repository's open-handle delay.
## Rollback
Revert `6008b4a`. Both underlying pages/APIs and persisted email/correspondence data remain unchanged; the legacy route returns to direct rendering.
Revert `536d403` to remove the provider-neutral API/status chips, then `6008b4a` to restore the separate route presentation. Persisted email/correspondence data and provider scopes remain unchanged.