Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
c85bfd2
Fix #3: Migrate dashboard UI to React 18 + Vite SPA
rekpero Mar 14, 2026
d47be93
fix: address review comments on PR #4
rekpero Mar 14, 2026
d18453e
fix: address review comments on PR #4
rekpero Mar 14, 2026
cfb2ecc
fix: address review comments on PR #4
rekpero Mar 14, 2026
8b12f39
fix: address review comments on PR #4
rekpero Mar 14, 2026
50a2aea
fix: address review comments on PR #4
rekpero Mar 14, 2026
8d61fe5
fix: address review comments on PR #4
rekpero Mar 14, 2026
fd85057
fix: address review comments on PR #4
rekpero Mar 14, 2026
bb8db8b
fix: address review comments on PR #4
rekpero Mar 14, 2026
b7b4873
fix: address review comments on PR #4
rekpero Mar 14, 2026
442e140
fix: address review comments on PR #4
rekpero Mar 14, 2026
70f2bc8
fix: address review comments on PR #4
rekpero Mar 14, 2026
bac702d
fix: address review comments on PR #4
rekpero Mar 14, 2026
603ca11
fix: address review comments on PR #4
rekpero Mar 14, 2026
d0eb25b
fix: address review comments on PR #4
rekpero Mar 14, 2026
46585a3
fix: address review comments on PR #4
rekpero Mar 14, 2026
7eeb820
fix: address review comments on PR #4
rekpero Mar 14, 2026
9108947
fix: address review comments on PR #4
rekpero Mar 14, 2026
a0ac56d
fix: address review comments on PR #4
rekpero Mar 14, 2026
87a862f
fix: address review comments on PR #4
rekpero Mar 14, 2026
ee90098
fix: address review comments on PR #4
rekpero Mar 14, 2026
253711a
fix: address review comments on PR #4
rekpero Mar 14, 2026
18a2617
fix: address review comments on PR #4
rekpero Mar 14, 2026
faeeab3
fix: address review comments on PR #4
rekpero Mar 14, 2026
ab513ac
fix: UI overhaul, planner improvements, and PR/issue status sorting
Mar 14, 2026
8f78a9b
fix: update turns_used for reattached agents after restart
Mar 14, 2026
b0c4791
Merge branch 'main' into fix/issue-3
Mar 14, 2026
9896c55
fix: address review comments on PR #4
rekpero Mar 14, 2026
957374b
fix: show search queries and URLs in agent log viewer
Mar 14, 2026
6fe65f6
fix: address review comments on PR #4
rekpero Mar 14, 2026
aad1e1b
fix: address review comments on PR #4
rekpero Mar 14, 2026
b5c37a5
fix: address review comments on PR #4
rekpero Mar 14, 2026
b904471
feat: update changelog
Mar 14, 2026
00be646
fix: address review comments on PR #4
rekpero Mar 14, 2026
20184ca
fix: address review comments on PR #4
rekpero Mar 14, 2026
e59207f
fix: address review comments on PR #4
rekpero Mar 14, 2026
0078ac1
fix: address review comments on PR #4
rekpero Mar 14, 2026
f4708e4
fix: address review comments on PR #4
rekpero Mar 14, 2026
84e1fde
feat: update gitignore to remove the static files
Mar 14, 2026
e81bd87
fix: address review comments on PR #4
rekpero Mar 14, 2026
29955c8
fix: address review comments on PR #4
rekpero Mar 14, 2026
5a311e4
fix: address review comments on PR #4
rekpero Mar 14, 2026
3999597
fix: address review comments on PR #4
rekpero Mar 14, 2026
59fe42e
fix: address review comments on PR #4
rekpero Mar 14, 2026
9ef9fa7
fix: address review comments on PR #4
rekpero Mar 14, 2026
f639049
fix: improve planner UX - smart auto-scroll, loading states, and unic…
Mar 14, 2026
8adb7c3
fix: resolve multiple UI and API bugs across frontend and PR monitor
Mar 14, 2026
f4f7549
fix: address review comments on PR #4
rekpero Mar 14, 2026
08f5368
feat: update bugbot version
Mar 14, 2026
bb40819
chore: update bugbot version
Mar 14, 2026
de64099
fix: address review comments on PR #4
rekpero Mar 14, 2026
4ad86a9
fix: address review comments on PR #4
rekpero Mar 14, 2026
6161745
fix: address review comments on PR #4
rekpero Mar 14, 2026
5384629
fix: address review comments on PR #4
rekpero Mar 14, 2026
8c1997c
fix: address review comments on PR #4
rekpero Mar 14, 2026
107e468
fix: address review comments on PR #4
rekpero Mar 14, 2026
2bc34ab
fix: address review comments on PR #4
rekpero Mar 14, 2026
0cfd9cc
fix: address review comments on PR #4
rekpero Mar 14, 2026
bf3dade
fix: address review comments on PR #4
rekpero Mar 14, 2026
fb783c8
fix: address review comments on PR #4
rekpero Mar 14, 2026
b7323e2
fix: address review comments on PR #4
rekpero Mar 14, 2026
dc6a677
fix: address review comments on PR #4
rekpero Mar 14, 2026
36988e8
fix: address review comments on PR #4
rekpero Mar 14, 2026
2b5b586
fix: address review comments on PR #4
rekpero Mar 14, 2026
ef469d6
fix: address review comments on PR #4
rekpero Mar 14, 2026
f90080c
fix: address review comments on PR #4
rekpero Mar 14, 2026
3925630
fix: address review comments on PR #4
rekpero Mar 14, 2026
b64f802
fix: address review comments on PR #4
rekpero Mar 15, 2026
a975242
fix: address review comments on PR #4
rekpero Mar 15, 2026
d9bddf8
fix: address review comments on PR #4
rekpero Mar 15, 2026
3b62ab3
fix: address review comments on PR #4
rekpero Mar 15, 2026
5c50a4e
fix: address review comments on PR #4
rekpero Mar 15, 2026
dff9106
fix: address review comments on PR #4
rekpero Mar 15, 2026
f1cd09e
fix: address review comments on PR #4
rekpero Mar 15, 2026
01ec907
fix: address review comments on PR #4
rekpero Mar 15, 2026
d72d174
fix: address review comments on PR #4
rekpero Mar 15, 2026
30e4694
fix: address review comments on PR #4
rekpero Mar 15, 2026
1113466
fix: address review comments on PR #4
rekpero Mar 15, 2026
2874613
fix: address review comments on PR #4
rekpero Mar 15, 2026
07fa57c
fix: address review comments on PR #4
rekpero Mar 15, 2026
c437f6b
fix: address review comments on PR #4
rekpero Mar 15, 2026
12d3683
fix: address review comments on PR #4
rekpero Mar 15, 2026
d269773
fix: address review comments on PR #4
rekpero Mar 15, 2026
19721f6
fix: address review comments on PR #4
rekpero Mar 15, 2026
29deb49
fix: address review comments on PR #4
rekpero Mar 15, 2026
81f0187
fix: address review comments on PR #4
rekpero Mar 15, 2026
23e9f21
fix: address review comments on PR #4
rekpero Mar 15, 2026
065b60e
fix: address review comments on PR #4
rekpero Mar 15, 2026
4fbfb65
fix: address review comments on PR #4
rekpero Mar 15, 2026
0be205b
fix: address review comments on PR #4
rekpero Mar 15, 2026
d15ddae
fix: address review comments on PR #4
rekpero Mar 15, 2026
01d14d8
fix: address review comments on PR #4
rekpero Mar 15, 2026
6495134
fix: address review comments on PR #4
rekpero Mar 15, 2026
3eec4f5
fix: address review comments on PR #4
rekpero Mar 15, 2026
30907ee
fix: address review comments on PR #4
rekpero Mar 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/bugbot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
uses: actions/checkout@v4

- name: Run Claude BugBot
uses: rekpero/claude-bugbot-github-action@v1.0.6
uses: rekpero/claude-bugbot-github-action@v1.0.8
with:
claude-setup-token: ${{ secrets.CLAUDE_SETUP_TOKEN }}
github-token: ${{ secrets.GH_TOKEN }}
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,7 @@ __pycache__/
venv/
Comment thread
rekpero marked this conversation as resolved.
Comment thread
rekpero marked this conversation as resolved.
*.egg-info/
dist/
build/
build/
frontend/node_modules/
frontend/dist/
orchestrator/static
41 changes: 41 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,47 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).


## [1.4.0] - 2026-03-14

### Added
- **React 18 + Vite 5 frontend**: full SPA in `frontend/` replacing the inline HTML dashboard — uses Tailwind CSS 3, React Query v5, Lucide React icons, and date-fns
- **Complete component tree** preserving the existing dark color palette via CSS custom properties (`tokens.css`):
- Layout: `Header`, `WorkspaceSwitcher`, `TabNav`
- Metrics: `MetricsBar`, `MetricCard` (7-card grid)
- Agents: `ActiveAgents`, `AgentCard`, `AgentLogViewer`, `AgentStatusBadge`
- Issues: `IssueQueue`, `IssueStatusBadge` with per-row Retry button for `needs_human`
- PRs: `PRTracker`, `ReviewThreads`
- Modals: `AddWorkspaceModal`, `WorkspaceSettingsModal`, `EnvEditor`
- Planner: `PlannerModal` with support for creating GitHub issues from specific assistant messages
- UI primitives: `Card`, `Badge`, `Button` (polymorphic `as` prop), `Modal`, `Spinner`, `EmptyState`
- **Custom React hooks**: `useAgents`, `useIssues`, `useMetrics`, `usePRs`, `useWorkspaces`, `usePlanning`, `useGitSync` — encapsulate all API polling and mutation logic
- **WorkspaceContext** persists `selectedWorkspaceId` to `localStorage`
- **SPA catch-all route** in `dashboard.py` (registered after all `/api/*` routes) so React client-side navigation works on direct URL loads; guards against serving `index.html` for `api/*` paths (returns 404 instead)
- **`build-ui` command** in `run.sh` (`cd frontend && npm install && npm run build`), integrated into the `install` flow; UI is also rebuilt on orchestrator restart
- **Rich tool-use logging**: `WebSearch`, `WebFetch`, `Grep`, `Glob`, and `Agent` tool uses now display their key parameters (query, URL, pattern, description) in both the backend stream parser and frontend log viewer
- **`buildGitHubUrl` helper** with `owner/repo` validation and `encodeURIComponent` sanitization in `PRTracker` and `IssueQueue` to prevent URL injection

### Changed
- **Dashboard fully migrated from inline HTML + vanilla JS to React SPA** — Vite builds output directly to `orchestrator/static/` via `vite.config.js` `outDir` setting
- **PR statuses enriched from issue state** (merged/needs_human) and PRs sorted by status priority
- **Issues sorted by status priority** in the dashboard
- **Agents sorted with running instances first** in the dashboard
- **Reattached agents** (surviving an orchestrator restart) now compute `turns_used` from the `agent_events` table on completion; dashboard fallback dynamically calculates turns for any agent with `turns_used=0`
- **`/assets` static mount** is conditional — server logs a warning instead of crashing when the frontend hasn't been built yet
- `.gitignore` updated with `frontend/node_modules/` and `frontend/dist/`

### Fixed
- **AgentLogViewer**: accumulate events with ID-based deduplication instead of replacing on each poll; synchronous cursor reset with `cursorAgentIdRef` guard to prevent stale cached data from overwriting cursor on agent switch
- **EnvEditor**: merge-overwrite semantics for paste and file upload (existing keys are updated, not dropped); stable row IDs derived from variable names instead of `Math.random()`; separate `fileReadError` state so file-read errors aren't silently cleared by save actions; cancellation flag in `useEffect` to prevent race conditions on rapid file switches
- **WorkspaceSettingsModal**: error handlers on update and delete mutations; form fields reinitialise when workspace fields change while modal is open; `confirmDelete` resets when modal closes; form resets when workspace becomes null after deletion
- **PRTracker**: composite key `${github_repo}-${pr_number}` to prevent duplicate React keys across repos
- **IssueQueue**: per-row `retryingIssue` state so a single retry doesn't disable all Retry buttons
- **PlannerModal**: optional chaining guard on `streamEvents?.length`; `setTimeout` cleanup on rapid open/close; stable `loadSessions` reference in `useEffect` dependency array
- **API client**: fix header merging by destructuring `headers` from options before spread, preventing `options.headers` from overwriting the merged `Content-Type` header
- **EnvEditor `.env` parsing**: balanced quote matching regex instead of independent quote stripping

---

## [1.3.1] - 2026-03-13

### Changed
Expand Down
15 changes: 15 additions & 0 deletions frontend/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Claude Code Swarm</title>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<meta name="theme-color" content="#050507" />
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.jsx"></script>
</body>
</html>
Loading
Loading