sidebar activity timeline replaces tool display in chat
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

- New ActivityTimeline: unified timeline in sidebar showing all agent actions
  (goal, plan steps, tool calls, knowledge, completion) in reverse chron order
- activityLog derived store merges messages + planSteps + currentTask
- AgentIndicator stays in chat (thinking/working indicator), simplified props
- ToolCallGroup removed from chat — tools visible only in sidebar timeline
- SessionDigest replaced by ActivityTimeline
- PlanProgress restored in sidebar (conceptual steps, separate from timeline)
This commit is contained in:
2026-07-14 12:19:26 +02:00
parent cc266c238e
commit b414722fc7
7 changed files with 394 additions and 76 deletions

View File

@@ -2,26 +2,22 @@
import { onMount } from 'svelte'
import { startWorkspace } from '$lib/stores/workspace'
import GoalHeader from './GoalHeader.svelte'
import PlanProgress from './PlanProgress.svelte'
import OperatorQuestion from './OperatorQuestion.svelte'
import SessionGraph from './SessionGraph.svelte'
import SessionDigest from './SessionDigest.svelte'
import ActivityTimeline from './ActivityTimeline.svelte'
onMount(() => startWorkspace())
</script>
<!--
The task's live control panel: goal + status, plan progress, a pinned
question when the agent needs a decision, the live entity graph (pulses what
the agent is touching, flags health changes), and the outcome/knowledge
record once the task completes. Driven by the always-on events stream
(see workspace.ts) so it keeps updating during server-side auto-continuation,
not just while a chat turn is streaming.
-->
<div class="flex h-full min-h-0 flex-col">
<GoalHeader />
<PlanProgress />
<OperatorQuestion />
<div class="min-h-0 flex-1">
<SessionGraph />
</div>
<SessionDigest />
<div class="max-h-[40%] overflow-y-auto border-t">
<ActivityTimeline />
</div>
</div>