Skip to content

Add-in: sidecar-backed thread fetcher (ERMAIN-503) - #892

Open
bdart wants to merge 5 commits into
feature/ermain-501-get-conversation-transfer-profilefrom
feature/ermain-503-addin-sidecar-thread-fetcher
Open

Add-in: sidecar-backed thread fetcher (ERMAIN-503)#892
bdart wants to merge 5 commits into
feature/ermain-501-get-conversation-transfer-profilefrom
feature/ermain-503-addin-sidecar-thread-fetcher

Conversation

@bdart

@bdart bdart commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

What changes

Wires the desktop sidecar into the Outlook add‑in's thread loading (ERMAIN‑503): on the on‑prem / Exchange‑SE path, conversation loads go through the sidecar instead of makeEwsRequestAsync (whose size caps degrade SE threads), with transparent fallback to the existing EWS path on any failure — never worse than today.

  • Decorator (fetchOutlookMessageSidecar.ts): wraps the EWS fetcher, overrides only fetchConversationMessages, gated on sidecar availability + a resolvable anchor/mailbox; maps the result to GraphConversationMessage[] so ParsedThread, dedup, disclosure markers and .eml synthesis are unchanged.
  • Injection (useOutlookMessageFetcher.ts): applies the decorator on the on‑prem branch when the sidecar client is present; the cloud/Graph path is untouched.
  • Endpoint (env.ts): bridges the configured VITE_DESKTOP_SIDECAR_URL to the provider's runtime lookup — without it the provider stays inert.
  • Re‑exports the handful of protocol types the add‑in needs from @erato/frontend/library.

Verification

Add‑in typecheck + lint + prettier clean; tests green (decorator cases: mapped result, and EWS fallback on unsupported / no‑mailbox‑match / empty). Verified end‑to‑end against a live Exchange‑SE mailbox.

Stacked on #887. Retarget to main once the stack lands.

🤖 Generated with Claude Code

https://claude.ai/code/session_01YNRaKxV2kk7SfPJN6sccME

@bdart
bdart force-pushed the feature/ermain-503-addin-sidecar-thread-fetcher branch from 388cb68 to 0159f2f Compare July 30, 2026 14:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant