Changelog
What's new in Inbox Admin. Updated biweekly.
For the complete technical changelog, see CHANGELOG.md on GitHub.
QuickBooks audit remediation: honest dashboard, vendor picker, webhooks, branded drip emails
September 7, 2026
What customers can do now
- The QuickBooks page tells the truth about the connection: a broken or expired connection shows an amber "Reconnect" banner with the reason instead of a green light, and sandbox connections are badged.
- One status vocabulary everywhere: Posted / Skipped (duplicate) / Failed. Failed rows say why, show the source email subject, and format amounts in their own currency. Posted rows deep-link to the bill or expense in QuickBooks Online.
- Vendor mappings show real QuickBooks vendor names, and a Change picker (backed by the synced vendor list) lets you remap a vendor without leaving the page. Attention items link straight into the review queue.
- Vendor, account, and reference data now stays fresh automatically: QuickBooks pushes changes to us via webhooks, with a change-data-capture sweep every 6 hours as the guaranteed catch-up.
- Waitlist nurture and activation emails are branded HTML (logo, hero image, unsubscribe footer) from "Inbox Admin", and the sequence no longer asks for a Google sign-in.
Technical changes
- Critical fix: retryFromLedger replayed failed Purchases as Bills; it now branches on the ledger's qbEntityType for the create and the attachable ref.
- Vendor resolution is race-safe: the VendorMapping row doubles as a claim lock (pending sentinel, CAS takeover after TTL), fuzzy snapshot matching gates creation, and Intuit duplicate faults adopt the existing vendor.
- Structured QbApiError with a total fault classifier drives skip, dead-letter, and retry decisions.
Marketing engine: waitlist nurture, morning post digest, social kit
September 4, 2026
What customers can do now
- People on the waitlist get a short email sequence from Billy over their first two weeks (welcome, the free inbox audit, the three things you never do again, how to move up the line), each with a one-click unsubscribe that keeps their spot.
- The waitlist join form is email only. No Google sign-in until activation.
Technical changes
- WaitlistEntry nurture columns and a MarketingPost calendar table.
- Crons /internal/cron/waitlist-nurture (9am ET) and /internal/cron/marketing-digest (7am ET), scheduler-secret authenticated.
Beta waitlist: invite-only signup with activation links
September 4, 2026
What customers can do now
- Every "Start free trial" button now reads "Join the waitlist" and leads to /waitlist. Sign in with Google to hold a spot; the page shows your place in line, and later whether you are approved or active.
- Approved people get a one-time activation link by email. Opening it and signing in with the same Google account sets up the workspace and starts the usual Gmail onboarding.
- Open self-serve signup is closed while the beta is invite-only. Team invitation links keep working.
Technical changes
- New WaitlistEntry table and WaitlistStatus enum.
- Activation rides the existing signup OAuth flow with token validation.
Rules workspace: see your rules working on your real email
August 14, 2026
What customers can do now
- The Rules page now opens on your recent email: every message shows who sent it, the subject, and which rules touch it, 25 at a time with paging, plus a full mailbox search using Gmail terms like from:acme.com or has:attachment.
- Hover any email and click "Catch emails like this" to start a new rule prefilled from that message.
- The Rules lens shows every rule with a live match count. Click the count to open the Match Lab.
- The Match Lab draws the connections: pick a rule and the messages it catches light up with animated wires; amber dashed wires mean an email is one condition away.
Technical changes
- New endpoints: GET /rule_sets/messages and POST /rule_sets/match-preview.
- Near-miss classifier in apps/api/src/lib/near-miss.ts.
Rule Doctor: see why a rule isn't catching an email
August 12, 2026
What customers can do now
- See why a rule isn't catching an email. A new "?" icon in the rule builder opens Rule Doctor: a debugger that runs the rule against real inbox mail and shows exactly which condition failed.
- Test a rule against real emails, not just a canned example.
- Fix a rule from an example email with one click.
- Build "is any of" rules in the builder for sender domains, addresses, or subjects.
Technical changes
- New evalNodeTraced evaluator with per-condition tracing.
- New buildEmailFingerprint and proposeWideningEdit functions.
No more silently skipped rules under load, sturdier classification
August 12, 2026
What customers can do now
- Rules now run on every message, even during busy bursts. When many emails arrived at once, some messages could silently skip rule processing entirely. Processing now retries and re-queues until rules run.
- Classification quality holds up under load. Transient capacity limits at the document classifier now retry before falling back.
Technical changes
- processEvent lock acquisition: 6 attempts with full-jitter exponential backoff, then throws typed PipelineLockError.
- requestVertexAI retries 429/500/502/503/504 and network failures with full-jitter backoff.
Overage billing precision and stable rule ordering
August 11, 2026
What customers can do now
- Pro plan overage now caps at exactly 250 pages ($50). A rounding quirk in incremental usage reporting could stop metered billing one page short of the cap.
- Rule lists always show the same order. Rules sharing the same priority now display and resolve in a stable, consistent order everywhere.
Technical changes
- Extracted metered overage math into a pure usage-report-math.ts helper computed in integer cents.
- Canonical rule comparator shared by processEvent and getResolvedRules.
Rule builder AND/OR, apply to past results, and voice assistant improvements
August 6, 2026
What customers can do now
- Rule conditions can now match all or any. Build a rule with "any" (OR) logic and it stays that way.
- Apply to past always shows a result, even when zero messages match.
- The voice assistant can answer questions about your review queue.
Technical changes
- New get_review_queue voice read tool.
- Rule builder v3 draft now persists conditionLogic (all/any).
Security and privacy hardening
July 16, 2026
What customers can do now
- Disconnecting Gmail now fully removes your data. When you disconnect a mailbox, Inbox Admin revokes its Google access and deletes the stored login token, the synced messages, and their attachments.
- Real account deletion. A full erasure path removes an organization and all of its data.
- Lock down where rules can forward. You can now restrict forwarding to your own or approved domains.
Technical changes
- Closed a cross-tenant hole in the in-app inbox audit.
- Calendar webhook now verifies an HMAC channel token.
- New retention cron purges attachments, messages, and expired inbox-audit prospect sessions.
Export a year of your receipts
June 22, 2026
What customers can do now
- Download a year of receipts in one click. A new "Export receipts" card in Settings lets you pick a year and download a ZIP of every receipt and invoice.
- Nothing new to set up. It reads the receipts already captured from your inbox.
Technical changes
- Shared export engine: extractStoredReceipts feeding packageExport (CSV plus original source files plus manifest.json, zipped).
- Durable ReceiptExportJob model with async flow.
Turn the voice button on or off, and rule previews that tell the truth
June 16, 2026
What customers can do now
- Show or hide the voice button. The floating voice button is now off by default.
- Rule previews tell the truth. The "what this rule will catch" count now reflects the emails that actually match.
- Clearer errors when a rule condition can't work.
Technical changes
- Per-user User.voiceControlEnabled + voiceButtonPosition columns.
- Rule preview headline now driven by precise evalNode matches.
Cleaner marketing copy and a footer on every page
June 15, 2026
What customers can do now
- Every marketing page now ends with the same footer with copyright and quick links to Security, Privacy, Terms, and DPA.
- Site copy reads cleaner and more consistent. Punctuation is simpler, number ranges read as "60 to 80%".
Technical changes
- AP-style copy pass across the five marketing pages.
- Extracted the homepage footer into a shared SiteFooter in design-system.tsx.
Rules engine hardened against every input we can imagine
June 11, 2026
What customers can do now
- A single old or corrupted rule can no longer stop your other rules from running.
- Rules with the same priority now run in a stable, predictable order.
- Previews of chained rules now show exactly what will happen live.
Technical changes
- Four engine fixes from the expanded gauntlet.
- Exhaustive truth-table suite: 71,286 enumerated cells.
Import your existing Gmail filters
June 10, 2026
What customers can do now
- A new "Import from Gmail" button on the Rules page reads the filters you already built in Gmail and turns each one into an Inbox Admin rule.
- Each filter shows exactly what will carry over; anything that can't be translated is labeled instead of silently dropped.
Technical changes
- Deterministic Gmail filter to rules-DSL converter.
- New bulletproof gauntlet stage: import parity.
For changes prior to June 2026, see the full changelog on GitHub.