• Joined on 2026-03-17
marcel commented on pull request marcel/familienarchiv#329 2026-04-24 21:00:38 +02:00
feat(documents): bulk upload — split-panel with file switcher

👨‍💻 Felix Brandt — Senior Fullstack Developer

Verdict: 🚫 Changes requested

Blockers

1. Tags are silently dropped on save (BulkDocumentEditLayout.svelte, save())

The…

marcel commented on pull request marcel/familienarchiv#329 2026-04-24 20:55:52 +02:00
feat(documents): bulk upload — split-panel with file switcher

PR Review Concerns — Addressed

All reviewer blockers and suggestions from the last review cycle have been addressed in 5 new commits.

Backend

**`refactor(documents): move batch…

marcel pushed to feat/issue-317-bulk-upload at marcel/familienarchiv 2026-04-24 20:51:12 +02:00
23adccdebd test(bulk-upload): add save-error and discard-all coverage to BulkDocumentEditLayout spec
0cf2fe43b9 fix(bulk-upload): i18n hardcoded strings in BulkDropZone and FileSwitcherStrip
0e9fabd906 refactor(documents): extract applyBatchMetadata private helper in DocumentService
a14ac85e27 refactor(documents): change DocumentBatchMetadataDTO.tags from String to List<String> tagNames
ae76d2167c refactor(documents): move batch validation from controller into DocumentService
Compare 5 commits »
marcel pushed to feat/issue-317-bulk-upload at marcel/familienarchiv 2026-04-24 20:11:14 +02:00
6f8c688f9a fix(forms): remove autofocus from WhoWhenSection entirely
bd2d7561bb fix(forms): apply py-3 to location input for consistent 44px height
a2ee35251f fix(forms): raise date and sender field height to match receiver (44px)
c017c6c859 fix(PersonTypeahead): match height and border-radius of other form inputs
d0e9087e9c fix(PersonMultiSelect): align height and focus ring with other form inputs
Compare 9 commits »
marcel commented on pull request marcel/familienarchiv#329 2026-04-24 18:55:39 +02:00
feat(documents): bulk upload — split-panel with file switcher

🎨 Leonie Voss (@leonievoss) — UX Design Lead & Accessibility

Verdict: 🚫 Changes requested

The component structure is clean and the brand token usage is mostly correct. But the layout…

marcel commented on pull request marcel/familienarchiv#329 2026-04-24 18:55:14 +02:00
feat(documents): bulk upload — split-panel with file switcher

🧪 Sara Holt (@saraholt) — QA Engineer

Verdict: ⚠️ Approved with concerns

Good TDD discipline on the backend — 5 new DocumentControllerTest methods with clear names and red→green…

marcel commented on pull request marcel/familienarchiv#329 2026-04-24 18:54:51 +02:00
feat(documents): bulk upload — split-panel with file switcher

🔒 Nora "NullX" Steiner — Application Security Engineer

Verdict: ⚠️ Approved with concerns

No new attack surface opened. The authorization model is intact (`@RequirePermission(WRITE_ALL)…

marcel commented on pull request marcel/familienarchiv#329 2026-04-24 18:54:28 +02:00
feat(documents): bulk upload — split-panel with file switcher

📋 Elicit — Requirements Engineer

Verdict: 🚫 Changes requested

Reviewed against the spec (docs/specs/bulk-upload-split-panel-spec.html). Several requirements are either missing or…

marcel commented on pull request marcel/familienarchiv#329 2026-04-24 18:54:04 +02:00
feat(documents): bulk upload — split-panel with file switcher

🔧 Tobias Wendt (@tobiwendt) — DevOps & Platform Engineer

Verdict: Approved

No compose changes, no new services, no new infrastructure. The application.yaml change is the only…

marcel commented on pull request marcel/familienarchiv#329 2026-04-24 18:53:47 +02:00
feat(documents): bulk upload — split-panel with file switcher

👨‍💻 Felix Brandt (@felixbrandt) — Senior Fullstack Developer

Verdict: 🚫 Changes requested

Good TDD coverage on the backend (5 new tests, red→green evidence in the commit log). The…

marcel commented on pull request marcel/familienarchiv#329 2026-04-24 18:53:19 +02:00
feat(documents): bulk upload — split-panel with file switcher

🏛️ Markus Keller (@mkeller) — Senior Application Architect

Verdict: ⚠️ Approved with concerns

The structural choices here are sound — monolith stays intact, no new routes, no new…

marcel commented on issue marcel/familienarchiv#320 2026-04-24 18:49:02 +02:00
feat(transcribe): guided empty state + Kurrent primer for first-time transcribers

📄 Spec committed — /hilfe/transkription

Final UI/UX spec for the Transkriptions-Richtlinien page is now on main:

**→ [docs/specs/transkriptions-richtlinien-spec.html](http://heim-nas:…

marcel pushed to main at marcel/familienarchiv 2026-04-24 18:48:44 +02:00
1d5219eac4 docs(specs): add Transkriptions-Richtlinien spec for #320
marcel created pull request marcel/familienarchiv#329 2026-04-24 18:45:38 +02:00
feat(documents): bulk upload — split-panel with file switcher
marcel pushed to feat/issue-317-bulk-upload at marcel/familienarchiv 2026-04-24 18:25:20 +02:00
87f245cc0f chore(api): regenerate types — adds DocumentBatchMetadataDTO
marcel created branch feat/issue-317-bulk-upload in marcel/familienarchiv 2026-04-24 18:03:30 +02:00
marcel pushed to feat/issue-317-bulk-upload at marcel/familienarchiv 2026-04-24 18:03:30 +02:00
f871472a48 feat(bulk-upload): wire /documents/new to BulkDocumentEditLayout
87b027083b feat(bulk-upload): add BulkDocumentEditLayout component with save handler
dc28ebb9d1 feat(bulk-upload): add UploadSaveBar component + fix bulk_save_cta message
c9078bf8f2 feat(bulk-upload): add ScopeCard component
e2ad751512 feat(bulk-upload): add FileSwitcherStrip component
Compare 9 commits »
marcel commented on issue marcel/familienarchiv#320 2026-04-24 16:51:26 +02:00
feat(transcribe): guided empty state + Kurrent primer for first-time transcribers

🗳️ Decision Queue — Action Required

1 decision needs your input before implementation starts.

Security / Access Control

  • Auth boundary on /hilfe/transkription — should the…
marcel commented on issue marcel/familienarchiv#320 2026-04-24 16:51:19 +02:00
feat(transcribe): guided empty state + Kurrent primer for first-time transcribers

📋 Elicit — Requirements Engineer

Observations

  • The acceptance criteria in the issue body are phrased in implementation terms (Coach card renders iff sections.length === 0 && !dismissed
marcel commented on issue marcel/familienarchiv#320 2026-04-24 16:50:56 +02:00
feat(transcribe): guided empty state + Kurrent primer for first-time transcribers

👋 Leonie Voss — UI/UX Design Lead

No fresh concerns from my angle. I've already posted two comments on this issue — [#issuecomment-4330](http://heim-nas:3005/marcel/familienarchiv/issues/320…