From 12f71fabdf64a68a0428c2fc7eb100c9d8b179e4 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Sun, 19 Jul 2026 16:10:24 -0400 Subject: [PATCH] refactor(scribe): remove calendar + entity surfaces from web UI (frontend) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Frontend half of the narrowing (milestone #194); matches backend b49efdc. - delete CalendarView, EventSlideOver, WeatherCard (orphan) - drop /calendar route + nav link + the g→l keyboard shortcut - strip the calendar-events API client + event/metadata bits from note types and the notes store - KnowledgeView: remove People/Places/Lists tabs, entity cards, create buttons and the upcoming-events widget; keep notes/tasks/plans/processes + the overdue-task badge - NoteEditorView: remove person/place/list forms + list-builder + entity metadata; keep note + process editors (type select = Note/Process) - DashboardView: drop the "Upcoming · 7 days" events rail card - SettingsView: remove the CalDAV integration card + save/test (its endpoints were deleted backend-side) - prune the now-dead entity/event CSS RecurrenceEditor + task recurrence rules are kept (task machinery, not calendar). Verified by a full dangler sweep. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_01BPtbSzA4JLMAKgFZ8VTg7Q --- frontend/src/App.vue | 7 - frontend/src/api/client.ts | 66 -- frontend/src/components/AppHeader.vue | 2 - frontend/src/components/EventSlideOver.vue | 677 ------------------ frontend/src/components/WeatherCard.vue | 277 -------- frontend/src/router/index.ts | 5 - frontend/src/stores/notes.ts | 3 +- frontend/src/types/note.ts | 3 +- frontend/src/views/CalendarView.vue | 763 --------------------- frontend/src/views/DashboardView.vue | 28 +- frontend/src/views/KnowledgeView.vue | 280 +------- frontend/src/views/NoteEditorView.vue | 370 +--------- frontend/src/views/SettingsView.vue | 134 ---- 13 files changed, 26 insertions(+), 2589 deletions(-) delete mode 100644 frontend/src/components/EventSlideOver.vue delete mode 100644 frontend/src/components/WeatherCard.vue delete mode 100644 frontend/src/views/CalendarView.vue diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 1aac6f0..d84293e 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -81,7 +81,6 @@ function onGlobalKeydown(e: KeyboardEvent) { case "p": router.push("/projects"); break; case "r": router.push("/rules"); break; case "g": router.push("/graph"); break; - case "l": router.push("/calendar"); break; case "x": router.push("/trash"); break; } return; @@ -190,12 +189,6 @@ onUnmounted(() => { p Projects -
- g - + - l - Calendar -
g + diff --git a/frontend/src/api/client.ts b/frontend/src/api/client.ts index c0aa114..93ffbea 100644 --- a/frontend/src/api/client.ts +++ b/frontend/src/api/client.ts @@ -374,72 +374,6 @@ export async function apiStreamPost( } } -// --------------------------------------------------------------------------- -// Calendar events -// --------------------------------------------------------------------------- - -export interface EventEntry { - id: number; - uid: string; - title: string; - start_dt: string; - end_dt: string | null; - all_day: boolean; - description: string; - location: string; - color: string; - recurrence: string | null; - caldav_uid: string; - project_id: number | null; - user_id: number; - created_at: string | null; - updated_at: string | null; -} - -export interface EventCreatePayload { - title: string; - start_dt: string; - end_dt?: string; - all_day?: boolean; - description?: string; - location?: string; - color?: string; - recurrence?: string; - project_id?: number; -} - -export interface EventUpdatePayload { - title?: string; - start_dt?: string; - end_dt?: string; - all_day?: boolean; - description?: string; - location?: string; - color?: string; - recurrence?: string | null; - project_id?: number; -} - -export async function listEvents(from: string, to: string): Promise { - return apiGet(`/api/events?from=${encodeURIComponent(from)}&to=${encodeURIComponent(to)}`); -} - -export async function createEvent(payload: EventCreatePayload): Promise { - return apiPost('/api/events', payload); -} - -export async function getEvent(id: number): Promise { - return apiGet(`/api/events/${id}`); -} - -export async function updateEvent(id: number, payload: EventUpdatePayload): Promise { - return apiPatch(`/api/events/${id}`, payload); -} - -export async function deleteEvent(id: number): Promise { - return apiDelete(`/api/events/${id}`); -} - // ─── API Keys ───────────────────────────────────────────────────────────────── export interface ApiKeyEntry { diff --git a/frontend/src/components/AppHeader.vue b/frontend/src/components/AppHeader.vue index a61689e..06e41b3 100644 --- a/frontend/src/components/AppHeader.vue +++ b/frontend/src/components/AppHeader.vue @@ -47,7 +47,6 @@ router.afterEach(() => { @@ -93,7 +92,6 @@ router.afterEach(() => {
Dashboard Browse - Calendar Projects Rulebooks Shared diff --git a/frontend/src/components/EventSlideOver.vue b/frontend/src/components/EventSlideOver.vue deleted file mode 100644 index a962e12..0000000 --- a/frontend/src/components/EventSlideOver.vue +++ /dev/null @@ -1,677 +0,0 @@ - - -