From 93b3aa379ccd9db072dda1d4bb6d2de005933cdf Mon Sep 17 00:00:00 2001 From: Hikari Date: Fri, 6 Mar 2026 20:34:18 -0800 Subject: [PATCH] feat: automated task loop panel with per-task conversation orchestration Implements issue #179. Adds a Task Loop panel that imports hikari-tasks.json files and automatically runs Claude Code through each task in sequence, one per conversation tab. Includes Start/Pause/Stop/Resume controls, real-time status indicators per task, and a StatusBar badge. WSL UNC paths from the file picker are normalised to Unix paths at import time. --- src/lib/components/NavMenu.svelte | 19 + src/lib/components/StatusBar.svelte | 22 + src/lib/components/TaskLoopPanel.svelte | 510 ++++++++++++++++++++++++ src/lib/stores/taskLoop.test.ts | 127 ++++++ src/lib/stores/taskLoop.ts | 114 ++++++ 5 files changed, 792 insertions(+) create mode 100644 src/lib/components/TaskLoopPanel.svelte create mode 100644 src/lib/stores/taskLoop.test.ts create mode 100644 src/lib/stores/taskLoop.ts diff --git a/src/lib/components/NavMenu.svelte b/src/lib/components/NavMenu.svelte index e29c215..c2e4810 100644 --- a/src/lib/components/NavMenu.svelte +++ b/src/lib/components/NavMenu.svelte @@ -22,6 +22,7 @@ import ProjectContextPanel from "./ProjectContextPanel.svelte"; import PrdPanel from "./PrdPanel.svelte"; import ChangelogPanel from "./ChangelogPanel.svelte"; + import TaskLoopPanel from "./TaskLoopPanel.svelte"; import { injectTextStore } from "$lib/stores/projectContext"; const DISCORD_URL = "https://chat.nhcarrigan.com"; @@ -65,6 +66,7 @@ let showProjectContext = $state(false); let showPrdPanel = $state(false); let showChangelog = $state(false); + let showTaskLoop = $state(false); const progress = $derived($achievementProgress); const activeAgentCount = $derived($runningAgentCount); @@ -230,6 +232,19 @@ PRD Creator + + +