kin: KIN-020 UI для manual_task эскалации из auto_resolve_pending_actions

This commit is contained in:
Gros Frumos 2026-03-16 07:14:32 +02:00
parent a0b0976d8d
commit 77ed68c2b5
3 changed files with 57 additions and 3 deletions

View file

@ -41,6 +41,7 @@ export interface Project {
tech_stack: string[] | null
execution_mode: string | null
autocommit_enabled: number | null
obsidian_vault_path: string | null
created_at: string
total_tasks: number
done_tasks: number
@ -49,6 +50,13 @@ export interface Project {
review_tasks: number
}
export interface ObsidianSyncResult {
exported_decisions: number
tasks_updated: number
errors: string[]
vault_path: string
}
export interface ProjectDetail extends Project {
tasks: Task[]
modules: Module[]
@ -171,8 +179,10 @@ export const api = {
post<{ updated: string[]; count: number }>(`/projects/${projectId}/audit/apply`, { task_ids: taskIds }),
patchTask: (id: string, data: { status?: string; execution_mode?: string; priority?: number; route_type?: string; title?: string; brief_text?: string }) =>
patch<Task>(`/tasks/${id}`, data),
patchProject: (id: string, data: { execution_mode?: string; autocommit_enabled?: boolean }) =>
patchProject: (id: string, data: { execution_mode?: string; autocommit_enabled?: boolean; obsidian_vault_path?: string }) =>
patch<Project>(`/projects/${id}`, data),
syncObsidian: (projectId: string) =>
post<ObsidianSyncResult>(`/projects/${projectId}/sync/obsidian`, {}),
deleteDecision: (projectId: string, decisionId: number) =>
del<{ deleted: number }>(`/projects/${projectId}/decisions/${decisionId}`),
createDecision: (data: { project_id: string; type: string; title: string; description: string; category?: string; tags?: string[] }) =>