summaryrefslogtreecommitdiff
path: root/makima/frontend/src/lib/api.ts
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-01-22 13:16:01 +0000
committersoryu <soryu@soryu.co>2026-01-22 13:16:01 +0000
commitc5cd9fe0515f024a6f442e6b7eca614a38aa6deb (patch)
tree3945da69ce346798b413d7063485aebfd5be3d11 /makima/frontend/src/lib/api.ts
parent1b1b737006f9505b2a188a669c5a37671658ce3f (diff)
downloadsoryu-makima/task-task-5dde682c-5dde682c.tar.gz
soryu-makima/task-task-5dde682c-5dde682c.zip
Add dismiss functionality for completed standalone tasksmakima/task-task-5dde682c-5dde682c
## Changes ### Backend - Add 'hidden' field to Task model (models.rs) - Add database migration for hidden column (20250122000000_add_task_hidden.sql) - Update task listing queries to include hidden field and filter out hidden tasks - Update update_task_for_owner to handle hidden field ### Frontend - Add hidden field to TaskSummary interface (api.ts) - Add dismissTask API function (api.ts) - Add hideTask function to useTasks hook - Add Dismiss button to TaskList for completed standalone tasks - Wire up onDismiss handler in mesh.tsx route ## Behavior - Completed standalone tasks (tasks without a contract) show a "Dismiss" button - Dismissing a task sets hidden=true and removes it from the task list - Hidden tasks are filtered out by default in all task listing queries Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'makima/frontend/src/lib/api.ts')
-rw-r--r--makima/frontend/src/lib/api.ts16
1 files changed, 16 insertions, 0 deletions
diff --git a/makima/frontend/src/lib/api.ts b/makima/frontend/src/lib/api.ts
index 86ff06c..b42a19f 100644
--- a/makima/frontend/src/lib/api.ts
+++ b/makima/frontend/src/lib/api.ts
@@ -543,6 +543,8 @@ export interface TaskSummary {
subtaskCount: number;
/** Whether this is a supervisor task (contract orchestrator) */
isSupervisor: boolean;
+ /** Whether this task is hidden from the UI (user dismissed it) */
+ hidden: boolean;
version: number;
createdAt: string;
updatedAt: string;
@@ -639,6 +641,8 @@ export interface UpdateTaskRequest {
targetRepoPath?: string;
/** Action on completion: "none", "branch", "merge", "pr" */
completionAction?: CompletionAction;
+ /** Whether this task is hidden from the UI (user dismissed it) */
+ hidden?: boolean;
version?: number;
}
@@ -2631,3 +2635,15 @@ export function getSupervisorStatus(
canResume,
};
}
+
+// =============================================================================
+// Task Dismiss (Hide) Functions
+// =============================================================================
+
+/**
+ * Dismiss (hide) a completed standalone task from the UI.
+ * This marks the task as hidden so it won't appear in the task list.
+ */
+export async function dismissTask(taskId: string): Promise<Task> {
+ return updateTask(taskId, { hidden: true });
+}