-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Description
Overview
Comprehensive tracker for all remaining implementation, bug fixes, wiring, and test coverage gaps. Multi-phase, execute one phase at a time.
Phase 1: Critical Bug Fixes ✓
High-impact bugs affecting core functionality.
- Server doesnt send emails trough its own smtp when a relay added then deleted/inacitvated #293 Relay delete doesn't restore local SMTP — postfix config not cleaned up on relay deactivation/delete
- TypeError: can't access property "locale", P[a.value] is undefined #292
TypeError: P[a.value] is undefined— JS crash when deleting SMTP server (i18n/locale issue) - Domain Dedicated Ipv4 is not showing and verifying on DNS Records #297 Dedicated IPv4 not shown in DNS records — domain IP wiring broken
- 创建同样名称的邮箱不返回错误 #282 Duplicate mailbox creation returns success — missing uniqueness validation in
/api/mailbox/create - Bug 手动构建后web空白 #309 Blank page after manual build — SPA fallback routing in
cmd.go(related: 最近一直没有登陆后台管理系统出现了Not Found #279) - 使用UTF8会导致发件失败 #265 SMTPUTF8 causes send failure — Postfix/Dovecot config gap
Acceptance: All 6 bugs reproduced, fixed, tested. No regressions in existing test suites.
Phase 2: Test Coverage Gaps
17 Go service packages have zero tests. Prioritize by blast radius.
-
contact— core domain, high usage -
email_template— template rendering, AI generation -
mail_boxes— mailbox CRUD -
relay— SMTP relay management (related to Server doesnt send emails trough its own smtp when a relay added then deleted/inacitvated #293) -
middlewares— RBAC, auth middleware -
settings— system settings -
mail_service— mail sending core -
contact_activity— tracking/activity -
multi_ip_domain— multi-IP support (related to Domain Dedicated Ipv4 is not showing and verifying on DNS Records #297) -
frostbyte— enrichment proxy -
fail2ban— security -
collect/compress/log_maintenance/timers— lower priority utilities -
dockerapi/phpfpm/redis_initialization/database_initialization— infra, lowest priority
Acceptance: Each package has at least unit tests for core logic. go test -short ./internal/service/... all green.
Phase 3: Video Outreach Wiring & Infra
Pipeline is code-complete but not production-ready.
- Provision API keys:
ANTHROPIC_API_KEY,CARTESIA_API_KEY,SYNCLABS_API_KEY(human) - Create Cloudflare R2 bucket + generate tokens:
R2_ACCOUNT_ID,R2_ACCESS_KEY_ID,R2_ACCESS_KEY_SECRET,R2_BUCKET_NAME,R2_PUBLIC_URL(human) - FrostByte:
RAPIDAPI_KEY, Gmail app password (human) - Record voice sample for Cartesia voice clone (human)
- Replace Automation view stub (
<div>aaaaa</div>) with real UI - Visual verification of video outreach frontend (requires Docker rebuild)
- CORS config for FrostByte proxy
- Provision VPS (Hetzner) + pick sending domain (human)
Acceptance: Video outreach pipeline runs end-to-end with real API keys. Frontend renders correctly.
Phase 4: Tracking & Stats Accuracy ✓
Multiple reports of broken tracking.
- 追踪和速度有问题 #194/It seems that the email open rate has not been tallied #174/opened, "clicked", and bounced error #132 Open rate tracking inaccurate — open/click rates now use
deliveredas denominator instead ofsends - Click Tracking - BillionMail shows internal port 5679 in email links despite reverse proxy configuration #163 Reverse proxy leaks internal port 5679 into tracking links —
buildBaseURL()now checksreverse_proxy_domainfirst - Email Campaign Stuck in "Processing" Status and Not Sending #128/Email Campaign Stuck in "Processing" Status and Not Sending #116 Campaign stuck in "Processing" — fall through to completion check on error + count failed recipients as done
- I can't track every email ( click and open) !!!! #263 Click/open tracking not working for all emails — production
sendEmail()now respectsTrackClick/TrackOpenflags
Acceptance: Tracking pixel and click redirect generate correct URLs behind reverse proxy. Stats are monotonically increasing. Campaigns don't stall.
Phase 5: Feature Gaps — Core Platform
Community-requested features and API gaps.
- /api/contact/group/create接口不能返回group_id,很不方便 #306/创建分组的api返回新分组id #280
/api/contact/group/createshould returngroup_id - Tags - Unable to add to multiple emails #246 Bulk tag add dedup bug (case-insensitive) + duplicate status message
- Unable to create AI Template #225/AI Template #129 AI template generation nil pointer fixed
- Create sub group user features #307 Sub-group user features (RBAC sub-groups)
- Disable receiving email per domain #303 Disable receiving email per domain
- Back-end displays all inbox functions #267 Backend inbox UI — view all inboxes from admin
Acceptance: Each feature works end-to-end with test coverage.
Phase 6: Mail Infrastructure Bugs ✓
DKIM, forwarding, relay issues.
- Amason SES Duplicate header 'DKIM-Signature' #289 Amazon SES duplicate DKIM-Signature header — skip DKIM signing for relay-mapped domains
- DKIM Key Not Regenerated for Existing Domain After a Clean Re-installation #117 DKIM key not regenerated after clean reinstall —
RepairDKIMSigningConfignow regenerates missing key files (caeeb62) - DKIM 签名错误识别域名(mail.example.com 被识别为 example.com) #114 DKIM subdomain misidentification (
mail.example.com→example.com) — addedtry_fallback=falseto rspamd config (4074e02) - 发送邮件的时候勾选了 “退订链接”,我配置了多个域名,退订链接会是配置了的域名+mail前缀,然后会报https证书不信任 #111 Unsubscribe links use wrong SSL cert for multi-domain setups —
GetBaseURLBySendernow used everywhere (f0acca4) - Probem with the forward mails #106 Mail forwarding not working — fixed alias_maps SQL to return only aliases (
da08664) - SMTP Relay not working #101/Problem with SMTP relay #102 SMTP relay not working (general) — relay rewrite complete, Server doesnt send emails trough its own smtp when a relay added then deleted/inacitvated #293 fix resolved remaining issues
Acceptance: DKIM signs correctly for all domain configurations. Forwarding delivers. Relay works with SES and generic SMTP.
Phase 7: Polish & Deferred Items ✓ (selected)
Lower priority, nice-to-have.
- Rate limiting awareness for external APIs (video pipeline) —
RateLimitedClientwithx/time/rate - Circuit breakers for external APIs —
gobreakerwired into Cartesia + SyncLabs - E2E test timeout tuning —
timeout = 120+timeout_method = thread - docker-compose issue #240 Docker compose missing
conf/askaidir — auto-create on startup - Campaign sends only 1 email then stops - "HostWorkDir not set" error (v4.8.4) #285 HostWorkDir not set — fallback to
AbsPath("../")when Docker label missing - 最近一直没有登陆后台管理系统出现了Not Found #279 Not Found after idle — resolved by SPA routing fix (Bug 手动构建后web空白 #309)
- Monitoring/alerting for pipeline failures
- Fix UnoCSS rspack plugin build config (processes JSON/HTML/PNG incorrectly)
- Modern UI/UX Layout Suggestion Inspired by aaPanel #270 Modern UI/UX layout redesign
- 实现多机部署与高可用架构,并重点支持 SMTP 发送通道的冗余与故障转移 #266 Multi-server HA deployment + SMTP failover
- Feature request: Support Easypanel #286 Easypanel support
- 通过反向代理后无法访问 Unable to access through reverse proxy #164/Using Reverse Proxy instead of direct 443 & 80 Port on BillionMail #305 Reverse proxy documentation —
docs/REVERSE_PROXY.mdwith nginx/Caddy/Traefik - error while updating #12 GetSpintaxOptions regex matched CSS/JS braces — regex now skips non-spintax curly braces
- Please, why is this not set? #25 ExtractDomain fails on emails with multiple @ — now uses last @ occurrence
Acceptance: Each item individually scoped and completed.
Context
- Branch:
isaac/fix-critical-auth-rbac - Upstream PR: Fix 13 bugs + video outreach pipeline + docs #317
- Go tests: 9 packages passing | Frontend: 57 files, 427 tests passing
- Video pipeline: 7 phases code-complete (Cartesia + SyncLabs + FFmpeg)
- Total bugs fixed this branch: 24 (error while updating #12, Please, why is this not set? #25, SMTP Relay not working #101, Problem with SMTP relay #102, Probem with the forward mails #106, 发送邮件的时候勾选了 “退订链接”,我配置了多个域名,退订链接会是配置了的域名+mail前缀,然后会报https证书不信任 #111, DKIM 签名错误识别域名(mail.example.com 被识别为 example.com) #114, DKIM Key Not Regenerated for Existing Domain After a Clean Re-installation #117, Unable to create AI Template #225, docker-compose issue #240, Tags - Unable to add to multiple emails #246, I can't track every email ( click and open) !!!! #263, 使用UTF8会导致发件失败 #265, 最近一直没有登陆后台管理系统出现了Not Found #279, 创建同样名称的邮箱不返回错误 #282, Campaign sends only 1 email then stops - "HostWorkDir not set" error (v4.8.4) #285, Amason SES Duplicate header 'DKIM-Signature' #289, TypeError: can't access property "locale", P[a.value] is undefined #292, Server doesnt send emails trough its own smtp when a relay added then deleted/inacitvated #293, Domain Dedicated Ipv4 is not showing and verifying on DNS Records #297, /api/contact/group/create接口不能返回group_id,很不方便 #306, Bug 手动构建后web空白 #309 + campaigns stuck, tracking URL leak, rate denominator)