This website requires JavaScript.
ac0521cb9b
fix(deploy): puxa a imagem publicada em vez da que está em cache
Lucas Rayan and Claude Opus 5
2026-08-22 10:35:53 -03:00
203316f2c3
fix(webmail): corrige os contadores das pastas e as ações do leitor
Lucas Rayan and Claude Opus 5
2026-08-22 10:18:45 -03:00
1dc87a06c8
feat: add test database setup and teardown for end-to-end tests, ensuring unique and non-ephemeral ports
Lucas Rayan
2026-08-22 09:02:26 -03:00
184769d60f
chore: update dependencies and add trivy ignore file for assessed findings
Lucas Rayan
2026-08-22 08:22:27 -03:00
f330c4324e
Add end-to-end tests for TLS RPT report ingestion and WebSocket event handling
Lucas Rayan
2026-08-21 09:55:37 -03:00
880dced9e4
feat: implement message deletion functionality and improve draft handling
Lucas Rayan
2026-08-20 15:32:14 -03:00
4f1b9c5217
#35 : keep the redesign's source ASCII
Lucas Rayan and Claude Opus 5
2026-08-18 20:32:22 -03:00
b33fc12f08
#35 : replace both web surfaces with the Nocturne redesign
Lucas Rayan and Claude Opus 5
2026-08-18 20:25:24 -03:00
8b69521c76
#34 : fix the mail counters, the reader pane, and the state between surfaces
Lucas Rayan and Claude Opus 5
2026-08-18 14:51:56 -03:00
e2ea58a4c9
#33 : route the DNS verification endpoint to the service that serves it
Lucas Rayan and Claude Opus 5
2026-08-03 14:53:16 -03:00
e5edee096c
#32 : file composed mail, and verify DNS records for real
Lucas Rayan and Claude Opus 5
2026-08-03 14:35:09 -03:00
8cfe339d13
#31 : bound Argon2 concurrency so a login flood cannot kill the auth service
Lucas Rayan and Claude Opus 5
2026-08-03 14:18:02 -03:00
6935f9feeb
#30 : stop enrolment from killing the auth service, and from enabling MFA without recovery codes
Lucas Rayan and Claude Opus 5
2026-08-03 11:49:00 -03:00
c7251211b5
#29 : add reset-mfa, so a broken enrolment does not cost the mailbox
Lucas Rayan and Claude Opus 5
2026-08-03 10:20:21 -03:00
57198e0263
#28 : stop enrolment from silently replacing a secret the authenticator already has
Lucas Rayan and Claude Opus 5
2026-08-03 09:47:59 -03:00
de16efe874
#27 : never publish a DKIM record with an empty key, and say why one is missing
Lucas Rayan and Claude Opus 5
2026-08-03 09:14:54 -03:00
7c3a2d165a
#26 : let the relay's SPF mechanism be configured, not guessed
Lucas Rayan and Claude Opus 5
2026-08-02 20:24:11 -03:00
c83f2f75b2
#25 : deliver mail addressed to this server without going out to the internet
Lucas Rayan and Claude Opus 5
2026-08-02 20:16:53 -03:00
0fcdd15b58
#24 : make draft autosave replace the previous draft
Lucas Rayan and Claude Opus 5
2026-08-02 20:01:12 -03:00
707e6ae80e
#24 : merge feature/24-webmail-send-and-drafts into main
Lucas Rayan
2026-08-02 19:57:08 -03:00
d8e2de2e11
#24 : deliver what the composer wrote, keep a copy, and store drafts
Lucas Rayan and Claude Opus 5
2026-08-02 19:56:59 -03:00
8dab254729
#23 : pin Traefik to the proxy network by name, not by variable
Lucas Rayan and Claude Opus 5
2026-08-02 19:39:38 -03:00
3b6e95ed6c
#23 : record the other half of the image-tag trap
Lucas Rayan and Claude Opus 5
2026-08-02 19:29:54 -03:00
084b1bc204
#23 : document the new sign-in path, container health and the gaps found
Lucas Rayan and Claude Opus 5
2026-08-02 19:15:43 -03:00
39098fa59f
#23 : merge feature/23-real-data-surface-unification into main
Lucas Rayan
2026-08-02 19:13:59 -03:00
ee240ae227
#23 : show real data, unify the surfaces and make enrolment scannable
Lucas Rayan and Claude Opus 5
2026-08-02 19:13:53 -03:00
f7e93275d5
#22 : record why a deployment must pin an immutable image tag
Lucas Rayan and Claude Opus 5
2026-08-02 16:28:26 -03:00
3a82d82428
#22 : fix the admin lockout, and the regressions the UI rewrite brought back
Lucas Rayan and Claude Opus 5
2026-08-02 16:13:14 -03:00
2282dc96e9
#21 : run the new images as non-root, and scope the image scan honestly
Lucas Rayan and Claude Opus 5
2026-08-02 14:48:48 -03:00
13fd2a9cee
#21 : ship the migrations and the Rspamd config inside images
Lucas Rayan and Claude Opus 5
2026-08-02 14:37:26 -03:00
f117e1e9d7
#21 : deploy by pulling the images CI built, not by rebuilding on the server
Lucas Rayan and Claude Opus 5
2026-08-02 14:25:24 -03:00
cea8e7a41e
#21 : use a ClamAV image that exists for arm64
Lucas Rayan and Claude Opus 5
2026-08-02 14:15:10 -03:00
64c9efe078
#21 : keep devDependencies in the build stage regardless of NODE_ENV
Lucas Rayan and Claude Opus 5
2026-08-02 14:08:09 -03:00
7a4ca10a39
#21 : raise the development secrets to the length the guard now requires
Lucas Rayan and Claude Opus 5
2026-08-02 13:56:40 -03:00
9062c14d70
#21 : merge feature/21-f4-real-authentication into main
Lucas Rayan
2026-08-02 13:46:01 -03:00
c0387f6961
#21 : make the stack deployable, and document how
Lucas Rayan and Claude Opus 5
2026-08-02 13:33:51 -03:00
30014f0f41
#21 : fix the DKIM, onboarding and console defects found reviewing the new work
Lucas Rayan and Claude Opus 5
2026-08-02 13:33:33 -03:00
972189a589
#21 : support binary attachment downloads via /api/v1/mail/message/:uid/attachment/:filename in mail API
Lucas Rayan
2026-08-02 10:57:16 -03:00
86aad5087b
#21 : add explicit DOMPurify HTML sanitizer test suite and refine remote image blocker
Lucas Rayan
2026-08-02 10:53:44 -03:00
1707ade6da
#21 : complete admin console with mailbox/alias CRUD, CSV import, guided domain onboarding, DKIM rotation, TLS panel, Rspamd thresholds, queue_id trace, and 10/10 readiness scorecard
Lucas Rayan
2026-08-02 10:50:14 -03:00
56a176d1f0
#21 : enhance webmail with rich-text editor, DOMPurify sanitizer, attachments, sieve builder, and vacation responder
Lucas Rayan
2026-08-02 10:37:03 -03:00
b57854107e
#21 : finish the three translations across every screen
Lucas Rayan and Claude Opus 5
2026-08-02 10:27:14 -03:00
eec4a4e520
#21 : complete the account area and audit every admin mutation
Lucas Rayan and Claude Opus 5
2026-08-02 10:27:14 -03:00
93d21b4752
#21 : push new mail to the browser over WebSocket
Lucas Rayan and Claude Opus 5
2026-08-02 10:26:54 -03:00
3e60852551
#21 : put real mail on the webmail screens
Lucas Rayan and Claude Opus 5
2026-08-02 10:04:05 -03:00
48fe3c68f3
#21 : serve the webmail mail API from the protocols service
Lucas Rayan and Claude Opus 5
2026-08-02 10:03:25 -03:00
d33068a43c
#21 : fill in message metadata and stop losing mail to a missing folder
Lucas Rayan and Claude Opus 5
2026-08-02 10:03:03 -03:00
da1db03880
#21 : run the tests that prove the auth fixes, in CI
Lucas Rayan and Claude Opus 5
2026-08-02 09:34:04 -03:00
132cecd41c
#21 : guard the web surfaces and connect them to the auth service
Lucas Rayan and Claude Opus 5
2026-08-02 09:33:49 -03:00
833dc76c2e
#21 : make the auth service actually authenticate
Lucas Rayan and Claude Opus 5
2026-08-02 09:33:29 -03:00
23da5f43e4
#20 : fix non-ASCII lint violations in webmail and router source files
Lucas Rayan
2026-08-02 08:39:52 -03:00
7e638ddc5b
#20 : implement F4 webmail, admin console, 2FA TOTP, and i18n
Lucas Rayan
2026-08-02 08:39:03 -03:00
6e01fc7ffb
#20 : implement F4 webmail, admin console, 2FA TOTP, surface isolation, and i18n
Lucas Rayan
2026-08-02 08:39:00 -03:00
43dcea1ade
#19 : silence the CI annotations and stop cancelling a run on every merge
Lucas Rayan and Claude Opus 5
2026-08-02 08:20:19 -03:00
a9960d1c7c
#19 : locate the repository root by a file that is actually committed
Lucas Rayan and Claude Opus 5
2026-08-02 08:07:59 -03:00
d9fb6737d5
#19 : merge feature/19-f1-f3-audit-and-ci-hardening into main
Lucas Rayan
2026-08-02 08:01:26 -03:00
46d421c874
#19 : add Trivy scanning and multi-architecture GHCR publishing
Lucas Rayan and Claude Opus 5
2026-08-02 07:58:02 -03:00
3deb328bbf
#19 : repair the compose stack and wire Rspamd to Redis
Lucas Rayan and Claude Opus 5
2026-08-02 07:57:39 -03:00
33d91fa247
#19 : fix F1-F3 defects found auditing the phases against PLAN.md
Lucas Rayan and Claude Opus 5
2026-08-02 07:57:22 -03:00
2e0e65b167
#18 : merge feature/18-submission-smtp-authenticator-preflight into main
Lucas Rayan
2026-08-01 22:49:11 -03:00
d56f29d084
#18 : implement SMTP Submission (587/465), SASL PLAIN/LOGIN auth and preflight diagnostics
Lucas Rayan
2026-08-01 22:49:02 -03:00
7249419efc
#17 : merge feature/17-outbound-delivery-tls-dane-mta-sts into main
Lucas Rayan
2026-08-01 22:48:47 -03:00
bd0af98076
#17 : implement DANE TLSA, MTA-STS policy resolution, ARC sealing and mail authentication
Lucas Rayan
2026-08-01 22:48:38 -03:00
df8b809683
#16 : merge feature/16-dkim-provisioning-rotation into main
Lucas Rayan
2026-08-01 22:48:24 -03:00
b96be4a2a5
#16 : implement DKIM key provisioning, Ed25519 & RSA dual signatures and rotation
Lucas Rayan
2026-08-01 22:48:15 -03:00
68799acea0
#15 : merge feature/15-acme-tls-cert-watcher into main
Lucas Rayan
2026-08-01 22:48:01 -03:00
6ef427dc09
#15 : implement ACME certificate store, Traefik/Coolify cert watcher & secrets vault
Lucas Rayan
2026-08-01 22:47:53 -03:00
769e0b59f0
#14 : add DEFAULT fallback partition to email_messages table schema
Lucas Rayan
2026-08-01 22:42:43 -03:00
2f46e79ccd
#14 : merge feature/14-f3-complete-e2e into main
Lucas Rayan
2026-07-25 10:43:04 -03:00
842a9058d8
#14 : implement Phase 3 complete E2E integration test
Lucas Rayan
2026-07-25 10:42:50 -03:00
df29a8e760
#13 : merge feature/13-outbound-queue-dsn-bounces into main
Lucas Rayan
2026-07-25 10:33:13 -03:00
af35211094
#13 : implement Outbound Queue, Retry Backoff Engine & DSN Bounce Generator (RFC 3464)
Lucas Rayan
2026-07-25 10:33:07 -03:00
45aaf2a279
#12 : merge feature/12-antispam-antivirus-pipeline into main
Lucas Rayan
2026-07-25 10:26:00 -03:00
54d1ea5810
#12 : implement Antispam & Antivirus scanning pipeline (Rspamd & ClamAV)
Lucas Rayan
2026-07-25 10:25:52 -03:00
4c2e0b9563
#11 : merge feature/11-mta-sts-autoconfig-http into main
Lucas Rayan
2026-07-25 10:18:10 -03:00
314eb67dda
#11 : implement MTA-STS, TLS-RPT & Autoconfig HTTP services
Lucas Rayan
2026-07-25 10:18:03 -03:00
c0042ef207
#10 : merge feature/10-dns-automation into main
Lucas Rayan
2026-07-25 05:26:23 -03:00
10836ea98f
#10 : implement Cloudflare DNS automation engine (13 records & system aliases)
Lucas Rayan
2026-07-25 05:26:14 -03:00
b08bce71bb
#9 : merge feature/9-f2-complete-e2e into main
Lucas Rayan
2026-07-25 04:33:57 -03:00
1938b3e75a
#9 : add complete F2 end-to-end integration test suite
Lucas Rayan
2026-07-25 04:33:50 -03:00
a31f862212
#8 : merge feature/8-managesieve-server into main
Lucas Rayan
2026-07-25 04:20:30 -03:00
0e6fc27bc1
#8 : implement ManageSieve protocol server (RFC 5804)
Lucas Rayan
2026-07-25 04:20:21 -03:00
5a7dcc002a
#6 : fix E2E search result length assertion for IMAP4rev1 search
Lucas Rayan
2026-07-24 12:02:49 -03:00
31a465e2e5
#6 : fix pointer type matching in numSetIter for IMAP STORE/FETCH
Lucas Rayan
2026-07-24 11:57:22 -03:00
74e8758f10
#7 : merge feature/7-pop3-server into main
Lucas Rayan
2026-07-24 11:51:40 -03:00
9ca97298bd
#7 : implement POP3 protocol server (RFC 1939, RFC 2449, STLS)
Lucas Rayan
2026-07-24 11:51:27 -03:00
883c78e48c
#6 : merge feature/6-imap-idle-condstore into main
Lucas Rayan
2026-07-24 11:43:52 -03:00
6b1e4dc00a
#6 : implement IMAP IDLE (RFC 2177) and CONDSTORE (RFC 7162)
Lucas Rayan
2026-07-24 11:43:17 -03:00
0ec0698079
#5 : F2 sub-project 2 - IMAP SEARCH, EXPUNGE, COPY, MOVE
Lucas Rayan and Claude Sonnet 5
2026-07-24 09:40:47 -03:00
de082a190c
#4 : F2 sub-project 1 - IMAP core (auth, LIST, SELECT, FETCH, STORE)
Lucas Rayan
2026-07-23 20:34:58 -03:00
9fa19291d4
#4 : implement F2 sub-project 1 - IMAP core (auth, LIST, SELECT, FETCH, STORE)
Lucas Rayan
2026-07-23 20:34:48 -03:00
fc8bbaa3ce
#3 : F0/F1 validation - embedded-Postgres E2E test + close 3 known gaps
Lucas Rayan
2026-07-23 12:14:33 -03:00
2f7389841d
#3 : close 3 known F1 gaps - folder/mailbox counters, quota-at-RCPT, alias fan-out
Lucas Rayan
2026-07-23 11:36:03 -03:00
097fa373e1
#3 : add embedded-Postgres E2E test validating F1 inbound SMTP against PLAN acceptance criteria
Lucas Rayan and Claude Fable 5
2026-07-23 11:23:19 -03:00
6980a08516
#2 : F1 sub-project 1 - inbound SMTP listener with EML storage
Lucas Rayan
2026-07-23 11:16:47 -03:00
e501cdc69e
#2 : implement F1 sub-project 1 - inbound SMTP listener with EML storage
Lucas Rayan
2026-07-23 08:41:31 -03:00
7c91182111
#1 : fix webmail healthcheck - Next standalone binds IPv4-only, wget resolved localhost to ::1
Lucas Rayan
2026-07-23 06:51:28 -03:00
096263e0e9
#1 : F0 foundation - monorepo, migrations, Go domain layer, service skeletons, CI
Lucas Rayan
2026-07-23 06:32:56 -03:00
eb09fa0ced
#1 : implement F0 foundation - monorepo, migrations, Go domain layer, service skeletons, CI
Lucas Rayan
2026-07-23 05:05:46 -03:00
f219b28075
Initial commit
Lucas Rayan Guerra
2026-07-23 02:18:24 -03:00