Commit Graph

  • 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
  • 55ce696428 fix(dashboard): fix ContributorStack each-block key and add accessible avatar labels Marcel 2026-04-19 22:28:00 +02:00
  • 12d92c78ea fix(layout): replace hardcoded 'Hochladen' with m.upload_action() + aria-label Marcel 2026-04-19 22:23:32 +02:00
  • d9157b99dd test(dashboard): fix stale resume mock — use totalBlocks instead of page/pages Marcel 2026-04-19 22:19:50 +02:00
  • 3ede42503a fix(dashboard): i18n, a11y, security, and type-safety fixes from PR review Marcel 2026-04-19 21:43:16 +02:00
  • 117044aad9 docs(spec): add /documents page design spec with mobile breakpoints Marcel 2026-04-19 21:39:56 +02:00
  • eac025dec1 feat(dashboard): show block count instead of page numbers in resume strip Marcel 2026-04-19 21:32:13 +02:00
  • 5147973379 refactor(dashboard): remove page field from DashboardResumeDTO; rename pages to totalBlocks Marcel 2026-04-19 21:27:07 +02:00
  • 3589e8659e fix(dashboard): bulk-load document titles in getActivity to avoid N+1 Marcel 2026-04-19 21:24:39 +02:00
  • bc762246e5 fix(dashboard): null-safe name join in toActorDTO Marcel 2026-04-19 21:21:20 +02:00
  • 7f6380452f fix(dashboard): include ANNOTATION_CREATED in hero resume query Marcel 2026-04-19 19:40:48 +02:00
  • 267380f714 fix(audit): submit afterCommit write to executor to avoid transaction sync conflict Marcel 2026-04-19 19:39:59 +02:00
  • 7506f8743a fix(dashboard): defensive null guard in ContributorStack; fix spec makeDoc factories Marcel 2026-04-19 19:22:52 +02:00
  • 520cca58b8 feat(dashboard): show contributor pill stack on each mission control queue item Marcel 2026-04-19 19:10:16 +02:00
  • 4bd1ebfd1e feat(dashboard): add ContributorStack component for mission control pill stacks Marcel 2026-04-19 19:06:46 +02:00
  • 647a82b085 chore(types): regenerate API types with contributor fields on TranscriptionQueueItemDTO Marcel 2026-04-19 19:03:39 +02:00
  • a3a9ad0471 test(dashboard): add empty-queue guard and boundary tests for contributor cap Marcel 2026-04-19 18:54:06 +02:00
  • 812053cd6b feat(dashboard): add contributors to TranscriptionQueueItemDTO with 5-cap and hasMore flag Marcel 2026-04-19 18:44:26 +02:00
  • 20cac8f6d9 feat(dashboard): expose findContributorsPerDocument in AuditLogQueryService Marcel 2026-04-19 18:30:40 +02:00
  • 935a8b16d2 fix(dashboard): use LEFT JOIN users in findContributorsPerDocument for deleted-user resilience Marcel 2026-04-19 18:25:00 +02:00
  • 24b203ac80 feat(dashboard): add findContributorsPerDocument query and ContributorRow projection Marcel 2026-04-19 18:18:26 +02:00
  • 5a98edac86 feat(dashboard): complete frontend redesign for Issue #271 Marcel 2026-04-19 17:44:08 +02:00
  • d34e8986af feat(i18n): add dashboard i18n keys (de/en/es) Marcel 2026-04-19 17:13:57 +02:00
  • 06c75af96b chore(types): regenerate API types with dashboard endpoints Marcel 2026-04-19 17:10:50 +02:00
  • ddd811c634 feat(dashboard): remove deprecated /incomplete and /recent-activity endpoints Marcel 2026-04-19 17:05:14 +02:00
  • 250a00ff3c fix(migration): correct app_users → users table references in V46/V47 Marcel 2026-04-19 16:58:04 +02:00
  • 56a44bcef9 refactor(security): extract requireUserId to SecurityUtils Marcel 2026-04-19 16:39:41 +02:00
  • b3ae379be7 fix(audit): add blockId to TEXT_SAVED audit payload Marcel 2026-04-19 16:36:02 +02:00
  • 74febd37f6 feat(user): add deterministic avatar color to AppUser Marcel 2026-04-19 16:33:27 +02:00
  • da2ece986a fix(documents): WCAG text-size and API error pattern fixes Marcel 2026-04-20 01:17:04 +02:00
  • f2bed92176 fix(review): cycle 3 — a11y, CSS injection, domain boundary Marcel 2026-04-20 01:03:06 +02:00
  • 7f23e88b69 fix(documents): address review cycle 2 — a11y, CSS injection, debounce tests Marcel 2026-04-20 00:40:48 +02:00
  • b2ea9e74fe fix(a11y): add sr-only h1 to documents page for screen reader landmark Marcel 2026-04-20 00:25:16 +02:00
  • dc349947ef fix(a11y): add aria-hidden to decorative SVG and use text-xs for WCAG 12px minimum Marcel 2026-04-20 00:24:36 +02:00
  • 80e10e1755 fix(docs): stop tag click propagation to prevent parent anchor navigation Marcel 2026-04-20 00:23:48 +02:00
  • 3707d34c62 test(docs): add DocumentRow unit tests — title, snippet, tags, sender, progress ring Marcel 2026-04-20 00:23:08 +02:00
  • 10833fbe6b feat(frontend): add /documents page with search, filter, and year-card list Marcel 2026-04-20 00:06:25 +02:00
  • 4ba4e67bc5 feat(frontend): add /documents page.server.ts — search load function with all filter params Marcel 2026-04-19 23:55:37 +02:00
  • 65bc859918 refactor(frontend): rewrite DocumentList as year-card orchestrator using DocumentSearchItem[] Marcel 2026-04-19 23:53:37 +02:00
  • 648aa2a742 feat(frontend): add DocumentRow component with two-column layout, highlights, progress, contributors Marcel 2026-04-19 23:44:31 +02:00
  • ae0e3b271d feat(frontend): add ProgressRing component — SVG progress arc with percentage label Marcel 2026-04-19 23:34:30 +02:00
  • 6e888d9958 feat(frontend): simplify homepage to pure dashboard — remove search/filter dual-mode Marcel 2026-04-19 23:31:57 +02:00
  • eeca30e7a6 feat(frontend): add --header-height, bump initials to text-[10px], update nav to /documents Marcel 2026-04-19 23:24:46 +02:00
  • 05d434fed3 chore(frontend): regenerate API types with DocumentSearchItem and updated DocumentSearchResult Marcel 2026-04-19 23:23:08 +02:00
  • 71c02626f4 feat(migration): V48 add composite index on transcription_blocks(document_id, reviewed) Marcel 2026-04-19 23:19:24 +02:00
  • 8df0c3a1ef feat(service): assemble DocumentSearchItem in DocumentService with completion and contributors Marcel 2026-04-19 23:18:35 +02:00
  • ab3a026feb feat(dto): add DocumentSearchItem record and refactor DocumentSearchResult to items-based shape Marcel 2026-04-19 23:17:53 +02:00
  • 16614d1bfb feat(audit): add findRecentContributorsForDocuments query (max 4, recency order) Marcel 2026-04-19 23:05:49 +02:00
  • f197eb9752 feat(repository): add bulk completion stats query to TranscriptionBlockRepository Marcel 2026-04-19 23:00:20 +02:00
  • 70a2bbfaad refactor(audit): move AuditLogQueryService, AuditLogQueryRepository, and shared DTOs to audit package Marcel 2026-04-19 22:43:30 +02:00
  • 5246638014 fix(dashboard): fix ContributorStack each-block key and add accessible avatar labels Marcel 2026-04-19 22:28:00 +02:00
  • d6e5d3d1e8 fix(layout): replace hardcoded 'Hochladen' with m.upload_action() + aria-label Marcel 2026-04-19 22:23:32 +02:00
  • 94823f85c8 test(dashboard): fix stale resume mock — use totalBlocks instead of page/pages Marcel 2026-04-19 22:19:50 +02:00
  • 6494b13147 docs(spec): add /documents page design spec with mobile breakpoints Marcel 2026-04-19 21:44:45 +02:00
  • 2bb08b6877 fix(dashboard): i18n, a11y, security, and type-safety fixes from PR review Marcel 2026-04-19 21:43:16 +02:00
  • 148710f2ed docs(spec): add /documents page design spec with mobile breakpoints Marcel 2026-04-19 21:39:56 +02:00
  • 18e321b1e6 feat(dashboard): show block count instead of page numbers in resume strip Marcel 2026-04-19 21:32:13 +02:00
  • 3aec856bac refactor(dashboard): remove page field from DashboardResumeDTO; rename pages to totalBlocks Marcel 2026-04-19 21:27:07 +02:00
  • 3f773cd9c3 fix(dashboard): bulk-load document titles in getActivity to avoid N+1 Marcel 2026-04-19 21:24:39 +02:00
  • 09a8081e35 fix(dashboard): null-safe name join in toActorDTO Marcel 2026-04-19 21:21:20 +02:00
  • d19116fd05 fix(dashboard): include ANNOTATION_CREATED in hero resume query Marcel 2026-04-19 19:40:48 +02:00
  • bae07c8171 fix(audit): submit afterCommit write to executor to avoid transaction sync conflict Marcel 2026-04-19 19:39:59 +02:00
  • 64c5b40eae fix(dashboard): defensive null guard in ContributorStack; fix spec makeDoc factories Marcel 2026-04-19 19:22:52 +02:00
  • 0c65d5d748 feat(dashboard): show contributor pill stack on each mission control queue item Marcel 2026-04-19 19:10:16 +02:00
  • 031f6ea29a feat(dashboard): add ContributorStack component for mission control pill stacks Marcel 2026-04-19 19:06:46 +02:00
  • 43f19ebe87 chore(types): regenerate API types with contributor fields on TranscriptionQueueItemDTO Marcel 2026-04-19 19:03:39 +02:00
  • 77a4cbd188 test(dashboard): add empty-queue guard and boundary tests for contributor cap Marcel 2026-04-19 18:54:06 +02:00
  • 9407cb9dc4 feat(dashboard): add contributors to TranscriptionQueueItemDTO with 5-cap and hasMore flag Marcel 2026-04-19 18:44:26 +02:00
  • 80c952cd6c feat(dashboard): expose findContributorsPerDocument in AuditLogQueryService Marcel 2026-04-19 18:30:40 +02:00
  • 615392216c fix(dashboard): use LEFT JOIN users in findContributorsPerDocument for deleted-user resilience Marcel 2026-04-19 18:25:00 +02:00
  • 37203e96ab feat(dashboard): add findContributorsPerDocument query and ContributorRow projection Marcel 2026-04-19 18:18:26 +02:00
  • 10dbce1c70 feat(dashboard): complete frontend redesign for Issue #271 Marcel 2026-04-19 17:44:08 +02:00
  • 99247ed58d feat(i18n): add dashboard i18n keys (de/en/es) Marcel 2026-04-19 17:13:57 +02:00
  • 714f00ef9d chore(types): regenerate API types with dashboard endpoints Marcel 2026-04-19 17:10:50 +02:00
  • 9e0b72bc10 feat(dashboard): remove deprecated /incomplete and /recent-activity endpoints Marcel 2026-04-19 17:05:14 +02:00
  • c678432d25 fix(migration): correct app_users → users table references in V46/V47 Marcel 2026-04-19 16:58:04 +02:00
  • 19832dc1e0 refactor(security): extract requireUserId to SecurityUtils Marcel 2026-04-19 16:39:41 +02:00
  • b3013c42c0 fix(audit): add blockId to TEXT_SAVED audit payload Marcel 2026-04-19 16:36:02 +02:00
  • cb02dc84f6 feat(user): add deterministic avatar color to AppUser Marcel 2026-04-19 16:33:27 +02:00
  • 428c63a2f2 feat(audit): add COMMENT_ADDED and MENTION_CREATED audit events Marcel 2026-04-19 15:43:51 +02:00
  • 5a3b5ff3c7 fix(audit): address review cycle 1 feedback Marcel 2026-04-19 14:07:20 +02:00
  • 2deaaf167e feat(audit): instrument DocumentService for METADATA_UPDATED, STATUS_CHANGED, FILE_UPLOADED Marcel 2026-04-19 13:40:49 +02:00
  • 9887968236 feat(audit): instrument TranscriptionService for TEXT_SAVED and BLOCK_REVIEWED Marcel 2026-04-19 13:24:22 +02:00
  • 793b863096 feat(audit): add audit_log infrastructure and instrument AnnotationService Marcel 2026-04-19 13:17:54 +02:00
  • 692c2c0629 feat(register): show invite-only error when no code param is present Marcel 2026-04-19 12:29:34 +02:00
  • d07f7debf8 feat(register): redesign register page to match spec Marcel 2026-04-19 12:27:03 +02:00
  • 1926e8e6e5 chore: untrack accidentally committed test screenshots Marcel 2026-04-19 10:57:54 +02:00
  • 18a93f5b38 Merge pull request 'feat: invite-based self-service registration' (#273) from feat/issue-269-invite-registration into main marcel 2026-04-19 09:34:32 +02:00
  • 88012a1193 fix(invite): address review cycle 2 feedback Marcel 2026-04-19 09:30:57 +02:00
  • 9fc4993fca fix(invite-ui): accessibility, i18n, and load function tests Marcel 2026-04-19 09:10:42 +02:00
  • f8f5ea634e refactor(invite): move user creation into UserService, add generateCode limit Marcel 2026-04-19 09:03:29 +02:00
  • 103d454e14 fix(rate-limit): only trust X-Forwarded-For from known reverse proxies Marcel 2026-04-19 01:20:11 +02:00
  • daea748a20 feat(frontend): invite-based registration UI Marcel 2026-04-19 01:01:19 +02:00
  • 61fa35df67 feat(invites): implement invite-based self-service registration backend Marcel 2026-04-19 00:42:43 +02:00
  • b4004fce56 chore: ignore .worktrees/ directory Marcel 2026-04-19 00:17:32 +02:00
  • e1ddd66704 fix(auth): add @Email validation and @Valid to enforce email format on user creation Marcel 2026-04-18 21:52:11 +02:00
  • d816e94a90 feat(auth): migrate frontend from username to email-only authentication Marcel 2026-04-18 21:34:46 +02:00
  • 5e01db1c74 feat(auth): remove username field, migrate identity to email Marcel 2026-04-18 20:49:15 +02:00
  • c4444a07d1 feat(users): reject blank email in updateProfile and adminUpdateUser Marcel 2026-04-18 20:35:03 +02:00