SUMAN JANA
|
a42b67f2e3
|
fix(inbox): tell the dashboard when a tag lands, so the label appears without a reload
|
2026-09-17 04:57:24 -07:00 |
|
SUMAN JANA
|
056d639e2b
|
feat(inbox): classify mid-conversation replies, which the first taxonomy had no bucket for
|
2026-09-17 04:57:24 -07:00 |
|
SUMAN JANA
|
7e556f49e3
|
feat(inbox): backfill historical mail through the tagger, and keep a confident kind when the intent cannot be read
|
2026-09-17 04:57:24 -07:00 |
|
SUMAN JANA
|
260898bf20
|
feat(inbox): automatic tagging and relevance scoring for inbound mail, optional and off by default
|
2026-09-17 04:57:24 -07:00 |
|
Matthew Meszaros
|
ae1a324801
|
Merge pull request #562 from rocker1166/feat/direct-mail-analytics
feat: add accurate direct-mail analytics and opt-in engagement tracking
|
2026-09-17 11:47:50 +00:00 |
|
Matthew Meszaros
|
17206f1c29
|
Merge pull request #569 from warmbly/fix/validate-reported-defect
Fix Outlook opens misclassified as Apple privacy prefetches
|
2026-09-17 11:37:21 +00:00 |
|
Matthew Meszaros
|
59dbceaef3
|
feat: clarify direct-mail counts and HTML tracking limits in guides
|
2026-09-17 04:37:09 -07:00 |
|
Matthew Meszaros
|
93a0e39371
|
Merge pull request #568 from warmbly/fix/reported-issue-resolution
feat: preserve binary dashboard API responses so campaign lead exports remain downloadable
|
2026-09-17 11:28:29 +00:00 |
|
Matthew Meszaros
|
50dec73fb2
|
Merge pull request #563 from rocker1166/feat/inbox-search-people-and-prefix
feat(unibox): search people and partial words, and offer to widen a search that found nothing
|
2026-09-17 11:28:21 +00:00 |
|
Matthew Meszaros
|
d1aa3d4361
|
feat: classify ambiguous Outlook and Apple image-proxy opens by delivery timing and stop inventing recipient device metadata
|
2026-09-17 04:27:34 -07:00 |
|
Matthew Meszaros
|
8745dd988d
|
feat: correct direct-mail analytics attribution and publish live engagement updates
|
2026-09-17 04:27:00 -07:00 |
|
Matthew Meszaros
|
7402898c0d
|
feat: preserve binary dashboard API responses so campaign lead exports remain downloadable (#565)
|
2026-09-17 04:24:52 -07:00 |
|
Matthew Meszaros
|
cc5925fe44
|
feat: preserve web-search operators and escape participant patterns in unibox search
|
2026-09-17 04:18:08 -07:00 |
|
SUMAN JANA
|
2134c7a143
|
feat(analytics): report on mail written by hand, with opt-in open and click tracking per mailbox
|
2026-09-17 10:26:25 +00:00 |
|
SUMAN JANA
|
ebbe432d2c
|
feat(unibox): search people and partial words, and offer to widen a search that found nothing in the current scope
|
2026-09-17 10:20:17 +00:00 |
|
Matthew Meszaros
|
2104770185
|
Merge pull request #559 from warmbly/fix/reopened-issue-feedback
fix: verify persisted reply direction and repair false replies
v0.4.21
|
2026-09-17 05:14:21 +00:00 |
|
Matthew Meszaros
|
5855d7e32d
|
feat: fully fence inbound reply processing and repair issue 549 state across campaigns and verification
|
2026-09-16 22:03:46 -07:00 |
|
Matthew Meszaros
|
27f739a0fc
|
Merge pull request #560 from warmbly/fix/account-sending-analytics
Fix account sending analytics and dashboard metric accuracy
|
2026-09-17 04:52:07 +00:00 |
|
Matthew Meszaros
|
0f5ca71155
|
feat: correct mailbox sending metrics and workspace analytics across dashboard surfaces
|
2026-09-16 21:44:42 -07:00 |
|
Matthew Meszaros
|
35b94252e6
|
feat: make inbound reply processing idempotent across duplicate events
|
2026-09-16 21:38:10 -07:00 |
|
Matthew Meszaros
|
c91e89980f
|
feat: make reply recording atomic and require exact repair recipient matches
|
2026-09-16 21:25:43 -07:00 |
|
Matthew Meszaros
|
b01984bec2
|
feat: verify reply direction from persisted mailbox state and repair issue 549 false Sent-folder replies
|
2026-09-16 21:11:54 -07:00 |
|
Matthew Meszaros
|
baf38a4b03
|
Merge pull request #557 from warmbly/feature/self-host-instance-linking-upsell
Offer subscribing alongside self-hosting, and hide the self-host nudge from subscribers
v0.4.20
|
2026-09-16 17:56:40 +00:00 |
|
Matthew Meszaros
|
be78d46e28
|
feat: hide the self-host nudge on the hosted Accounts page for subscribed workspaces and offer subscribing alongside self-hosting on free ones in CloudPathsPanel
|
2026-09-16 19:53:35 +02:00 |
|
Matthew Meszaros
|
0d331cd528
|
Merge pull request #556 from warmbly/feat/tester-join-existing-workspace
feat: a tester can join an existing workspace instead of always getting an empty one
|
2026-09-16 17:50:07 +00:00 |
|
Matthew Meszaros
|
1196c23f92
|
Merge pull request #555 from warmbly/fix/contact-activity-timeline-followup
Fix contact timeline access regression coverage
|
2026-09-16 17:47:35 +00:00 |
|
Matthew Meszaros
|
de8da6396e
|
feat: build the tester sign-in address from DASHBOARD_URL instead of rewriting the admin origin's first label to dev., which handed an OAuth reviewer a different deployment than the dashboard every other link in the panel points at
|
2026-09-16 19:40:14 +02:00 |
|
Matthew Meszaros
|
03f813dd43
|
feat: let an admin create a tester account that joins an existing workspace with an explicitly chosen role instead of always minting an empty one, so an OAuth reviewer signing in lands in a workspace that shows the app doing real work
|
2026-09-16 19:37:32 +02:00 |
|
Matthew Meszaros
|
5072f27b59
|
feat: correct the AGENTS.md codec note that still claimed Avro cannot serialize the worker command and result envelopes, which the derived union schemas in internal/models/event_schema.go made false
|
2026-09-16 19:37:32 +02:00 |
|
Matthew Meszaros
|
e0ddcd79d2
|
feat: register contact timeline live-test cleanup before fixture setup can fail
|
2026-09-16 10:36:37 -07:00 |
|
Matthew Meszaros
|
cf1429f571
|
feat: cover contact timeline access at the HTTP boundary and centralize campaign event tenant scoping
|
2026-09-16 10:27:18 -07:00 |
|
Matthew Meszaros
|
d3cd675d80
|
Merge pull request #554 from warmbly/fix/worker-disconnect-error-reporting
Fix ResizeObserver error reporting and cloud worker outage notifications
|
2026-09-16 15:51:53 +00:00 |
|
Matthew Meszaros
|
cadf8f849a
|
Merge pull request #553 from warmbly/fix/mail-sync-rate-limit-handling
Fix provider mail throttles without deactivating mailboxes
|
2026-09-16 15:51:27 +00:00 |
|
Matthew Meszaros
|
0334d2c64a
|
feat: prevent ResizeObserver feedback warnings from reaching PostHog and scope worker outage alerts per workspace on shared cloud workers
|
2026-09-16 17:42:38 +02:00 |
|
Matthew Meszaros
|
817599d0eb
|
feat: keep provider mail throttles retryable without deactivating mailboxes or flooding error tracking
|
2026-09-16 17:42:12 +02:00 |
|
Matthew Meszaros
|
27e9e0d7cb
|
Merge pull request #551 from warmbly/fix/contact-activity-timeline
Fix contact activity timelines for workspace teammates
|
2026-09-16 15:39:48 +00:00 |
|
Matthew Meszaros
|
75d6799f09
|
Merge pull request #552 from warmbly/fix/issue-root-cause
fix: prevent synced sent follow-ups from counting as replies
|
2026-09-16 15:35:47 +00:00 |
|
Matthew Meszaros
|
106e3c0b9d
|
feat: cover organization scoping for per-event timeline opens and clicks in the issue 550 live regression
|
2026-09-16 08:30:35 -07:00 |
|
Matthew Meszaros
|
2255e2145d
|
feat: reject outbound mailbox copies and mismatched campaign threads before they can mark contacts replied for stop-on-reply (issue #549)
|
2026-09-16 08:24:19 -07:00 |
|
Matthew Meszaros
|
6762b4e491
|
feat: scope contact activity timelines to the selected organization so teammates can load contacts and campaigns created by other members
|
2026-09-16 08:20:31 -07:00 |
|
Matthew Meszaros
|
4597156b6f
|
Merge pull request #548 from warmbly/fix/dev-cloud-dashboard-server-errors
feat: fix dashboard Stripe checkout, portal eligibility, webhook recovery and audit rendering
v0.4.19
|
2026-09-16 13:31:04 +00:00 |
|
Matthew Meszaros
|
15a130e446
|
Merge pull request #547 from warmbly/fix/login-argon2id-hash-format
feat: reject password login for accounts without a password hash before Argon2 verification
|
2026-09-16 13:25:19 +00:00 |
|
Matthew Meszaros
|
6872ebbb23
|
feat: fix dashboard Stripe checkout, portal eligibility, webhook recovery and audit rendering
|
2026-09-16 15:23:17 +02:00 |
|
Matthew Meszaros
|
d96e3182f8
|
feat: run required CI checks for merge queue groups so validated pull requests can merge through branch protection
|
2026-09-16 15:15:18 +02:00 |
|
Matthew Meszaros
|
1fae8b18c2
|
feat: reject password login for external accounts without a stored hash and cover credential verification with PostgreSQL regressions
|
2026-09-16 15:03:21 +02:00 |
|
Suman Jana
|
94c7e414e2
|
feat: preserve private Unibox reply drafts and safely collapse quoted conversation history
|
2026-09-16 04:35:53 -07:00 |
|
Matthew Meszaros
|
31c1f101c2
|
feat: give EmailSentEvent and WarmupEmailSentEvent their own derived Avro schemas so the email-events and warmup-events analytics streams stop failing at serialize on every send and finally register a subject (#546)
v0.4.18
|
2026-09-16 04:20:15 -07:00 |
|
Matthew Meszaros
|
140c7de436
|
feat: add the admin panel's Promo codes page and route the six /admin/discounts endpoints that existed as handlers but were never wired, so a launch offer is built in the operator UI instead of an INSERT against production, with caps that an explicit null can actually clear on PATCH
|
2026-09-16 04:04:09 -07:00 |
|
Matthew Meszaros
|
561f8ec671
|
feat: keep cloud and local warmup mail out of Unibox with durable verification and automatic cleanup
|
2026-09-16 03:55:36 -07:00 |
|
Matthew Meszaros
|
f72d1f8d5c
|
feat: prevent sender views from tracking opens and keep sent messages out of the default Inbox (#542)
|
2026-09-16 03:42:58 -07:00 |
|