54 Commits

Author SHA1 Message Date
6f83311d94 Merge pull request 'feat: display inference statistics in chat UI' (#45) from feature/issue-43-inference-stats into main
Merge pull request 'feat: display inference statistics in chat UI' (#45)
2026-03-13 14:50:35 +01:00
shahondin1624
36731aac1d chore: mark issue #43 plan as COMPLETED
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 14:46:47 +01:00
shahondin1624
3d85cc6b8c feat: add aria attributes to context utilization progress bar
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 14:46:35 +01:00
shahondin1624
52eaf661c4 feat: display inference statistics in chat UI
Add InferenceStats proto message and InferenceStatsPanel component that
displays token counts, throughput, and context window utilization as a
collapsible panel below assistant messages after orchestration completes.

Closes #43

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 14:44:12 +01:00
e93158f670 Merge pull request 'feat: structured artifact rendering, UX improvements' (#44) from feat/structured-artifact-passthrough into main 2026-03-12 23:14:28 +01:00
shahondin1624
2c6c961e08 feat: structured artifact rendering, UX improvements
- Render structured artifacts from agent results with type-aware
  formatting: code blocks with syntax highlighting and copy button,
  terminal-style command output, search result cards, and text findings
- Make FinalResult panel collapsible (default collapsed) with scrollable
  content (max-h-96) to prevent dominating the chat view
- Add clickable URL detection in summaries and artifact content
- Fix code block contrast for both light and dark mode
- Animate progress bar with pulse ring on active step and gradient
  shimmer on connecting lines
- Fix tab-switching bug: use module-level orchestrationStore singleton
  so orchestration state survives route navigation
- Remove sample/demo data seeding and clean up persisted localStorage
  entries from previous sample sessions
- Remove showSampleBadge prop from PageHeader
- Regenerate proto types for new Artifact message and ArtifactType enum
- Update README project structure (remove deleted data/ directory)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 23:13:33 +01:00
cfd338028a Merge pull request 'fix: prevent session creation loop without backend' (#42) from fix/session-creation-loop into main 2026-03-12 16:41:41 +01:00
shahondin1624
a5bc38cb65 fix: prevent session creation loop when running without backend
Make getOrCreateSession idempotent by returning the existing active
session when called with no ID, instead of always creating a new one.
Use untrack() in the $effect to sever SvelteMap dependency so it only
re-runs on $page changes. Disable SSR on client-only routes, reduce
preload aggressiveness, and skip retries when already disconnected.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 16:41:08 +01:00
d7d1d9fd57 Merge pull request 'refactor: code review improvements' (#41) from refactor/code-review-improvements into main 2026-03-12 13:48:57 +01:00
shahondin1624
38f5f31b92 refactor: code review improvements — fix bugs, extract shared utilities, add README
- Fix reactivity bug: use SvelteMap instead of Map in sessions store
- Fix theme listener memory leak: guard against double-init, return cleanup function
- Fix transport singleton ignoring different endpoints
- Fix form/button type mismatch in MessageInput
- Add safer retry validation in chat page
- Extract shared utilities: date formatting, session config check, result source config
- Extract shared components: Backdrop, PageHeader
- Extract orchestration composable from chat page (310→85 lines of script)
- Consolidate AuditTimeline switch functions into config record
- Move sample data to dedicated module
- Add dark mode support for LineageTree SVG colors
- Memoize leaf count computation in LineageTree
- Update README with usage guide and project structure

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 13:48:06 +01:00
bb0eebff1b Merge pull request 'feat: error handling and connection status (#20)' (#40) from feature/issue-20-error-handling into main 2026-03-12 13:28:34 +01:00
shahondin1624
14c83832f5 feat: add error handling, toast notifications, connection status, and retry logic (#20)
Add global error boundary, toast notification system for gRPC errors,
connection status indicator in chat header, and automatic retry with
exponential backoff for transient failures. Map gRPC status codes to
user-friendly messages and add a Retry button on failed requests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 13:27:40 +01:00
284f84bd39 Merge pull request 'feat: responsive layout and mobile support (#19)' (#39) from feature/issue-19-responsive-layout into main 2026-03-12 13:20:54 +01:00
shahondin1624
dfef26bad5 feat: add responsive layout and mobile support (#19)
Add collapsible sidebars with slide-in drawers on mobile, hamburger menu
for session sidebar, stacked layouts for screens under 768px, 44px touch
targets, and overflow prevention across all pages.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 13:17:02 +01:00
d837ed9050 Merge pull request 'feat: dark/light theme toggle (#18)' (#38) from feature/issue-18-dark-theme into main 2026-03-12 13:04:56 +01:00
shahondin1624
60f3d8eeda feat: add dark/light theme toggle with system preference support (#18)
Add theme switching with three modes (system/light/dark) using Tailwind v4
class-based dark mode. Theme preference is persisted in localStorage and
defaults to the system's prefers-color-scheme. All components updated with
dark: variants for consistent dark mode rendering including SVG elements.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 12:54:04 +01:00
79c14378a2 Merge pull request 'feat: audit/activity log view (#17)' (#37) from feature/issue-17-audit-log into main 2026-03-12 12:46:01 +01:00
shahondin1624
4fc84ccd62 feat: add audit/activity log view with timeline and event filtering (#17)
Add a dedicated /audit route displaying a chronological timeline of
orchestration events (state transitions, tool invocations, errors,
messages) grouped by session. Includes session selector, event type
filtering, URL deep-linking via ?session=id, and audit event capture
during chat streaming.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 12:41:40 +01:00
807311d7c9 Merge pull request 'feat: memory candidates viewer (#16)' (#36) from feature/issue-16-memory-viewer into main 2026-03-12 12:36:04 +01:00
shahondin1624
9ad772f83f feat: add memory candidates viewer with filtering and confidence visualization
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 12:33:48 +01:00
5efc5c351c Merge pull request 'feat: agent lineage visualization (#15)' (#35) from feature/issue-15-agent-lineage into main 2026-03-12 12:21:23 +01:00
shahondin1624
209e38d8a6 feat: add agent lineage visualization with SVG tree rendering
Add a dedicated /lineage route with custom SVG-based tree visualization
of the agent spawn chain. Nodes are colored by agent type (orchestrator,
researcher, coder, sysadmin, assistant) and display agent ID, type, and
spawn depth. Clicking a node opens a detail panel. Uses sample data
since the API does not yet expose lineage information.

Closes #15

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 12:19:49 +01:00
5624175ddd Merge pull request 'feat: preset configurations (#14)' (#34) from feature/issue-14-preset-configs into main 2026-03-12 12:09:39 +01:00
shahondin1624
4bd1cef1cf feat: add preset configurations with built-in and custom presets
Add preset store with three built-in presets (Strict mode, Research only,
Full access) and localStorage persistence for custom presets. Integrate
preset selector into ConfigSidebar with load, save, and delete actions.
Built-in presets cannot be deleted.

Closes #14

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 12:07:50 +01:00
a14a92a87d Merge pull request 'feat: session config sidebar component (#13)' (#33) from feature/issue-13-config-sidebar into main 2026-03-12 12:04:24 +01:00
shahondin1624
7b81de9ffd feat: add session config sidebar with override level, tools, and permissions
Implements issue #13 — right sidebar for session configuration with
override level selection, disabled tools checkboxes, and granted
permissions input. Integrates config into chat page header with toggle
button and non-default indicator.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 12:03:40 +01:00
1e62f7d1c1 Merge pull request 'feat: add session history sidebar' (#32) from feature/issue-12-session-sidebar into main 2026-03-12 11:56:17 +01:00
shahondin1624
19c3c2bcdc feat: add session history sidebar with delete and navigation
- SessionSidebar component listing past sessions sorted by recency
- Session title preview and relative date display
- Click to switch sessions, delete with confirmation
- Added deleteSession method to session store
- Integrated sidebar into chat page layout

Closes #12

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 11:55:58 +01:00
ed0a01c857 Merge pull request 'feat: add session creation and ID management' (#31) from feature/issue-11-session-management into main 2026-03-12 11:52:47 +01:00
shahondin1624
247abfe32c feat: add session creation and ID management with localStorage
- Session store with UUID v4 generation and localStorage persistence
- Session ID in URL params (?session=<id>) for deep linking
- "New Chat" button for creating fresh sessions
- Message history persisted per session
- Session title auto-generated from first user message

Closes #11

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 11:52:19 +01:00
9613a5ad5b Merge pull request 'feat: add final result rendering with status badges and artifacts' (#30) from feature/issue-10-final-result into main 2026-03-12 11:38:45 +01:00
shahondin1624
2ff3e181a4 feat: add final result rendering with status badges and artifacts
- FinalResult component showing SubagentResult summary and artifacts
- Status badges: Success (green), Partial (amber), Failed (red)
- Quality and source badges (Verified/Inferred, Tool Output/Web/etc)
- Artifact list with file icons
- Integrated into chat page after stream completes

Closes #10

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 11:38:29 +01:00
4f2bf514e5 Merge pull request 'feat: add collapsible thinking section for intermediate results' (#29) from feature/issue-9-intermediate-results into main 2026-03-12 11:36:35 +01:00
shahondin1624
959bb59874 feat: add collapsible thinking section for intermediate results
- ThinkingSection component with expand/collapse toggle
- Displays intermediate_result from stream in amber-styled panel
- Positioned below orchestration progress indicator
- Updates in real-time as new intermediate results arrive

Closes #9

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 11:35:46 +01:00
0674752e80 Merge pull request 'feat: add orchestration state progress indicator' (#28) from feature/issue-8-progress-indicator into main 2026-03-12 11:33:58 +01:00
shahondin1624
945dbb9f84 feat: add orchestration state progress indicator
- OrchestrationProgress stepper component with 5 phases
- Visual state: completed (green check), active (blue ring), pending (gray)
- Smooth CSS transitions between states
- Integrated into chat page, visible during streaming

Closes #8

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 11:33:41 +01:00
fe52d96347 Merge pull request 'feat: connect chat UI to gRPC-Web streaming' (#27) from feature/issue-7-streaming-response into main 2026-03-12 11:30:15 +01:00
shahondin1624
f6eef3a7f6 feat: connect chat UI to gRPC-Web streaming with loading indicator
- Wire processRequest() async generator to chat page
- Progressive message rendering as stream chunks arrive
- Animated loading dots while waiting for first chunk
- Error display with OrchestratorError code mapping
- Session ID management with crypto.randomUUID()

Closes #7

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 11:29:10 +01:00
8802d1bb72 Merge pull request 'feat: add message input with send and keyboard shortcuts' (#26) from feature/issue-6-message-input into main 2026-03-12 11:27:56 +01:00
shahondin1624
306d0a7f2d feat: add message input with send button and keyboard shortcuts
- MessageInput component with textarea, send button, Enter-to-send
- Shift+Enter for newline, auto-resize textarea
- Disabled state while streaming, auto-focus after send
- Integrated into /chat page with user message handling

Closes #6

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 11:27:34 +01:00
a8d28095b3 Merge pull request 'feat: add chat page layout with message list and bubbles' (#25) from feature/issue-5-chat-layout into main 2026-03-12 11:25:55 +01:00
shahondin1624
6df4c396b9 feat: add chat page layout with message list and bubble components
- Create /chat route with scrollable message list
- MessageBubble component with distinct user/assistant styles
- MessageList with auto-scroll-to-bottom on new messages
- Empty state display when no messages
- ChatMessage type definition in src/lib/types.ts
- Add browser globals to ESLint config for Svelte files

Closes #5

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 11:25:08 +01:00
f2daa9cef2 Merge pull request 'feat: add gRPC-Web client service layer for OrchestratorService' (#24) from feature/issue-4-grpc-web-client into main 2026-03-12 11:22:32 +01:00
shahondin1624
d011447190 feat: add gRPC-Web client service layer for OrchestratorService
- Create src/lib/services/orchestrator.ts with Connect-Web transport
- Typed processRequest() async generator for server-streaming RPC
- OrchestratorError class mapping gRPC status codes to app errors
- Configurable endpoint with resetTransport() for reconfiguration

Closes #4

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 11:22:15 +01:00
46e1a54379 Merge pull request 'feat: add Caddyfile for gRPC-Web reverse proxy with CORS' (#23) from feature/issue-3-caddy-grpc-web into main 2026-03-12 11:19:46 +01:00
shahondin1624
298a186c31 feat: add Caddyfile for gRPC-Web reverse proxy with CORS support
- Route gRPC-Web requests to Orchestrator via h2c transport
- Handle CORS preflight and response headers for cross-origin access
- Proxy remaining traffic to SvelteKit dev server
- Configurable via env vars: ORCHESTRATOR_HOST, UI_HOST, DOMAIN, CORS_ORIGIN

Closes #3

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 11:19:06 +01:00
f70ad719ca Merge pull request 'feat: add proto codegen pipeline with buf and connect-es' (#22) from feature/issue-2-proto-codegen into main 2026-03-12 11:14:59 +01:00
shahondin1624
ed1e800e53 docs: mark issue #2 plan as COMPLETED
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 11:14:23 +01:00
shahondin1624
2516c86002 feat: add proto codegen pipeline with buf and connect-es
- Add llm-multiverse repo as git submodule for proto files
- Configure buf with @bufbuild/protoc-gen-es for TypeScript codegen
- Generate typed Connect service stubs to src/lib/proto/
- Add `generate` npm script for proto regeneration
- Exclude generated proto files from ESLint

Closes #2

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 11:14:11 +01:00
0a46d2b95b Merge pull request 'feat: scaffold SvelteKit project with Tailwind, TypeScript, ESLint, Prettier' (#21) from feature/issue-1-project-scaffolding into main 2026-03-12 11:07:49 +01:00