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) <noreply@anthropic.com>
This commit is contained in:
2026-04-24 20:31:21 +01:00
parent 83bd338aff
commit 42b423e4f4
2 changed files with 18 additions and 3 deletions

View File

@@ -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<Vec<DailyCompletionCount>, String> {
db_list_recent_completions(&state.db, days)
.await
.map_err(|e| e.to_string())
}

View File

@@ -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,