Commit Graph

  • 1a8ed97d5e Merge branch 'worktree-agent-a2939317' Hartmut 2026-04-09 14:44:51 +02:00
  • b2c8d98b25 refactor(api): reorganise allocation router into allocation/ subdirectory Hartmut 2026-04-09 14:44:17 +02:00
  • 75167d6129 fix(merge): resolve post-merge type errors from batch-1 agents Hartmut 2026-04-09 14:38:32 +02:00
  • 0fcb481350 Merge branch 'worktree-agent-a90e1bc2' Hartmut 2026-04-09 14:19:18 +02:00
  • b573a1d554 Merge branch 'worktree-agent-a74dc5bc' Hartmut 2026-04-09 14:18:50 +02:00
  • a2613f6e93 Merge branch 'worktree-agent-a0063a64' Hartmut 2026-04-09 14:18:47 +02:00
  • 96679f5fec Merge branch 'worktree-agent-acdb74a3' Hartmut 2026-04-09 14:18:27 +02:00
  • b9fd7fdb03 perf(staffing): replace day-by-day capacity loop with range arithmetic Hartmut 2026-04-09 14:17:26 +02:00
  • fbca017eaa test(application): add unit tests for demand fill logic and capacity vacation overlap Hartmut 2026-04-09 14:15:00 +02:00
  • 9a42615a21 fix(api): add Zod bounds on financial fields, type vacation router, type scenarioData Hartmut 2026-04-09 14:08:16 +02:00
  • aebe5bc57d fix(db): add SetNull cascade on Assignment→DemandRequirement + composite indexes Hartmut 2026-04-09 14:03:11 +02:00
  • f3cb75bfc7 feat(mobile): add mobile summary view for 320-428px viewports (Sprint 4c) Hartmut 2026-04-09 13:37:08 +02:00
  • ab4ec91e02 feat(digest): add weekly capacity digest email cron Hartmut 2026-04-09 13:33:12 +02:00
  • 607af1a857 feat(bench): add Resource Bench Board page Hartmut 2026-04-09 13:30:44 +02:00
  • 1df208dbcc feat(timeline): add pulse animation for in-flight drag mutations Hartmut 2026-04-09 13:28:46 +02:00
  • 7a5e98e2e9 perf(timeline): add horizontal virtualization for allocation bars Hartmut 2026-04-09 13:26:38 +02:00
  • e75d966b8d feat(timeline): add inline allocation editor on double-click Hartmut 2026-04-09 13:24:43 +02:00
  • fa54ef4cbd feat(timeline): add keyboard navigation with shortcut overlay Hartmut 2026-04-09 13:20:32 +02:00
  • 05f6eba5d8 refactor(staffing): decompose 735-line StaffingPanel into focused components Hartmut 2026-04-09 13:17:55 +02:00
  • 594ae4f10b feat(allocations): add Excel export button to allocations toolbar Hartmut 2026-04-09 13:14:58 +02:00
  • 7435fdc125 feat(timeline): Sprint 2b — AI staffing suggestions in DemandPopover Hartmut 2026-04-09 13:11:36 +02:00
  • 16ce6db07e feat(allocations): Sprint 2a — bulk date shift via BatchActionBar Hartmut 2026-04-09 13:10:06 +02:00
  • 6831e199c6 feat(ux): Sprint 1 — quick wins: EmptyState, DateRangePresets, debounce, save feedback, scenarios nav Hartmut 2026-04-09 13:08:19 +02:00
  • a16c41e739 fix(dashboard): show skeleton instead of default layout until hydration completes Hartmut 2026-04-09 10:20:50 +02:00
  • 24435a1824 test(allocation): add conflict check tests for checkConflicts query Hartmut 2026-04-09 10:20:37 +02:00
  • 3e8df09cd8 feat(web): overbooking and vacation conflict warnings in AllocationModal Hartmut 2026-04-09 10:15:37 +02:00
  • 61e52e9995 feat(api,application): add checkConflicts query and soften overbooking block Hartmut 2026-04-09 10:13:18 +02:00
  • b944a17572 feat(db,shared): add overbookingAcknowledged field and conflict check types Hartmut 2026-04-09 10:11:02 +02:00
  • 60d267fa0a feat(api): add SSE subscriber isolation, token pruning and E2E rate-limit guard Hartmut 2026-04-09 08:35:39 +02:00
  • 472d87c829 feat(web): add error boundaries, loading skeletons, render fixes and tree-shaking Hartmut 2026-04-09 08:35:28 +02:00
  • 1204c186ef perf(api): eliminate N+1 queries, add query guards and missing indexes Hartmut 2026-04-09 08:35:13 +02:00
  • 1d6d75ecf6 fix(api): wrap critical mutations in transactions and fix TOCTOU race conditions Hartmut 2026-04-09 08:34:59 +02:00
  • b103e79e92 feat(ux): prevent wizard close on backdrop click Hartmut 2026-04-07 16:09:22 +02:00
  • 4accee95a4 refactor(dispo): clean up validate UI in NewImportModal Hartmut 2026-04-07 16:06:58 +02:00
  • 444fa70a19 fix(ui): remove !important amber-50 dark override from globals.css Hartmut 2026-04-06 10:39:34 +02:00
  • f89da5d93b fix(ui): use amber-950/30 for pending approvals dark background (not gray-800) Hartmut 2026-04-06 10:34:49 +02:00
  • 813b21d1a0 fix(ui): add dark mode styles to amber warning boxes app-wide Hartmut 2026-04-06 10:28:35 +02:00
  • d2caba8d7c fix(test): use relative dates in insights summary test Hartmut 2026-04-06 09:40:14 +02:00
  • 8f464f2150 feat(dispo): add dry-run Validate button to New Import modal Hartmut 2026-04-06 09:32:23 +02:00
  • bdb55f23d3 fix(insights): suppress AI credentials warning during loading state Hartmut 2026-04-06 09:05:00 +02:00
  • a9ad1ed8b6 feat(G-08): chapter field uses live datalist from resource.chapters Hartmut 2026-04-06 08:10:36 +02:00
  • 4a49ec4f05 fix(sanity): resolve 15 gaps from sanity check audit (G-01 through G-15) Hartmut 2026-04-06 00:11:12 +02:00
  • fba65387fe feat(resources): add hard-delete action to resource list (per-row and batch) Hartmut 2026-04-03 23:18:30 +02:00
  • f5e41f7efe fix(ux): improve empty-state messaging for tickets #49 and #57 Hartmut 2026-04-03 17:51:14 +02:00
  • bc0bb5bdb8 test: add coverage for gitlooper ticket sweep Hartmut 2026-04-03 17:33:27 +02:00
  • 9241f22993 fix(ux): resolve tickets #58 #60 — wizard review labels and assignment CTA clarity Hartmut 2026-04-03 16:17:16 +02:00
  • 2da29c8191 fix(ux): resolve tickets #59 #66 #67 — project feedback and demand summary Hartmut 2026-04-03 16:05:29 +02:00
  • b7bb6d05af fix(nav): redirect /blueprints to /admin/blueprints (#52) Hartmut 2026-04-03 15:46:38 +02:00
  • 65db330a4d fix(ux): resolve tickets #55 #56 — resource modal stability and success feedback Hartmut 2026-04-03 15:43:12 +02:00
  • 0d0707264d feat(admin): hard-delete resources (admin-only) Hartmut 2026-04-03 15:23:30 +02:00
  • 3979d342c8 fix(ux): resolve tickets #51 #53 #54 from gitlooper sweep Hartmut 2026-04-03 12:27:43 +02:00
  • aef4c61dcc test(e2e): add nav-smoke spec covering all 35 sidebar routes (#50) Hartmut 2026-04-03 12:11:37 +02:00
  • 5a8dc6c166 fix: resolve 3 UX bugs from gitlooper ticket sweep (#45 #47 #48) Hartmut 2026-04-03 11:25:42 +02:00
  • 339ae47540 docs: learning — Auth.js v5 Edge split + session expiry redirect pattern Hartmut 2026-04-03 10:42:31 +02:00
  • bf8577dbaf feat(auth): proactive session expiry redirect across all delivery paths Hartmut 2026-04-03 10:42:10 +02:00
  • ed4d4e4640 test(api): fill router auth and security coverage gaps Hartmut 2026-04-02 23:31:26 +02:00
  • 1d02afddfd ci(e2e): add Playwright smoke tests to deploy-test workflow Hartmut 2026-04-02 23:25:12 +02:00
  • 0f7d70cac8 docs(learnings): record Gitea API token location and usage patterns Hartmut 2026-04-02 23:07:33 +02:00
  • 8c9ba5363c docs: mark P1 timeline/SSE/scenario work complete in plan and roadmap Hartmut 2026-04-02 21:34:15 +02:00
  • e3c585a403 test(scenario): add unit regression coverage for all four scenario modules Hartmut 2026-04-02 21:30:46 +02:00
  • 1ec56aac13 docs: expand .env.example with full documented variable reference Hartmut 2026-04-02 21:28:51 +02:00
  • e7e525df49 fix(timeline): clear multi-select on drag start and lock in SSE edge-case coverage Hartmut 2026-04-02 21:16:10 +02:00
  • 8d9e26872b fix(timeline): stabilize popovers on internal scroll + expand test coverage Hartmut 2026-04-02 20:49:08 +02:00
  • d4641e27aa feat: first-run setup wizard, CLI seed script, and installation docs Hartmut 2026-04-02 20:45:15 +02:00
  • 41eb722369 feat: user invite flow, deactivate/delete, favicon, dashboard loading fix, admin full-width Hartmut 2026-04-02 20:19:26 +02:00
  • dc5bbdc47d feat: centralize app base URL — no localhost fallback in production Hartmut 2026-04-02 14:19:19 +02:00
  • 7c0110df91 fix(e2e): make email E2E tests green end-to-end Hartmut 2026-04-02 13:53:47 +02:00
  • fceceeee4b feat: SMTP full ENV override, password reset flow, and E2E email testing Hartmut 2026-04-02 08:55:39 +02:00
  • e5ecea81c5 fix(auth): resolve MFA post-activation login failures — tickets #38 #40 #41 Hartmut 2026-04-02 00:20:47 +02:00
  • 435c871e1f security: implement tickets #28-#35 + architecture decision #30 Hartmut 2026-04-01 23:25:06 +02:00
  • f8550110eb security: fix 4 OWASP quick-wins from audit round 2 Hartmut 2026-04-01 22:57:51 +02:00
  • 745be7ee8b fix(dashboard): scope localStorage key by userId to prevent cross-user layout bleed (#27) Hartmut 2026-04-01 22:44:41 +02:00
  • d3bfa8ca98 test(mfa): full MFA test coverage — unit + E2E Hartmut 2026-04-01 22:30:36 +02:00
  • bfdf0a82da security/platform: close audit findings #19–#26 Hartmut 2026-04-01 22:14:20 +02:00
  • 4901bc878b fix(e2e): complete E2E_TEST_MODE isolation for session registry + rate limits Hartmut 2026-04-01 20:57:14 +02:00
  • 8429bd86d4 test(e2e): fix dev-system test suite — storageState + strict-mode + signout Hartmut 2026-04-01 19:09:49 +02:00
  • 3d8a256d52 fix(auth): use token.sid to avoid Auth.js jti claim conflict Hartmut 2026-04-01 19:00:44 +02:00
  • a867672afa Merge remote-tracking branch 'origin/main' Hartmut 2026-04-01 18:41:54 +02:00
  • 5bc7cace26 fix(auth): make active-session check fail-open; add missing DB migration Hartmut 2026-04-01 18:38:05 +02:00
  • 0e119cfe73 security: close audit findings #19–#23 and harden Docker setup (#24) Hartmut 2026-04-01 18:19:21 +02:00
  • 57ea9d8310 fix(allocations): recover from fully filtered empty state Hartmut 2026-04-01 15:16:57 +02:00
  • b841cc9127 fix(allocations): expand grouped rows by default Hartmut 2026-04-01 15:13:24 +02:00
  • fd75628e9d fix(allocations): recover from fully filtered empty state Hartmut 2026-04-01 15:16:57 +02:00
  • 7df751d5eb fix(allocations): expand grouped rows by default Hartmut 2026-04-01 15:13:24 +02:00
  • 4b14db9dc6 fix(timeline): pause sse while hidden Hartmut 2026-04-01 15:05:34 +02:00
  • 3258b59e21 fix(timeline): resync after sse reconnect Hartmut 2026-04-01 15:04:00 +02:00
  • d4652b7a42 fix(timeline): cancel stranded drag interactions Hartmut 2026-04-01 14:57:56 +02:00
  • a71bbeb640 fix(timeline): stabilize overlay lifecycle Hartmut 2026-04-01 14:41:03 +02:00
  • fa5e654739 fix(timeline): harden project view interactions Hartmut 2026-04-01 14:10:28 +02:00
  • e103174d39 refactor(web): extract preview target setup Hartmut 2026-04-01 11:59:10 +02:00
  • 2a7769a0de refactor(web): extract range release resolution Hartmut 2026-04-01 11:53:11 +02:00
  • 1e2bd3d4eb refactor(web): extract project drag finalize Hartmut 2026-04-01 11:49:14 +02:00
  • 463caedcfd refactor(web): extract touch event forwarding Hartmut 2026-04-01 11:39:39 +02:00
  • 37c6e03d23 refactor(web): extract allocation release effects Hartmut 2026-04-01 11:35:17 +02:00
  • f4e9831dea refactor(web): extract allocation drag session Hartmut 2026-04-01 11:27:03 +02:00
  • 510459fbff refactor(web): extract allocation multi-drag session Hartmut 2026-04-01 11:22:18 +02:00
  • 5402189158 refactor(web): extract drag position helpers Hartmut 2026-04-01 11:18:31 +02:00
  • 3fe3a5fb2a refactor(web): extract project drag session Hartmut 2026-04-01 11:16:15 +02:00
  • 0181f2b304 refactor(web): extract multi-select session Hartmut 2026-04-01 11:14:28 +02:00
  • b14be80e32 refactor(web): extract timeline drag cleanup Hartmut 2026-04-01 11:12:20 +02:00