#262: remove Requests / Approvals / Tasks tabs from Executive Meetings

Full-stack removal of the three retired sections.

Backend
- routes/executive-meetings.ts: deleted /requests* + /tasks* handlers,
  REQUEST_ROLES / TASK_VIEW_ROLES / TASK_BROAD_VIEW_ROLES, the three
  capability flags from /me, retired imports, and dead schemas
  (detailsByType, request*Schema, taskCreateSchema, taskPatchSchema,
  dueAtSchema, dateOnly, timeHm). canApprove kept (FontSettings).
- lib/executive-meeting-notify.ts: types collapsed to ['meeting_created'].

Frontend
- pages/executive-meetings.tsx: deleted Requests/Approvals/Tasks
  sections, RequestListRow, retired SECTIONS entries, MeRoles type, and
  unused icon imports.
- hooks/use-notifications-socket.ts: dropped two retired invalidations.
- locales/{ar,en}.json: removed nav + section + 6 retired type keys.

Schema + DB
- lib/db/src/schema/executive-meetings.ts: tables/relations removed.
- scripts/cleanup-em-requests-tasks.sql: idempotent cleanup — orphan
  prefs / notifications / audit rows then DROP TABLE … CASCADE.
  Applied to dev DB; `db push` re-synced.

Tests
- Sequential `node --test --test-concurrency=1` → 226/226 pass.
- 3 pre-existing parallel-file pollution failures in the workflow
  runner are unrelated to #262 (verified by sequential run).
- Pre-existing tsc warnings at routes L509/625/L1594 untouched.
This commit is contained in:
riyadhafraa
2026-05-01 08:28:11 +00:00
parent 21c935064d
commit 389e8b785c
10 changed files with 8 additions and 99 deletions
-9
View File
@@ -95,11 +95,6 @@ export const executiveMeetingAttendeesTable = pgTable(
}),
);
// #262: removed executiveMeetingRequestsTable + executiveMeetingTasksTable.
// The Requests / Approvals / Tasks tabs were retired from the page; the
// underlying DB tables are dropped by
// artifacts/api-server/scripts/cleanup-em-requests-tasks.sql.
export const executiveMeetingNotificationsTable = pgTable(
"executive_meeting_notifications",
{
@@ -130,10 +125,6 @@ export const executiveMeetingNotificationsTable = pgTable(
* notificationType mirrors the keys passed to
* `recordExecutiveMeetingNotifications` / `sendExecutiveMeetingEmail`:
* - meeting_created
*
* #262: collapsed to a single event type after Requests/Approvals/Tasks
* were removed. Orphan rows for the old types are deleted by
* cleanup-em-requests-tasks.sql.
*/
export const executiveMeetingNotificationPrefsTable = pgTable(
"executive_meeting_notification_prefs",