Repository navigation
Open
Labels
upstream-driftUpstream has new commitsUpstream has new commits
Description
@CarterPape β upstream elie222/inbox-zero@main is 698 commits ahead of origin/main (upstream HEAD: c9cd079).
Run /sync locally to rebase carter on the new upstream tip.
New upstream commits
c9cd0790bi18n: Translate the rest of Settings into Spanish (i18n: Translate the rest of Settings into SpanishΒ elie222/inbox-zero#4590)019bdb7c3composer: Exit empty quotes with Backspace or Delete (composer: Exit empty quotes with Backspace or DeleteΒ elie222/inbox-zero#4587)a28cc1dafevals: Stop search mocks leaking between assistant eval tests (evals: Stop search mocks leaking between assistant eval testsΒ elie222/inbox-zero#4586)679454620mail: Order the label picker like the sidebar, hidden labels last (mail: Order the label picker like the sidebar, hidden labels lastΒ elie222/inbox-zero#4585)8d29bb556assistant: Keep exact action totals across long cleanups (assistant: Keep exact action totals across long cleanupsΒ elie222/inbox-zero#4580)a8417fa9ecomposer: Format pasted Markdown text (composer: Format pasted Markdown textΒ elie222/inbox-zero#4583)6b8dc4afdi18n: Set up Lingui and translate Settings (i18n: Set up Lingui and translate SettingsΒ elie222/inbox-zero#4570)274616003usage: Record OpenRouter BYOK cost and price Claude 5.5 models (usage: Record OpenRouter BYOK cost and price Claude 5.5 modelsΒ elie222/inbox-zero#4578)7dddfcb37assistant: Fix the split inbox delete card type error that breaks the build (assistant: Fix the split inbox delete card type error that breaks the buildΒ elie222/inbox-zero#4582)dad2850a7assistant: Cache each step of long chat turns (assistant: Cache each step of long chat turnsΒ elie222/inbox-zero#4579)9d7cf0758mail: Show the selection bar on a sent reply as soon as it appears (mail: Show the selection bar on a sent reply as soon as it appearsΒ elie222/inbox-zero#4575)d0c1406c9assistant: Let the assistant set up split inboxes and fix its searches (assistant: Let the assistant set up split inboxes and fix its searchesΒ elie222/inbox-zero#4576)6db9805eetests: Fix jsdom localStorage on Node 25+ and stale history extraction test (tests: Fix jsdom localStorage on Node 25+ and stale history extraction testΒ elie222/inbox-zero#4577)9e76c21f0deps: Patch vulnerable dependencies flagged by Snyk (deps: Patch vulnerable dependencies flagged by SnykΒ elie222/inbox-zero#4574)d997150cafix: Apply valid review findings from the staging sync (fix: Apply valid review findings from the staging syncΒ elie222/inbox-zero#4571)09ca09425billing: Treat paused Stripe subscriptions as unpaid (billing: Treat paused Stripe subscriptions as unpaidΒ elie222/inbox-zero#4573)d445a469cbilling: Remove the unused direct plan-change fallback (billing: Remove the unused direct plan-change fallbackΒ elie222/inbox-zero#4572)26440f4dcdrafts: Give drafts relevant past mail with the sender (drafts: Give drafts relevant past mail with the senderΒ elie222/inbox-zero#4538)b0ee711a4build: Generate the Prisma client in the web build (build: Generate the Prisma client in the web buildΒ elie222/inbox-zero#4569)5b0a1d37aassistant: Ask for a final reply when a chat run ends without one (assistant: Ask for a final reply when a chat run ends without oneΒ elie222/inbox-zero#4536)e029f3e7frules: Finish failed actions when an email is retried (rules: Finish failed actions when an email is retriedΒ elie222/inbox-zero#4567)d661d95bebilling: Trim the plan buttons on the pricing page and in Settings (billing: Trim the plan buttons on the pricing page and in SettingsΒ elie222/inbox-zero#4568)845ed686eassistant: Clean up inline email cards in chat (assistant: Clean up inline email cards in chatΒ elie222/inbox-zero#4556)e040fb7ebmail: Open compose at once when pressing c (mail: Open compose at once when pressing cΒ elie222/inbox-zero#4555)268c999e3mail: Fold toolbar toggles into a View options menu (mail: Fold toolbar toggles into a View options menuΒ elie222/inbox-zero#4553)57f332beedeps: Update workspace packages and Next.js to 16.4.5 (deps: Update workspace packages and Next.js to 16.4.5Β elie222/inbox-zero#4552)2a647e27edocker: Fix the production image build on pnpm 12 (docker: Fix the production image build on pnpm 12Β elie222/inbox-zero#4548)5806ce93bbilling: Apply plan changes directly when the portal doesn't offer the price (billing: Apply plan changes directly when the portal doesn't offer the priceΒ elie222/inbox-zero#4546)378176ae0errors: Treat Gmail-disabled and disconnected accounts as expected (errors: Treat Gmail-disabled and disconnected accounts as expectedΒ elie222/inbox-zero#4544)e96cc2125test: Fix the flaky missing-permissions onboarding spec (test: Fix the flaky missing-permissions onboarding specΒ elie222/inbox-zero#4549)73682e4febilling: Price Professional annual at $40/mo (billing: Price Professional annual at $40/moΒ elie222/inbox-zero#4547)1a0c5d854mail: Don't fail on desktop builds that can't list drafts yet (mail: Don't fail on desktop builds that can't list drafts yetΒ elie222/inbox-zero#4545)bc6b16d0bassistant: Reject mistyped email IDs and catch message IDs used as thread IDs (assistant: Reject mistyped email IDs and recover message IDs used as thread IDsΒ elie222/inbox-zero#4539)0527ff0ecmail-sqlite: Find a message's label rows through its own index when it changes (mail-sqlite: Find a message's label rows through its own index when it changesΒ elie222/inbox-zero#4543)719eec027assistant: Return readable tool input errors and stop repeating failed calls (assistant: Return readable tool input errors and stop repeating failed callsΒ elie222/inbox-zero#4535)305279f63mail: Scroll split tabs in one row instead of wrapping (mail: Scroll split tabs in one row instead of wrappingΒ elie222/inbox-zero#4523)e28841883fix: preserve restored Outlook messages (INB-395: Preserve restored Outlook messages during syncΒ elie222/inbox-zero#4404)9fbe43190test: Skip server-action responses whose body is gone in the onboarding permissions spec (test: Don't fail the onboarding permissions spec on unreadable responsesΒ elie222/inbox-zero#4542)33338247fassistant: Show an upgrade card when sender categorization needs a paid plan (assistant: Show an upgrade card when sender categorization needs a paid planΒ elie222/inbox-zero#4537)eed7d194dtest: Fix a race in the missing-permissions onboarding spec (test: Fix a race in the missing-permissions onboarding specΒ elie222/inbox-zero#4540)787e696aabilling: Add a switch to annual/monthly action in Billing settings (billing: Add a switch to annual/monthly action in Billing settingsΒ elie222/inbox-zero#4526)14b66a772landing: Drop the half-the-price-of-Superhuman claim (landing: Drop the half-the-price-of-Superhuman claimΒ elie222/inbox-zero#4541)ca5104c82automation: Keep a rule's label name in sync when its label changes (automation: Keep a rule's label name in sync when its label changesΒ elie222/inbox-zero#4533)6eb130957assistant: Count only senders with inbox mail and report messages actually archived (assistant: Count only senders with inbox mail and report messages actually archivedΒ elie222/inbox-zero#4527)1b3a62e72assistant: Start compacted chat history at a user message (assistant: Start compacted chat history at a user messageΒ elie222/inbox-zero#4532)3a7f13f1asettings: Check the AI model and key when saving AI settings (settings: Check the AI model and key when saving AI settingsΒ elie222/inbox-zero#4531)a129d0c69assistant: Show a reply when a chat run fails or ends empty (assistant: Show a reply when a chat run fails or ends emptyΒ elie222/inbox-zero#4528)cda04bea4onboarding: Show the reconnect prompt inside onboarding and re-check permissions each step (onboarding: Show the reconnect prompt inside onboarding and re-check permissions each stepΒ elie222/inbox-zero#4530)bb68059ddmail: Keep the Draft badge on unsaved replies after a reload (mail: Keep the Draft badge on unsaved replies after a reloadΒ elie222/inbox-zero#4529)66e5a4028mail: Add a setup card for layout, tabs, All and bundles (mail: Add a setup card for layout, tabs, All and bundlesΒ elie222/inbox-zero#4522)5a029e8a8mail: Keep scheduled-send changes alive past a reload (mail: Keep scheduled-send changes alive past a reloadΒ elie222/inbox-zero#4534)006efb9b9desktop: Show "Updating your mailboxβ¦" while a slow mailbox open runs migrations (desktop: Show "Updating your mailboxβ¦" while a slow mailbox open runs migrationsΒ elie222/inbox-zero#4524)5982fa00email: Mark a conversation as a draft from the first keystroke (mail: Mark a conversation as a draft from the first keystrokeΒ elie222/inbox-zero#4521)f6cf23ff3mail: Show scheduled-send and label list changes before the server answers (mail: Show scheduled-send and label list changes before the server answersΒ elie222/inbox-zero#4520)61b3d94bemail: Run label and move through the shared undoable thread actions (mail: Run label and move through the shared undoable thread actionsΒ elie222/inbox-zero#4519)4d1866b73mail: Discard drafts through the mail engine so they disappear at once (mail: Discard drafts through the mail engine so they disappear at onceΒ elie222/inbox-zero#4518)47f9b446ebilling: Include 2 email accounts per person, extra accounts at half price (billing: Include 2 email accounts per person, extra accounts at half priceΒ elie222/inbox-zero#4517)d88144988mail-core: Show the newest mail first when catching up after a long gap (mail-core: Show the newest mail first when catching up after a long gapΒ elie222/inbox-zero#4515)bcbf0e434mail-sqlite: Serve a label's unread and starred filters from the membership index (mail-sqlite: Serve a label's unread and starred filters from the membership indexΒ elie222/inbox-zero#4516)6b8ea41a4mail: Serve label views and counts from the membership index again (mail: Serve label views and counts from the membership index againΒ elie222/inbox-zero#4514)8e5dfb8d6mail-sqlite: Start label views from the label's own messages (mail-sqlite: Start label views from the label's own messagesΒ elie222/inbox-zero#4512)6c30ad0c7mail: Drop the blue outline from checked row checkboxes (mail: Drop the blue outline from checked row checkboxesΒ elie222/inbox-zero#4513)48232ee40assistant: List the user's labels when an inbox search finds nothing (assistant: List the user's labels when an inbox search finds nothingΒ elie222/inbox-zero#4511)4b313213aassistant: Let searchInbox continue a search from the page token alone (assistant: Let searchInbox continue a search from the page token aloneΒ elie222/inbox-zero#4500)3be9f3889mail: Hide trashed and spam mail from Gmail label views and counts (mail: Hide trashed and spam mail from Gmail label views and countsΒ elie222/inbox-zero#4509)674c39295auth: Stop native app session checks from failing with 500 (auth: Stop native app session checks from failing with 500Β elie222/inbox-zero#4510)59eb47c6bassistant: Recover when the open chat belongs to another email account (assistant: Recover when the open chat belongs to another email accountΒ elie222/inbox-zero#4508)f3ad4f391billing: Explain when an org owner's plan is managed by another account (billing: Explain when an org owner's plan is managed by another accountΒ elie222/inbox-zero#4507)831d26b8eassistant: Let the chat see and drive the mail screen (assistant: Let the chat see and drive the mail screenΒ elie222/inbox-zero#4506)f0cf521a8settings: Add a reset for Inbox Zero label colors (settings: Add a reset for Inbox Zero label colorsΒ elie222/inbox-zero#4505)78c89e65bassistant: Keep bulk runs going through provider rate limits (assistant: Keep bulk runs going through provider rate limitsΒ elie222/inbox-zero#4503)26b78f2eboutlook: URL-encode $filter so "&" and "#" don't cut off folder and mail lookups (outlook: URL-encode $filter so "&" and "#" don't cut off folder and mail lookupsΒ elie222/inbox-zero#4501)929cfc787fix: Hide email app announcement when sending is disabled (announcements: Hide email app launch popup when sending is disabledΒ elie222/inbox-zero#4502)9e2e60bfcchore: Upgrade pnpm to 12.18.0 (chore: Upgrade pnpm to 12.18.0Β elie222/inbox-zero#4499)e32515629mail: Easier multi-select and add senders to a split (mail: Easier multi-select and add senders to a splitΒ elie222/inbox-zero#4498)144682b11fix(mail): keep mailbox window snapshots independent (Don't seed mailbox windows from another window's snapshotΒ elie222/inbox-zero#4480)0d86f72e4Remove AI Email Automation footer link (Remove AI Email Automation footer linkΒ elie222/inbox-zero#4494)1964b3217mail: Add sign out to account switcher and align menu rows (mail: Add sign out to account switcher and align menu rowsΒ elie222/inbox-zero#4496)f6a039019mail: Bundle low-priority splits into single inbox rows (mail: Bundle low-priority splits into single inbox rowsΒ elie222/inbox-zero#4495)ee5f4391eMerge pull request deps: Remove temporary better-auth release-age exclusionsΒ elie222/inbox-zero#4493 from elie222/chore/remove-better-auth-release-age-exclusions9fec364b6deps: Remove temporary better-auth release-age exclusions423a83562desktop: Host each window's page in a tab view (desktop: Host each window's page in a tab viewΒ elie222/inbox-zero#4492)05dabc51bui: Shorten snippet picker empty-state copy (ui: Shorten snippet picker empty-state copyΒ elie222/inbox-zero#4491)b8954bdfaauth: Replace @better-auth/expo with a native auth plugin (auth: Replace @better-auth/expo with a native auth pluginΒ elie222/inbox-zero#4487)f2d956756deps: Refresh workspace dependency versions (deps: Refresh workspace dependency versionsΒ elie222/inbox-zero#4488)4f2dd14d4Fix footer AI Email Assistant link (Fix footer AI Email Assistant linkΒ elie222/inbox-zero#4469)af1695828Merge pull request deps: Bump better-auth to 1.7.16 for security fixesΒ elie222/inbox-zero#4486 from elie222/fix/better-auth-1.7.161035b044bdeps: Bump better-auth to 1.7.16 for security fixes1ab004f03db: Re-analyze ExecutedAction and ExecutedRule more often (db: Re-analyze ExecutedAction and ExecutedRule more oftenΒ elie222/inbox-zero#4485)e7bdaff15chat: Show the attached email as a card inside the input (chat: Show the attached email as a card inside the inputΒ elie222/inbox-zero#4481)f5c827201drafts: Stop auto-cleaning AI drafts after an account disconnects (drafts: Stop auto-cleaning AI drafts after an account disconnectsΒ elie222/inbox-zero#4465)4918e636eOnly offer an OTP copy code from the latest message (Only offer an OTP copy code from the latest messageΒ elie222/inbox-zero#4475)d14e87777Match semicolon-separated senders in Gmail filter criteria (Match semicolon-separated senders in Gmail filter criteriaΒ elie222/inbox-zero#4474)62b088873Stop on stale screenshot runs and catch duplicate CLI ports (Stop on stale screenshot runs and catch duplicate CLI portsΒ elie222/inbox-zero#4479)0876f2887Fix recorded drive paths to use resolved folder names (Record the actual created folder path for OneDrive filingsΒ elie222/inbox-zero#4478)0fe24d11cRecord rule analytics only after the database write succeeds (Record rule analytics only after the write succeedsΒ elie222/inbox-zero#4472)5af28b963chore: Remove finished one-off scripts (chore: Remove finished one-off scriptsΒ elie222/inbox-zero#4471)fbd651884mail: Fetch opened bodies first, schedule at once, and cover more latency scenarios (mail: Fetch opened bodies first, schedule at once, and cover more latency scenariosΒ elie222/inbox-zero#4468)7d08a794amail: Remove a replaced draft on the server, even after the tab closes (mail: Remove a replaced draft on the server, even after the tab closesΒ elie222/inbox-zero#4467)91497619cmail: Show remote-image emails at once and resume body downloads after reload (mail: Show remote-image emails at once and resume body downloads after reloadΒ elie222/inbox-zero#4466)c580537a3mail: Send and open HTML mail without waiting on the network (mail: Send and open HTML mail without waiting on the networkΒ elie222/inbox-zero#4462)82004cd7afeat(mail): add side chat with current email context (feat(mail): add side chat with current email contextΒ elie222/inbox-zero#4464)309e51f9bmail: Fix snooze autocomplete for partial dates (mail: Fix snooze autocomplete for partial datesΒ elie222/inbox-zero#4463)e25ed25aamail: Add an Unsubscribe button to the reader toolbar (mail: Add an Unsubscribe button to the reader toolbarΒ elie222/inbox-zero#4460)2822f7eb9onboarding: Resume setup after reconnecting from the missing-permissions prompt (onboarding: Resume setup after reconnecting from the missing-permissions promptΒ elie222/inbox-zero#4457)ea44d3a20billing: Drop cancellation feedback from the initiated event (billing: Drop always-empty cancellation feedback from the initiated eventΒ elie222/inbox-zero#4458)539d9f1dabrand: Add a brand kit page and logo right-click menu (brand: Add a brand kit page and logo right-click menuΒ elie222/inbox-zero#4455)547f186dcMerge pull request digest: Self-send digests when Resend is not configuredΒ elie222/inbox-zero#4453 from elie222/fix/digest-self-send-fallbackafe90e9eadocs: Drop filing notifications from Resend fallback listff14f729adocs: List all notification emails that self-send without Resend82c222690digest: Fall back to self-send when Resend is not configured20b9651feMerge pull request deps: Bump better-auth to 1.7.14Β elie222/inbox-zero#4451 from elie222/chore/better-auth-1.7.1416d109513Merge pull request billing: Store Stripe cancellation survey answersΒ elie222/inbox-zero#4449 from elie222/t3/cancellation-feedback6c6a5b274deps: Bump undici overrides to patched 6.29.1 and 7.30.1 (deps: Bump undici overrides to patched 6.29.1 and 7.30.1Β elie222/inbox-zero#4450)b42d9727bbilling: Key backfill writes on the subscription id4ac2362dcdeps: Bump better-auth to 1.7.14aa6dc1d5fbilling: Report backfill answers that match no Premium row0f707d2acbilling: Store cancellation answers on Premium via the Stripe syncba6276c7cbilling: Save Stripe cancellation survey answers1af6380ecoutlook: Retry conflicting flag and read writes; quiet expected errors (outlook: Retry conflicting flag and read writes; quiet expected errorsΒ elie222/inbox-zero#4447)f66475240db: Index draft actions by executed rule for draft cleanup (db: Index draft actions by executed rule for draft cleanupΒ elie222/inbox-zero#4448)3dfd1460dClean up tracked follow-up drafts safely (Clean up tracked follow-up drafts safelyΒ elie222/inbox-zero#4080)1dacb8c29watch: Stop renewing mailboxes that can't be watched (watch: Stop renewing mailboxes that can't be watchedΒ elie222/inbox-zero#4425)e195506ccdocs: Recommend keeping the self-hosted host OS patched (docs: Recommend keeping the self-hosted host OS patchedΒ elie222/inbox-zero#4446)97b95cdc9mail: Fix undo and trash races behind flaky triage E2E specs (mail: Fix undo and trash races behind flaky triage E2E specsΒ elie222/inbox-zero#4445)2d52ecd38outlook: Skip missing messages in getMessagesBatch instead of failing the batch (outlook: Skip missing messages instead of failing the whole message batchΒ elie222/inbox-zero#4444)bee22381cSuggest signatures found in sent mail from a sidebar card (Suggest signatures found in sent mail from a sidebar cardΒ elie222/inbox-zero#4443)120083492llm: Treat retired models and spent AI budgets on user keys as config errors (llm: Treat retired models and spent AI budgets on user keys as config errorsΒ elie222/inbox-zero#4426)90e141efcfollow-up: Scan labeled threads without message bodies (follow-up: Scan labeled threads without message bodiesΒ elie222/inbox-zero#4428)f82bc4c0bactions: Show a clear message when Gmail isn't available for an account (actions: Show a clear message when Gmail isn't available for an accountΒ elie222/inbox-zero#4427)111325d12test: Warm post-login routes before the emulated account picker click (test: Warm post-login routes before the emulated account picker clickΒ elie222/inbox-zero#4431)e090cba4awebhook: Stop Gmail history processing once the account loses credentials (webhook: Stop Gmail history processing once the account loses credentialsΒ elie222/inbox-zero#4424)55a9e2f25Update marketing submodule (Update marketing submoduleΒ elie222/inbox-zero#4442)b187fda72meeting-recorder: Batch per-account queries in the schedule cron (meeting-recorder: Batch per-account queries in the schedule cronΒ elie222/inbox-zero#4438)64fc7ffc3onboarding: Send users with missing Gmail permissions to reconnect before setup (onboarding: Send users with missing Gmail permissions to reconnect before setupΒ elie222/inbox-zero#4439)41a689d3doutlook: Route mailbox throttling through rate-limit handling (outlook: Route mailbox throttling through rate-limit handlingΒ elie222/inbox-zero#4437)3a7c67f0boutlook: Treat unwatching an already-removed subscription as done (outlook: Treat unwatching an already-removed subscription as doneΒ elie222/inbox-zero#4435)1f652fc49outlook: URL-encode $search so "#" and "&" don't cut queries off (outlook: URL-encode $search so "#" and "&" don't cut queries offΒ elie222/inbox-zero#4434)20091a28boutlook: Treat Graph 5xx outages as known provider errors (outlook: Treat Graph 5xx outages as known provider errorsΒ elie222/inbox-zero#4430)6697906e1billing: Record Stripe cancellation reason and feedback on cancellation events (billing: Record Stripe cancellation reason and feedback on cancellation eventsΒ elie222/inbox-zero#4440)c6bdf253bcontacts: Skip Google contact search for queries over 100 characters (contacts: Skip Google contact search for queries over 100 charactersΒ elie222/inbox-zero#4436)4ba7a27b3calendar: Query Google free/busy in batches of 20 calendars (calendar: Query Google free/busy in batches of 20 calendarsΒ elie222/inbox-zero#4421)a65c9702bmail-engine: Restart sync lanes the device slept through without reporting them (mail-engine: Restart sync lanes the device slept through without reporting themΒ elie222/inbox-zero#4429)a9a7e3f6cimage-proxy: Return 502/504 when the upstream image host fails or stalls (image-proxy: Return 502/504 when the upstream image host fails or stallsΒ elie222/inbox-zero#4420)7a80641cfautomation-jobs: Skip scheduled runs for disconnected email accounts (automation-jobs: Skip scheduled runs for disconnected email accountsΒ elie222/inbox-zero#4433)89ef9a570billing: Skip seat updates for Stripe subscriptions that no longer exist (billing: Skip seat updates for Stripe subscriptions that no longer existΒ elie222/inbox-zero#4432)c0c9de1c5outlook: Ask users to reconnect when refresh fails with AADSTS135010 (outlook: Ask users to reconnect when token refresh fails with AADSTS135010Β elie222/inbox-zero#4423)0f4f85590email: Keep invoice email retries identical for Resend idempotency (email: Keep invoice email retries identical for Resend idempotencyΒ elie222/inbox-zero#4422)7f4bb8408loops: Treat 'already in your audience' as an existing contact (loops: Treat 'already in your audience' as an existing contactΒ elie222/inbox-zero#4419)30619aadamail: Keep the reply editor in place while its draft saves (mail: Keep the reply editor in place while its draft savesΒ elie222/inbox-zero#4417)a1e9193a7chat: Stop the first message of a new chat from being aborted (chat: Stop the first message of a new chat from being abortedΒ elie222/inbox-zero#4416)6427c5f28assistant: Keep unsent text when a chat message fails to send (assistant: Keep unsent text when a chat message fails to sendΒ elie222/inbox-zero#4413)ddb8b17bcchat: Calm assistant chat typography and collapse repeated tool rows (chat: Calm assistant chat typography and collapse repeated tool rowsΒ elie222/inbox-zero#4414)9836a02cfNamed signatures: pick a signature when composing, find them in sent mail (Named signatures: pick a signature when composing, find them in sent mailΒ elie222/inbox-zero#4412)9973c128cdocs: changelog β File Into Subfolders (Oct 31) (docs: changelog β File Into Subfolders (Oct 31)Β elie222/inbox-zero#4407)35adda1a6llm: Groq GPT OSS reasoning effort and pricing (llm: Groq GPT OSS reasoning effort and pricingΒ elie222/inbox-zero#4386)bed26fa06llms: Move CLI providers onto an adapter registry (llms: Move CLI providers onto an adapter registryΒ elie222/inbox-zero#4409)2df645741chore: Stop gitleaks flagging YOUR_* placeholders in docs (chore: Stop gitleaks flagging YOUR_* placeholders in docsΒ elie222/inbox-zero#4408)40d4931b3mail: Let users drag accounts into order in the account switcher (mail: Let users drag accounts into order in the account switcherΒ elie222/inbox-zero#4346)88197c142fix: keep onboarding responsive during background mailbox scans (fix: keep onboarding responsive during background mailbox scansΒ elie222/inbox-zero#4203)e2b2993b7contacts: Report missing contact access as a success state, not a 403 (contacts: Report missing contact access as a success state, not a 403Β elie222/inbox-zero#3947)b1e565ad8ai: Fix provider compatibility for email translation (ai: Fix provider compatibility for email translationΒ elie222/inbox-zero#3142)1c76a70e5messaging: Send a Slack/Telegram draft reply only once (messaging: Send a Slack/Telegram draft reply only onceΒ elie222/inbox-zero#4344)2f4ff6ac1rules: Stop silently dropping actions that have an unsupported delay (rules: Stop silently dropping actions that have an unsupported delayΒ elie222/inbox-zero#4343)7e59e2dc9llm: Replace the models api.groq.com retired (llm: Replace the models api.groq.com retiredΒ elie222/inbox-zero#4406)2dbdba382mail: Resume sends parked on an expired token once the account reconnects (mail: Resume sends parked on an expired token once the account reconnectsΒ elie222/inbox-zero#4341)f74019ba8filing: Create nested folders inside existing filing folders (filing: Create nested folders inside existing filing foldersΒ elie222/inbox-zero#3761)159c9f276docs: changelog β Oct 20 to Oct 30 entries (docs: changelog β Oct 20 to Oct 30 entriesΒ elie222/inbox-zero#4270)1026993bbassistant: Start the mail engine when an inline email preview loads a thread (fix(assistant): demand mail engine when expanding inline email previewΒ elie222/inbox-zero#4395)1e3bf38dfshortcuts: Cycle mail splits backward with Shift-Tab (shortcuts: Cycle mail splits backward with Shift-TabΒ elie222/inbox-zero#4405)6fab39395outlook: Keep Reply-To, sender name and every recipient on outgoing mail (outlook: Keep Reply-To, sender name and every recipient on outgoing mailΒ elie222/inbox-zero#4334)56303d122mobile-auth: Log why a mobile sign-in start fails (mobile-auth: Log why a mobile sign-in start failsΒ elie222/inbox-zero#4403)4dfa0daafsentry: Ignore browser extension, in-app browser, and ad-blocker errors (sentry: Ignore browser extension, in-app browser, and ad-blocker errorsΒ elie222/inbox-zero#4401)83daefed1team-comments: Load the server HTML sanitizer's jsdom without require(esm) (team-comments: Load shared email HTML on Vercel without require(esm)Β elie222/inbox-zero#4400)b655044fcbulk-unsubscribe: Don't crash when a bulk run outlives the SWR provider (bulk-unsubscribe: Don't crash when a bulk run outlives the SWR providerΒ elie222/inbox-zero#4399)a9008ecbbimage-proxy: Pass through upstream 204/205/304 responses without a body (image-proxy: Pass through upstream 204/205/304 responses without a bodyΒ elie222/inbox-zero#4398)3cd4e4528calendar: Query Google free/busy in batches of 50 calendars (calendar: Query Google free/busy in batches of 50 calendarsΒ elie222/inbox-zero#4397)98da6f546snooze: Stop retrying snoozes for threads that were deleted (snooze: Stop retrying snoozes for threads that were deletedΒ elie222/inbox-zero#4396)1ef333cd1Merge pull request mail: Show mail in the Important splitΒ elie222/inbox-zero#4393 from elie222/fix/important-split-empty0bcf49572llm: Let self-hosters turn thinking off for Ollama and OpenAI-compatible models (llm: Let self-hosters turn thinking off for Ollama and OpenAI-compatible modelsΒ elie222/inbox-zero#4350)a7e6d7450drafts: Don't record a reply as a sent AI draft after we deleted the draft (drafts: Don't record a reply as a sent AI draft after we deleted the draftΒ elie222/inbox-zero#4333)b75232183cli: Detect ports held on wildcard addresses and prompt for a free one (cli: Detect ports held on wildcard addresses and prompt for a free oneΒ elie222/inbox-zero#4370)230391bdfmessaging: Show draft replies without raw HTML signatures in Slack and Telegram (messaging: Show draft replies without raw HTML signatures in Slack and TelegramΒ elie222/inbox-zero#4392)5e8ed2541mail: Keep Gmail's Important marker so the Important split shows mail627dd8473test: Fix package test cache race and Node 26 SQLite failure (test: Fix package test cache race and Node 26 SQLite failureΒ elie222/inbox-zero#4390)d6c4011eaINB-394: Stop HTML signatures from gaining extra spacing in Gmail drafts (INB-394: Stop HTML signatures from gaining extra spacing in Gmail draftsΒ elie222/inbox-zero#4391)a587ac100booking: Check the host's calendars for the exact slot being booked (booking: Check the host's calendars for the exact slot being bookedΒ elie222/inbox-zero#4332)4ff20cce3clean: Keep starred and replied threads that start with a newsletter (clean: Keep starred and replied threads that start with a newsletterΒ elie222/inbox-zero#4342)4debcee2eNatural numeric sort for label names so 10 and 11 follow 9 (Sort labels with numeric prefixes naturally (10 after 9, not after 1)Β elie222/inbox-zero#4347)92246308amail-core: Give every folder a turn during a large mailbox's first sync (mail-core: Give every folder a turn during a large mailbox's first syncΒ elie222/inbox-zero#4387)3b522a384mail: Stop cutting emails at an inline "original message" (mail: Stop cutting emails at an inline "original message"Β elie222/inbox-zero#4383)2ab4974b3mail: Pass Shift and Cmd shortcuts through from the email body (mail: Pass Shift and Cmd shortcuts through from the email bodyΒ elie222/inbox-zero#4388)b7788fa6email: Show star, read, and label changes instantly (mail: Show star, read, and label changes instantlyΒ elie222/inbox-zero#4389)a55728640tests: Stabilize choose-rule model evals (tests: Stabilize choose-rule model evalsΒ elie222/inbox-zero#3068)2e78381d1digest: Send one digest after a stale schedule, not one per cron run (digest: Send one digest after a stale schedule, not one per cron runΒ elie222/inbox-zero#4363)77cf719bbdocs: explain how to turn on the decision model (Jev, Clef) (docs: explain how to turn on the decision model (Jev, Clef)Β elie222/inbox-zero#4385)b4a25c631cold-email: Honour "Not a cold email" for senders with capitals in their address (cold-email: Honour "Not a cold email" for senders with capitals in their addressΒ elie222/inbox-zero#4361)a13426c55senders: Stop one sender's filter matching another's address (senders: Stop one sender's filter matching another's addressΒ elie222/inbox-zero#4362)6cd2cdd34outlook: Mark the subscription lapsed when renewal can't replace it (outlook: Mark the subscription lapsed when renewal can't replace itΒ elie222/inbox-zero#4364)6603d9cc5meeting-briefs: Don't brief on meetings or guests that declined (meeting-briefs: Don't brief on meetings or guests that declinedΒ elie222/inbox-zero#4381)6edac9a86rules: Keep notifications on other channels when saving a rule (rules: Keep notifications on other channels when saving a ruleΒ elie222/inbox-zero#4382)0f9bb9d9bmail-sqlite: Replay pending changes in submission order so undo shows correctly (mail-sqlite: Replay pending changes in submission order so undo shows correctlyΒ elie222/inbox-zero#4384)269b53693gmail: Archive every message from a sender, not every other page (gmail: Archive every message from a sender, not every other pageΒ elie222/inbox-zero#4380)392db58adci: Feature relevant Playwright frames and let agents embed them in PRs (ci: Feature relevant Playwright frames and let agents embed them in PRsΒ elie222/inbox-zero#4379)938a119b3mail: Copy one-time codes from the thread list and push notifications (mail: Copy one-time codes from the thread list and push notificationsΒ elie222/inbox-zero#4377)ec39b2a96mail: Show sender detail and profile icons together on message hover (mail: Show sender header hover icons togetherΒ elie222/inbox-zero#4378)48a2b49cemail: Let Gmail collapse quoted replies to messages sent from the app (mail: Let Gmail collapse quoted replies to messages sent from the appΒ elie222/inbox-zero#4376)7590bf705assistant: Let chat test rule fixes against the email being fixed (assistant: Let chat test rule fixes against the email being fixedΒ elie222/inbox-zero#4375)8f03bda00rules: Add PostHog events for rule changes (rules: Add PostHog events for rule changesΒ elie222/inbox-zero#4374)62087febefix: avoid learning sender exclusions from isolated label removals (fix: avoid learning sender exclusions from isolated label removalsΒ elie222/inbox-zero#4373)80d152119rules: avoid learning sender exclusions from bulk label removals686aee5a5desktop: Sign Windows builds with Azure Artifact Signing (desktop: Sign Windows builds with Azure Artifact SigningΒ elie222/inbox-zero#4221)a7f7f71d1mail: Return focus to the restored email after undo (mail: Return focus to the restored email after undoΒ elie222/inbox-zero#4369)dd2d95072mail: Show sender-formatted quotes instead of collapsing them (mail: Show sender-formatted quotes instead of collapsing themΒ elie222/inbox-zero#4368)41f816c33mail: Add a back caret to the mailbox title (mail: Add a back caret to the mailbox titleΒ elie222/inbox-zero#4366)87e1dc679mail: Show the mailbox name outside the inbox and let Esc return to it (mail: Show the mailbox name outside the inbox and let Esc return to itΒ elie222/inbox-zero#4359)05dc06fd7mail: Open emails from the list without a loading placeholder (mail: Open emails from the list without a loading placeholderΒ elie222/inbox-zero#4358)9069839e8commandk: Add mailbox navigation commands (commandk: Add mailbox navigation commandsΒ elie222/inbox-zero#4357)970155911teams: Open the app in the user's own tenant (teams: Open the app in the user's own tenantΒ elie222/inbox-zero#4354)70a5a7841outlook: Skip unreadable messages instead of failing a whole page (outlook: Skip unreadable messages instead of failing a whole pageΒ elie222/inbox-zero#4353)1194e33bbdesktop: Bind Paste and Match Style to Cmd+Shift+V on macOS (desktop: Bind Paste and Match Style to Cmd+Shift+V on macOSΒ elie222/inbox-zero#4352)794a022dbmail: Drop the focus ring box around split tabs (mail: Drop the focus ring box around split tabsΒ elie222/inbox-zero#4349)9946df5f3fix: Mark Google calendars disconnected when the grant is revoked (fix: Mark Google calendars disconnected when the grant is revokedΒ elie222/inbox-zero#4311)109e216e6mail: Show the compose key in the button and add an assistant shortcut (mail: Show the compose key in the button and add an assistant shortcutΒ elie222/inbox-zero#4339)bb258d8c3test: remove redundant test cases83290dedcmail: Quiet the split tab rule and shorten the empty state (mail: Quiet the split tab rule and shorten the empty stateΒ elie222/inbox-zero#4338)b80cd26e0mail: Calm the list chrome and keep the mac sidebar toggle in place (mail: Calm the list chrome and keep the mac sidebar toggle in placeΒ elie222/inbox-zero#4330)aea0ec2dbfix: enforce patched HTML sanitizer dependency (fix: enforce patched HTML sanitizer dependencyΒ elie222/inbox-zero#4337)18c0c785ffix: preserve inline image previews after sending (fix: preserve inline image previews after sendingΒ elie222/inbox-zero#4336)fe2e07a80Improve messaging integration setup and documentationd95d020c8mail: Ghost reader toolbar buttons and hover-reveal the profile button (mail: Ghost reader toolbar buttons and hover-reveal the profile buttonΒ elie222/inbox-zero#4335)10a6c1f17mail: Animate sidebar group expand and collapse (mail: Animate sidebar group expand and collapseΒ elie222/inbox-zero#4327)2058ecd44mail: Calm the sidebar and empty state (mail: Calm the sidebar and empty stateΒ elie222/inbox-zero#4329)3d5dc521fmail: Make message details consistent with the header (mail: Make message details consistent with the headerΒ elie222/inbox-zero#4328)58a0cc339ci: Skip the Playwright report when no browser specs ran (ci: Skip the Playwright report when no browser specs ranΒ elie222/inbox-zero#4269)fc021c432outlook: Check reply history with Graph queries, not Gmail syntax (outlook: Check reply history with Graph queries, not Gmail syntaxΒ elie222/inbox-zero#4289)5a6fd0c8arules: Match static body conditions against HTML-only emails (rules: Match static body conditions against HTML-only emailsΒ elie222/inbox-zero#4290)46604b2f0rules: Match learned sender patterns on the whole address (rules: Match learned sender patterns on the whole addressΒ elie222/inbox-zero#4288)4bffc4db4outlook: Apply thread actions to every message, not the first page (outlook: Apply thread actions to every message, not the first pageΒ elie222/inbox-zero#4265)f392d95bcoutlook: Archive every message from a sender, not every other page (outlook: Archive every message from a sender, not every other pageΒ elie222/inbox-zero#4263)3be202232mail: Start the Gmail catch-up from history, not mid-listing (mail: Start the Gmail catch-up from history, not mid-listingΒ elie222/inbox-zero#4264)7e7d313c5fix: Retry rule history insert on version conflict (fix: Retry rule history insert on version conflictΒ elie222/inbox-zero#4324)435482effrules: Keep the folder and label on delayed actions (rules: Keep the folder and label on delayed actionsΒ elie222/inbox-zero#4266)9c5b546acImprove agent discovery and Markdown content07e6653bcemail: Pad booking emails so the card doesn't touch the background edge (email: Pad booking emails so the card doesn't touch the background edgeΒ elie222/inbox-zero#4322)4aeb99cb4fix: avoid repeating visible action names in shortcut tooltips (fix: avoid duplicate action names in shortcut tooltipsΒ elie222/inbox-zero#4310)de5c21617mail: Simplify optimistic archive state and tests (mail: Simplify optimistic archive state and testsΒ elie222/inbox-zero#4320)a4f6e569dmail: Move Discussions and Settings to the sidebar bottom, tighten the mac header (mail: Move Discussions and Settings to the sidebar bottom, tighten the mac headerΒ elie222/inbox-zero#4319)8a85bbd83mail: Stop discarding a reply from failing after its sent message is confirmed (mail: Stop reply discards failing once the sent message is confirmedΒ elie222/inbox-zero#4321)9869d25aefix: Handle concurrent draft send logs and slow summary emails (fix: Handle concurrent draft send logs and slow summary emailsΒ elie222/inbox-zero#4313)1d6fb2127mail: Render the inbox zero scene without animation (mail: Show the inbox zero scene without animationΒ elie222/inbox-zero#4318)5c9272532mail: Add print, download, show original, and create rule to reader menus (mail: Add print, download, show original, and create rule to reader menusΒ elie222/inbox-zero#4309)6e0653ea7mail: Reveal email readers after body preparation (mail: Reveal email readers after body preparationΒ elie222/inbox-zero#4317)76c046f70mail: Make archive feedback immediate (mail: Make archive feedback immediateΒ elie222/inbox-zero#4316)080bdada6fix: Log expected account states as warnings and skip disconnected accounts (fix: Log expected account states as warnings and skip disconnected accountsΒ elie222/inbox-zero#4312)0f9c056efmail: Celebrate reaching inbox zero (mail: Celebrate reaching inbox zeroΒ elie222/inbox-zero#4315)10cb2416amail: Keep arrow keys on the mail list after closing the account switcher (mail: Keep arrow keys on the mail list after closing the account switcherΒ elie222/inbox-zero#4308)4ab346d97mail: Switch between Mail and Assistant from the top of either sidebar (mail: Switch between Mail and Assistant from the top of either sidebarΒ elie222/inbox-zero#4307)323ed421cmail: Match the collapsed mail rail to the app sidebar (mail: Match the collapsed mail rail to the app sidebarΒ elie222/inbox-zero#4304)7ea81f820mail: Title conversations by their first message (mail: Title conversations by their first messageΒ elie222/inbox-zero#4305)483f1db55fix: Remove agent instructions link from the 404 page (fix: Remove agent instructions link from the 404 pageΒ elie222/inbox-zero#4306)755937e74mail: Keep split tab padding even and show the grip only while dragging (mail: Keep split tab padding even and show the grip only while draggingΒ elie222/inbox-zero#4301)29c38e465mail: Hide a sent reply until it takes over from its composer (mail: Hide a sent reply until it takes over from its composerΒ elie222/inbox-zero#4300)efd3d39b9fix: Show which account is active in the mail account switcher (mail: Show which account is active in the account switcherΒ elie222/inbox-zero#4302)fdc97e280mail: Link bare URLs in sent and received HTML email (mail: Link bare URLs in sent and received HTML emailΒ elie222/inbox-zero#4298)452b87617chore: Rename personal branch names locally before pushing (chore: Rename personal branch names locally before pushingΒ elie222/inbox-zero#4299)4dfb3b374chore: Keep personal data out of branch names (chore: Keep personal data out of branch namesΒ elie222/inbox-zero#4297)11b6a5250fix: report unloaded older history when newer mail fills the page budget (stats: Report unloaded older history when newer mail fills the page budgetΒ elie222/inbox-zero#4296)10656de2ftest: Cover Outlook participant search against the emulator (test: Cover Outlook participant search against the emulatorΒ elie222/inbox-zero#4295)1538cc85amail-engine: Keep new mail syncing and stop searches paging the whole mailbox (mail-engine: Keep new mail syncing and stop searches paging the whole mailboxΒ elie222/inbox-zero#4293)5f36395cffix: hide the upgrade prompt when premium checks are bypassed (fix: hide the upgrade prompt when premium checks are bypassedΒ elie222/inbox-zero#3409)1c425a152assistant: Keep learned patterns dialog closable on small screens (assistant: Keep learned patterns dialog closable on small screensΒ elie222/inbox-zero#4115)1161cc340INB-389: Preserve HTML signatures in AI draft replies (INB-389: Preserve HTML signatures in AI draft repliesΒ elie222/inbox-zero#4262)39f5e2286INB-388: Keep signature toggle above expanded signature (INB-388: Keep signature toggle above expanded signatureΒ elie222/inbox-zero#4256)0af6703a3outlook: Quote property-scoped search queries so Graph accepts them (outlook: Quote property-scoped search queries so Graph accepts themΒ elie222/inbox-zero#4294)2e18f706eAdd Organization/WebSite/SoftwareApplication structured data (Add Organization/WebSite/SoftwareApplication structured dataΒ elie222/inbox-zero#4243)935e22e46mail: Make dragging split tabs feel smooth (mail: Make dragging split tabs feel smoothΒ elie222/inbox-zero#4292)36fd1ae2bmail: Keep the reader selection bar visible while archiving (mail: Keep the reader selection bar steady when archivingΒ elie222/inbox-zero#4291)fb252f91dmail: Remove the extra blank line above the Sent with footer (mail: Remove the extra blank line above the Sent with footerΒ elie222/inbox-zero#4286)50d86189bmail: Make it clear when search is focused (mail: Make it clear when search is focusedΒ elie222/inbox-zero#4287)c4edbddcfweb, desktop: Reload quietly after deploys and show Restart to update in the sidebar (web, desktop: Reload quietly after deploys and show Restart to update in the sidebarΒ elie222/inbox-zero#4275)0e3fb547cmail: Reorder split tabs by holding and dragging (mail: Reorder split tabs by holding and draggingΒ elie222/inbox-zero#4285)037a139fetest: Keep Playwright on 1.62.1 (test: Keep Playwright on 1.62.1Β elie222/inbox-zero#4282)1321a248dmail: Move desktop back/forward from the toolbar to the View menu (mail: Move desktop back/forward from the toolbar to the View menuΒ elie222/inbox-zero#4284)e07ea948bteam: Rename Team to Discussions and add an empty state (team: Rename Team to Discussions and add an empty stateΒ elie222/inbox-zero#4281)b1495f9b4mail: Address replies to the sender's Reply-To address (mail: Address replies to the sender's Reply-To addressΒ elie222/inbox-zero#4279)effe46007team: Scope Team to the current account and move it under Tools (team: Scope Team to the current account and move it under ToolsΒ elie222/inbox-zero#4280)4b132256amail: Show thread messages as raised cards with stable padding (mail: Show thread messages as raised cards with stable paddingΒ elie222/inbox-zero#4278)c76115356mail: Show a reply all button on message hover (mail: Show a reply all button on message hoverΒ elie222/inbox-zero#4277)8fb025f0dmail: Select and copy the whole conversation with Cmd+A in the reader (mail: Select and copy the whole conversation with Cmd+A in the readerΒ elie222/inbox-zero#4274)ffd9f3015chore: Update workspace packages (chore: Update workspace packagesΒ elie222/inbox-zero#4276)0acc27665mail: Stop the thread flashing when a reply is sent (mail: Stop the thread flashing when a reply is sentΒ elie222/inbox-zero#4273)ffa304559mail: Let inline replies send when the draft has no subject (mail: Let inline replies send when the draft has no subjectΒ elie222/inbox-zero#4272)865fa8d7fmail: Quote selected text when Enter opens a reply (mail: Quote selected text when Enter opens a replyΒ elie222/inbox-zero#4257)4904ffe31desktop: Show the update prompt once and reload after the new version takes over (desktop: Show the update prompt once and reload after the new version takes overΒ elie222/inbox-zero#4259)d5282e146feat(push): show email previews in To Reply notifications (push: Show an email preview in To Reply notificationsΒ elie222/inbox-zero#4271)f8f87c7bdfix(bulk-unsubscribe): only suggest senders that have an unsubscribe link (fix(bulk-unsubscribe): only suggest senders that have an unsubscribe linkΒ elie222/inbox-zero#4267)dfb122fbbwebhooks: Release the message lock on failure so rate-limit catch-up can replay it (webhooks: Release the message lock on failure so rate-limit catch-up can replay itΒ elie222/inbox-zero#4268)6cdf759ba[Snyk] Security upgrade undici from 8.10.2 to 8.12.2 ([Snyk] Security upgrade undici from 8.10.2 to 8.12.2Β elie222/inbox-zero#4261)85a2432eadocs: clarify Docker image tag format (no v prefix) (docs: clarify Docker image tag formatΒ elie222/inbox-zero#4253)e569dac97mail: Stop inline images flashing broken and reloading in the reader (mail: Stop inline images flashing broken and reloading in the readerΒ elie222/inbox-zero#4258)8516acfb8[Snyk] Security upgrade prisma from 7.10.0 to 7.10.1 ([Snyk] Security upgrade prisma from 7.10.0 to 7.10.1Β elie222/inbox-zero#4187)ef545f3dftests: Remove low-value unit tests (tests: Remove low-value unit testsΒ elie222/inbox-zero#4260)77aaed168rules: Treat|in subject/body static conditions as a literal character (rules: Treat|in subject/body static conditions as a literal characterΒ elie222/inbox-zero#4208)934005d6eoutlook: Honor Reply-To when drafting replies (outlook: Honor Reply-To when drafting repliesΒ elie222/inbox-zero#4228)455932db6desktop: Show update download progress in the app (desktop: Show update download progress in the appΒ elie222/inbox-zero#4252)c1fe110bbrules: Send the CC and BCC configured on a Reply action (rules: Send the CC and BCC configured on a Reply actionΒ elie222/inbox-zero#4210)1eb71272aself-hosting: Fix .env.example inline comments and missing cron jobs (self-hosting: Fix .env.example inline comments and missing cron jobsΒ elie222/inbox-zero#4116)d06bd235adigest: Send weekly digests on the chosen weekday (digest: Send weekly digests on the chosen weekdayΒ elie222/inbox-zero#4224)4128ed234Fail rule selection when the AI names no offered rule (Fail rule selection when the AI names a rule that wasn't offered (Fixes #3853)Β elie222/inbox-zero#4255)47a548aa7categorize: scan past the first 200 senders when finding uncategorized ones (categorize: Scan past the first 200 senders in bulk categorizationΒ elie222/inbox-zero#3913)8f96cd84cpremium: Keep Apple grace-period subscribers in scheduled jobs (premium: Keep Apple grace-period subscribers in scheduled jobsΒ elie222/inbox-zero#4227)dc4aef03funsubscribe: Keep commas inside List-Unsubscribe URLs that are not listed first (unsubscribe: Keep commas inside List-Unsubscribe URLs that are not listed firstΒ elie222/inbox-zero#4209)c27a424aacategories: Update edited categories instead of creating duplicates (categories: Update edited categories instead of creating duplicatesΒ elie222/inbox-zero#4212)83cf7c650Update marketing submodule (Update marketing submoduleΒ elie222/inbox-zero#4254)430f69729fix(docker): add follow-up reminders build placeholder (docker: Add the follow-up reminders runtime placeholderΒ elie222/inbox-zero#4202)900dbe217clean: Page through the inbox instead of refetching the first page (clean: Page through the inbox instead of refetching the first pageΒ elie222/inbox-zero#4213)f7b2e0109ci: Run provider-neutral mail specs on Google only (ci: Run provider-neutral mail specs on Google onlyΒ elie222/inbox-zero#4251)cafd700e5mail: Keep the focused row steady when archiving the open thread (mail: Keep the focused row steady when archiving the open threadΒ elie222/inbox-zero#4249)f4c702732outlook: Include custom folders in all-mail thread queries (outlook: Include custom folders in all-mail thread queriesΒ elie222/inbox-zero#4244)eb60f9441test: Capture fewer Playwright screenshots per run (test: Capture fewer Playwright screenshots per runΒ elie222/inbox-zero#4248)6fcee6b11fix: balance app store button spacing (fix: Balance app store button spacingΒ elie222/inbox-zero#4247)adfd0e4c4ci: Raise Playwright gallery screenshot limits (ci: Raise Playwright gallery screenshot limitsΒ elie222/inbox-zero#4246)ae2770f0fBump marketing submodule (Bump marketing submoduleΒ elie222/inbox-zero#4245)8701c357cmail: Replace shared and activity menu links with a Team sidebar entry (mail: Replace shared and activity menu links with a Team sidebar entryΒ elie222/inbox-zero#4240)4f7ffe6e9bulk-archive: Delete all mail from selected senders and fix deselect toggle (bulk-archive: Delete all mail from selected senders and fix deselect toggleΒ elie222/inbox-zero#4241)853133bbbsettings: Clarify account deletion and keep the provider signature in compose (settings: Clarify account deletion and keep the provider signature in composeΒ elie222/inbox-zero#4197)f351f0a76fix: Run AI draft cleanup per account so it finishes for every user (fix: Run AI draft cleanup per account so it finishes for every userΒ elie222/inbox-zero#4235)e57098b3fmail: Allow split view in All Accounts (mail: Allow split view in All AccountsΒ elie222/inbox-zero#4234)0b6b6a145mail: Move the compose send pipeline into useComposeSend (mail: Move the compose send pipeline into useComposeSendΒ elie222/inbox-zero#4239)e34125a57mail: Move compose draft persistence and attachment handling into hooks (mail: Move compose draft persistence and attachment handling into hooksΒ elie222/inbox-zero#4238)38bf57535fix: Resolve rule names followed by extra words (ai: Resolve rule names followed by extra wordsΒ elie222/inbox-zero#4237)b121f1f25mail: Split the composer's header, attachment list, and initial content out of ComposeEmailForm (mail: Split header, attachment list, and initial content out of ComposeEmailFormΒ elie222/inbox-zero#4236)7f0d8ab0fAndroid client: FCM push, emulator push trigger, and port listing (Android client: FCM push, emulator push trigger, and port listingΒ elie222/inbox-zero#4223)b58260893docs: changelog β A Free Email App (Oct 16) (docs: changelog β A Free Email App (Oct 16)Β elie222/inbox-zero#4181)fd5914392mail: Warn before sending with a missing attachment or an unfilled placeholder (mail: Warn before sending with a missing attachment or an unfilled placeholderΒ elie222/inbox-zero#4230)2b8583303perf: Query immediate and delayed summary archives separately (perf: Query summary email archives without a full table scanΒ elie222/inbox-zero#4232)52d43e6f5mail: Stop email images flashing in when opening a message (mail: Stop email images flashing in when opening a messageΒ elie222/inbox-zero#4231)198ba7fe8fix: Reduce production errors in auth, onboarding, and provider handling (fix: Reduce production errors in auth, onboarding, and provider handlingΒ elie222/inbox-zero#4229)747265ae1drafts: Answer as the user without voicing the model's own doubts (drafts: Answer as the user without voicing the model's own doubtsΒ elie222/inbox-zero#4161)933f88876cold-email: Decide cold email with the LLM, not the rule-selection decision model (cold-email: Decide cold email with the LLM, not the rule-selection decision modelΒ elie222/inbox-zero#4162)4a934a3d6drafts: Let reply drafts look things up in the user's public docs (drafts: Let reply drafts look things up in the user's public docsΒ elie222/inbox-zero#4217)09b2eb3a2drafts: Answer each of a sender's separate questions on its own (drafts: Answer each of a sender's separate questions on its ownΒ elie222/inbox-zero#4218)d7c4afa9bmail: Keep an open composer mounted while drafts sync (mail: Keep an open composer mounted while drafts syncΒ elie222/inbox-zero#4220)a347c5261fix(mail): Show the app update notice only on mail pages (mail: Show the app update notice only on mail pagesΒ elie222/inbox-zero#4222)eda6167aaintegrations: Add a test connection action for MCP integrations (integrations: Add a test connection action for MCP integrationsΒ elie222/inbox-zero#4216)87d1c4212mail: Move Outlook conversations into mail folders instead of categories (mail: Move Outlook conversations into mail folders instead of categoriesΒ elie222/inbox-zero#4219)7b30eef5efix: Keep Cmd+B for bold in rich text editors instead of toggling the sidebar (compose: Keep Cmd+B for bold instead of toggling the sidebarΒ elie222/inbox-zero#4215)cbd85bfa5mail-engine: Bound command waits on view refreshes and report command latency (mail-engine: Bound command waits on view refreshes and report command latencyΒ elie222/inbox-zero#4207)90582564cchore: Update website logos (chore: Update website logosΒ elie222/inbox-zero#4214)6a1a29d4dmail: Read split views from the role index instead of scanning every message (mail: Read split views from the role index instead of scanning every messageΒ elie222/inbox-zero#4211)289355b10mail: Show syncing instead of an empty list before the first sync finishes (mail: Show syncing instead of an empty list before the first sync finishesΒ elie222/inbox-zero#4206)9907cb9f4feat: allow a custom hero video thumbnail (feat: allow a custom hero video thumbnailΒ elie222/inbox-zero#4205)8b3fd89d4settings: Add 'Sent with' footer toggle to account settings (settings: Add 'Sent with' footer toggle to account settingsΒ elie222/inbox-zero#4193)e9fcefd14mail: Isolate messages the sync protocol cannot represent (mail: Isolate messages the sync protocol cannot representΒ elie222/inbox-zero#4201)d74fb23camail: Clamp oversized attachment and recipient fields so sync pages don't stall (mail: Keep sync from stalling on oversized attachment and recipient fieldsΒ elie222/inbox-zero#4200)a76ddac8conboarding: Replace screenshots with app-native illustrations (onboarding: Replace screenshots with app-native illustrationsΒ elie222/inbox-zero#4199)a281a644edesktop: Add native right-click menu (desktop: Add native right-click menuΒ elie222/inbox-zero#4196)1ce4d552fsettings: Keep delete dialog open after confirming subscription cancellation (settings: Fix delete account dialog closing after subscription confirmationΒ elie222/inbox-zero#4191)32b5bf4dbapp: Default theme to system preference (app: Default theme to system preferenceΒ elie222/inbox-zero#4192)ce70c1212fix(app): Ask long-lived tabs to reload after a new deployment (app: Ask long-lived tabs to reload after a new deploymentΒ elie222/inbox-zero#4195)0a7c41bfemail: Surface the desktop and mobile apps in the sidebar and announcement (mail: Surface the desktop and mobile apps in the sidebar and announcementΒ elie222/inbox-zero#4194)7a8c20ca9settings: Tidy billing actions and shorten read status copy (settings: Tidy billing actions and shorten read status copyΒ elie222/inbox-zero#4189)1f045bf03fix(mail): start mail engine once per load (fix(mail): start mail engine once per loadΒ elie222/inbox-zero#4190)bc56fda7echore: update marketing submodule (chore: update marketing submoduleΒ elie222/inbox-zero#4177)6ad970fdelanding: Smooth-scroll the email app badge on every click (landing: Smooth-scroll the email app badge on every clickΒ elie222/inbox-zero#4185)1797f8438chore(deps): upgrade Next.js to 16.4.1 for security advisories (deps: Upgrade Next.js to 16.4.1 for security advisoriesΒ elie222/inbox-zero#4186)0a46c4432mail: Let users drag to resize the email list and AI assistant (mail: Let users drag to resize the email list and AI assistantΒ elie222/inbox-zero#4170)748f6bfd3mail: Clear unsubmitted search when a sidebar view is clicked (mail: Clear unsubmitted search when a sidebar view is clickedΒ elie222/inbox-zero#4182)0542dcdabfix(mail): handle multi-tab engine ownership invisibly (fix(mail): handle multi-tab engine ownership invisiblyΒ elie222/inbox-zero#4184)9c9ad1933fix(mail): report mail engine startup failures and allow retry (fix(mail): report mail engine startup failures and allow retryΒ elie222/inbox-zero#4183)bc36e340bmail: Open settings from the account menu and desktop app menu (mail: Open settings from the account menu and desktop app menuΒ elie222/inbox-zero#4176)eee0bac7eemail-list: Show the year on short dates from previous years (email-list: Show the year on short dates from previous yearsΒ elie222/inbox-zero#4178)b9d34880acalendar: Save fresh tokens when reconnecting an existing calendar (calendar: Save fresh tokens when reconnecting an existing calendarΒ elie222/inbox-zero#3937)c86765d11chore: Remove paywall-first experiment leftovers (chore: Remove paywall-first experiment leftoversΒ elie222/inbox-zero#4179)436380de2cli: Use sslmode=verify-full in Terraform database URL (cli: Use sslmode=verify-full in Terraform database URLΒ elie222/inbox-zero#4175)abb76baeeonboarding: Ask the survey first and branch on signup intent (onboarding: Ask the survey first and branch on signup intentΒ elie222/inbox-zero#4174)885d31be3onboarding: Show intent options as a list with descriptions (onboarding: Show intent options as a list with descriptionsΒ elie222/inbox-zero#4173)d8f2d3523gmail: Fail fast when Gmail is disabled for the account (gmail: Fail fast when Gmail is disabled for the accountΒ elie222/inbox-zero#4172)f482190a1onboarding: Support dark mode on onboarding surfaces (onboarding: Support dark mode on onboarding surfacesΒ elie222/inbox-zero#4171)61c650416docs: Explain Microsoft 365 shared mailbox support (docs: Explain Microsoft 365 shared mailbox supportΒ elie222/inbox-zero#4169)59cf6d2bcchore: update marketing repository reference (chore: update marketing repository referenceΒ elie222/inbox-zero#4167)217cb9be1nav: Always show Inbox in the sidebar (nav: Always show Inbox in the sidebarΒ elie222/inbox-zero#4166)fac1285addocker: Install Prisma CLI at the app's version for migrations (docker: Install Prisma CLI at the app's version for migrationsΒ elie222/inbox-zero#4165)df4d15028launch: Free email app, signup intent, and /download (launch: Free email app, signup intent, and /downloadΒ elie222/inbox-zero#4164)78cc0fd92comments: Count typed @mentions so teammates can see the thread (INB-387) (comments: Count typed @mentions so teammates can see the thread (INB-387)Β elie222/inbox-zero#4163)d181112bc[Snyk] Security upgrade zod from 4.2.1 to 4.6.6 ([Snyk] Security upgrade zod from 4.2.1 to 4.6.6Β elie222/inbox-zero#4157)a7b2392c6[Snyk] Security upgrade @modelcontextprotocol/sdk from 1.30.0 to 1.31.0 ([Snyk] Security upgrade @modelcontextprotocol/sdk from 1.30.0 to 1.31.0Β elie222/inbox-zero#4136)9ff2d2757desktop: Render inline email body images (INB-381) (desktop: Render inline email body images (INB-381)Β elie222/inbox-zero#4159)a86c1afe7docs: changelog β Reply from the Right Address (Oct 14) (docs: changelog β Translate Threads (Oct 7)Β elie222/inbox-zero#4044)efb8eb871fix: close compose after leaving mail (INB-341: Close compose modal after leaving mailΒ elie222/inbox-zero#3416)c78194770mail: Show an attachment indicator in the thread list (mail: Show an attachment indicator in the thread listΒ elie222/inbox-zero#4130)fdd6151dcBump marketing submodule (Bump marketing submoduleΒ elie222/inbox-zero#4158)c83ca6612Resolve rule names with leaked JSON characters in AI rule choice (ai: Resolve rule names with leaked JSON charactersΒ elie222/inbox-zero#4151)2acfdb07amail: Tuck Cc/Bcc away and turn typed recipients into tokens (mail: Tuck Cc/Bcc away and turn typed recipients into tokensΒ elie222/inbox-zero#4153)f0cc4b280deps: Upgrade better-auth to 1.7.7 (deps: Upgrade better-auth to 1.7.7Β elie222/inbox-zero#4155)165443fbdmail: Forward local contact suggestions from secondary tabs (mail: Forward local contact suggestions from secondary tabsΒ elie222/inbox-zero#4150)f8b24498amail: Reject malformed TIFF structure before decoding previews (mail: Reject malformed TIFF structure before decoding previewsΒ elie222/inbox-zero#4152)776009e7bllm: Fix OpenRouter web search failing on every call (llm: Fix OpenRouter web search failing on every callΒ elie222/inbox-zero#4154)792b833f0mail: Explain why sender context failed to load and let users retry (mail: Explain why sender context failed to load and let users retryΒ elie222/inbox-zero#4149)381fe7a82Drop tracking pixels from mail HTML and log image proxy rejections (mail: Drop tracking pixels and log image proxy rejectionsΒ elie222/inbox-zero#4148)89cf8c506mail: Show the full sender name in the open message header (mail: Show the full sender name in the open message headerΒ elie222/inbox-zero#4147)6e1749acbUpdate tested integration revision (Update tested integration revisionΒ elie222/inbox-zero#4146)c860e593bmail: Keep a sent reply closed when returning to its thread during undo (mail: Keep a sent reply closed when returning to its thread during undoΒ elie222/inbox-zero#4144)435eaf2cbPreserve HTML in MCP mail thread responses (MCP: preserve HTML in mail thread responsesΒ elie222/inbox-zero#4145)9b8d5048bmail: Offer to view a sent email from the sent toast (mail: Offer to view a sent email from the sent toastΒ elie222/inbox-zero#4142)da75724e5mail: Open compose offline and explain network failures (mail: Open compose offline and explain network failuresΒ elie222/inbox-zero#4141)ce514b64atest: Cover image signatures on send-as aliases and Outlook replies (test: Cover image signatures on send-as aliases and Outlook repliesΒ elie222/inbox-zero#4140)82d2a85cbfix(desktop): scope unread badge to selected inbox (desktop: Scope unread badge to the selected inboxΒ elie222/inbox-zero#4139)e72697108mail: Cover replying and composing from Gmail send-as aliases end to end (mail: Cover replying and composing from Gmail send-as aliases end to endΒ elie222/inbox-zero#4138)2ba4454d1billing: Keep billing admin access when merging accounts (billing: Keep billing admin access when merging accountsΒ elie222/inbox-zero#4137)d4a3e8252mail: Reply from the send-as address a message was sent to (mail: Reply from the send-as address a message was sent toΒ elie222/inbox-zero#4135)3a9069a66landing: Keep the hero thumbnail transparent (landing: Keep the hero thumbnail transparentΒ elie222/inbox-zero#4134)bafc64e04mail: Render inline TIFF images in the email body (mail: Render inline TIFF images in the email bodyΒ elie222/inbox-zero#4133)acd1b5940mail: Keep inline body images loaded when a thread republishes (mail: Keep inline body images loaded when a thread republishesΒ elie222/inbox-zero#4132)40057a560organizations: Let admins re-invite after an invitation expires (organizations: Let admins re-invite after an invitation expiresΒ elie222/inbox-zero#4131)dd026df83loops: Copy workflow names onto engagement events (loops: Copy workflow names onto engagement eventsΒ elie222/inbox-zero#4055)41179be9fmail: Show saved reply drafts when a thread opens (mail: Show saved reply drafts when a thread opensΒ elie222/inbox-zero#4049)f57a5c562chore: update marketing repository reference (chore: update marketing repository referenceΒ elie222/inbox-zero#4125)f5d84463fcomments: Add REST routes for team comment mutations (comments: Add REST routes for team comment mutationsΒ elie222/inbox-zero#4124)98ef3cd43mail: Keep the reply recipient when an Outlook draft is saved with no To (mail: Keep the reply recipient when an Outlook draft is saved with no ToΒ elie222/inbox-zero#4123)81542476fmail: Create mailbox drafts with their Cc and Bcc (mail: Create mailbox drafts with their Cc and BccΒ elie222/inbox-zero#4122)671d7844aci: Give desktop releases the repo's Latest badge (ci: Give desktop releases the repo's Latest badgeΒ elie222/inbox-zero#4120)e1f136d9fmail: Create mailbox drafts with their recipients (mail: Create mailbox drafts with their recipientsΒ elie222/inbox-zero#4121)19af8a934mail: Rename the compose signature endpoint to /api/user/signature (mail: Rename the compose signature endpoint to /api/user/signatureΒ elie222/inbox-zero#4119)9eb5dae7amail: Serve the compose signature from one endpoint (mail: Serve the compose signature from one endpointΒ elie222/inbox-zero#4117)7524881a8Add REST API for split inbox tabs and library presets (Add REST API for split inbox tabs and library presetsΒ elie222/inbox-zero#4114)7546a2266mail: Keep one signature and footer when reopening a draft (mail: Keep one signature and footer when reopening a draftΒ elie222/inbox-zero#4113)787458314Keep reply text when reopening a mailbox draft (Keep reply text when reopening a mailbox draftΒ elie222/inbox-zero#4112)b61b8fd5bmail: Shorten the undo send window to 10 seconds (mail: Shorten the undo send window to 10 secondsΒ elie222/inbox-zero#4111)faa513599Desktop: notify per new inbox email from the mail engine (Desktop: notify per new inbox email from the mail engineΒ elie222/inbox-zero#4110)6e1d0cd73fix(mcp): describe rule writes as destructive and open-world (fix(mcp): correct rule write safety annotationsΒ elie222/inbox-zero#4109)411d105e0mail: Hide drafts of scheduled sends until they go out (mail: Hide drafts of scheduled sends until they go outΒ elie222/inbox-zero#4108)10777eb5dSend mobile push for new To Reply emails (Send mobile push for new To Reply emailsΒ elie222/inbox-zero#4105)db1928c48chore: add OpenAI domain verification challenge (chore: add OpenAI domain verification challengeΒ elie222/inbox-zero#4107)883e950ede2e: Run the large attachment send on Outlook (e2e: Run the large attachment send on OutlookΒ elie222/inbox-zero#4106)60f0dbb7email: Drop the unused upload directory setting and send operation attachment column (mail: Drop the unused upload setting and attachment columnΒ elie222/inbox-zero#4104)94c08af34mail: Hold sends by mailbox draft and remove the upload staging pipeline (mail: Hold sends by mailbox draft and remove the upload staging pipelineΒ elie222/inbox-zero#4101)3fbdb306adeps: Use emulate 0.13.0 and drop its local patch (deps: Use emulate 0.13.0 and drop its local patchΒ elie222/inbox-zero#4103)3cf6e3b67mail: Keep composer attachments on the mailbox draft (mail: Keep composer attachments on the mailbox draftΒ elie222/inbox-zero#4094)0ae922dfdloops: Fix upgraded event on trial start and scheduled trial conversion (Fix Loops upgraded event on trial start and scheduled trial conversionΒ elie222/inbox-zero#4056)08047da36bulk-archive: Show only inbox mail in sender preview (bulk-archive: Show only inbox mail in sender previewΒ elie222/inbox-zero#4093)fe55fc671mail: Handle drafts that no longer exist in the mailbox (mail: Handle drafts that no longer exist in the mailboxΒ elie222/inbox-zero#4092)4386b0540mail: Stop showing the previous thread when the next one is slow to load (mail: Stop showing the previous thread when the next one is slow to loadΒ elie222/inbox-zero#4091)801491298landing: Add email client page (landing: Add email client pageΒ elie222/inbox-zero#4066)d96a2ef3bassistant: Show source types in attachment source badges (Show source types in attachment source badgesΒ elie222/inbox-zero#4090)8691703fdweb: Point the remaining sales links at the sales contact page (web: Point the remaining sales links at the sales contact pageΒ elie222/inbox-zero#4088)fe0a3be14assistant: Reply in the email's language, not the chat language (assistant: Reply in the email's language, not the chat languageΒ elie222/inbox-zero#4077)44471ddd1web: Serve /sales from the marketing site's sales contact page (web: Serve /sales from the marketing site's sales contact pageΒ elie222/inbox-zero#4087)ab0d9e8edoutlook: Don't fail draft sends when Graph can't read the sent message yet (Fix Outlook draft send completion errorsΒ elie222/inbox-zero#4076)21491f526web: Fix mobile layouts for automation, calendars and integrations (Fix mobile layouts for automation and settingsΒ elie222/inbox-zero#4084)361729317outlook: Download attachments that Graph returns without content bytes (fix(outlook): download attachments with missing contentBytesΒ elie222/inbox-zero#4081)9b4f5f215Grade eval ground truth as an outcome in the send-ready judge (Grade eval ground truth as an outcome in the send-ready judgeΒ elie222/inbox-zero#4086)fb1291044build: Exclude runtime uploads from server tracing (build: Exclude runtime uploads from server tracingΒ elie222/inbox-zero#4085)ecd485b8dfiling: Keep Outlook filing notifications in the original conversation (filing: Preserve Outlook notification conversation subjectsΒ elie222/inbox-zero#4079)0f86fdfc9outlook: Open the specific email from notification links (Fix Outlook links in messaging notificationsΒ elie222/inbox-zero#4078)3836f1939bulk-archive: Clear local inbox flags after confirmed archives (Fix local inbox flags after confirmed archivesΒ elie222/inbox-zero#4082)bce6c9e35landing: Add the customer support video (landing: Add the customer support videoΒ elie222/inbox-zero#4083)dceebdd3amail: Move the composer to the Squire editor (mail: Move the composer to the Squire editorΒ elie222/inbox-zero#4064)f7e10c889web: Add an opt-in cookie consent banner and remove the legacy affiliate script (web: Add an opt-in cookie consent banner and remove the legacy affiliate scriptΒ elie222/inbox-zero#4065)ca18592acassistant: Return exact Outlook folder and category counts (Fix exact Outlook folder and category countsΒ elie222/inbox-zero#4075)4fbd12818mail: Suggest recipients from the local mail cache in compose (INB-373) (Suggest recipients from the local mail cache in compose (INB-373)Β elie222/inbox-zero#4070)327de3333slack: Stop channel requests after the unsupported file notice (Stop Slack channel files from triggering email draftsΒ elie222/inbox-zero#4074)2a494a453slack: Show the full draft in pending email cards (Slack: Show full pending email draftsΒ elie222/inbox-zero#4073)b1cfebf86assistant: Keep Outlook folder searches separate from categories (Fix Outlook assistant folder search scopingΒ elie222/inbox-zero#4072)fd5ef487bmail: Open the composer blank after a draft is deleted from the mailbox (mail: Open the composer blank after a draft is deleted from the mailboxΒ elie222/inbox-zero#3946)cc818ad5dmail: Close the reader when a draft-only conversation is discarded (mail: Close the reader when a draft-only conversation is discardedΒ elie222/inbox-zero#3945)19f2616d8calendar: Show meeting details on the invitation card (calendar: Show meeting details on the invitation card (INB-367)Β elie222/inbox-zero#3939)fc64136c7ai: Make inline email cards opt-in per chat client (ai: Make inline email cards opt-in per chat clientΒ elie222/inbox-zero#3954)47793715bmail: Allow resending a reply after undoing its send (mail: Allow resending a reply after undoing its send (INB-369)Β elie222/inbox-zero#4053)71d00d36email: Star selected conversations from the list toolbar (mail: Star selected conversations from the list toolbarΒ elie222/inbox-zero#3940)6d48598ddlanding: Add creator, MSP and accounting firm videos (landing: Add creator, MSP and accounting firm videosΒ elie222/inbox-zero#4071)132e71b28mail: Fix to: search returning no results (mail: Fix to: search returning no resultsΒ elie222/inbox-zero#3942)a0ae8d6bflanding: Update the law firm video (landing: Update the law firm videoΒ elie222/inbox-zero#4069)a0b4603f9landing: Add three more audience videos (landing: Add three more audience videosΒ elie222/inbox-zero#4068)7be18ca63landing: Add the founders video and update two audience videos (landing: Add the founders video and update two audience videosΒ elie222/inbox-zero#4067)721abd362account: Clean up external resources when deleting accounts and mailboxes (account: Clean up external resources when deleting accounts and mailboxesΒ elie222/inbox-zero#4063)6374c99falanding: Let pages choose their hero video (landing: Let pages choose their hero videoΒ elie222/inbox-zero#4062)53cf74bccmail: Advance to the next conversation after snooze, trash, spam, and move (mail: Advance to the next conversation after snooze, trash, spam, and moveΒ elie222/inbox-zero#4059)fbdb4ffbamail: Edit simple signatures in place and tidy the link panel (mail: Edit simple signatures in place and tidy the link panelΒ elie222/inbox-zero#4061)62de9a73bmail: Show reply recipients by name and strip quoted display names (mail: Show reply recipients by name and strip quoted display namesΒ elie222/inbox-zero#4058)603dc322bdecision-model: Run decision models through the AI SDK and support OpenRouter (decision-model: Run decision models through the AI SDK and support OpenRouterΒ elie222/inbox-zero#4057)27cbaed2ecompose: Hide one-off draft autosave failures and use friendly sync copy (compose: Hide one-off draft autosave failures and use friendly sync copyΒ elie222/inbox-zero#4060)84fd613d3nav: Move Shared with me and Activity into the account menu and tidy the shared pages (nav: Move Shared with me and Activity into the account menu and tidy the shared pagesΒ elie222/inbox-zero#4054)8520d0c64command-k: Add Send feedback command (command-k: Add Send feedback commandΒ elie222/inbox-zero#4052)9fcd102bbmail: Trim snooze presets to tomorrow, end of week, weekend, next week (mail: Trim snooze presets to tomorrow, end of week, weekend, next weekΒ elie222/inbox-zero#4051)71099a34etinybird: Remove unused legacy email datasources and pipes (tinybird: Remove unused legacy email datasources and pipesΒ elie222/inbox-zero#4048)3846d963dmail: Fix sender profile research and move profile to an icon (mail: Fix sender profile research and move profile to an iconΒ elie222/inbox-zero#4047)67549bf4ecomments: Inline team comments, @mention to share, hidden until opened (comments: Inline team comments, @mention to share, hidden until openedΒ elie222/inbox-zero#4046)bff68bbaenav: Let self-hosters hide Attachments with the smart filing env var (nav: Let self-hosters hide Attachments with the smart filing env varΒ elie222/inbox-zero#4045)8d1330c4allm: Use the Responses API for Azure Foundry so tool calls work (llm: Use the Responses API for Azure Foundry so tool calls workΒ elie222/inbox-zero#4042)06373ec25env: Enable integrations, smart filing, and booking links by default (env: Enable integrations, smart filing, and booking links by defaultΒ elie222/inbox-zero#4043)248fa7269flags: Restore the smart filing env var (flags: Restore the smart filing env varΒ elie222/inbox-zero#4041)98a5c2f95outlook: Catch up on mail skipped while the account was rate limited (outlook: Catch up on mail skipped while the account was rate limitedΒ elie222/inbox-zero#4040)26eaed10echat: Resume interrupted replies and make Stop cancel the run (chat: Resume interrupted replies and make Stop cancel the runΒ elie222/inbox-zero#4038)356315a78Fix Outlook rate-limit skips, invitation login loop, date picker; default pricing to annual (Fix Outlook rate-limit skips, invitation login loop, date picker; default pricing to annualΒ elie222/inbox-zero#4039)e21888361api: Cookie bulk-unsubscribe support for the iOS app (api: Cookie bulk-unsubscribe support for the iOS appΒ elie222/inbox-zero#3911)20acbdfa4chat: Keep an in-progress reply when the chat refetches (chat: Keep an in-progress reply when the chat refetchesΒ elie222/inbox-zero#4037)c3066f151chat: Keep the input visible on mobile Safari (chat: Keep the input visible on mobile SafariΒ elie222/inbox-zero#4036)8e58fd9d5mail: Render inline body images larger than 1 MB (mail: Render inline body images larger than 1 MBΒ elie222/inbox-zero#4034)32c62e518Add private team comments for shared email conversations (Add private team comments for shared email conversationsΒ elie222/inbox-zero#3827)1262e000aoutlook: Retry conflicting category writes; handle exhausted AI credits (outlook: Retry conflicting category writes; handle exhausted AI creditsΒ elie222/inbox-zero#4032)071c11d81email: Notify users when Google blocks access or their AI key runs out of credits (email: Notify users when Google blocks access or their AI key runs out of creditsΒ elie222/inbox-zero#4033)c1525e0bbmail: Hydrate meeting invitation bodies from delta sync (mail: Show meeting invitation bodies in the desktop appΒ elie222/inbox-zero#4031)61a08a51ffix: Stop rate-limit mode self-extending, sync long attachment IDs, avoid Outlook label conflicts (email: Fix self-extending rate-limit mode, long attachment IDs, Outlook label conflictsΒ elie222/inbox-zero#4030)b52de2675docs: changelog β Bulk Unsubscribe Side Panel (Oct 6) (docs: changelog β Bulk Unsubscribe Side Panel (Oct 6)Β elie222/inbox-zero#4025)b12ad9283gmail: Show the full Apple Mail message, not only the signature (gmail: Show the full Apple Mail message, not only the signatureΒ elie222/inbox-zero#4027)cb47a7d5dloops: Record lifecycle email engagement in PostHog (loops: Record lifecycle email engagement in PostHogΒ elie222/inbox-zero#4029)245ad1d13logging: Log decision-model rule probabilities as an array (logging: Log decision-model rule probabilities as an arrayΒ elie222/inbox-zero#4028)e1cc670d3mail: Translate a thread on demand from the reader (mail: Translate a thread on demand from the readerΒ elie222/inbox-zero#4024)501bebb9bLet the iOS reader load proxied email images (Let the iOS reader load proxied email imagesΒ elie222/inbox-zero#4026)a103dcdbcmail-engine: Keep Cc and Bcc recipients in the local message cache (mail-engine: Keep Cc and Bcc recipients in the local message cacheΒ elie222/inbox-zero#4023)0fabe521cmail-engine: Read an account's due folders in one batched request (mail-engine: Read an account's due folders in one batched requestΒ elie222/inbox-zero#4021)f8be0fc81mail-engine: Check custom Outlook folders less often and keep pushes cheap (mail-engine: Check custom Outlook folders less often and keep pushes cheapΒ elie222/inbox-zero#4020)c17bcd089mail-engine: Sync each account in its own lane (mail-engine: Sync each account in its own laneΒ elie222/inbox-zero#4019)481515c57auth: Let a repeated app sign-in callback still reach the app (#4018)8ababe876choose-rule: Cache the system prompt across inbound emails (#4017)27fdc7737copy: Accurate digest setting and meeting briefs setup text (#4016)bb9798755bulk-archive: Show selected count on collapsed cards with deselected senders (#4012)b569f877bstats: Open analytics sender searches in the account's mail provider (#4013)e2c81ed5acold-email: Remove the Cold Email label from archived mail on Not cold email (#4010)03bb9e5cfstats: Fix empty response-time analytics for Gmail accounts (#4009)bcd63815ddocs: Match feature docs to the current UI, plus walkthrough videos (batch 2) (#4015)d456dc9e5ui: Fix nested button in folder selector (#3984)62f876140bulk-unsubscribe: Left-align sender panel actions so the chat widget doesn't cover them (#4014)a2fb6d2a8bulk-unsubscribe: Rework the page UI and preview senders in a side panel (#4008)9bc7935b1fix: Desktop reconnect catch-up, regional webmail domains, local Redis hashes (#4007)0ef06a6fcdocs: Add AI Chat and Connect MCP walkthrough videos (#4011)854b86bcedeps: Upgrade mammoth to fix ReDoS advisory (#4001)bd29cb7adstring: Do not split surrogate pairs when truncating (#3993)2b57f9afadocs: changelog β Attachment Previews (Oct 3) (#3912)365300be7Update tested integration revision (#4005)0289e13f1mcp: Granular app permissions and optional mail client tools (#4004)c641cd02fOutlook: normalize search IDs for execution-history lookups (#3967)fe8169d91drive: Truncate long folder names in folder trees (#4002)31fdf36a2docs: Match feature docs to the current UI (#4000)3066eed57slack: Point setup copy to the Channels page (#3999)c04d4b84elanding: New hero video on Mux, with watch-through tracking (#3997)420ea2023docs: Feature walkthrough videos on Mux (#3998)127845990[Snyk] Security upgrade next from 16.3.6 to 16.3.8 (#3991)659af1036videos: Add a plain YouTube embed for marketing pages that still use YouTube (#3994)24fafbc57bulk-unsubscribe: Highlight the sorted column header, mute the others (#3996)bee58dd7dmail: Escape clears the search from the thread list (#3995)66772e1b9transactional-email: Redesign the rarely read senders email (#3992)af1b072e3videos: Feature walkthroughs on Mux, load the player on demand (#3989)c9e7e8379mail: Stop email bodies from scrolling by a fraction of a pixel (#3990)55a566fe7Preserve complete provider drafts and inline attachments (#3985)ed5f8de1amail: Show a loading spinner while a message body loads (#3987)92145060dbulk-unsubscribe: Show contact photos or initials for personal senders (#3977)fbac6af2eUpdate tested integration revision (#3982)6b4ed3890mail: Preview image and PDF attachments in the reader (#3976)6bb76c988ui: Load the action-required banner on the client (#3981)2606a442achore: remove the unused no-reply page (#3980)ff988359bUpdate tested integration revision (#3979)2b08584b4reply-zero: Remove the Reply Zero page (#3975)75f107492bulk-unsubscribe: Keep table header visible while scrolling (#3974)f3e337475onboarding: Stop draft-reply step from snapping back (#3972)5a286fcecbuild: Install the committed private revision (#3970)890729dcdbulk-unsubscribe: Center the getting-started video in one shared player (#3971)784fccc09stats: Exclude the account's own sent mail from sender stats (#3973)1ad58fe9bcalendars: One account timezone for briefs, availability and booking links (#3969)4cbf34cbcdeps: Patch proxy-addr and undici advisories (#3968)833e3ef36mail: Match hasattachments:true in local index search (#3959)39df7c949admin: Allow granting premium before a user signs up (#3966)dbedbc8c4mail: Stop retrying rejected searches, drop deleted accounts, push changes on web (#3964)36b40daa5mcp: Prepare tool metadata for Claude directory review (#3965)d03200800fix(mail): defer browser sync until a mail feature is used (#3963)700a9be9fdev: Add one-command local emulator startup (#3962)58b8bf2f8chore: Upgrade development emulator to 0.12.0 (#3961)07e3d2733mail: Extract shared sidebar row presentation (#3960)7e0325690gmail: Stop follow-up scans exhausting quota and catch up on rate-limited history (#3957)ba69b7b6cmail: Support provider-neutral search filters (#3956)c4edc8550fix: upgrade Nodemailer to 10.0.13 (#3903)05fafcd71assistant: Clamp rule instructions and show readable match reasons (#3953)d864f44eechore: bump marketing submodule to 9051dc7 (#3951)8bae3f7a4utils: Group outbound webhook files under utils/outbound-webhook (#3925)1bc96055autils: Fold google/microsoft helpers into gmail/outlook and rename mail to split-inbox (#3924)1cf9d8acbemail: Keep provider checks at the provider boundary (#3923)7944319beai: Fix eval keyword checks, unspaced-language memories and sent detection (#3950)a8f96364bretry: Share the provider retry loop and Retry-After parsing (#3922)603e47757ci: Type check packages and run all package tests (#3921)8a51222f4fix: Delete a user's Tinybird data when their account is deleted (#3933)a6031d1dcoutlook: Resolve well-known folder names when paging a folder (#3948)c03a06e3fdeps: Bump undici 7.x override to 7.29.1 (#3944)5d51cbdc8mail: Offer Move to inbox instead of Archive for archived conversations (#3941)fd338b20dmail: Notify native clients when a mailbox changes (#3915)72f2ba01cauth: Show recovery pages for desktop sign-in errors (#3943)9af269224Admin: Show deletion errors and handle revoked tokens (#3938)78aec094bevals: Grade with DeepSeek V4.1 Flash (#3934)c37f7ff11test: Pass an empty Vercel env in the indexing allow case (#3935)32c40114cchore: Remove dead code and park chat onboarding (#3920)0f0ab72adseo: Noindex staging and preview deploys (#3929)ef5b74b68chore: Remove modules now owned by the marketing repo (#3930)b7fd5f5b1drafts: Answer whether to meet without guessing availability (#3928)3438e6682network: Consolidate outbound URL safety into @inboxzero/network (#3919)ccee1bcfaemail: Keep reply bodies HTML-safe and share reply quoting (#3918)5446470d6web: Rename labels context to EmailLabelsProvider and drop GmailProvider (#3917)ae169306bmail: Move select-all into the split tabs row (#3916)fcdc49dd0drafts: Answer as the user instead of stalling with "I'll check" (#3910)7d19e9891ui: Use the charcoal dark palette across the app (#3909)a66f454d3mail: Add titlebar navigation beside the window controls (#3907)81e62231eoutlook: Stop backfill once the account is rate limited (#3908)84d94ef61mail: Stop the reader jumping back to a previously open thread (#3906)e6ed13413mail: Add FYI and Actioned to the split inbox library (#3905)8d099e1bdintegrations: Drop row descriptions and surface Composio errors (#3904)5cbd62906integrations: Connect popular apps through Composio (#3898)9dbcbfd25billing: Refresh Apple subscription status from the App Store on sync (#3902)416ce27b9desktop: Restart into an already downloaded update (#3854)acf9fc39fdeps: Upgrade Next.js to 16.3.6 for next/og security fix (#3901)e05f4875ccalendar: Sync Outlook RSVPs through the mailbox-linked event (#3828)618214329outlook: Open the draft itself from Go to Drafts (INB-365) (#3886)22eedcb38docs: changelog β Undo Send (Sep 27) and Pop-Out Replies (Sep 26) (#3890)8e378a2eamail: Batch conversation actions into one command and one provider call (#3896)fb37a30demail-core: Stop a repeated provider resync from restarting sync in a tight loop (#3895)da4c53b02assistant: Group bulk process toggles into a settings card (#3891)fabe32582mail: Keep undo in the toast and move selection to a sent reply (#3894)105c6d48ebranding: Use the desktop app icon for the favicon and web app icons (#3897)62e7f0e31mail: Move the Compose shortcut hint into a hover tooltip (#3893)ac5fabf53mail: Hold sends on the server for a 30-second undo window (#3889)fe9c13b6dsettings: Remove the spoken voice status card (#3888)e005cd3ecintegrations: List popular Pipedream apps on the integrations page (#3887)add8948f8assistant: Register calendar tools only when a calendar is connected (#3892)36cf1ac34Merge pull request #3884 from elie222/cursor/native-ios-backend-gaps5d07998f7Give the mobile push token migration a later timestamp.973108149Expect the verified Apple transaction in webhook sync calls.2bd01ad45Merge pull request #3873 from elie222/cursor/native-schedule-draft-http-0d4d129abd8ccMerge pull request #3859 from elie222/cursor/native-emulator-runner-30742d4c8bb48mail: Show a sent reply in the thread the moment it leaves the composer (#3885)07313aa05docs: Explain how Docker Compose finds the app env file (#3883)910103d43mail: Pop a reply out of the thread into its own window (#3881)a82773335docs: Add self-hosting security hardening page (#3882)08fcb6c39Expose inbox splits and include spam or trash in scoped search.1f6f852b5Let a native client list, snooze, and unsnooze threads.aaf8b653cRegister raw APNs device tokens and send through a fake transport.dccf30f87Accept a StoreKit JWS when syncing an Apple subscription.8bb3261deAdd REST endpoints to delete a user or one email account.d55c1a5b2assistant-chat: Trim stale tool results in long tool loops (#3880)9cd209ed2mail: Tidy reply delivery status layout and copy (#3879)d3ba2de85mail: Keep editing a Gmail draft after its autosave syncs back (#3878)f801fff94gmail: Sync renamed mailbox addresses during watch renewal (#3875)54b9d263ellm: Track multi-step cost, compact tool-heavy chats, and tolerate partial Outlook delta items (#3877)c1378f78dmcp: Allow custom MCP servers that need no authentication (#3876)53e5cec15docker: Keep prerendered RSC payloads valid when replacing placeholders (#3860)f04b75885compose: Drop the repeated Send later heading from its time picker (#3874)b320ddf85mail-sqlite: Drive search from index matches instead of scanning the mailbox (#3871)d53ada260mail: Keep a reply open when a newer message arrives in the thread (#3872)b2e08ac25Merge the generic local emulator into the scheduled-send branch.a2f5c8dabReplace the native emulator runner with a generic local up/down script.204d19ea8Deliver scheduled sends from the native emulator.79eadefb0Expose provider drafts over HTTP for native clients.8ae42983aExpose scheduled send over HTTP for native clients.411098209mail-sqlite: Store message bodies compressed and drop the text copy of HTML mail (#3870)7660b7b11mail-sqlite: Search the full-text index and index visible text instead of raw HTML (#3869)ad90c2532mail: Remove labels through the engine and reload stale windows after a deploy (#3867)12178f98amail-sqlite: Stop the search index from storing its own copy of message text (#3868)47b75e015Stop recurring background errors from known-benign failures (#3861)d73ba3dfcdesktop: Treat a window as loaded only once the web app boots (#3863)8ad5f7ademail: Re-render only what changed on J/K and engine snapshots (#3865)1fb7843d7desktop: Stop reporting offline, network-change, and quit-time errors to Sentry (#3866)7749e8833mail-engine: Stop wedging sync on error responses and oversized mail (#3864)6f4d555bdmail: Keep composer typing off the draft serialization path (#3862)3d2e28448mail-sqlite: Read through a separate WAL connection on node (#3856)bd18578efdesktop: Count only unread, unarchived mail on the dock badge (#3858)aec4f77aaAdd a local emulator runner for native clients.de4424815Show how many conversations are in each split inbox (#3857)1977c736bdesktop: Run the mail engine in a utility process and report app health (#3852)72306c59adesktop: Add Help β Record Diagnostics (#3851)c18d39d2bmail-sqlite: Update the search index by rowid instead of scanning it (#3850)151da383bcold-email: Stop learning senders another rule already files (#3817)239713d26Publish the shared mail packages when main changes (#3844)b15080fdfci: Cut browser E2E wall time by removing idle waits and rebalancing batches (#3848)874991386analytics: Track mail shortcut usage and sampled mail speed (#3847)d237b85d6desktop: Report main-process errors and crashes to Sentry (#3845)a52c8df11mail: remove shortcut hints from split tabs and search bar (#3846)0488af760categorize: keep bulk sender categorization running past bad senders (#3808)6b5373aaameetings: Open the Outlook follow-up draft itself, not the Drafts folder (#3825)27f4e04f9docs: changelog β Custom MCP Servers (Sep 23) (#3836)6d8eaa790mail: Keep neighbouring conversations warm so J/K opens instantly (#3843)53f921be4mail: Count sidebar labels in one engine observation (#3842)ec31c7e84desktop: Push mail engine snapshots to windows instead of polling (#3840)19432d965mail-sqlite: Index label and folder views so counts stop blocking the engine (#3839)12587cb70mail-api: Skip attachments without a provider id so body sync doesn't fail (#3838)21ed506ecmail: Cut redundant re-renders from engine snapshots, fix desktop close crash (#3837)ef9b0156cmail: Remove the incomplete-conversation banner from the reader (#3833)0450be703mail-sqlite: Hide archived conversations immediately while preparing (#3834)d1c27185dAllow the Expo auth proxy to open the configured mail emulator. (#3832)1736dbd32fix: OpenAI ZDR user keys and Deep Clean trial messaging (#3830)0fc8ddaa6chore: default to GPT-6 Luna instead of GPT-5.6 Luna (#3831)a7ab20d24Allow the Expo auth proxy to open the local emulator in development (#3829)6d39c4c24mail: prepare shared mail packages for a native client (#3824)4ee52aa50chore: rename HTTP Redis env vars to REDIS_HTTP_* (#3826)d4e54e3bdfix: Load Geist and Inter as variable fonts (#3822)521a18913Track referral surface engagement (#3726)ab32fac01ai: Add opt-out for AI sender pattern learning (#3794)9bf2b3908chore: upgrade bullmq to 6.3.8 and ioredis to 6.0.0 (#3821)572446858integrations: Support custom remote MCP servers (#3818)ad2139373mail-sqlite: Fix Vercel build and Outlook reader e2e (#3820)d3dcc6d17docs: changelog β Weekly Summaries by Sender (Sep 22) (#3819)
Auto-managed by .github/workflows/upstream-watch.yml (calls CarterPape/upstream-drift-watch). Closes when the fork catches up.
Metadata
Metadata
Assignees
Labels
upstream-driftUpstream has new commitsUpstream has new commits
Activity
[-]π upstream-drift: 9 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 12 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 12 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 27 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 27 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 82 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 82 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 84 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 84 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 86 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 86 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 100 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 100 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 141 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 141 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 161 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 161 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 185 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 185 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 195 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 195 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 197 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 197 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 7 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 7 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 18 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 18 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 34 commits behind elie222/inbox-zero@main[/+]31 remaining items
[-]π upstream-drift: 479 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 484 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 484 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 486 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 486 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 495 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 495 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 527 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 527 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 545 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 545 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 574 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 574 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 595 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 595 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 609 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 609 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 613 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 613 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 621 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 621 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 628 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 628 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 641 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 641 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 675 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 675 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 688 commits behind elie222/inbox-zero@main[/+][-]π upstream-drift: 688 commits behind elie222/inbox-zero@main[/-][+]π upstream-drift: 698 commits behind elie222/inbox-zero@main[/+]