Commit Graph

  • 3ade06063d Merge pull request #955 from warmbly/feature/ios-dark-mode main v0.6.49 Matthew Meszaros 2026-10-12 10:43:16 +00:00
  • c0e3856fc5 feat: start the iOS app in light mode by default and add an Appearance switch (light, dark, automatic) to the signed-out settings sheet behind the sign-in gear, now titled Settings, with the appearance guide and iOS README describing both places to change it Matthew Meszaros 2026-10-12 12:39:19 +02:00
  • 091a7b063a feat: rework iOS dark mode with a charcoal palette and visibly raised cards in WTheme, a slate night variant of the SheerSky photo behind sign-in, onboarding and Home, a sheet rim and canvas fill on every auth sheet, readable disabled primary buttons, and a solid dark backing on the floating tab bar Matthew Meszaros 2026-10-12 12:34:05 +02:00
  • 84bb630104 Merge pull request #953 from warmbly/devin/1791786834-restore-warmup-engagement Matthew Meszaros 2026-10-12 09:35:33 +00:00
  • 6bd0077364 Merge pull request #954 from warmbly/feature/mobile-app-redesign Matthew Meszaros 2026-10-12 09:26:29 +00:00
  • cf4253dcae feat: split the CRM pipeline stage bar into its own view builder and the campaign detail body into page and dialogs so the iOS app type-checks within the Xcode 26.6 compiler limits CI builds with Matthew Meszaros 2026-10-12 10:45:15 +02:00
  • 8b667c2d29 feat: merge main into the mobile app redesign branch, keep both the apollo and appattest handler imports, and renumber the app_attest_keys migration to 000291 now that main holds 000290 Matthew Meszaros 2026-10-12 10:40:02 +02:00
  • 8c06efc6e4 feat: ship the iOS app to TestFlight from GitHub Actions on merges touching ios/ (ios-release workflow with cloud-managed signing, shared Warmbly scheme, ExportOptions, iPhone-only 1.0.0, privacy manifest), add in-app account deletion and a read-only billing page, let admins exempt an existing account from the emailed login code for App Review, read Apple .p8 keys as PEM or base64 through one applekey parser for Sign in with Apple and APNs, and document the release flow and Apple web sign-in setup Matthew Meszaros 2026-10-12 10:38:14 +02:00
  • 5d0df66b11 feat: recheck receiving authorization after mailbox execution admission before dispatching provider warmup engagement Matthew MeszarosandDevin AI 2026-10-12 07:11:33 +00:00
  • a951e767e5 feat: preserve explicit receive-only reply restrictions while testing restored Cloud warmup action disclosures Matthew MeszarosandDevin AI 2026-10-12 06:46:49 +00:00
  • e0640539bb feat: restore provider-supported warmup engagement for receiving-authorized existing mailboxes with consent rechecks and rollout disclosures Matthew MeszarosandDevin AI 2026-10-12 06:41:29 +00:00
  • 2aedb7ea0c Merge pull request #950 from warmbly/devin/1791718013-archive-send-preservation Matthew Meszaros 2026-10-12 02:48:14 +00:00
  • 180964f2d9 Merge pull request #952 from warmbly/devin/1791734770-imap-exact-evidence devin-ai-integration[bot] 2026-10-11 17:58:29 +00:00
  • c7f662b221 feat: publish persisted generic IMAP warnings without missing legacy user text or exposing private details Matthew MeszarosandDevin AI 2026-10-11 17:48:53 +00:00
  • 30621400a7 feat: draw the iOS sign-in, onboarding, workspace picker and server-unreachable surfaces on the sky photo (showcase card, feature pill, gear and back buttons, step badge, retry and workspace actions) with native Liquid Glass instead of flat frosted tiles Matthew Meszaros 2026-10-11 19:43:46 +02:00
  • deb0dba45d feat: require typed classified IMAP retry evidence in the stopped mailbox replacement and automatic reoffer recovery regression Matthew Meszaros 2026-10-11 17:18:35 +00:00
  • ec46f57d22 feat: redesign the iOS app (inbox with inbox agent drafted replies edited in the full composer, Remie, home, analytics, CRM, contacts, settings hubs, mailbox connect flow covering every dashboard source) and replace Turnstile in the app with Apple App Attest (attested keys in app_attest_keys, challenge and key endpoints, verifyHuman gate on login, registration and password reset, auth config flag, docs and OpenAPI) Matthew Meszaros 2026-10-11 19:00:50 +02:00
  • 52fd0aaf49 feat: integrate current main dispatch and mailbox monitoring into generation-bound IMAP diagnostics Matthew Meszaros 2026-10-11 16:55:17 +00:00
  • 853318692a feat: retain privacy-safe IMAP connection evidence only from current mailbox generation and publish persisted warning text Matthew Meszaros 2026-10-11 16:55:13 +00:00
  • 0c413e49bc feat: prove archive overwrites retain protected dispatch evidence before preparing fresh local warmup work Matthew Meszaros 2026-10-11 16:54:16 +00:00
  • ecf1e27644 feat: integrate current main dispatch fencing and active backfill rules into archive send preservation Matthew 2026-10-11 16:47:59 +00:00
  • 9080886046 Merge pull request #951 from warmbly/devin/1791728779-active-backfill-warnings devin-ai-integration[bot] 2026-10-11 15:55:47 +00:00
  • 0dfdedba84 Merge pull request #949 from warmbly/devin/1791716603-fence-warmup-execution devin-ai-integration[bot] 2026-10-11 15:55:44 +00:00
  • 7c9cfde9d5 feat: distinguish source-only archive history from retained destination-local outcomes in plaintext and encrypted exports Matthew MeszarosandDevin AI 2026-10-11 15:07:26 +00:00
  • 0d5e33ba08 feat: bound archive send provenance with indexed transaction-local lookups and preserve imports without temporary-table privileges Matthew MeszarosandDevin AI 2026-10-11 15:07:26 +00:00
  • 5cc3cb4e4c feat: preserve the operations documentation table around backfill and mailbox safety notes Matthew MeszarosandDevin AI 2026-10-11 14:41:47 +00:00
  • 9ad9e05cb5 feat: scope backfill monitoring and admin stalled indicators to active unheld mailboxes while retaining history Matthew MeszarosandDevin AI 2026-10-11 14:39:36 +00:00
  • 80ce00dfe6 feat: preserve destination-local send identity and recovery evidence during workspace archive overwrites while retaining portable source history Matthew MeszarosandDevin AI 2026-10-11 13:42:02 +00:00
  • cc2f343222 Merge pull request #948 from warmbly/feature/third-party-data-provider-integrations Matthew Meszaros 2026-10-11 11:25:17 +00:00
  • c60efed16d feat: require matching unstarted warmup dispatch identity before generic execution and cancellation Matthew MeszarosandDevin AI 2026-10-11 11:15:30 +00:00
  • 44b07fce84 feat: bound the writes that record Apollo import and enrichment outcomes with their own timeout, independent of the run's context Matthew Meszaros 2026-10-11 13:12:27 +02:00
  • f9a9163891 feat: record Apollo import outcomes with an uncancellable context, bound recurring runs and release interrupted ones so they rerun and sync on schedule, send the saved Clay auth token only to the connection's own table webhook, use typed routes for the Apollo, Clay and Salesforce page links, and document Clay HTTP API column retries Matthew Meszaros 2026-10-11 12:59:05 +02:00
  • ebfd34fb84 Merge remote-tracking branch 'origin/main' into feature/third-party-data-provider-integrations Matthew Meszaros 2026-10-11 12:41:57 +02:00
  • 19d8d24fac feat: add Apollo integration (API key connect, list imports with hourly sync, contact enrichment) and two-way Clay integration (inbound row URL creating contacts, outbound event rows, automation action) with dashboard pages, brand logos, Discover ranking, org transfer registration and docs Matthew Meszaros 2026-10-11 12:41:56 +02:00
  • c7c6679f3b Merge pull request #944 from warmbly/fix/shared-pool-campaign-wakeup-throttling Matthew Meszaros 2026-10-11 08:50:04 +00:00
  • 29a9779469 feat: renumber the mailbox send claim migration to 000289 so it follows the mailbox transport recovery migration 000288 queued ahead of it Matthew Meszaros 2026-10-11 10:30:56 +02:00
  • c7352bac97 feat: stop campaigns sharing a mailbox pool from throttling each other by ignoring parked campaign wake-ups in slot conflict resolution, add an atomic per-mailbox send claim (email_accounts.send_claimed_at) so concurrent campaigns cannot send inside one mailbox's gap, and break rotation ties per campaign Matthew Meszaros 2026-10-11 08:16:27 +02:00
  • 065e4c28ba Merge pull request #946 from warmbly/devin/1791705885-monitoring-source-clock devin-ai-integration[bot] 2026-10-11 08:21:38 +00:00
  • 576ad40703 Merge pull request #945 from warmbly/devin/1791700836-mailbox-transport-recovery devin-ai-integration[bot] 2026-10-11 08:19:51 +00:00
  • 1bd1719b20 feat: compare monitoring predicates and evidence windows against one database observation clock Matthew MeszarosandDevin AI 2026-10-11 08:08:13 +00:00
  • bd78db9ae1 feat: retry unreadable sync checkpoints before recording transport recovery or accepting equal-timestamp worker relays Devin AI 2026-10-11 07:44:09 +00:00
  • 23c950ec98 feat: fence single-connection mailbox loads and preserve typed sync truth, pre-upgrade Avro fixtures, and mandatory transport regression execution Devin AI 2026-10-11 07:29:08 +00:00
  • 457cefa345 feat: scope mailbox transport reports and automatic recovery to current-generation sync and send evidence while preserving archive history and send safety holds Matthew Meszaros 2026-10-11 07:00:57 +00:00
  • b88b92dd07 Merge pull request #943 from warmbly/devin/1791696510-sync-lifecycle-evidence v0.6.48 devin-ai-integration[bot] 2026-10-11 05:43:30 +00:00
  • 2f842cf96c feat: keep retired and cancelled sync attempts out of provider-failure evidence while preserving native recovery retries Matthew MeszarosandDevin AI 2026-10-11 05:25:49 +00:00
  • 14c5ce2b1b Merge pull request #941 from warmbly/devin/1791690444-arrival-stage-diagnostics devin-ai-integration[bot] 2026-10-11 04:38:47 +00:00
  • 8990510edf Merge pull request #938 from warmbly/devin/1791655717-preserve-pending-send-conflicts devin-ai-integration[bot] 2026-10-11 04:38:46 +00:00
  • 4abf52067a feat: stop imported send recovery loops and preserve unknown holds without false preparation conflicts Devin AI 2026-10-11 04:00:50 +00:00
  • 943a61af09 feat: add bounded payload-free arrival stage timing and flush returned-pass diagnostics on shutdown Devin AI 2026-10-11 03:53:54 +00:00
  • 0e4078a2ea feat: run advanced bounce reconciliation rollback and replay regression explicitly in PostgreSQL CI Devin AI 2026-10-11 03:25:37 +00:00
  • 9d92216846 feat: retain authoritative send conflict holds and reset imported recovery provenance with migration 287 Matthew Meszaros 2026-10-11 03:20:33 +00:00
  • 67ddf5774a Merge remote-tracking branch 'origin/main' into devin/1791675445-send-audit-parent-review Matthew Meszaros 2026-10-11 03:15:45 +00:00
  • 6704813341 Merge pull request #940 from warmbly/devin/1791674507-pending-dispatch-fairness devin-ai-integration[bot] 2026-10-11 02:44:08 +00:00
  • 3a10faf062 Merge pull request #939 from warmbly/devin/1791656118-retired-job-history devin-ai-integration[bot] 2026-10-11 02:44:07 +00:00
  • 009fca6e27 feat: yield successful pending local dispatches so old no-ops cannot monopolize due batches Devin AI 2026-10-10 23:34:51 +00:00
  • ee00e7a5fc feat: run retired scheduled-job history and upgrade regressions in PostgreSQL CI Matthew MeszarosandDevin AI 2026-10-10 18:43:25 +00:00
  • fcb215bc50 feat: prove retired job history and blocked actions with localhost fixtures Matthew MeszarosandDevin AI 2026-10-10 18:36:19 +00:00
  • 9ab0c1f589 feat: preserve retired scheduled-job history without active scheduling or monitoring Matthew MeszarosandDevin AI 2026-10-10 18:29:46 +00:00
  • 04ae441619 feat: preserve unresolved send outcome conflicts when unstarted outbound commands cancel or defer Matthew MeszarosandDevin AI 2026-10-10 18:15:13 +00:00
  • 176d3c2448 Merge pull request #937 from warmbly/feature/dashboard-onboarding-tour Matthew Meszaros 2026-10-10 17:25:13 +00:00
  • 11b7a09cc5 feat: renumber the user product tour migration to 000285 after main took 000284 for warmup filing provider floor Matthew Meszaros 2026-10-10 19:14:05 +02:00
  • 255c7172d4 Merge remote-tracking branch 'origin/main' into feature/dashboard-onboarding-tour Matthew Meszaros 2026-10-10 19:13:35 +02:00
  • ab932bc08e Merge remote-tracking branch 'origin/main' into feature/dashboard-onboarding-tour Matthew Meszaros 2026-10-10 18:52:21 +02:00
  • 3ba5913569 feat: add a skippable chaptered dashboard product tour narrated by Remie with sample-data scenes, plan comparison and selection (hosted links and Warmbly Cloud on self-host), saved per account via PUT /auth/me/product-tour Matthew Meszaros 2026-10-10 18:52:21 +02:00
  • 0e48957ae8 Merge pull request #936 from warmbly/devin/1791649374-consistent-worker-heartbeats v0.6.47 devin-ai-integration[bot] 2026-10-10 16:42:46 +00:00
  • c4d6da9201 Merge pull request #935 from warmbly/devin/1791648021-persist-filing-provider-floor devin-ai-integration[bot] 2026-10-10 16:38:45 +00:00
  • 21eac105f5 feat: collect worker heartbeat warnings from one database snapshot and preserve source observation clocks Matthew MeszarosandDevin AI 2026-10-10 16:30:34 +00:00
  • c0e721f92e feat: retain native warmup filing provider retry deadlines across workers and admission retries Matthew MeszarosandDevin AI 2026-10-10 16:22:04 +00:00
  • 2cf079c379 Merge pull request #933 from warmbly/devin/1791640207-authoritative-send-result-recovery devin-ai-integration[bot] 2026-10-10 15:43:04 +00:00
  • 0e3ed53ede Merge pull request #934 from warmbly/devin/1791643401-graph-delete-lookup-authority devin-ai-integration[bot] 2026-10-10 15:30:30 +00:00
  • 8641905138 feat: require complete Graph JSON response before confirming warmup message absence Devin AI 2026-10-10 15:22:56 +00:00
  • d73d8f4bb4 feat: integrate hosted accounting regressions and proof-gated failed dead-letter repair with merged provider fixes Matthew Meszaros 2026-10-10 15:19:42 +00:00
  • 3888a2e719 feat: repair already applied warmup failure dead letters only with durable refunded charge proof without replaying callbacks or mailbox holds and cover exact task regressions in PostgreSQL CI devin/1791642725-warmup-charge-provenance Devin AI 2026-10-10 15:16:02 +00:00
  • 8340b37e3d feat: integrate merged provider folder and duplicate arrival hardening before accounting provenance rollout Matthew Meszaros 2026-10-10 15:10:35 +00:00
  • 2e4dfa4d87 feat: require complete terminal Graph message lookups before warmup retention cleanup and reject malformed identities or continuation metadata with bounded native retryable uncertainty devin/1791644562-graph-lookup-completeness-hardening Devin AI 2026-10-10 15:10:05 +00:00
  • a19106db21 feat: run exact warmup charge UTC refund and authoritative legacy result regressions in serialized PostgreSQL CI with isolated upgrade coverage Devin AI 2026-10-10 15:06:48 +00:00
  • 8473980722 feat: preserve original warmup completion and require atomic UTC charge provenance for one-time failure and cancellation refunds Matthew Meszaros 2026-10-10 14:59:53 +00:00
  • ac55199a84 feat: integrate authorized migration 282 baseline before adding atomic warmup charge provenance Matthew Meszaros 2026-10-10 14:54:06 +00:00
  • ae54f970e9 Merge pull request #931 from warmbly/devin/1791640209-provider-sync-recovery devin-ai-integration[bot] 2026-10-10 14:53:43 +00:00
  • accd6c0ed5 feat: stop Graph warmup retention deletes on failed or ambiguous stable message lookups while preserving provider error evidence, stored bodies and idempotent cleanup retries Devin AI 2026-10-10 14:47:28 +00:00
  • d3b5ee42f9 Merge pull request #932 from warmbly/devin/1791640255-sync-arrival-protocol-regressions devin-ai-integration[bot] 2026-10-10 14:44:58 +00:00
  • 44cd8f8254 feat: preserve complete IMAP folder presence across bounded sync and stop Graph passes on authoritative provider retry deadlines devin/1791642900-provider-presence-deadline-hardening Devin AI 2026-10-10 14:42:21 +00:00
  • 78da37dfca Merge pull request #930 from warmbly/devin/1791639319-protect-legacy-dlq-replay Matthew Meszaros 2026-10-10 14:41:43 +00:00
  • 5bf8bf6e51 feat: document the campaign dispatch provenance downgrade guard and roll-forward recovery contract Matthew MeszarosandDevin AI 2026-10-10 14:25:16 +00:00
  • a53de41c92 feat: persist monotonic campaign dispatch intent and require locked verified wakeup provenance for every dead-letter replay path devin/1791641195-durable-campaign-wakeup-replay Matthew Meszaros 2026-10-10 14:16:01 +00:00
  • 518848d4d1 feat: guard monitoring unknown wait and tracking scope evidence while preserving unregistered job history devin/1791641410-monitoring-registration-coverage Devin AI 2026-10-10 14:15:31 +00:00
  • 2aa46abbc8 feat: reconcile authoritative dead-letter send results atomically while preserving unknown outcomes and legacy accounting evidence Devin AI 2026-10-10 14:01:55 +00:00
  • 93f0d1cec8 feat: reconcile same-batch IMAP duplicate message keys through canonical maps without readmitting completed arrivals or charging duplicate sync budget Matthew Meszaros 2026-10-10 13:58:22 +00:00
  • 89e456dfb5 feat: preserve IMAP folder sync state on incomplete provider status and honor Graph service retry windows Matthew Meszaros 2026-10-10 13:57:48 +00:00
  • ab3f0c0ca4 feat: preserve the unverified dead-letter monitoring identity in redacted administrator CLI output Matthew MeszarosandDevin AI 2026-10-10 13:53:18 +00:00
  • 5dba6483d0 Merge pull request #928 from warmbly/devin/1791638312-bound-local-dispatch-db-contention Matthew Meszaros 2026-10-10 13:48:02 +00:00
  • c8b66f698c Merge pull request #929 from warmbly/devin/1791638955-bound-reply-repair-scan Matthew Meszaros 2026-10-10 13:47:55 +00:00
  • 3f8e951bd6 feat: guard legacy send dead-letter replay and expose unverified recovery evidence Matthew MeszarosandDevin AI 2026-10-10 13:38:43 +00:00
  • 2db20352e7 feat: bound campaign reply repair to raw message pages without losing eligible replies Matthew MeszarosandDevin AI 2026-10-10 13:31:57 +00:00
  • ba1c6e3f3e feat: bound local task dispatch across polling rounds using effective database pool capacity without stamping queued work Matthew MeszarosandDevin AI 2026-10-10 13:23:12 +00:00
  • 9712ea5262 Merge pull request #926 from warmbly/devin/1791630200-combined-restricted-member-security v0.6.46 Matthew Meszaros 2026-10-10 12:07:57 +00:00
  • 2928faaf02 Merge pull request #927 from warmbly/devin/1791632533-isolate-warmup-provider-retries Matthew Meszaros 2026-10-10 12:07:46 +00:00
  • fc3f1de977 feat: reject incomplete or trailing warmup authority responses before granting durable filing deferral Devin AI 2026-10-10 11:55:16 +00:00
  • 9a45259527 feat: release failed filing commands only after exact backend proof of pending durable recovery while preserving acknowledgements and legacy retries Devin AI 2026-10-10 11:52:47 +00:00
  • 2cfd53aa93 feat: start push digest deadline regressions after Redis setup so timeout assertions measure authorization recovery Devin AI 2026-10-10 11:52:00 +00:00