Cr_oss — The Atlas Cr_oss's docs bound to its code: the README and the code-verified architecture analysis, drift-checked against the tree.
6 documents

What Cr_oss is and how it's shaped

A first pass for someone new to the repo: the product, then the code-verified topology and source layout.

System topology

There is no server-side component. The production manifest points Outlook at a static Vercel deployment; the dev manifest points at a local HTTPS Vite server.

flowchart LR
  subgraph Outlook["Outlook (web / new / classic desktop)"]
    Draft["Compose draft body"]
    Pane["Task pane (iframe/webview)"]
  end
  subgraph Static["Static hosting"]
    Vercel["cr-oss-track.vercel.app<br/>(prod, manifest.xml)"]
    Local["https://localhost:5173<br/>(dev, manifest.dev.xml)"]
  end
  CDN["appsforoffice.microsoft.com<br/>office.js"]
  Pane -->|loads index.html| Vercel
  Pane -.->|dev sideload| Local
  Pane -->|script src| CDN
  Pane <-->|"getAsync / setAsync<br/>getSelectedDataAsync"| Draft
  • The two manifests carry different add-in IDs so prod and dev can be sideloaded side by side: a1b2c3d4-… (manifest.xml:9) vs b2c3d4e5-… (manifest.dev.xml:9).
  • Both request only ReadWriteItem permission, Mailbox requirement set 1.1, and activate only on compose (FormType="Edit" rule, manifest.xml:34,41).
  • Office.js is loaded synchronously from Microsoft's CDN before the module script (index.html); officeReady() wraps Office.onReady() and React mounts only after it resolves (src/main.tsx, src/outlook/officeReady.ts:7). Outside a compose context the UI renders but controls are disabled (src/App.tsx:14-15) — there is no standalone browser mode.