-
e1a12b2c23
fix(electron): real VNCmail+ branding, not just a rename
Bernd Rodler
2026-08-05 21:01:38 +02:00
-
e44f2ac97e
branding: rename app to VNCmail+ (Electron)
Bernd Rodler
2026-08-05 20:36:12 +02:00
-
9b5870ca69
deploy(dev): pin sandbox to sha-d0a1cee6 + IfNotPresent pull policy
Bernd Rodler
2026-08-05 19:47:28 +02:00
-
2e8bb9983a
fix(ci): back to GHCR - GitLab's registry vhost serves Rails, not the registry
Bernd Rodler
2026-08-05 19:40:49 +02:00
-
d0a1cee6fd
fix(ci): build with Kaniko instead of docker-in-docker
Bernd Rodler
2026-08-05 19:37:42 +02:00
-
19663610d7
fix(ci): use localhost, not the docker: alias, to reach dind
Bernd Rodler
2026-08-05 19:35:38 +02:00
-
36167eaa84
fix(ci): point docker client at dind over plaintext TCP
Bernd Rodler
2026-08-05 19:33:59 +02:00
-
c71175e596
fix(ci): switch back to GitLab's native Container Registry
Bernd Rodler
2026-08-05 19:29:42 +02:00
-
68d08dbae6
fix(ci): revert to GHCR - GitLab's own registry never got past step 1
Bernd Rodler
2026-08-05 19:16:21 +02:00
-
7cce5c0393
Merge branch 'claude/webmail-offline-replica' into 'dev'
Bernd-Rodler
2026-08-05 17:05:29 +00:00
-
-
6b6ff72c38
Merge branch 'claude/activate-smime-plugin' into 'dev'
Bernd-Rodler
2026-08-05 16:42:15 +00:00
-
-
57a5c692be
fix(k8s): drop imagePullSecrets - the ghcr package is confirmed public
Bernd Rodler
2026-08-05 18:26:58 +02:00
-
84290a67be
Merge remote-tracking branch 'gitlab/claude/src-branding' into dev-merge-batch1
Bernd Rodler
2026-08-05 17:58:14 +02:00
-
-
ada2b3a7a1
Merge remote-tracking branch 'gitlab/claude/electron-userdata-dirs' into dev-merge-batch1
Bernd Rodler
2026-08-05 17:58:14 +02:00
-
-
3338ceb5eb
docs: correct the mobile replica — it is NOT encrypted
Bernd Rodler
2026-08-05 17:21:20 +02:00
-
15b189357e
docs: architecture overview, sandbox dev manual, production scale-out plan
Bernd Rodler
2026-08-05 13:44:07 +02:00
-
ab79288be8
Merge remote-tracking branch 'gitlab/claude/gitlab-ci-dev-prod-pipeline' into dev-merge-batch1
Bernd Rodler
2026-08-05 17:58:03 +02:00
-
-
e6e1612435
feat(branding): SRC mark + SRC as default theme, and let an admin logo win
Bernd Rodler
2026-08-05 17:48:42 +02:00
-
f01f50922e
feat(electron): real offline mail replica — delta sync, full bodies, retention

Bernd RodlerandClaude Opus 5
2026-08-05 17:40:13 +02:00
-
-
-
48b18a853f
fix(electron): stop the app writing state into its own bundle, deep-sign it
Bernd Rodler
2026-08-05 17:10:59 +02:00
-
-
665a392ce0
feat(smime): actually install the audited S/MIME plugin in real builds

Bernd RodlerandClaude Opus 5
2026-08-05 17:01:47 +02:00
-
-
-
505e65f319
fix(electron): disable npmRebuild so packaging doesn't need Xcode CLT
Bernd Rodler
2026-08-05 14:29:17 +02:00
-
-
-
177b2aca57
feat(ci): pivot to ArgoCD GitOps, fix Traefik ingress after real-cluster check
Bernd Rodler
2026-08-05 13:06:22 +02:00
-
3512f935d1
feat(ci): GitLab CI/CD dev→prod pipeline, kustomize base+overlays
Bernd Rodler
2026-08-05 11:43:55 +02:00
-
-
12908ab706
Merge branch 'claude/electron-offline-design' into dev
Bernd Rodler
2026-08-05 11:08:59 +02:00
-
-
a10ee48ef3
fix(jmap): poll ContactCard/FileNode state too, not just Mailbox/Email/Calendar
Bernd Rodler
2026-08-05 11:02:35 +02:00
-
31b4ea2ecd
docs: mark the offline-engine design + review as superseded

Bernd RodlerandClaude Sonnet 5
2026-08-04 23:44:57 +02:00
-
0271df4338
fix(mail-index): real end-to-end verification, and the three bugs it found

Bernd RodlerandClaude Sonnet 5
2026-08-04 23:43:52 +02:00
-
7e9aefcfa1
test(mail-index): unit tests for the extractors, FTS query builder and store

Bernd RodlerandClaude Sonnet 5
2026-08-04 23:20:12 +02:00
-
b966d285a9
feat(mail-index): encrypted SQLite/FTS5 index over mail, calendar, contacts, files

Bernd RodlerandClaude Sonnet 5
2026-08-04 23:16:22 +02:00
-
16466c7296
docs: adversarial review of the Electron offline engine design (4 critical, 4 high)
Bernd Rodler
2026-08-04 22:53:06 +02:00
-
2ff4b7847e
docs: record human decisions on Linux keyring policy, retention defaults, review gate
Bernd Rodler
2026-08-04 22:19:23 +02:00
-
46fc221f9e
docs: design for the Electron offline/delta-sync engine (design only)

Bernd RodlerandClaude Sonnet 5
2026-08-04 22:15:10 +02:00
-
b15098a6eb
docs: record WS push completion + browser-can't-auth-WS-handshake caveat
Bernd Rodler
2026-08-04 14:21:03 +02:00
-
0f15132ec0
test(electron): real end-to-end push -> native notification, via SMTP
Bernd Rodler
2026-08-04 14:18:40 +02:00
-
3f3f3a36b1
fix(jmap): CSP blocked wss:, WS circuit breaker too slow to trip
Bernd Rodler
2026-08-04 14:18:08 +02:00
-
5d77a5d7ef
docs(s-mime): comprehensive user guide for S/MIME setup and usage

Bernd RodlerandClaude Opus 5
2026-08-04 13:37:21 +02:00
-
75876725df
docs: log deferred sandbox-login CORS bug (Electron random port vs. real Stalwart origin)
Bernd Rodler
2026-08-04 13:26:14 +02:00
-
2416f1863b
feat(jmap): JMAP-over-WebSocket push (RFC 8887), preferred over SSE
Bernd Rodler
2026-08-04 13:25:49 +02:00
-
b6fdfe72ca
chore: housekeeping — rescue orphaned doc, ignore .DS_Store, adopt vnc-v0.3.0
vnc-v0.3.0

Bernd RodlerandClaude Opus 5
2026-08-04 13:10:03 +02:00
-
568b7137ea
docs: extensive build manual for the native/desktop client program
Bernd Rodler
2026-08-04 13:08:58 +02:00
-
3afa7ce012
feat(smime): CaProvider seam + server-side enrolment route (A-02, C-08 half)

Bernd RodlerandClaude Opus 5
2026-08-04 13:02:21 +02:00
-
0bb098438a
ci(electron): GitHub Actions matrix build - mac/win/linux, unsigned
Bernd Rodler
2026-08-04 12:58:41 +02:00
-
759ab7fe8c
feat(ca): EJBCA Community manifests + root ceremony runbook for A-01/A-06

Bernd RodlerandClaude Opus 5
2026-08-04 12:58:04 +02:00
-
fb40e74713
fix(smime): certificate address binding prefers the deprecated DN attribute

Bernd RodlerandClaude Opus 5
2026-08-04 12:57:40 +02:00
-
cab43b8d06
feat(electron): auto-update via electron-updater + GitHub Releases
Bernd Rodler
2026-08-04 12:57:13 +02:00
-
4d817ea932
feat(electron): packaging targets - mac/win/linux, unsigned
Bernd Rodler
2026-08-04 12:54:43 +02:00
-
b8f668d25a
feat(electron): native notification bridge over contextBridge/IPC
Bernd Rodler
2026-08-04 12:48:30 +02:00
-
9254a7fa20
test(electron): smoke test as the regression gate for the desktop shell
Bernd Rodler
2026-08-04 12:45:42 +02:00
-
fe77e9f52b
docs: file two host-app issues found during the S/MIME spike

Bernd RodlerandClaude Opus 4.8
2026-08-04 12:44:53 +02:00
-
4ff15fffaa
chore(electron): wire package.json scripts + main entry, gitignore build output
Bernd Rodler
2026-08-04 12:42:19 +02:00
-
218a584fb3
feat(electron): walking skeleton for the desktop shell
Bernd Rodler
2026-08-04 12:41:35 +02:00
-
a9af816012
docs(smime): record finding 10 (banner race) in the audit

Bernd RodlerandClaude Opus 4.8
2026-08-04 12:35:33 +02:00
-
90c1176f93
fix(smime): banner slot can silently miss a resolved signature

Bernd RodlerandClaude Opus 4.8
2026-08-04 12:35:08 +02:00
-
-
5c1f14fa8b
docs(smime): record UI key-import verification

Bernd RodlerandClaude Opus 4.8
2026-08-04 12:09:23 +02:00
-
a4155aa342
security(smime): fix finding 5 (parser DoS) and harden finding 4

Bernd RodlerandClaude Opus 4.8
2026-08-04 11:57:18 +02:00
-
d047891ded
test(smime): real crypto round trip against the patched plugin

Bernd RodlerandClaude Opus 4.8
2026-08-04 11:41:07 +02:00
-
bc5d2a57e8
security(smime): fix audit finding 2 — unauthenticated CBC on decrypt

Bernd RodlerandClaude Opus 4.8
2026-08-04 10:47:43 +02:00
-
f7e487171c
security(smime): fork upstream plugin and fix two audit findings

Bernd RodlerandClaude Opus 4.8
2026-08-04 10:00:11 +02:00
-
e9746fcf78
feat(plugins): admin review panel for scanner findings

Bernd RodlerandClaude Opus 4.8
2026-08-04 09:03:14 +02:00
-
d91db37b34
fix(plugins): scan all bundle scripts, allow audited scanner override

Bernd RodlerandClaude Opus 4.8
2026-08-04 08:57:28 +02:00
-
ae19ad888b
fix(security): gate plugin hook registration on granted permissions

Bernd RodlerandClaude Opus 4.8
2026-08-04 08:57:14 +02:00
-
f0e63de09b
feat(theme): SRC theme v1.1.0 — MD3 components (shape scale, buttons, cards, dialogs, state layers)
Bernd Rodler
2026-08-03 19:13:07 +02:00
-
-
88670d4bcf
feat(theme): per-theme brand logos (VNClagoon wordmark ↔ SRC mark)

Bernd RodlerandClaude Opus 4.8
2026-08-03 18:23:42 +02:00
-
1bc5a6a0ce
feat(theme): add SRC brand theme (Swiss red/white), keep VNClagoon default

Bernd RodlerandClaude Opus 4.8
2026-08-03 18:16:54 +02:00
-
be7bfd1f02
feat(theme): VNClagoon login card — navy card, cyan hairline + top accent + glow

Bernd RodlerandClaude Opus 4.8
2026-08-03 17:45:09 +02:00
-
22e5e97da9
feat(theme): VNClagoon brand theme (navy + cyan) as default, dark-first

Bernd RodlerandClaude Opus 4.8
2026-08-03 17:42:04 +02:00
-
476c76c420
docs(deploy): sharpen k8s admin runbook — inventory, pre-flight, ordered apply

Bernd RodlerandClaude Opus 4.8
2026-08-03 17:13:51 +02:00
-
a3d551b640
feat(deploy): k8s manifests for microk8s (vncmail.sandbox.vnc.de)

Bernd RodlerandClaude Opus 4.8
2026-08-03 17:09:54 +02:00
-
83a9c5a809
docs(setup): dev-first workflow — main=production, dev=preview

Bernd RodlerandClaude Opus 4.8
2026-08-03 16:46:55 +02:00
-
fb4e8f3591
revert(mf): drop microfrontends — VNCmail+ is a standalone project

Bernd RodlerandClaude Opus 4.8
2026-08-03 16:28:12 +02:00
-
0189935e7b
feat(mf): join VNClagoon Suite microfrontends group

Bernd RodlerandClaude Opus 4.8
2026-08-03 16:04:40 +02:00
-
eace443fdf
chore(vnc): bootstrap VNCmail+ fork — vnc/ layer + Vercel runbook

Bernd RodlerandClaude Opus 4.8
2026-08-03 15:42:45 +02:00
-
e94a1429d5
Merge pull request #724 from paulhenry46/userlogout-api-hook

Linus RathandGitHub
2026-08-01 23:09:39 +02:00
-
-
15982c2468
Merge pull request #708 from paulhenry46/user-api-plugin

Linus RathandGitHub
2026-08-01 23:06:53 +02:00
-
-
d15c58f8da
feat: implement logout hook and add a new plugin api method to perform logout
Paulhenry Saux
2026-08-01 20:47:22 +02:00
-
6698ec8456
Merge branch 'bulwarkmail:main' into user-api-plugin

Paulhenry SauxandGitHub
2026-08-01 20:24:08 +02:00
-
-
-
-
-
e738941950
Merge branch 'main' of https://github.com/bulwarkmail/webmail
Linus Rath
2026-08-01 12:28:21 +02:00
-
-
1890cade08
fix: surface underlying network error cause in JMAP passthrough failures
Linus Rath
2026-08-01 11:47:16 +02:00
-
fc7fec44a8
Merge pull request #714 from MathyV/respect-max-calls

Linus RathandGitHub
2026-07-31 05:43:26 +02:00
-
-
1652a0ec62
fix: make bulwark respect server limits
Mathy Vanvoorden
2026-07-30 22:11:40 +02:00
-
-
e659fe3d38
feat: allow contact cards for organizations #701
Linus Rath
2026-07-30 19:44:36 +02:00
-
348e032dce
fix: files show creation date instead of modification date #700
Linus Rath
2026-07-30 19:41:02 +02:00
-
a6c15b8ad6
fix: empty folder stopped after 500 emails #711
Linus Rath
2026-07-30 19:40:25 +02:00
-
5a2bc6b671
Merge branch 'main' of https://github.com/bulwarkmail/webmail
Linus Rath
2026-07-30 19:17:43 +02:00
-
-
59bc7fd64c
fix: reply to own thread message addresses original recipients #703
Linus Rath
2026-07-30 19:02:39 +02:00
-
aa7a814b86
test: rewrite mock email content
Linus Rath
2026-07-30 18:44:53 +02:00
-
c5c6509867
Merge pull request #710 from MathyV/nested-tags

Linus RathandGitHub
2026-07-30 18:41:22 +02:00
-
-
1cdbf75270
fix: use full tag path in drag-drop toasts, fresh email in context menu markAsRead
Linus Rath
2026-07-30 18:39:49 +02:00
-
ea7892b497
feat: Change the dev mode defaults to include nested tags
Mathy Vanvoorden
2026-07-29 19:52:31 +02:00
-
d52dfebad4
Fix Catalan translation warnings
Mathy Vanvoorden
2026-07-29 19:16:31 +02:00
-
7bb58f4f9f
Add translations for new tag functionality
Mathy Vanvoorden
2026-07-29 19:14:28 +02:00
-
f1e1ed1df7
fix: make the tint of selected rows work the same way in dark and light mode
Mathy Vanvoorden
2026-07-29 15:03:51 +02:00
-
d9d9f91a86
feat: Make it easier to handle multiple tags
Mathy Vanvoorden
2026-07-29 14:50:03 +02:00
-
108406a885
feat: improve visualization of tags
Mathy Vanvoorden
2026-07-29 13:55:31 +02:00
-
013ef7d557
fix: remove unused code
Mathy Vanvoorden
2026-07-29 10:56:33 +02:00
-
56d11b5759
fix: remove the reset-to-defaults button from tag settings
Mathy Vanvoorden
2026-07-29 01:16:18 +02:00
-
0c1e238223
feat: allow hidden tags, either permanent or when there are no unread messages
Mathy Vanvoorden
2026-07-29 01:07:11 +02:00
-
ca0ba818b7
feat: Add nesting of tags in a tree
Mathy Vanvoorden
2026-07-29 01:00:27 +02:00
-
-
ce97a54aaa
Merge pull request #705 from guisea/fix/forward-as-attachment-filename-privacy

Linus RathandGitHub
2026-07-29 17:15:12 +02:00
-