From 42b423e4f4341b295ae97e0536990953b687f8db Mon Sep 17 00:00:00 2001 From: Jake Date: Fri, 24 Apr 2026 20:31:21 +0100 Subject: [PATCH] feat(gamification): list_recent_completions_cmd Tauri wrapper Thin wrapper over kon_storage::list_recent_completions, parameterised by day count. Serialises to camelCase JSON (day, count). Co-Authored-By: Claude Opus 4.7 (1M context) --- src-tauri/src/commands/tasks.rs | 20 +++++++++++++++++--- src-tauri/src/lib.rs | 1 + 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src-tauri/src/commands/tasks.rs b/src-tauri/src/commands/tasks.rs index cb553fd..00f760c 100644 --- a/src-tauri/src/commands/tasks.rs +++ b/src-tauri/src/commands/tasks.rs @@ -11,10 +11,11 @@ use kon_storage::{ complete_subtask_and_check_parent as db_complete_subtask, complete_task as db_complete_task, delete_task as db_delete_task, get_task_by_id as db_get_task, insert_subtask as db_insert_subtask, insert_task as db_insert_task, - list_feedback_examples as db_list_feedback_examples, list_subtasks as db_list_subtasks, + list_feedback_examples as db_list_feedback_examples, + list_recent_completions as db_list_recent_completions, list_subtasks as db_list_subtasks, list_tasks as db_list_tasks, set_task_energy as db_set_task_energy, - uncomplete_task as db_uncomplete_task, update_task as db_update_task, FeedbackRow, - FeedbackTargetType, TaskRow, + uncomplete_task as db_uncomplete_task, update_task as db_update_task, DailyCompletionCount, + FeedbackRow, FeedbackTargetType, TaskRow, }; use crate::AppState; @@ -386,3 +387,16 @@ pub async fn complete_subtask_cmd( .await .map_err(|e| e.to_string()) } + +/// Phase 8: daily completion counts for the Tasks-page badge and the +/// 7-day momentum sparkline. Returns a fixed-length oldest-first +/// series. Empty days are explicit zeros. +#[tauri::command] +pub async fn list_recent_completions_cmd( + state: tauri::State<'_, AppState>, + days: u32, +) -> Result, String> { + db_list_recent_completions(&state.db, days) + .await + .map_err(|e| e.to_string()) +} diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 2a47fe8..90202c1 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -317,6 +317,7 @@ pub fn run() { commands::tasks::extract_tasks_from_transcript_cmd, commands::tasks::list_subtasks_cmd, commands::tasks::complete_subtask_cmd, + commands::tasks::list_recent_completions_cmd, // HITL feedback (Phase 2 roadmap) commands::feedback::record_feedback, commands::feedback::list_feedback_examples_cmd,