sidebar reorganized: Scope, Plan, Activity — collapsible + resizable
Some checks failed
ci / build-test (push) Has been cancelled
ci / docker-build (push) Has been cancelled
Desktop App / Build Linux (amd64) (push) Has been cancelled
Desktop App / Attach to Release (push) Has been cancelled

- TaskContextPanel restructured into 3 collapsible sections:
  Scope (graph), Plan (goal + steps + progress), Activity (timeline)
- Collapsed headers show compact live status: 'Graph', 'Step X/N', 'N actions'
- Sections are vertically resizable via drag handles
- Plan section shows goal inline + step list + progress bar
- GoalHeader and PlanProgress no longer rendered separately
- ActivityTimeline header moved to TaskContextPanel
This commit is contained in:
2026-07-14 12:23:26 +02:00
parent b414722fc7
commit 54f532f166
3 changed files with 173 additions and 20 deletions

View File

@@ -1,5 +1,5 @@
<script lang="ts">
import { activityLog, type ActivityEntry, streaming } from '$lib/stores/chat'
import { activityLog, type ActivityEntry } from '$lib/stores/chat'
import LoaderCircleIcon from '@lucide/svelte/icons/loader-circle'
import CircleCheckIcon from '@lucide/svelte/icons/circle-check'
import CircleXIcon from '@lucide/svelte/icons/circle-x'
@@ -41,15 +41,6 @@
</script>
<div class="flex h-full flex-col">
<div class="flex items-center justify-between border-b px-3 py-2">
<span class="text-[11px] font-semibold uppercase tracking-wider text-muted-foreground">Activity</span>
{#if $streaming}
<span class="flex items-center gap-1 text-[11px] text-primary">
<LoaderCircleIcon class="size-3 animate-spin" />
live
</span>
{/if}
</div>
<div class="flex-1 overflow-y-auto">
{#if $activityLog.length === 0}
<div class="px-3 py-6 text-center text-xs text-muted-foreground">