From dc93675470dc00aefb5cc7c984ba593da6e15d32 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Thu, 28 May 2026 11:12:59 -0400 Subject: [PATCH] feat(plan): KnowledgeView Plans facet + plan badge (knowledge endpoints + UI) --- frontend/src/views/KnowledgeView.vue | 16 +++--- src/fabledassistant/routes/knowledge.py | 2 +- src/fabledassistant/services/knowledge.py | 64 ++++++++++++++--------- 3 files changed, 48 insertions(+), 34 deletions(-) diff --git a/frontend/src/views/KnowledgeView.vue b/frontend/src/views/KnowledgeView.vue index 4e37804..a5c9f31 100644 --- a/frontend/src/views/KnowledgeView.vue +++ b/frontend/src/views/KnowledgeView.vue @@ -49,6 +49,7 @@ interface KnowledgeItem { status?: string; priority?: string; due_date?: string; + task_kind?: "work" | "plan"; } interface UpcomingEvent { @@ -60,7 +61,7 @@ interface UpcomingEvent { // ─── Filter state ───────────────────────────────────────────────────────────── -const activeType = ref<"" | "note" | "person" | "place" | "list" | "task">(""); +const activeType = ref<"" | "note" | "person" | "place" | "list" | "task" | "plan">(""); const activeTag = ref(""); const sortMode = ref<"modified" | "created" | "alpha" | "type">("modified"); const searchQuery = ref(""); @@ -68,8 +69,8 @@ let searchDebounce: ReturnType | null = null; // ─── Type counts ────────────────────────────────────────────────────────────── -interface KnowledgeCounts { note: number; person: number; place: number; list: number; total: number } -const typeCounts = ref({ note: 0, person: 0, place: 0, list: 0, total: 0 }); +interface KnowledgeCounts { note: number; person: number; place: number; list: number; task: number; plan: number; total: number } +const typeCounts = ref({ note: 0, person: 0, place: 0, list: 0, task: 0, plan: 0, total: 0 }); async function fetchCounts() { try { @@ -416,11 +417,11 @@ onUnmounted(() => { {{ typeCounts.total }}