What's New

All the latest updates, features, and fixes.

v0.9.17 March 10, 2026

Render Performance & Cold Pitch Detection

  • HTML sanitizer consolidation — replaced 21 sequential regex passes in stripTags with a single O(n) forward scanner. Merged stripJavaScriptURLs and stripFixedPositioning into one tag-scan pass. Precompiled 7 inline regex as static lets. Net result: ~40% fewer String allocations on 40KB+ emails.
  • Predictive j/k HTML prewarming — navigating the inbox with j/k now pre-renders the N+1 thread into RenderedHTMLCache at utility priority. When you press Enter, the thread opens instantly with no render delay.
  • Background prewarm concurrency bumped from 2 to 4 — post-boot cache fill completes roughly twice as fast.
  • Cold pitch detection overhaul — layered gating with LLM escalation for ambiguous cases. Penalty-tolerant classification so legitimate senders with one sales-like signal don't get misrouted. Expanded heuristics with scaled sales scoring, opt-out pattern matching, and pitch structure analysis.
  • Rich HTML detection — emails with table-based layouts, style blocks, or heavy inline styling are now detected before sanitization. Rich emails preserve the sender's original fonts and layout instead of inheriting app typography.
  • Dark mode performance fix — eliminated redundant color analysis on emails that declare their own dark mode support.
  • LRU eviction on RenderedHTMLCache with byte tracking. CID attachment cache now tracks byte usage. Both caches are cleaned up when an account is removed.
  • Boot performance: page size increased to 500, classification moved off main thread, pipeline deduplication prevents redundant work, PipelineGate overlay coordinates bootstrap sequencing.
  • Email containment hardening — tighter CSS scoping prevents sender stylesheets from affecting app UI.
v0.9.16 March 9, 2026

Account Switching & Classification Fixes

  • Smooth account switch overlay — switching accounts now shows a brief transition instead of a jarring content swap. Thread cache is warmed during the switch so the inbox loads populated.
  • Fixed first sign-in classification — new accounts now classify threads correctly on initial sync instead of requiring a second pass.
  • Per-account activity filtering in combined inbox — activity from inactive accounts no longer bleeds into the active view.
  • Combined inbox state now restores correctly after app restart.
  • Calendar event creation UX fixes — natural language date parser hardened against edge cases, better error feedback on invalid inputs.
  • Fixed keyboard navigation breaking after dismissing search — focus was getting trapped in the search field.
  • Preserve sender max-width in parsed email view — wide marketing emails no longer get clipped. Transactional classifier refined to reduce false positives.
  • Standardized log levels across the codebase — consistent use of notice/error instead of ad-hoc debug/info.
v0.9.15 March 8, 2026

Contacts & Pitch Detection

  • Contacts system — Google People API sync pulls your Google Contacts into Hyperdrive. macOS Contacts integration reads your local address book. Unified search across both sources in compose autocomplete and the contact pane.
  • View Contacts command (Cmd+K → "View Contacts") opens an in-app Google Contacts panel for browsing and searching without leaving the app.
  • Add to Contacts from the contact pane sidebar — one click to save a sender. Shows a failure toast if the People API write fails.
  • New Pitch vector type for cold outreach detection. Click tracking with anchor text analysis helps identify sales emails with tracking links.
  • Cmd+K selection-aware routing — the command palette now respects multi-select, applying actions to all selected threads.
  • Send refactor — unified the send path across reply, forward, and compose to eliminate edge-case failures.
  • RSVP now skips cancelled events instead of showing a stale Accept/Decline UI.
  • Click tooltip — hovering a link in an email now shows the destination URL.
  • Settings panel polish: status bar visibility toggle, hint bar toggle, toast position settings, layout cleanup.
  • Fixed data export: corrected DB column names, robust action button superview traversal, ownership check via direct hash comparison.
  • Label sync cleanup — removed redundant Gmail label writes that were causing unnecessary sync cycles.
v0.9.14 March 7, 2026

Attachments & Logging

  • Attachment view, save, and download — open attachments inline, save to disk, or download from Gmail on demand. Prefetch fetches attachments in the background so they're ready when you click. Preview panel shows a scaled preview with Escape to dismiss.
  • Attachment preview panel with scale-in animation and data export support.
  • Production logging system via Apple Unified Logging — structured logs with subsystem com.hyperdrive.app and category-based filtering. Replaces scattered print statements.
  • Rebranded "Split" to "Vector" across the full stack — UI labels, API endpoints, database columns, and all internal references updated in one pass.
  • Server-side retention cleanup — expired bookings and stale OAuth access tokens are now automatically purged.
v0.9.13 March 6, 2026

Classification Fixes & Composer Polish

  • Calendar invites now always route to the Calendar vector — no exceptions. Previously, sender-level overrides (e.g. "always Priority") and thread-level overrides could intercept calendar events. Calendar detection now runs before all other classification rules.
  • Fixed Team vector over-capturing: an email only routes to Team if all participants (From, To, CC) share your domain. Previously it matched if any single sender was same-domain, pulling in external conversations.
  • Forward compose now focuses the To field instead of the body, since the recipient isn't known yet. Reply/replyAll still focus body.
  • Forwarding an email now auto-archives the thread after send, matching the expected "done" behavior.
  • Fixed accepting a calendar invitation advancing to n+1 instead of the next email — a double-advance bug where the archive action and an explicit selectNext() both fired.
  • Cleaned up side panel calendar events — each row now shows only time and title. Removed conference link labels (Google Meet/Zoom) and attendee counts that were adding noise.
  • AI-dependent services (sender classification, smart vector generation) now respect the Settings → Privacy → AI Features toggle. Previously they could fire even when AI was disabled.
  • Debug file logging (/tmp/hyperdrive_classify.log and TLDR HTML dumps) wrapped in #if DEBUG guards so they never run in release builds.
  • Undo ('z') now animates the email back into the inbox list with a fade-in and moves focus to it. Previously the thread appeared abruptly with no selection change.
  • Unsubscribe detection now falls back to scanning the email body for unsubscribe links when no List-Unsubscribe header is present. Body-scanned links open in the browser only — no speculative POST.
  • Fixed adding a second Gmail account re-prompting for license activation. License state is per-app, not per-account — the trial bootstrap now only runs when status is genuinely unresolved.
v0.9.12 March 5, 2026

Stability & Ship Prep

  • Fixed a CoreML crash on launch — switched to .all compute units with a GPU crash guard that auto-falls back to CPU-only if the previous launch crashed. Edge case on some Intel Macs where the Neural Engine config would panic.
  • Redesigned DMG installer background and repositioned app/Applications icons for a cleaner drag-to-install experience
  • Keychain deep-dive: tested data protection keychain to eliminate the first-launch "allow access?" prompt, but reverted — it requires a keychain-access-groups entitlement that conflicts with our distribution approach. Legacy login keychain stays for now.
  • Scoped all email body CSS under .mh-body to prevent sender stylesheets from leaking into the app chrome. Fixes a flash-of-unstyled-content (FOUC) on celebration overlay transitions.
v0.9.11 March 4, 2026

Brand Refresh

  • New app icon and brandmark across macOS, iOS, DMG, and website
  • Full website redesign with the Hyper color palette — rewrote all marketing copy from scratch
  • Added support page and docs page with a server-side POST /api/support endpoint for contact form submissions
  • Restored the white shimmer and bloom effect on the brandmark intro animation — a subtle detail but it makes the first-launch experience feel premium
  • New CopyButton component for one-click scheduling link sharing
  • Fixed one-click unsubscribe failing silently on POST-only List-Unsubscribe endpoints — we were truncating the Content-Type header
  • Reply card layout refactor — unified vertical spacing across compose, reply, and forward views
v0.9.10 March 3, 2026

Zoom, Celebration & Polish

  • Zoom integration — connect your Zoom account via OAuth and auto-create scheduled meetings for calendar events and booking links. Server stores encrypted Zoom tokens for server-side meeting creation when guests book.
  • Google Meet conference links — select "Google Meet" or "Zoom" when creating events or scheduling links. Uses Google Calendar API conferenceData with the hangoutsMeet solution type.
  • Redesigned inbox zero celebration — choreographed cinematic entry animation with curated Unsplash photography. The confetti, counter, and photo all animate in sequence. We spent an embarrassing amount of time on the easing curves.
  • Animated warp-speed brandmark loading screen replaces the static spinner
  • Compact reply composer — fills available vertical space instead of fixed height, consistent 12px gaps
  • Reply/forward target selector: pick which message in a thread to reply to or forward, with quoted content expand/collapse
  • New commands: toggle read/unread, Move to Inbox. Command palette labels now update dynamically based on thread state.
  • 12h/24h time format preference for calendar event display
  • Killed every NSAlert — replaced with custom ConsentPanel and ConfirmationPanel for consistent theming
  • ThemePopup, ThemeToggle, and BannerPillButton adopted across all panels and settings views. Zero native controls left in the UI.
  • Smart Vectors now gate on backfill completion — prevents misclassification when the inbox hasn't fully synced yet
  • Snoozed and blocked-sender threads excluded from classification pipeline. They were polluting vector counts.
  • Reminder badge counts now refresh immediately after scheduling instead of waiting for next sync
v0.9.9 March 2, 2026

Notarized Distribution

  • Full notarized macOS distribution pipeline — code-signed, notarized, stapled, and DMG-packaged builds ready for distribution outside the App Store
  • Decoupled the classification pipeline from Gmail label mutations. Previously, moving a thread between vectors would trigger a label write, which triggered a sync event, which re-classified. Now vector state and label state are independent.
  • Fixed the onboarding flow: brandmark animation timing, sign-in spinner visibility, and a race condition where the loading overlay would dismiss before threads were classified
  • Fixed label picker panel: keyboard navigation was swallowing Escape, styling didn't match the new theme, and it wasn't registered in the command palette
v0.9.8 February 27, 2026

Performance & Calendar

  • Replaced base64-encoded CID inline images with a custom hd-cid:// URL scheme handler. Some emails embed 5+ MB of inline images as base64 — this cuts memory usage dramatically by streaming from the attachment cache on demand.
  • Unified event creation and editing into a single CalendarEventDetailPanel. Previously two separate code paths with diverging behavior.
  • Calendar selector for scheduling links — pick which calendar receives bookings. Revamped the public booking page design.
  • View Original picker panel — choose between sanitized, raw HTML, or plain text views of any email
  • Centered the vector tab bar and fixed a CalendarWeekView crash when toggling between day/week views rapidly
v0.9.7 February 26, 2026

Security Audit & Encryption

  • Server-side encryption at rest with AES-256-GCM — every OAuth token, push token, booking guest name/email, and contact record is now encrypted. Per-row random salts with PBKDF2 key derivation. Dual-key rotation support for zero-downtime key changes.
  • Completed a full backend security audit: 21 findings identified and fixed in a single pass. Dropped all plaintext PII columns from the database — email addresses replaced with HMAC-SHA256 hashes.
  • Eliminated plaintext license keys from the database entirely. All lookups now use key hashes.
  • Rate limiting across all API endpoints with sliding-window counters and per-account bucketing
  • View Original mode — see the raw email HTML exactly as the sender's server delivered it, with a security-only sanitization pipeline (strips scripts/iframes but preserves everything else)
  • Bootstrap prewarm pipeline: WKWebView pool pre-allocates 3 web views at launch, dual SQLite reader connections eliminate lock contention during sync. App feels instant now.
  • Dual typography system — pick your font family, size, and line height in Settings. Changes propagate instantly across every view without restarting. We debated shipping this for weeks (scope creep?) but it turned out to be 200 lines and users kept asking.
  • Configurable page scroll distance — Page Down and Space now scroll by a user-defined percentage of the viewport
v0.9.6 February 25, 2026

iOS Foundation & ML Training

  • Restructured the entire Sources/ directory into Shared/, macOS/, and iOS/ modules. Every file that doesn't touch AppKit or UIKit lives in Shared/ now — about 70% of the codebase. One Swift Package, three platforms, zero #if conditionals in business logic.
  • iOS companion app shell: OAuth sign-in via ASWebAuthenticationSession, thread reading with WKWebView and native scroll physics, plain-text compose with contact autocomplete. It's read-and-reply for now — full feature parity comes later.
  • ML-first classification — models now load before the bootstrap sync completes. Your inbox is categorized the instant threads arrive instead of waiting for a post-sync classification pass.
  • Hand-audited training dataset: 6,218 labeled examples across 7 categories (newsletters, transactions, shipping, cold pitch, social, travel, other). Every example verified by a human. Garbage in, garbage out — we take this seriously.
  • Continuous training pipeline with differential privacy vote aggregation on the server. Every Hyperdrive user's classification corrections improve the model for everyone, without any individual's data being identifiable.
  • Killed the "Important" vector. It was a catch-all that confused the classifier and confused users. 7 categories is the sweet spot.
  • Eliminated the loading-to-inbox visual gap — Move actions are now optimistic and instant. The UI updates before the server round-trip.
v0.9.5 February 23, 2026

On-Device Classification & Performance

  • On-device CoreML classifier with DistilBERT for instant email classification
  • MLX LLM fallback for ambiguous emails — runs entirely on your Mac
  • Overhauled vector scoring architecture with anti-signal support
  • Sparkle 2 auto-update framework — updates download and install in the background
  • 5x faster email rendering: scanner-based HTML sanitizer, single-pass dark mode, background prewarm
  • Calendar fixes: deduplicated shared calendars, mini-cal refresh on visibility toggle, double-click to open events
  • Fixed hover override and selection jump after archive
v0.9.4 February 22, 2026

Security Audit & Privacy Controls

  • AI consent panel — opt-in before any AI features process your email
  • Tracking toggle in Privacy settings to disable read receipts and link tracking
  • Account data deletion: remove all server-side data when removing an account
  • Comprehensive security audit: input validation, CSP headers, encrypted token storage, rate limiting
  • Pill-style vector tabs with per-category accent colors
  • Status bar replaces toast notifications for a cleaner UI
v0.9.3 February 21, 2026

Cross-Device Deferred Actions

  • Snooze, reminders, and send-later now sync across devices
  • Server-side deferred action processing with 1-minute polling
  • Consolidated licensing to hyperdriveone.com
  • Expanded Privacy Policy and Terms of Service
v0.9.2 February 19, 2026

Security Hardening & Font Configurator

  • User-configurable font family, size, and line height in Settings
  • Signed offline lease tokens with clock rollback detection
  • Machine ID validation and AI endpoint authentication
  • Webhook idempotency and checkout race condition protection
  • CORS policy and security headers on all API responses
v0.9.1 February 15, 2026

Calendar & Availability Sharing

  • Calendar sidebar with mini-month view and 7-day agenda
  • Share availability via Cmd+Shift+A with live-updating booking links
  • Create events from email threads with AI auto-fill
  • RSVP directly from email view
  • Full-text search performance improvements
v0.9.0 February 15, 2026

Settings, Snippets & Licensing

  • 4-tab settings panel with per-account signatures and Cmd+, shortcut
  • Text snippet shortcuts for instant expansion in compose
  • One-click unsubscribe (RFC 8058), sender blocking, and spam auto-block
  • Interactive keyboard shortcut rebinding
  • Dynamic titlebar showing active vector, unread count, and account
  • In-app licensing with 7-day free trial
v0.8.0 February 14, 2026

AI Search, Inline Images & Combined Inbox

  • AI-powered natural language search via Shift+/
  • Inline image support via CID resolution
  • Thread expand/collapse with O and Shift+O
  • Combined inbox view with per-account color indicators
  • Contact enrichment via Gravatar API
  • Re-auth banner for expired OAuth sessions
v0.7.0 February 13, 2026

Slack Integration

  • Read and reply to Slack messages alongside email in a unified inbox
  • Slack OAuth connect with per-channel opt-in
  • Mention context cards and thread tracking
  • Read/unread state sync across app restarts
  • Multi-account background sync for all connected inboxes
v0.6.0 February 12, 2026

Calendar Integration

  • Calendar sidebar with mini-month view and day agenda
  • RSVP directly from email view with Accept, Maybe, Decline
  • Share availability via Cmd+Shift+A with live booking links
  • Create events from email threads with AI auto-fill
  • Event confirmation panel with contact matching
v0.5.0 February 11, 2026

Triage, Contact Pane & AI Summaries

  • Undo send with 5-second cancellation window (Z to cancel)
  • Contact pane sidebar with sender details and recent email history
  • AI thread summarization with collapsible view and keyboard shortcut
  • Transactions vector with multi-signal financial classification
  • Vector move commands and local draft persistence
  • Inbox zero celebration with full-screen curated photography
v0.4.0 February 10, 2026

Snooze, Folders & Compose

  • Natural language date parser with ghost-text prediction for snooze
  • Folder sidebar with Snoozed, Done, and Reminders views
  • Chip-based recipient fields with contact autocomplete
  • Full attachment workflow in composer
  • Light/dark mode with keyboard toggle
  • Command palette polish and inbox layout overhaul
v0.3.0 February 9, 2026

Email Rendering & Transitions

  • Email body rendering via WKWebView with HTML sanitization and dark mode
  • Vector inbox tabs for Important/Other filtering
  • 150ms crossfade transitions between views
  • Auto-mark threads read on open
  • Keyboard scrolling shortcuts in thread view
v0.2.0 February 9, 2026

Search, Compose & Theme System

  • Full-text search with / shortcut
  • Rich text composer with formatting toolbar and keyboard shortcuts
  • Theme system with five-shade dark surface hierarchy
  • Contact autocomplete from cached messages
  • Combine-based reactive caching pipeline
v0.1.0 February 9, 2026

Initial Release

  • Full-screen single-focus UI with keyboard-first navigation
  • j/k cursor movement with hover-to-select
  • Command palette (Cmd+K) with fuzzy search
  • Gmail sync engine with optimistic UI
  • Two-key chord shortcuts (g+i, g+e, g+a)