-
85c064ba32
fix(api): harden raw SQL jsonb field validation in batchUpdateCustomFields
Hartmut
2026-04-11 23:23:43 +02:00
-
74ed45ddfc
fix(web): add missing loading and error states to MfaPromptBanner, Step1Identity, MobileSummaryClient
Hartmut
2026-04-11 23:22:18 +02:00
-
c9be7c9bbf
refactor(web): make SmtpSettingsPanel self-contained, eliminating prop drilling
Hartmut
2026-04-11 23:20:36 +02:00
-
bfcadd2c52
refactor(web): decompose TimelineView, ReportBuilder, and ResourceModal into focused components
Hartmut
2026-04-11 23:16:38 +02:00
-
5a4836d292
perf(api): eliminate 3 N+1 query patterns
Hartmut
2026-04-11 22:59:45 +02:00
-
dd2c9c0f88
perf(api,web,db): refactor and optimize for enterprise readiness
Hartmut
2026-04-11 22:34:41 +02:00
-
b3da8817dc
refactor(web): extract render functions from TimelineProjectPanel into dedicated module
Hartmut
2026-04-11 09:05:47 +02:00
-
d1d33aa810
refactor(web): extract ReportResultsPanel and nav icons from monolithic components
Hartmut
2026-04-11 08:58:31 +02:00
-
17f2de5f48
refactor(web): decompose AllocationsClient and UsersClient into focused subcomponents
Hartmut
2026-04-11 08:49:50 +02:00
-
e3551fb78f
fix(api): validate rolePresets with RolePresetsSchema before DB cast
Hartmut
2026-04-11 08:35:02 +02:00
-
9c537b027b
ci: add dependency audit step and CODEOWNERS
Hartmut
2026-04-11 08:31:45 +02:00
-
85e1bcc06f
refactor(web): decompose ProjectWizard into step components
Hartmut
2026-04-11 08:30:33 +02:00
-
f3fa902773
fix(web): make invalidation hooks async with Promise.all and fix cross-view staleness
Hartmut
2026-04-11 08:24:33 +02:00
-
f18777c365
refactor(web): split TimelineContext into data, view, and display contexts
Hartmut
2026-04-11 08:17:58 +02:00
-
7eac5816d6
feat(web): add error boundaries to uncovered route groups
Hartmut
2026-04-11 08:13:51 +02:00
-
c098cedf06
perf(db): add missing indexes, fix N+1 batch delete, add pagination limits
Hartmut
2026-04-11 08:09:39 +02:00
-
110e4ff1aa
fix(security): harden auth reset, rate limiter fallback, and CI secrets
Hartmut
2026-04-11 08:03:42 +02:00
-
98c2554570
fix(docker): reconcile pnpm workspace symlinks at container start
Hartmut
2026-04-11 07:54:09 +02:00
-
4469fc42af
fix(build): resolve Next.js build failures from invalid route exports
Hartmut
2026-04-11 07:40:00 +02:00
-
d8aac21e2d
test(e2e): add axe-core accessibility fixture and smoke spec
Hartmut
2026-04-11 07:20:10 +02:00
-
c794e82464
test(web): add 23 edge-case tests across UI components and lib utils
Hartmut
2026-04-10 23:14:59 +02:00
-
591842c5a1
chore: add knip for unused export/dependency detection
Hartmut
2026-04-10 23:10:59 +02:00
-
797aa5e350
fix(a11y): add ARIA attributes to core UI components
Hartmut
2026-04-10 23:06:25 +02:00
-
09dcedb646
feat(eslint): add jsx-a11y accessibility rules as warnings
Hartmut
2026-04-10 22:59:15 +02:00
-
6830bfb314
refactor(web): extract 4 pure render functions from TimelineResourcePanel
Hartmut
2026-04-10 22:57:19 +02:00
-
9bd7172018
test(web): add 162 tests for animation components and hooks
Hartmut
2026-04-10 22:45:44 +02:00
-
d3f721ce58
refactor(web): extract ResourcesClient types + inline components, fix test TS errors
Hartmut
2026-04-10 22:40:24 +02:00
-
dcac9952ca
test(web): add 232 tests for catalog, presets, skeleton, hooks
Hartmut
2026-04-10 17:27:35 +02:00
-
a3d75973ee
test(web): add 291 tests for parsers, hooks, and UI components
Hartmut
2026-04-10 17:14:11 +02:00
-
98dca6126f
test(web): add 210 tests for lib utils, hooks, and UI components
Hartmut
2026-04-10 17:11:00 +02:00
-
c0ba062460
test(web): add 57 UI component and hook tests with jsdom cleanup
Hartmut
2026-04-10 17:06:42 +02:00
-
63db4a09e6
refactor(web): set up component test infra + decompose ProjectWizard
Hartmut
2026-04-10 17:00:45 +02:00
-
2f2fe2631f
test(api): add 38 tests for project read, project cost, and staffing shared utils
Hartmut
2026-04-10 16:49:23 +02:00
-
45cf7b8c29
test(api): add 36 tests for insights anomalies and resource identifier read
Hartmut
2026-04-10 16:45:26 +02:00
-
378ed61002
test(api): add 34 router tests for estimate read/workflow and vacation read
Hartmut
2026-04-10 16:41:18 +02:00
-
a0de69a520
test(api): add 68 router tests for comment, project-lifecycle, dispo, holiday-calendar
Hartmut
2026-04-10 16:37:02 +02:00
-
2484eb9b9d
test(api): add 50 router tests for settings, webhook, and calculation rules
Hartmut
2026-04-10 16:29:10 +02:00
-
efe3b96676
test(api): add 48 router tests for client, role, and blueprint CRUD
Hartmut
2026-04-10 16:26:12 +02:00
-
486a2239be
test(application): add 34 tests for chargeability bookings and estimate operations
Hartmut
2026-04-10 16:21:15 +02:00
-
cd645c7d55
test(application): add 17 dashboard use-case tests for untested queries
Hartmut
2026-04-10 15:54:23 +02:00
-
800a4c5fff
test(application): add 40 use-case tests for vacation and entitlement operations
Hartmut
2026-04-10 15:51:23 +02:00
-
d0926601ea
test(shared): add 215 schema validation tests covering all 17 Zod schemas
Hartmut
2026-04-10 15:47:53 +02:00
-
dfeb4d361e
fix(tests): align 20 drifted tests with current source behavior
Hartmut
2026-04-10 15:41:42 +02:00
-
9bd3781c03
fix(types): flatten tRPC Zod schema types to resolve TS2589 inference depth errors
Hartmut
2026-04-10 15:28:12 +02:00
-
0d79f97d7a
fix(types): remove unnecessary
as any casts in web components
Hartmut
2026-04-10 15:13:06 +02:00
-
9051ff73d0
fix(types): replace structural DB types with Pick<PrismaClient> and remove Prisma boundary
as any casts
Hartmut
2026-04-10 15:09:16 +02:00
-
82acc56b8d
chore: add pre-commit hooks, tighten ESLint, activate Sentry DSN, publish CI coverage (Phase 1)
Hartmut
2026-04-10 14:49:29 +02:00
-
605fd7cea1
docs: enhance README with detailed feature descriptions and architecture diagram
Hartmut
2026-04-10 14:10:15 +02:00
-
600a86ca71
docs: add project README with screenshots and setup guide
Hartmut
2026-04-10 14:07:08 +02:00
-
78d50b78d3
fix: script portability and npm security updates
Hartmut
2026-04-10 14:06:58 +02:00
-
e4bf121b33
feat(ui): weekend/vacation/checkbox colors follow accent theme
Hartmut
2026-04-10 14:06:44 +02:00
-
0339b11038
fix(ui): remove utilization row background tint from timeline
Hartmut
2026-04-10 10:53:21 +02:00
-
5afc6c8c94
fix(ui): remove blue-shifted hardcoded colors from timeline components
Hartmut
2026-04-10 10:46:41 +02:00
-
60d89a1bc8
fix(ui): replace blue-shifted hardcoded gradient in WidgetContainer dark mode
Hartmut
2026-04-10 10:35:44 +02:00
-
b663755749
fix(ui): add gray-950 opacity variant overrides to dark theme normalization
Hartmut
2026-04-10 09:26:58 +02:00
-
05aa864359
refactor(ui): replace inline INPUT_CLS/LABEL_CLS/BTN_DANGER constants and action link classes with CSS component classes
Hartmut
2026-04-10 09:21:03 +02:00
-
9ba49c9ab8
fix(ui): add dark mode variants to dashboard, layout, notification and chargeability components
Hartmut
2026-04-10 09:20:50 +02:00
-
2a91257e69
fix(ui): neutralise dark theme — eliminate blue-shifted grays across all surfaces
Hartmut
2026-04-10 09:20:38 +02:00
-
db892ae285
fix(ui): move all :is(.dark) component class rules outside @layer
Hartmut
2026-04-10 07:19:16 +02:00
-
9b5cd8549d
refactor(ui): replace inline INPUT_CLS/BTN_DANGER/action link constants with component classes
Hartmut
2026-04-10 07:02:08 +02:00
-
e575462b01
refactor(ui): clean dark theme — global-first, variable-backed approach
Hartmut
2026-04-10 07:01:59 +02:00
-
ddd711f93f
fix(ui): fix .app-data-table dark mode — @apply dark: unreliable in @layer components
Hartmut
2026-04-09 22:51:06 +02:00
-
d1a21a79b2
fix(ui): comprehensive dark-theme hardcoded color pass
Hartmut
2026-04-09 22:37:43 +02:00
-
13262b5cec
refactor(ui): unify dark theme — replace hardcoded hex with CSS variables
Hartmut
2026-04-09 22:25:10 +02:00
-
1a2f7de5bd
fix(ui): replace hardcoded purple values with accent-adaptive CSS variables
Hartmut
2026-04-09 22:17:50 +02:00
-
1383169352
feat(ui): Aurora design system — glassmorphic dark mode, warm light mode, snappy animations
Hartmut
2026-04-09 22:10:52 +02:00
-
97cfd0ed90
fix(security): raise password minimum to 12 chars, hide raw error messages, add audit script
Hartmut
2026-04-09 21:48:51 +02:00
-
20fb39fd05
fix(security): harden production Docker — bind DB/Redis to localhost, add Redis auth
Hartmut
2026-04-09 21:41:15 +02:00
-
afabaa0b7a
fix(security): prevent TOTP replay attacks and fix user enumeration in verifyTotp
Hartmut
2026-04-09 21:41:09 +02:00
-
1833182e90
fix(security): harden input validation schemas and fix SSR sanitize bypass
Hartmut
2026-04-09 21:38:16 +02:00
-
df191d1e03
fix(security): rate-limit public invite and password-reset endpoints
Hartmut
2026-04-09 21:38:08 +02:00
-
9e31c6d972
fix(security): harden cron and API route authentication
Hartmut
2026-04-09 21:38:02 +02:00
-
3452464809
fix(security): invalidate sessions on password change and remove hash from permission API responses
Hartmut
2026-04-09 21:37:56 +02:00
-
ebeb180f3f
fix(ui): make project detail and scenario pages full width
Hartmut
2026-04-09 21:14:42 +02:00
-
5cc177ccf9
fix(dashboard): prevent stale DB data from overwriting newer localStorage layout
Hartmut
2026-04-09 21:14:36 +02:00
-
c784b4b378
fix(infra): wait for postgres readiness before running migrations on container start
Hartmut
2026-04-09 21:14:31 +02:00
-
43de66e982
feat(api): add audit helpers, tool registry, shared tool manifest types, and UI primitives
Hartmut
2026-04-09 21:14:26 +02:00
-
1a67af6761
fix(dashboard): measure grid container width after hydration completes, not just on mount
Hartmut
2026-04-09 20:58:57 +02:00
-
5ad1048519
feat(dashboard): expand grid to 16 columns with auto-migration for saved 12-col layouts
Hartmut
2026-04-09 20:50:40 +02:00
-
446aea5319
feat(dashboard): combine vertical + horizontal compaction for gap-free widget layout
Hartmut
2026-04-09 20:42:49 +02:00
-
4eac7b1888
fix(infra): apply missing migrations, fix Dockerfile.dev ui package reference
Hartmut
2026-04-09 20:29:21 +02:00
-
4875096b13
fix(dashboard): restore vertical compaction so widgets auto-align when dragged
Hartmut
2026-04-09 20:19:24 +02:00
-
c83bd5f97f
Merge branch 'worktree-agent-a8de1898' - Phase 2A entitlement use-cases
Hartmut
2026-04-09 20:16:38 +02:00
-
-
999626cf70
feat(application): extract entitlement use-cases from API router layer
Hartmut
2026-04-09 20:14:35 +02:00
-
1a8ea11331
feat(db): add deletedAt audit timestamp to soft-deletable models
Hartmut
2026-04-09 20:03:38 +02:00
-
f7407bd882
fix(api): add centralized Prisma → TRPCError middleware on protectedProcedure
Hartmut
2026-04-09 19:58:00 +02:00
-
245b59723a
fix(api): update resource-router tests for select-based listStaff queries
Hartmut
2026-04-09 19:33:58 +02:00
-
db83933ea1
Merge branch 'worktree-agent-aed43cff'
Hartmut
2026-04-09 19:31:50 +02:00
-
-
36900a1219
Merge branch 'worktree-agent-a7de1005'
Hartmut
2026-04-09 19:31:11 +02:00
-
-
6c7245db93
test(e2e): add Playwright tests for core workflows
Hartmut
2026-04-09 19:30:43 +02:00
-
6f3bdd81e8
perf(api): add explicit Prisma selects on hot read paths
Hartmut
2026-04-09 19:24:55 +02:00
-
-
d737a251b2
fix(api): replace ctx.session.user lookups with ctx.dbUser
Hartmut
2026-04-09 19:18:39 +02:00
-
d7a35b2d7a
feat(web): add React error boundaries and Next.js error.tsx fallbacks
Hartmut
2026-04-09 19:16:26 +02:00
-
-
070be70848
refactor(application): extract vacation management into application use-cases
Hartmut
2026-04-09 17:11:37 +02:00
-
-
6bf60c8e07
feat(web): persist list-page filters in URL search params
Hartmut
2026-04-09 17:00:30 +02:00
-
7264f0728a
perf(timeline): add useCallback/useMemo to timeline components
Hartmut
2026-04-09 16:54:38 +02:00
-
dda049075f
refactor(application): extract vacation management into application use-cases
Hartmut
2026-04-09 16:49:45 +02:00
-
-
485e220c49
fix(api,web): env startup validation, QueryClient defaults, warn on missing REDIS_URL
Hartmut
2026-04-09 16:42:34 +02:00
-
3c0179fcec
fix(api): wrap audit log writes inside their parent transactions
Hartmut
2026-04-09 16:40:10 +02:00
-
a01f99561d
fix(api): fix import paths missed by router reorganisation
Hartmut
2026-04-09 14:47:16 +02:00