You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
finding(i18n): calendar.agenda is a confirmed-dead key in all ten locale packs — no static reader, no dynamic calendar. head, and the enum value it labeled is retired #5783
Found while implementing #5740 (PR #5782, 'agenda' retired from CalendarViewMode). Filed unassigned as a sub-issue of #4730, whose dead-key backlog this belongs to — recorded there rather than deleted in that PR because packages/i18n was outside the claimed file surface, and a single-key deletion belongs with #4730's namespace-by-namespace sweep anyway (all-locales-key-parity means it must leave all ten packs in one stroke).
Measured (on origin/main1f94b4c)
Every locale pack defines it: packages/i18n/src/locales/{en,zh,ja,ko,ru,ar,de,es,fr,pt}.ts under the calendar: namespace (e.g. en.ts:614agenda: 'Agenda', zh.ts:552agenda: '日程').
No static call site — the only consumer of calendar.* labels is packages/plugin-calendar/src/CalendarView.tsx, whose view switcher renders exactly three items reading t('calendar.day') / t('calendar.week') / t('calendar.month') (lines 327-329), and whose DEFAULT_TRANSLATIONS fallback map (lines 78-84) carries no calendar.agenda entry either.
No dynamic head — zero t(`calendar.${...}`) template construction anywhere in packages/ or apps/.
No textual footprint — the literal dotted string calendar.agenda appears nowhere in the repo outside the packs.
Fold into #4730's next sweep round: delete calendar.agenda from all ten packs in the same stroke (parity gate requires it). Ten translated strings, zero readers.
Back-links: #5740 (the value retirement and its measurement), #4730 (the dead-key backlog this extends), #4658 (the sweep mechanism).
Found while implementing #5740 (PR #5782,
'agenda'retired fromCalendarViewMode). Filed unassigned as a sub-issue of #4730, whose dead-key backlog this belongs to — recorded there rather than deleted in that PR becausepackages/i18nwas outside the claimed file surface, and a single-key deletion belongs with #4730's namespace-by-namespace sweep anyway (all-locales-key-parity means it must leave all ten packs in one stroke).Measured (on
origin/main1f94b4c)packages/i18n/src/locales/{en,zh,ja,ko,ru,ar,de,es,fr,pt}.tsunder thecalendar:namespace (e.g.en.ts:614agenda: 'Agenda',zh.ts:552agenda: '日程').calendar.*labels ispackages/plugin-calendar/src/CalendarView.tsx, whose view switcher renders exactly three items readingt('calendar.day')/t('calendar.week')/t('calendar.month')(lines 327-329), and whoseDEFAULT_TRANSLATIONSfallback map (lines 78-84) carries nocalendar.agendaentry either.t(`calendar.${...}`)template construction anywhere inpackages/orapps/.calendar.agendaappears nowhere in the repo outside the packs.view: 'agenda'is declared byCalendarViewModeand the zod enum but thecalendar-viewrenderer silently falls back to'month'#5740 the labeled value no longer exists:CalendarViewModeis'month' | 'week' | 'day'and the zod enum matches, so no future reader can arrive without first reopening that contract.Suggested handling
Fold into #4730's next sweep round: delete
calendar.agendafrom all ten packs in the same stroke (parity gate requires it). Ten translated strings, zero readers.Back-links: #5740 (the value retirement and its measurement), #4730 (the dead-key backlog this extends), #4658 (the sweep mechanism).
Generated by Claude Code