Delete dead conversations/ route (old Korrespondenz page)
#193
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
The
conversations/route is leftover from beforebriefwechsel/replaced it. No navigation link points to/conversationsanymore — AppNav and CoCorrespondentsList both link to/briefwechsel. The only internal reference to/conversationsis from within the route itself.Scope
Delete the following files:
frontend/src/routes/conversations/+page.sveltefrontend/src/routes/conversations/+page.server.tsfrontend/src/routes/conversations/ConversationFilterBar.sveltefrontend/src/routes/conversations/ConversationTimeline.svelteAlso:
messages/de.json,en.json,es.json— remove any keys only used by the conversations routeconversations/Acceptance Criteria
conversations/directory fully removednpm run checkpassesnpm run buildpasses👨💻 Felix Brandt -- Senior Fullstack Developer
Questions & Observations
conversations/directory may also contain layout files (+layout.svelte,+layout.server.ts). Verify the full file list before deleting --ls -Rthe directory first.conversations/? These would break silently if not removed.ConversationTimeline.svelteandConversationFilterBar.svelteinconversations/may share naming with components inbriefwechsel/. Confirm no import path accidentally resolves to the wrong directory.Suggestions
grep -r "conversations" frontend/src/before deleting to catch any stray references beyond what was already identified (AppNav, CoCorrespondentsList). Include test files and i18n message files in the search.npm run checkANDnpm run test-- the acceptance criteria list check and build but not tests. Addnpm run testto the checklist.🏗️ Markus Keller -- Application Architect
Questions & Observations
/api/conversationsendpoints (if any exist) are not mentioned. If the conversations route had its own server-side API calls in+page.server.ts, verify whether those backend endpoints are also unused or still servebriefwechsel/.Suggestions
+page.server.tsin conversations to see which API endpoints it calls. If those endpoints are shared with briefwechsel, leave them alone. If they are conversations-only, note them for potential future backend cleanup (separate issue, not this one).🧪 Sara Holt -- Senior QA Engineer
Questions & Observations
/conversations? If so, those tests need to be removed or redirected to/briefwechselin the same commit. A broken E2E test would block CI.npm run checkandnpm run buildbut notnpm run test(Vitest) or E2E tests. Both should pass.Suggestions
npm run testpasses (no broken imports)/conversations)grep -r "conversations" frontend/e2e/will catch any E2E references.🔒 Nora "NullX" Steiner -- Application Security Engineer
Questions & Observations
/conversationsroute did not have any unique authorization checks in its+page.server.tsthat might hint at a different security model. If it was a straight copy of briefwechsel's auth, no concern.Suggestions
/conversationsshould get a redirect to/briefwechsel(via+page.server.tswithredirect(301, '/briefwechsel')) rather than a 404, in case any external bookmarks or shared links exist. This is a UX decision, not a security one -- but worth a 5-second discussion.🎨 Leonie Voss -- UI/UX Design Lead
Questions & Observations
/conversationsdirectly. If this is an internal-only family app with a small user base, this is negligible.Suggestions
/conversations?senderId=...&receiverId=...links (e.g. in emails or chat), those links would break. A temporary redirect (as NullX suggested) would be graceful but optional for a small user group.⚙️ Tobias Wendt -- DevOps & Platform Engineer
Questions & Observations
Suggestions
npm run buildsucceeds (already in acceptance criteria) and the CI pipeline stays green. That is the full extent of the deployment check needed here.Addressing Review Feedback
Re: Felix Brandt
ls -R. The directory contains exactly 5 files:+page.svelte,+page.server.ts,ConversationFilterBar.svelte,ConversationTimeline.svelte,page.svelte.spec.ts. No+layout.svelteor+layout.server.ts. The issue's 4-file list missed the spec file --page.svelte.spec.tsmust also be deleted.frontend/src/routes/conversations/page.svelte.spec.ts(165 lines) is a full Vitest browser test suite for the old page. It must be deleted along with the route files.ConversationFilterBar.svelteandConversationTimeline.svelte. No cross-directory imports exist -- each route imports its own copy via relative./paths (conversations+page.svelte:6-7). No collision risk, but confirms these are independent duplicates./conversationsoutside the conversations/ directory itself are in E2E tests (see Sara Holt section below).AppNav.sveltelinks to/briefwechsel, not/conversations(lines 63, 164).npm run testto acceptance criteria: Agreed. Adding it.Re: Markus Keller
Backend endpoints:
+page.server.ts:22callsGET /api/documents/conversationandGET /api/persons/{id}. Both are also used bybriefwechsel/+page.server.ts:29. These are shared endpoints -- no backend cleanup needed.Orphaned i18n keys: 14 keys in
messages/{de,en,es}.jsonare used ONLY by the conversations route (not by briefwechsel or any other source file):conv_heading,conv_subtitle,conv_empty_text,conv_summaryconv_label_correspondent_optional,conv_hint_single_person,conv_hint_single_person_filteredconv_strip_period,conv_strip_from_placeholder,conv_strip_to_placeholder,conv_strip_all_correspondentsconv_empty_search_placeholder,conv_asym_sent,conv_asym_receivedThese should be removed from all three message files. The remaining
conv_*keys are actively used by briefwechsel/ and must stay.Re: Sara Holt
E2E tests navigating to /conversations: Yes, significant impact found:
frontend/e2e/auth.spec.ts:27-- includes/conversationsin the protected-routes redirect test arrayfrontend/e2e/persons.spec.ts:185-311-- entiretest.describe('Person detail -- conversations link')block (lines 185-203),test.describe('Conversations')block (lines 205-228), andtest.describe('Conversations -- enhancements')block (lines 230-312) all navigate to/conversationsThese E2E tests must be removed or rewritten to target
/briefwechsel. The auth spec line should replace/conversationswith/briefwechsel. The persons.spec.ts conversation tests (lines 185-312) should be deleted entirely if equivalent tests exist for briefwechsel, or rewritten to use/briefwechselif not.Add
npm run testand E2E pass to acceptance criteria: Agreed on both.Re: Nora "NullX" Steiner
conversations/+page.server.tshas no unique auth checks beyond the global layout auth (+layout.server.tsloads the user session). ThecanWriteflag passed to the template (line 101 of+page.svelte) comes from the layout data, same as briefwechsel. No security model difference.Re: Leonie Voss
Re: Tobias Wendt
Updated Acceptance Criteria
Based on the feedback, the full checklist should be:
conversations/directory fully removed (5 files, not 4 -- includespage.svelte.spec.ts)messages/de.json,en.json,es.jsonauth.spec.tsline 27 changed from/conversationsto/briefwechsel; conversation test blocks inpersons.spec.ts(lines 185-312) removed or rewritten for/briefwechselnpm run checkpassesnpm run buildpassesnpm run testpasses/conversationsremain)