-
a3bb3f2396
test(08-03): add failing tests for FavoritesWidget CRUD + view toggle + letter fallback (RED)
schalli
2026-07-01 10:21:49 +02:00
-
-
4645a5f43f
docs(phase-08): update tracking after wave 2
schalli
2026-07-01 10:12:34 +02:00
-
262ce19646
merge(08-02): Stopwatch widget with config persistence
schalli
2026-07-01 10:12:15 +02:00
-
-
93e2b94c47
docs(08-02): complete Stopwatch widget plan summary
schalli
2026-07-01 10:11:46 +02:00
-
c1c7bff929
feat(08-02): StopwatchWidget with config persistence + reload reconstruction (GREEN)
schalli
2026-07-01 10:10:03 +02:00
-
d8d008b2c4
test(08-02): add failing tests for Stopwatch behavior and reload reconstruction (RED)
schalli
2026-07-01 10:08:44 +02:00
-
-
2fa5193fd0
docs(phase-08): update tracking after wave 1
schalli
2026-07-01 10:03:21 +02:00
-
8574218ae6
merge(08-01): widget registry foundation + Calculator widget
schalli
2026-07-01 10:02:43 +02:00
-
-
5e8b2c2c39
docs(08-01): complete widget registry foundation + Calculator plan summary
schalli
2026-07-01 10:01:15 +02:00
-
63ec93bd35
feat(08-01): registry foundation for 4 new widget types + Calculator widget (GREEN)
schalli
2026-07-01 09:57:44 +02:00
-
b751ae7453
test(08-01): add failing tests for Calculator widget and registry constraints (RED)
schalli
2026-07-01 09:54:22 +02:00
-
-
b885c767fb
docs(08): create phase 8 plan — 4 widget slices (Calculator, Stoppuhr, Favorites, Link)
schalli
2026-07-01 09:10:19 +02:00
-
29636bd2b1
docs(08): create phase plan (4 widget vertical slices)
schalli
2026-07-01 09:03:54 +02:00
-
dc7b291d28
docs(08): research phase dashboard-widgets-vollimplementierung
schalli
2026-07-01 08:53:53 +02:00
-
3b0ac41f59
docs(state): record phase 8 context session
schalli
2026-07-01 08:33:00 +02:00
-
53fb106e39
docs(08): capture phase context
schalli
2026-07-01 08:32:54 +02:00
-
-
88db54fa7d
fix(account-settings): clear stale pw error on input + live header avatar update
schalli
2026-06-30 15:29:21 +02:00
-
85cd17452c
refactor(admin): move SMTP settings from user settings to admin area
schalli
2026-06-30 14:47:44 +02:00
-
fe4e64a0ad
docs(quick-260630-gbh): User Settings: Passwort ändern (nur non-LDAP) + Profilbild setzen
schalli
2026-06-30 12:04:20 +02:00
-
86654a466b
merge(quick-260630-gbh): User Settings — Passwort ändern (non-LDAP) + Profilbild
schalli
2026-06-30 12:03:37 +02:00
-
-
5ae498fd88
feat(quick-260630-gbh-01): header avatar display with initial fallback
schalli
2026-06-30 12:02:02 +02:00
-
4482a8ce78
feat(quick-260630-gbh-01): account settings page — avatar upload + conditional password form
schalli
2026-06-30 12:00:40 +02:00
-
0fba45d2c2
feat(quick-260630-gbh-01): avatar storage endpoints + enriched /auth/me
schalli
2026-06-30 11:57:33 +02:00
-
04b37f54f6
docs(260630-gbh): pre-dispatch plan for User Settings: Passwort ändern (nur non-LDAP) + Profilbild setzen
schalli
2026-06-30 11:49:12 +02:00
-
-
dcba4b9977
fix(dkv): search msgfolderroot for EWS subfolder resolution
schalli
2026-06-30 10:23:30 +02:00
-
30eb40c184
feat(dkv): Exchange subfolder support via EWS FindFolder
schalli
2026-06-30 10:04:24 +02:00
-
b5bf3ed8c0
fix(dkv): return username in GET /dkv/config response
schalli
2026-06-30 09:58:59 +02:00
-
a44e40f101
fix(dkv): correct invoice date extraction; add Exchange IsRead filter + mark-as-read
schalli
2026-06-30 09:47:17 +02:00
-
66ffad149e
fix(dkv): extract invoice number/date from PDF, rename export files to RG-DKV format
schalli
2026-06-30 09:39:51 +02:00
-
5c1aa03270
fix(dkv): handle EV charging rows and service rows in single-tx tab parser
schalli
2026-06-30 09:20:12 +02:00
-
a759e816a0
fix(dkv): fix Kennzeichen matching and NaN/invalid km values in Excel export
schalli
2026-06-30 09:12:13 +02:00
-
c9328f60b7
fix(api): create /app/user-files with nestjs ownership in Dockerfile
schalli
2026-06-30 08:44:21 +02:00
-
ccfd3f21cf
fix(dkv): fix EWS attachment ID extraction — FileAttachment has no Id attribute
schalli
2026-06-30 08:41:17 +02:00
-
9efa3bab1d
fix(dkv): fix inbox processing pipeline — orphan tenant, MIME detection, UNSEEN filter
schalli
2026-06-30 08:31:36 +02:00
-
9a652ea440
chore(web): remove debug logging from changePasswordAction
schalli
2026-06-30 07:30:39 +02:00
-
40c4876a19
fix(web): move redirect() outside try/catch in changePasswordAction
schalli
2026-06-30 07:25:57 +02:00
-
f4ece4890d
fix(web): redirect from server action after password change
schalli
2026-06-30 07:20:14 +02:00
-
195354cd7a
debug(web): log set-cookie header value from API change-password response
schalli
2026-06-30 07:12:45 +02:00
-
f96a0db769
fix(web): forward new session cookie after password change
schalli
2026-06-29 16:47:55 +02:00
-
c8210a2abc
debug(web): add logging to changePasswordAction to diagnose Verbindungsfehler
schalli
2026-06-29 16:38:48 +02:00
-
a8cd528f5a
fix(prod): default TESSERA_FORCE_CHANGE to false
schalli
2026-06-29 16:34:10 +02:00
-
5779f0f6c9
fix(api): reissue JWT with mustChangePassword=false after password change
schalli
2026-06-29 16:09:36 +02:00
-
b28ee472c5
fix(api): use user.id instead of user.sub in changePassword controller
schalli
2026-06-29 16:02:38 +02:00
-
46ba8868c7
fix(web): change password via server action instead of client-side fetch
schalli
2026-06-29 15:54:29 +02:00
-
6020021370
fix(web): use http://api:3001 as default rewrite destination
schalli
2026-06-29 15:42:44 +02:00
-
c42ab5dc6f
fix(web): proxy client API calls through Next.js to fix production connectivity
schalli
2026-06-29 15:36:06 +02:00
-
24868ec1b8
chore(db): add migration for all tables missing from history
schalli
2026-06-29 15:17:27 +02:00
-
27c3abf3df
fix(deploy): correct prisma binary path in API startup
schalli
2026-06-29 15:08:07 +02:00
-
e26fbd720e
fix(deploy): embed prisma migrate deploy in API startup
schalli
2026-06-29 14:50:42 +02:00
-
14e6e8401f
chore: clarify SMTP env vars as optional bootstrap fallback
schalli
2026-06-29 14:42:33 +02:00
-
aefd79ad75
chore: add prod deploy files — migration service + env example
schalli
2026-06-29 14:38:18 +02:00
-
7a9e620db7
ci: push images via localhost:3002 to bypass NPM proxy
schalli
2026-06-29 14:27:42 +02:00
-
8a02203efc
ci: trigger publish after proxy_request_buffering fix
schalli
2026-06-29 12:53:09 +02:00
-
35c81c4439
chore: replace Traefik with Nginx Proxy Manager in stack docs
schalli
2026-06-29 11:54:12 +02:00
-
78a1f9bf49
ci: trigger publish after Gitea blob-upload timeout fix
schalli
2026-06-29 11:42:34 +02:00
-
c6a6b3a4bc
chore: update session state and resume note
schalli
2026-06-29 11:15:21 +02:00
-
28d4fa5c82
fix(ci): fix sidebar tests + add registry publish + prod compose
schalli
2026-06-29 11:14:34 +02:00
-
fc4c006f30
chore(07): UAT Test 7 pass — Exchange NTLM connection verified
schalli
2026-06-29 10:16:21 +02:00
-
a4e03830c1
fix(07): NTLM support for Exchange EWS + crypto key init timing fix
schalli
2026-06-29 10:02:48 +02:00
-
3b2a36cd61
feat(07): add CSV format help text and Exchange 401 diagnostic hints
schalli
2026-06-29 09:42:08 +02:00
-
9b453e3ed3
fix(07): propagate Exchange connection error, add folder selection for Exchange
schalli
2026-06-29 09:33:13 +02:00
-
01ff137f43
fix(07): UAT fixes — SMTP test email, DKV routing, Exchange domain field
schalli
2026-06-28 21:58:26 +02:00
-
4de87a8ea2
fix(07): SMTP test warns when connection passes but no auth configured
schalli
2026-06-28 01:29:53 +02:00
-
853095faef
fix(07): SMTP test falls back to stored username and adds 10s timeouts
schalli
2026-06-27 21:04:58 +02:00
-
8320a34035
fix(07): replace TenantMiddleware with TenantGuard to fix tenant context
schalli
2026-06-27 20:57:03 +02:00
-
dd5bc90395
fix(07): DKV/Settings module wiring and missing cron dep
schalli
2026-06-27 20:28:06 +02:00
-
5d6024569a
test(07): begin UAT — 1 issue (cold start DB P1001), 8 tests pending
schalli
2026-06-27 18:02:15 +02:00
-
071531f880
docs(07): add code review fix report
schalli
2026-06-27 17:23:37 +02:00
-
d2d224cdd5
fix(07): WR-05 add 5 MB file size limit to CSV vehicle import endpoint
schalli
2026-06-27 17:22:27 +02:00
-
9de16babe4
fix(07): WR-04 sanitise Exchange UniqueId in invoice number fallback
schalli
2026-06-27 17:22:09 +02:00
-
338655c57b
fix(07): WR-03 replace dead try/catch in formatDateTime with isNaN guard
schalli
2026-06-27 17:21:51 +02:00
-
49eab55abe
fix(07): WR-02 add @Type(Number) coercion to pagination DTO fields
schalli
2026-06-27 17:21:28 +02:00
-
ded652382d
fix(07): WR-01 close nodemailer transport in finally to prevent pool leak
schalli
2026-06-27 17:21:01 +02:00
-
cb0d378ded
fix(07): CR-03 close IMAP connection when getMailboxLock throws
schalli
2026-06-27 17:20:39 +02:00
-
955a94638c
fix(07): CR-02 correct cron expression for pollIntervalMin >= 60
schalli
2026-06-27 17:20:11 +02:00
-
f3f610f9e1
fix(07): CR-01 rename import return field imported→count to match frontend
schalli
2026-06-27 17:19:44 +02:00
-
d93819fa27
docs(07): add code review report
schalli
2026-06-27 17:14:44 +02:00
-
d3e8e6400a
docs(07-06): complete SMTP settings UI plan
schalli
2026-06-27 17:06:04 +02:00
-
75aec38dae
feat(07-06): extend SettingsSidebar with Allgemein > SMTP category
schalli
2026-06-27 17:04:25 +02:00
-
fd2dda69cb
feat(07-06): settings-api client + SmtpSettingsForm + SMTP page (DKV-05)
schalli
2026-06-27 17:03:57 +02:00
-
a96d79ad52
test(07-06): add failing SMTP settings form tests (RED — DKV-05)
schalli
2026-06-27 17:00:27 +02:00
-
5c191c8d10
docs(07-05): complete DKV fleet module frontend plan
schalli
2026-06-27 00:43:55 +02:00
-
4d81b8b2d5
feat(07-05): VehicleTable + CsvImportButton + vehicles page — GREEN (DKV-03)
schalli
2026-06-27 00:41:03 +02:00
-
c739d2788b
test(07-05): add failing VehicleTable tests (RED — DKV-03)
schalli
2026-06-27 00:38:38 +02:00
-
45e9a3591f
feat(07-05): settings page + InboxConfigForm — Surface B inbox tab (DKV-01)
schalli
2026-06-27 00:37:50 +02:00
-
2fe7bca6e8
feat(07-05): dkv-api client + Surface A — history table + export list + check-now
schalli
2026-06-27 00:36:28 +02:00
-
316f8353b7
docs(07-04): complete DKV integration plane plan
schalli
2026-06-27 00:32:19 +02:00
-
2a3d1c1e85
feat(07-04): DkvModule + registry seed + AppModule registration + i18n keys
schalli
2026-06-27 00:30:08 +02:00
-
c22d36758c
feat(07-04): DkvSchedulerService + DkvController — dynamic cron + REST surface
schalli
2026-06-27 00:28:18 +02:00
-
c40a023321
feat(07-04): DkvService — pipeline orchestration + vehicle/config/history logic
schalli
2026-06-27 00:24:47 +02:00
-
4ed1889c8d
docs(07-03): complete DKV export + SMTP settings plan
schalli
2026-06-27 00:16:05 +02:00
-
de48e35c74
feat(07-03): Migrate MailModule to DB-sourced SMTP transport with env fallback (D-06)
schalli
2026-06-27 00:12:43 +02:00
-
4deefb52de
feat(07-03): DkvMailService — runtime nodemailer transport with xlsx attachment (DKV-04)
schalli
2026-06-27 00:11:59 +02:00
-
6b76ca9633
feat(07-03): DkvExportService — xlsx generation + user-files/ prune (DKV-04)
schalli
2026-06-27 00:10:56 +02:00
-
1bec0e76ee
feat(07-03): SettingsModule — SMTP config backend + connection test (DKV-05)
schalli
2026-06-27 00:09:47 +02:00
-
c7b0103a10
docs(07-02): complete DKV inbox-access layer plan
schalli
2026-06-27 00:06:24 +02:00
-
924de76f93
feat(07-02): ExchangeInboxProvider — EWS email inbox access
schalli
2026-06-27 00:03:56 +02:00
-
b3f21a8747
feat(07-02): ImapProvider — IMAP inbox access via imapflow
schalli
2026-06-27 00:02:00 +02:00
-
86ec8966d0
feat(07-02): InboxProvider interface + config/vehicle/history DTOs
schalli
2026-06-27 00:00:14 +02:00
-
6bf032ef94
docs(07-01): complete DKV backend foundation plan
schalli
2026-06-26 19:39:18 +02:00