generated from nhcarrigan/template
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.
This commit is contained in:
@@ -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 @@
|
||||
<span>PRD Creator</span>
|
||||
</button>
|
||||
|
||||
<!-- Task Loop -->
|
||||
<button onclick={menuAction(() => (showTaskLoop = true))} class="nav-item">
|
||||
<svg class="w-5 h-5 shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
stroke-width="2"
|
||||
d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"
|
||||
/>
|
||||
</svg>
|
||||
<span>Task Loop</span>
|
||||
</button>
|
||||
|
||||
<!-- File Editor -->
|
||||
<button
|
||||
onclick={menuAction(() => editorStore.toggleEditor())}
|
||||
@@ -494,6 +509,10 @@
|
||||
<ChangelogPanel onClose={() => (showChangelog = false)} />
|
||||
{/if}
|
||||
|
||||
{#if showTaskLoop}
|
||||
<TaskLoopPanel onClose={() => (showTaskLoop = false)} />
|
||||
{/if}
|
||||
|
||||
<style>
|
||||
.nav-item {
|
||||
display: flex;
|
||||
|
||||
Reference in New Issue
Block a user