Commit Graph

  • ae3bc3f246 docs(claude): update back link pattern to use BackButton component Marcel 2026-04-22 10:50:35 +02:00
  • cc9c47254b refactor(nav): replace static back-link hrefs with BackButton Marcel 2026-04-22 10:49:23 +02:00
  • 781c4ffebb feat(nav): add BackButton component calling history.back() Marcel 2026-04-22 10:46:41 +02:00
  • fd93f1a4da feat(chronik): rename route and heading to Aktivitäten Marcel 2026-04-22 09:28:09 +02:00
  • 4f671824dd feat(chronik): align layout to grouped card pattern; fix duplicate rollup count Marcel 2026-04-22 09:13:03 +02:00
  • ba0f9bb325 refactor(test): fix unchecked cast and derive ALL_ELIGIBLE_KINDS from enum Marcel 2026-04-21 22:45:23 +02:00
  • c0e52b8432 refactor(audit): move AuditLogQueryServiceTest to audit package Marcel 2026-04-21 22:44:37 +02:00
  • 42cf7715d2 test(chronik): extract applyClientFilter helper with full test coverage Marcel 2026-04-21 22:43:52 +02:00
  • 330c6227bc refactor(chronik): remove client-side filter; add aria-live/aria-busy Marcel 2026-04-21 22:26:27 +02:00
  • d42293d3f5 feat(chronik): pass kinds query param from filter pill to API Marcel 2026-04-21 22:20:45 +02:00
  • 99c3106835 feat(openapi): expose kinds param in dashboard activity spec Marcel 2026-04-21 21:19:16 +02:00
  • 8d16e4d975 feat(dashboard): add kinds param to GET /api/dashboard/activity Marcel 2026-04-21 21:10:43 +02:00
  • 571ecfc626 test(dashboard): guard getPulse always uses 2-arg findActivityFeed Marcel 2026-04-21 21:05:43 +02:00
  • 475e16a85d feat(audit): add findActivityFeed(UUID, int, Set<AuditKind>) overload Marcel 2026-04-21 21:03:39 +02:00
  • fe7a8ed9ad feat(audit): add kinds param to findRolledUpActivityFeed Marcel 2026-04-21 20:59:56 +02:00
  • d700b0a948 refactor(audit): add ROLLUP_ELIGIBLE constant to AuditKind Marcel 2026-04-21 20:53:14 +02:00
  • 7d9c7f1357 chore(api): mark manually-patched fields for next regen cycle Marcel 2026-04-21 18:38:16 +02:00
  • a76af739e5 test(notification-bell): cover handleMarkRead annotationId and commentId-only paths Marcel 2026-04-21 18:37:18 +02:00
  • a15e4e139b test(chronik-row): add coverage for commentId-only URL when annotationId absent Marcel 2026-04-21 18:34:41 +02:00
  • e175e050f9 feat(chronik-row): deep-link COMMENT_ADDED and MENTION_CREATED to comment Marcel 2026-04-21 17:38:50 +02:00
  • 95c11b9b46 feat(chronik-fuer-dich): include annotationId in mention deep-link Marcel 2026-04-21 17:21:16 +02:00
  • 7c22e42b8f refactor(notification-bell): use buildCommentHref helper Marcel 2026-04-21 17:17:57 +02:00
  • 7f40c54b3f feat(utils): add buildCommentHref helper for comment deep-links Marcel 2026-04-21 17:15:48 +02:00
  • 76a3a2e04c chore(api): hand-edit generated types for commentId + annotationId Marcel 2026-04-21 17:13:56 +02:00
  • f50a746619 feat(dashboard): enrich activity feed DTO with commentId + annotationId Marcel 2026-04-21 17:11:03 +02:00
  • 40260be07a feat(comment): add findAnnotationIdsByIds batch lookup Marcel 2026-04-21 17:04:38 +02:00
  • b9f5ec22aa feat(audit): expose commentId on rolled-up activity feed projection Marcel 2026-04-21 17:00:36 +02:00
  • b07f9efa9c fix(document-detail): force edit panel on notification deep-link Marcel 2026-04-21 15:22:38 +02:00
  • 3bf0b38c42 polish(document-detail): address review concerns on onMount deep-link wiring Marcel 2026-04-21 14:10:46 +02:00
  • 567faee3cc test(e2e): notification deep-link scrolls to target comment Marcel 2026-04-21 13:44:45 +02:00
  • e22265f5bc feat(document-detail): wire notification deep-link scroll in onMount Marcel 2026-04-21 13:42:55 +02:00
  • 20ae85f879 feat(comment): expose comment id + focus ring on CommentMessage wrapper Marcel 2026-04-21 13:32:04 +02:00
  • 251eb9c3fc feat(frontend): add scrollToCommentFromQuery helper for notification deep-link Marcel 2026-04-21 13:29:52 +02:00
  • bc69e8ff1e refactor(comment): drop dead document and annotation comment APIs Marcel 2026-04-21 13:27:10 +02:00
  • 13732ab96b fix(db): V51 backfills annotation_id on block comments and notifications Marcel 2026-04-21 13:13:13 +02:00
  • 4658852281 fix(comment): populate annotationId on block comments from the block Marcel 2026-04-21 13:09:30 +02:00
  • edb4e54df2 fix(audit): backfill COMMENT_ADDED and MENTION_CREATED events Marcel 2026-04-21 12:08:45 +02:00
  • 3744a6ba3c fix(admin): preserve form values after save in user and group edit Marcel 2026-04-21 12:07:50 +02:00
  • 4ec0b9d6c8 fix(admin): rename users edit default action to named update Marcel 2026-04-21 12:06:34 +02:00
  • 1fd2fab9a1 refactor(audit): document MIN invariant in aggregated CTE comment Marcel 2026-04-20 22:12:55 +02:00
  • 53352be997 test(audit): document youParticipated graceful degradation when commentId absent Marcel 2026-04-20 22:08:31 +02:00
  • dc027cdf40 test(audit): add cross-user scoping regression for youParticipated Marcel 2026-04-20 22:06:19 +02:00
  • 5b3fb8fb3f refactor(test): use ObjectMapper for payload JSON in audit test helper Marcel 2026-04-20 22:04:08 +02:00
  • d154bb4b9c refactor(chronik): replace inline filter switch with filterFeed() Marcel 2026-04-20 21:46:06 +02:00
  • 8b74f4ec25 feat(chronik): extract feedFilters.ts with youParticipated in fuer-dich Marcel 2026-04-20 21:41:04 +02:00
  • 388fc5397c feat(dashboard): expose youParticipated in ActivityFeedItemDTO Marcel 2026-04-20 21:30:54 +02:00
  • 454e5f7517 feat(audit): surface youParticipated via REPLY notification subquery Marcel 2026-04-20 21:25:57 +02:00
  • 9c52e1921f test(audit): add youParticipated and youMentioned repository tests Marcel 2026-04-20 21:19:27 +02:00
  • 6f3aa056a1 fix(relativeTime): guard against Invalid Date producing NaN strings Marcel 2026-04-20 22:46:53 +02:00
  • 35303831f7 a11y(dashboard): larger dismiss target + motion-reduce + sr-only PDF label Marcel 2026-04-20 22:44:45 +02:00
  • 97e8e4fc74 test(dropzone): replace setTimeout flake with vi.waitFor + hoisted mock Marcel 2026-04-20 22:42:23 +02:00
  • 30ea1f0dcf test(dashboard): exercise the EnrichmentBlock skeleton branch Marcel 2026-04-20 22:36:41 +02:00
  • d3f9f8457a test(dashboard): extend page.server mock chain for incomplete endpoints Marcel 2026-04-20 22:26:31 +02:00
  • 3eda482000 test(e2e): dashboard enrichment block — upload + axe sweep Marcel 2026-04-20 22:13:37 +02:00
  • f548128940 feat(dashboard): wire EnrichmentBlock between Resume strip and Mission Control Marcel 2026-04-20 22:08:09 +02:00
  • 90c9ca8708 feat(dropzone): emit onUploadComplete callback with created count Marcel 2026-04-20 22:01:46 +02:00
  • e824e23c8c feat(dashboard): add EnrichmentBlock wrapper component Marcel 2026-04-20 21:58:05 +02:00
  • b29125615f feat(dashboard): add UploadSuccessBanner component Marcel 2026-04-20 21:53:28 +02:00
  • 01e72611f0 feat(dashboard): redesign needs-metadata with row anatomy + totalCount Marcel 2026-04-20 21:34:23 +02:00
  • 727569aa32 i18n: add upload-banner + enrichment-block keys Marcel 2026-04-20 21:25:17 +02:00
  • d5d1a463b8 feat(frontend): add relativeTimeDe helper for dashboard meta lines Marcel 2026-04-20 21:22:59 +02:00
  • 46fe3655ab chore(frontend): regenerate openapi types for /api/documents/incomplete Marcel 2026-04-20 21:19:46 +02:00
  • 47859e5a9b feat(documents): retrofit WRITE_ALL guard on /incomplete-count + /incomplete/next Marcel 2026-04-20 21:14:24 +02:00
  • 758c708766 test(documents): lock /incomplete size cap at 200 Marcel 2026-04-20 21:09:10 +02:00
  • 2c5cfcedbc feat(documents): gate /incomplete behind WRITE_ALL permission Marcel 2026-04-20 21:05:35 +02:00
  • bc3a268f66 feat(documents): re-add GET /api/documents/incomplete Marcel 2026-04-20 21:01:54 +02:00
  • d2fc452c1a feat(dto): add uploadedAt to IncompleteDocumentDTO Marcel 2026-04-20 20:58:15 +02:00
  • b8ffd81b7e test(audit): add regression proving STATUS_CHANGED/METADATA_UPDATED are excluded Marcel 2026-04-20 18:15:13 +02:00
  • f68c892170 fix(chronik): sentinel-based title split + drop duplicate comment preview Marcel 2026-04-20 18:12:16 +02:00
  • f0b21e226e refactor(chronik): remove unused form actions and broken pagination UI Marcel 2026-04-20 18:08:17 +02:00
  • 58ea2f827a fix(chronik): split Für-dich row markup — Dismiss is sibling of link, not nested Marcel 2026-04-20 18:05:28 +02:00
  • 089a1d063a test(a11y): add /chronik to AUTHENTICATED_PAGES for axe-playwright sweep Marcel 2026-04-20 17:08:33 +02:00
  • 93c80671e2 fix(notifications): retarget bell dropdown footer to /chronik Marcel 2026-04-20 17:07:19 +02:00
  • 81f86474b6 fix(dashboard): retarget feed footer to /chronik + render rollup rows Marcel 2026-04-20 17:06:33 +02:00
  • 661eedd29c feat(notifications): delete /notifications route in favor of /chronik Marcel 2026-04-20 17:05:36 +02:00
  • cb3e5420fc feat(chronik): add /chronik route (page.server.ts + +page.svelte + spec) Marcel 2026-04-20 17:01:48 +02:00
  • e36c9382fc feat(chronik): add six Chronik page components + co-located specs (40 tests) Marcel 2026-04-20 16:54:22 +02:00
  • 6b433fa82a feat(chronik): add ADR-003 + Paraglide keys for /chronik page (de/en/es) Marcel 2026-04-20 16:31:28 +02:00
  • f13b2a984e fix(notifications): retarget NotificationItem import to singleton store Marcel 2026-04-20 16:27:53 +02:00
  • 56161f9a49 feat(utils): add date-buckets helper for Chronik day grouping Marcel 2026-04-20 16:25:31 +02:00
  • 5fc39b0371 refactor(notifications): convert per-component stream hook to module-level singleton Marcel 2026-04-20 16:21:47 +02:00
  • cb219b56c4 chore(types): regenerate OpenAPI types for ActivityFeedItemDTO rollup fields Marcel 2026-04-20 16:11:45 +02:00
  • 101f5b2a6a feat(audit): add V49 rollup covering index + raise /api/dashboard/activity cap to 40 Marcel 2026-04-20 16:08:35 +02:00
  • eda30f53fa refactor(audit): rename findDedupedActivityFeed to findRolledUpActivityFeed Marcel 2026-04-20 16:04:39 +02:00
  • feefa682b3 feat(audit): replace hour-trunc dedupe with LAG() session rollup (120-min gap) Marcel 2026-04-20 16:02:16 +02:00
  • 22ddf8c12a refactor(audit): extend activity feed row/DTO with count and happenedAtUntil (singletons default) Marcel 2026-04-20 15:53:58 +02:00
  • d9b7b7aad4 docs(specs): add enrichment list-block dashboard spec Marcel 2026-04-20 20:02:51 +02:00
  • 2873d8646b fix(documents): suppress uppercase on person name group headers for SENDER/RECEIVER sort Marcel 2026-04-20 11:24:04 +02:00
  • 2260c25dc5 test(documents): add regression test for sort fallback to year grouping Marcel 2026-04-20 11:21:45 +02:00
  • e79da27a12 refactor(documents): narrow sort prop type to full SortMode union Marcel 2026-04-20 11:19:40 +02:00
  • 2982d0f6bf fix(documents): use i18n key for undated group label instead of hardcoded German string Marcel 2026-04-20 11:15:40 +02:00
  • e5068820fa refactor(documents): rename year-card testid to group-card Marcel 2026-04-20 11:12:27 +02:00
  • eb3a54b19c fix(document-row): align contributor circles with progress ring Marcel 2026-04-20 09:55:50 +02:00
  • 33ada55f12 feat(documents): restore sender/receiver grouping in document list Marcel 2026-04-20 09:45:46 +02:00
  • 909041adbb feat(i18n): add unknown sender/receiver fallback labels for document grouping Marcel 2026-04-20 09:44:58 +02:00
  • 5f30807ed0 docs(chronik): add final design spec for unified activity + notifications page Marcel 2026-04-20 11:00:42 +02:00
  • 4e1d0b1cf0 chore: merge main into feat/issue-281-documents-page Marcel 2026-04-20 08:54:17 +02:00
  • d5e0d2226a chore: merge main into feat/issue-281-documents-page feat/issue-271-dashboard-redesign Marcel 2026-04-20 08:44:20 +02:00
  • b6466fcd95 fix(admin): wire delete-user button via enhance callback instead of requestSubmit() Marcel 2026-04-19 18:07:06 +02:00
  • e1d51728d9 refactor(audit): move AuditLogQueryService, AuditLogQueryRepository, and shared DTOs to audit package Marcel 2026-04-19 22:43:30 +02:00