feat: add Web UI dashboard with configurable agent directories#108
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #108 +/- ##
=======================================
Coverage ? 91.68%
=======================================
Files ? 43
Lines ? 3441
Branches ? 0
=======================================
Hits ? 3155
Misses ? 286
Partials ? 0
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
bed6f39 to
f9c6794
Compare
f9c6794 to
5117ba6
Compare
Independent Review & Test ResultsReviewed and tested locally on Amazon Linux 2 (Python 3.12.3, tmux next-3.6). Test Results
Review NotesWhat's good:
Verified Concerns1. Tested the new pattern 2. WebSocket endpoint has no authentication —
3. Flow name path traversal —
Fix: reject names containing Minor Notes
VerdictSolid feature PR. The path traversal bug (#3) should be fixed before merge. The WebSocket auth (#2) is worth discussing — acceptable for localhost-only use but risky if exposed. LGTM with the path traversal fix 👍 |
d8edff4 to
4637c46
Compare
|
@abdullahoff Great work on this PR! The web dashboard is a really solid addition, session-grouped view, live status badges, terminal viewer, flows, and settings all look well thought out. The backend changes are clean too: settings service with proper defaults-merge-with-saved, cascading session delete, agent profile discovery across multiple directories with dedup. Nice job on the 233 new tests as well. A few items to address before we can merge: 1.
|
6b7f041 to
d70bf17
Compare
|
@abdullahoff LGTM, except the conflicts to be resolved. Note that PR #124 fixed a critical security bug, i can see that you have @fanhongy can you pls also review the conflicts to make sure that the PR #124 are properly addressed too in this PR. |
|
Feel free to review the suggestions Critical Issue: Test Files Will Break4 new test files in PR #108 define their own local
In pytest, a local fixture overrides the conftest fixture. These files will NOT use Result: All tests in these 4 files will fail after rebase with Fix: Remove all 4 local File-by-File Resolution1.
|
eae7229 to
227ca4c
Compare
Add a React + TypeScript + Tailwind web dashboard for managing agents, sessions, flows, and settings — served by the backend in production or via Vite dev server during development. Web UI: - Home tab with session-grouped view, live status badges, terminal viewer, output viewer, inbox, and quick send - Agents tab with modal-based agent spawning (provider + profile) - Flows tab with modal-based flow creation, schedule presets, prompt display, and pill-style enable/disable toggle - Settings tab for configuring agent profile directories - Provider auto-detection (kiro-cli, claude, q, codex, gemini-cli) Backend: - Settings service for persisting agent directory configuration - Enhanced agent profile discovery across configurable directories - Configurable SERVER_HOST, SERVER_PORT, KIRO_AGENTS_DIR via env vars - Default host changed to 127.0.0.1 for IPv6 compatibility - New endpoints: profiles, providers, settings, cascade session delete, terminal working directory, flow CRUD with prompt_template - Claude Code provider: clear CLAUDE* env vars from spawned tmux sessions to prevent nested session errors - WebSocket endpoint restricted to localhost connections - Flow name validation to prevent path traversal Tests: - 233 new tests covering API endpoints, settings, database, profiles, terminal service, and constants Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
227ca4c to
d609178
Compare
haofeif
left a comment
There was a problem hiding this comment.
Thanks @abdullahoff LGTM~!
Description of changes:
Add a React + TypeScript + Tailwind web dashboard for managing agents,
sessions, flows, and settings — served by the backend in production or via Vite
dev server during development.
Web UI
output viewer, inbox, and quick send
and pill-style enable/disable toggle
Backend
SERVER_HOST,SERVER_PORT,KIRO_AGENTS_DIRvia env vars127.0.0.1for IPv6 compatibilityterminal working directory, flow CRUD with
prompt_template--agent-profileflagCLAUDE*) from spawned tmux sessions toprevent nested session errors when cao-server runs inside Claude Code
Tests
By submitting this pull request, I confirm that you can use, modify, copy, and
redistribute this contribution, under the terms of your choice.