Commit Graph

236 Commits

Author SHA1 Message Date
schalli d458c2eec7 docs(roadmap): fix stale progress table for phases 1-6
Phases 1, 3, 4, 6 were fully executed (all plans have SUMMARY files)
but the roadmap still showed them as In Progress/Not started. Phase 2
is the actual gap: plan 02-05 (visual verification checkpoint) was
never run.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-07 08:11:52 +02:00
schalli 610b649bdf chore: remove handoff and continue-here files (phase 9 complete)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-02 08:57:52 +02:00
schalli 2869da83c0 chore: planning artifacts + mcp.json update
- .mcp.json: Playwright MCP config
- 08-UAT.md: Phase 8 UAT results
- quick task summaries: 260630 user-settings, 260701 calendar domain

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-02 08:57:44 +02:00
schalli cc95395889 docs(state): mark phase 9 complete — milestone v1.0 done
All 9 phases complete, 40/40 plans executed, UAT 8/8 passed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-02 08:46:32 +02:00
schalli 2ddd8473dc test(09): complete UAT — 8/8 passed (automated Playwright)
All cert-manager features verified:
- Module navigation & 4-tab structure
- Inspect PEM (full grid: CN, SANs, expiry, fingerprints)
- Wrong PFX password → user-friendly error
- Split fullchain.pem → per-cert downloads
- Convert PEM→DER (openssl-verified)
- Convert PEM→PFX + password field (openssl-verified)
- Merge 2 PEMs → chain.pem (2 cert blocks)
- Merge 2 certs → bundle.pfx + password (openssl-verified)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-02 08:46:07 +02:00
schalli c673faa40d wip: phase-09 paused after UAT blocker (docker rebuild needed) 2026-07-02 08:23:17 +02:00
schalli daff82ea76 docs(09-06): complete merge-pfx plan — final plan of phase 09
Tessera CI/CD / Tests (push) Has been cancelled
Tessera CI/CD / Build & Publish Images (push) Has been cancelled
Tessera CI/CD / Lint & Type Check (push) Has been cancelled
2026-07-02 07:55:54 +02:00
schalli db7a85cc4c docs(09-05): complete convert-vertical-slice plan 2026-07-02 07:41:34 +02:00
schalli a1da5d9083 docs(09-04): complete split-slice plan 2026-07-02 07:17:46 +02:00
schalli da676705d9 docs(09-03): complete inspect-slice plan 2026-07-01 23:57:54 +02:00
schalli b1aa1d0d2d wip: phase 09 paused after wave 1 (2/6 plans done) 2026-07-01 23:27:53 +02:00
schalli 76d1a31583 docs(phase-09): update tracking after wave 1 2026-07-01 23:26:56 +02:00
schalli 4fc448b1d4 merge(09-02): cert-manager web shell + i18n (resolve de/en.json conflict) 2026-07-01 23:26:12 +02:00
schalli 637f4674ca merge(09-01): resolve app.module.ts conflict (CertManagerModule + FavoritesModule)
Tessera CI/CD / Lint & Type Check (push) Failing after 37s
Tessera CI/CD / Tests (push) Has been skipped
Tessera CI/CD / Build & Publish Images (push) Has been skipped
2026-07-01 23:25:48 +02:00
schalli 7ad4f22a75 docs(09-02): complete cert-manager frontend shell plan 2026-07-01 23:24:25 +02:00
schalli 3506d60dbe docs(09-01): complete cert-manager API foundation plan summary
- SUMMARY.md with task results, deviations, stub tracking, threat scan
- Self-check: all 9 files found, 3 commits verified, 11 tests green
2026-07-01 23:22:51 +02:00
schalli 812eb06d9b docs(09): create phase plan + resolve open questions 2026-07-01 16:28:31 +02:00
schalli 063666af3b docs(09): create cert-manager phase plan (6 plans)
Tessera CI/CD / Lint & Type Check (push) Failing after 41s
Tessera CI/CD / Tests (push) Has been skipped
Tessera CI/CD / Build & Publish Images (push) Has been skipped
2026-07-01 16:24:31 +02:00
schalli ad7de8de2d docs(09): research phase 9 cert-manager module
Tessera CI/CD / Lint & Type Check (push) Failing after 43s
Tessera CI/CD / Tests (push) Has been skipped
Tessera CI/CD / Build & Publish Images (push) Has been skipped
2026-07-01 16:05:42 +02:00
schalli 6ee31a22fb docs(09): UI design contract 2026-07-01 15:49:15 +02:00
schalli 09d5231148 docs(09): UI design contract 2026-07-01 15:47:00 +02:00
schalli 5b75b3284a wip: phase 9 cert-manager paused at planning (UI-SPEC needed) 2026-07-01 15:43:47 +02:00
schalli a32f5f948b docs(09): add Phase 9 Cert Manager to roadmap + capture context
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-01 15:39:24 +02:00
schalli 42daa87e5e feat(calendar): add domain field and test-connection button to Exchange sources
- Prisma: domain String? added to CalendarSource model (db push applied)
- DTOs: domain in CreateCalendarSourceDto, UpdateCalendarSourceDto, new TestCalendarSourceConfigDto
- Service: domain in SOURCE_SAFE_SELECT, addSource, updateSource; new testConnectionFromConfig method
- Controller: POST /calendar/sources/test-config (before :id routes to avoid collision)
- ExchangeProvider: domain in all source interfaces; passed as 3rd arg to EWS WebCredentials
- Frontend: domain in CalendarSource/CreateSourcePayload/UpdateSourcePayload; testSourceConfig API fn
- Form: domain field (Exchange-only), "Test connection" button with idle/loading/success/error states
- i18n: de+en keys for formFieldDomain, formFieldDomainHint, formTestConnection, formTesting, formTestSuccess, formTestFailed

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-01 13:15:13 +02:00
schalli f6173bbe35 docs(quick-260701-abc): fix i18n missing keys — summary and state update
Tessera CI/CD / Lint & Type Check (push) Successful in 45s
Tessera CI/CD / Tests (push) Has been cancelled
Tessera CI/CD / Build & Publish Images (push) Has been cancelled
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-01 12:06:32 +02:00
schalli 54e4731b36 docs(08): add code review report 2026-07-01 10:59:02 +02:00
schalli 34df808d83 docs(phase-08): update tracking after wave 4 2026-07-01 10:51:53 +02:00
schalli dcff93e2ae docs(08-04): complete Link widget plan summary
- 3/3 tasks complete (RED test → GREEN implementation → full suite gate)
- 88/88 web tests passing (18 test files, +7 link-widget tests)
- web + api tsc --noEmit clean
- LinkWidget: single-link D-06 via FavoriteLink backend reuse
2026-07-01 10:51:08 +02:00
schalli 7b42a3aef9 docs(phase-08): update tracking after wave 3 2026-07-01 10:39:05 +02:00
schalli f7d4818c0a docs(08-03): complete Favorites widget plan summary 2026-07-01 10:38:28 +02:00
schalli 4645a5f43f docs(phase-08): update tracking after wave 2 2026-07-01 10:12:34 +02:00
schalli 93e2b94c47 docs(08-02): complete Stopwatch widget plan summary
- 3/3 tasks complete, 7/7 tests pass, tsc clean
- Worktree fast-forward deviation documented
2026-07-01 10:11:46 +02:00
schalli 2fa5193fd0 docs(phase-08): update tracking after wave 1
Tessera CI/CD / Lint & Type Check (push) Successful in 46s
Tessera CI/CD / Tests (push) Has been cancelled
Tessera CI/CD / Build & Publish Images (push) Has been cancelled
2026-07-01 10:03:21 +02:00
schalli 5e8b2c2c39 docs(08-01): complete widget registry foundation + Calculator plan summary
- 3/3 tasks executed (RED/GREEN/verify)
- 16 tests added and passing (67 total web suite)
- SUMMARY.md created with self-check PASSED
2026-07-01 10:01:15 +02:00
schalli b885c767fb docs(08): create phase 8 plan — 4 widget slices (Calculator, Stoppuhr, Favorites, Link) 2026-07-01 09:10:19 +02:00
schalli 29636bd2b1 docs(08): create phase plan (4 widget vertical slices) 2026-07-01 09:03:54 +02:00
schalli dc7b291d28 docs(08): research phase dashboard-widgets-vollimplementierung 2026-07-01 08:53:53 +02:00
schalli 3b0ac41f59 docs(state): record phase 8 context session 2026-07-01 08:33:00 +02:00
schalli 53fb106e39 docs(08): capture phase context 2026-07-01 08:32:54 +02:00
schalli fe4e64a0ad docs(quick-260630-gbh): User Settings: Passwort ändern (nur non-LDAP) + Profilbild setzen
Tessera CI/CD / Lint & Type Check (push) Successful in 49s
Tessera CI/CD / Tests (push) Successful in 42s
Tessera CI/CD / Build & Publish Images (push) Successful in 1m42s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-30 12:04:20 +02:00
schalli 04b37f54f6 docs(260630-gbh): pre-dispatch plan for User Settings: Passwort ändern (nur non-LDAP) + Profilbild setzen 2026-06-30 11:49:12 +02:00
schalli c6a6b3a4bc chore: update session state and resume note
Tessera CI/CD / Lint & Type Check (push) Successful in 40s
Tessera CI/CD / Tests (push) Successful in 37s
Tessera CI/CD / Build & Publish Images (push) Failing after 5m6s
2026-06-29 11:15:21 +02:00
schalli fc4c006f30 chore(07): UAT Test 7 pass — Exchange NTLM connection verified
Tessera CI/CD / Lint & Type Check (push) Successful in 40s
Tessera CI/CD / Tests (push) Failing after 11m1s
Tessera CI/CD / Build & Deploy (push) Has been skipped
Domain field must be left empty or set to actual AD domain; placeholder
value 'CONTOSO' causes 401.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-29 10:16:21 +02:00
schalli 01ff137f43 fix(07): UAT fixes — SMTP test email, DKV routing, Exchange domain field
Tessera CI/CD / Lint & Type Check (push) Waiting to run
Tessera CI/CD / Tests (push) Blocked by required conditions
Tessera CI/CD / Build & Deploy (push) Blocked by required conditions
- SMTP: add test-to field, send real email via sendMail() instead of verify()
- SMTP: fix no_auth warning shown as error for open-relay servers
- DKV: register dkv-fleet in MODULE_REGISTRY (fixes "Modul nicht gefunden")
- DKV: add dynamic [category]/[moduleSlug]/settings + vehicles sub-routes
- DKV: settings/vehicles links use useParams for consistent URLs
- DKV: add gear icon settings link to module main page
- DKV: rename module to "DKV-Rechnung" in seed + translations
- DKV: add optional domain field for Exchange (WebCredentials 3rd arg)
- DKV: hide IMAP-only fields (Port/Verschlüsselung/Ordner) when Exchange selected
- DKV: hide Exchange-only field (Domain) when IMAP selected
- Prisma: add domain column to DkvModuleConfig

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-28 21:58:26 +02:00
schalli 5d6024569a test(07): begin UAT — 1 issue (cold start DB P1001), 8 tests pending
Tessera CI/CD / Lint & Type Check (push) Waiting to run
Tessera CI/CD / Tests (push) Blocked by required conditions
Tessera CI/CD / Build & Deploy (push) Blocked by required conditions
2026-06-27 18:02:15 +02:00
schalli 071531f880 docs(07): add code review fix report
Tessera CI/CD / Lint & Type Check (push) Waiting to run
Tessera CI/CD / Tests (push) Blocked by required conditions
Tessera CI/CD / Build & Deploy (push) Blocked by required conditions
2026-06-27 17:23:37 +02:00
schalli d93819fa27 docs(07): add code review report
Tessera CI/CD / Lint & Type Check (push) Failing after 35s
Tessera CI/CD / Tests (push) Has been skipped
Tessera CI/CD / Build & Deploy (push) Has been skipped
2026-06-27 17:14:44 +02:00
schalli d3e8e6400a docs(07-06): complete SMTP settings UI plan
Tessera CI/CD / Build & Deploy (push) Blocked by required conditions
Tessera CI/CD / Lint & Type Check (push) Successful in 38s
Tessera CI/CD / Tests (push) Waiting to run
2026-06-27 17:06:04 +02:00
schalli 5c191c8d10 docs(07-05): complete DKV fleet module frontend plan
Tessera CI/CD / Lint & Type Check (push) Failing after 41s
Tessera CI/CD / Tests (push) Has been skipped
Tessera CI/CD / Build & Deploy (push) Has been skipped
2026-06-27 00:43:55 +02:00
schalli 316f8353b7 docs(07-04): complete DKV integration plane plan
Tessera CI/CD / Build & Deploy (push) Blocked by required conditions
Tessera CI/CD / Lint & Type Check (push) Successful in 38s
Tessera CI/CD / Tests (push) Waiting to run
SUMMARY: DkvService pipeline, DkvSchedulerService dynamic cron, DkvController 12 routes,
DkvModule registry seed, AppModule DkvModule registration, dkvFleet + settings i18n keys.
Deviation: CronJob via require() workaround (pnpm transitive dep isolation).
2026-06-27 00:32:19 +02:00