Commit Graph

28 Commits

Author SHA1 Message Date
Levi Neely c760012f73 add standalone justfile for decoupled builds 2026-07-30 19:35:59 +02:00
Levi Neely 2be54a850b add remote field to createSession params 2026-07-24 11:58:12 +02:00
Levi Neely d9795f4639 readme: fix prerequisites (httpgw is HTTP-to-DBus, not HTTP-to-9P) 2026-07-18 23:04:59 +02:00
Levi Neely 5c0ce7f0fa add README 2026-07-18 23:03:11 +02:00
Levi Neely 0984739dba fix: use cfg.cwd instead of session.cwd for display
The sessions list endpoint doesn't include cwd - it comes from
the config endpoint. Use cfg.cwd for the header badge and for
linkifying paths.
2026-07-07 12:38:11 +02:00
Levi Neely 19f7321bec remove filesystem browsing
The web UI no longer assumes a 9P mount. Removed:
- Welcome screen 9P tree listing
- FsBrowser component (navigate/read/write files)
- browse9p/write9p API stubs
- All browsePath/browseData state and props
2026-07-07 12:33:08 +02:00
Levi Neely 673cf00bab update webui: chat pane and api changes 2026-07-06 18:23:17 +02:00
Levi Neely 0f97e50a49 perf: memoize message HTML to avoid re-parsing on every keystroke
marked.parse runs on all messages each render. With long conversations
this makes typing sluggish. useMemo caches rendered HTML per message,
only recomputing when messages or cwd change.

Also deferred textarea resize to requestAnimationFrame.
2026-06-24 19:20:04 +02:00
Levi Neely aa0e99213d refactor chat rendering: new message roles, tool call pairing, interruption styling 2026-05-25 23:12:58 +02:00
Levi Neely 6d21f142af update new session dialog 2026-05-21 19:13:20 +02:00
Levi Neely 23a2de8fac model selector: cached dropdown filtered by backend 2026-05-21 18:49:38 +02:00
Levi Neely c61a674289 improve chat pane styling and layout 2026-05-21 14:42:50 +02:00
Levi Neely 0ca3d38ec8 Fix shell block styling in acme theme
- Add shell-block class with white bg, border, proper border-radius
- Fix info message bubble width and margin for acme theme
- Parse shell output correctly: first $ line is command, rest is output
- Style shell output with proper padding and text color
2026-05-20 17:22:32 +02:00
lkn 0af153bf4f keep chat input enabled while agent is running
Allow queuing prompts and interrupting mid-stream instead of
disabling the textarea. Show both stop and send buttons when running.
2026-05-20 13:52:32 +02:00
Levi Neely c377280fca fix agent list 2026-05-19 12:45:20 +02:00
Levi Neely 700d0dae46 deps: update package-lock.json
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 13:30:17 +02:00
Levi Neely 906d86686e sidebar: collapsible session tree, show cwd in header, remove auto-focus
- Replace card layout with compact tree nodes
- Nest sub-agents by __ separator with collapsible chevrons
- Display cwd as dim badge in chat header
- Remove PromptBar auto-focus that interfered with rename
2026-04-29 18:21:46 +02:00
Levi Neely 854390b826 add per-tool icon mapping for tool call display 2026-04-29 18:06:28 +02:00
Levi Neely 584409affc fix tool output being collapsed into args
The greedy regex matched from the first { to the last } in the
entire message, swallowing output (especially diffs containing
braces) into the collapsed args section.

Split on first newline instead—the call is always a single line
(squashWhitespace in the backend ensures this). Also use trimEnd
instead of trim to preserve leading whitespace in output.
2026-04-29 18:03:06 +02:00
Levi Neely 1c180de2e4 linkify file paths in chat, open via /open endpoint; proxy /open in dev 2026-04-26 15:54:22 +02:00
Levi Neely 1648d99178 auto-focus prompt textarea on every render 2026-04-26 15:24:53 +02:00
Levi Neely 2d378ace4e fs browser: inline editor with Put/Get actions 2026-04-26 15:23:07 +02:00
Levi Neely 34443a6cb7 gitignore .kiro/, remove tracked lsp.json 2026-04-24 21:44:49 +02:00
Levi Neely ab08ad01c4 full IDs, rename, info messages, collapsible tool calls
- Show full session IDs everywhere
- Double-click to rename sessions (sidebar + chat header)
- Parse :: info messages, render italic/faint
- Collapsible tool calls with disclosure triangle
- Pretty-print all tool JSON, show tool name/language detail
- Separate tool output from args
- Fix tool parsing for multi-line content with trailing output
2026-04-24 21:33:24 +02:00
Levi Neely 0dc8337365 theme system, acme theme, 9P filesystem browser
- Theme plumbing: registry, localStorage, CSS variable overrides
- Acme theme: Plan 9 palette, Go fonts, 9term-style chat, u:/a: prefixes
- 125% zoom, acme as default
- 9P filesystem browser: clickable welcome tree, directory/file viewer
- /s/ shows sessions only, click opens chat directly
- Session deselect (click again) returns to welcome
- Kill button on session cards, improved stop button visibility
- Tool call display: terminal icon, extract code from JSON
- Refactor hardcoded colors to CSS variables
2026-04-24 21:14:06 +02:00
Levi Neely a199572a74 fix webui: proxy, state detection, kill sessions, tool call styling
- Fix vite proxy: /s -> /s/ to avoid intercepting /src/ requests
- Fix state detection: match 'thinking'/'calling' instead of 'running'
- Fetch chat as plain text instead of JSON
- Add kill button on session cards
- Make stop button more visible
- Parse and pretty-print tool call (-> ) lines
- Style tool calls with arrow, function name, and formatted JSON body
2026-04-24 20:10:58 +02:00
Levi Neely 8938409f72 initial web UI: Preact + Vite, 9P filesystem identity
Dark teal theme, polling-based session management, markdown
rendering for assistant messages. Sidebar shows /s/ tree;
chat header shows /s/{id}/chat path. New session modal fetches
available backends from the httpgw.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 19:33:15 +02:00
Levi Neely 2515540822 initial commit 2026-04-24 18:32:57 +02:00