feat: Kanban Sales Platform — Ember Theme, Pricing, Dependencies - #17
Merged
Conversation
- New "Ember" dark theme with dark red/orange accent colors - 3-tier Pricing page (Free OSS / Teams / Enterprise) inspired by Cline - Kanban board: task dependency support via metadata (depends_on) - Kanban board: blocked task indicators and dependency chips - Kanban board: dependency field in Create Task dialog - Sidebar: Pricing page navigation link Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
- New `spacebot local` subcommand: starts in foreground, auto-opens browser - Optional `--port` flag for custom port - Welcome page (/welcome) with onboarding checklist for first-time users - Guides through: provider setup, agent creation, platform connection Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
Python-based MCP server that exposes Spacebot's HTTP API as MCP tools. Zero dependencies — works with Python 3.8+. Tools: list_agents, list/create/update/execute tasks, list_workers, send_message, list_channels, system status. Enables Claude Code, Codex, VS Code to orchestrate Spacebot agents via standard MCP protocol over stdio. Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
- Task cards show assigned_agent badge (e.g. "claude-code", "codex") - Task cards show worktree indicator when metadata.worktree is set - Worker ID shown with first 8 chars instead of generic "Worker" label - Create dialog: new "Assign Agent" field alongside dependencies - Detail dialog: shows agent assignment and worktree metadata Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
This was referenced Mar 27, 2026
- New TaskDependencyGraph component using graphology + Sigma.js - Board/Graph toggle in Kanban toolbar - Force-directed layout for task dependency visualization - Color-coded by status, sized by priority - Blocked tasks shown in red - Click node to open task detail - Legend with status colors Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
Backend:
- New GET /agents/tasks/{number}/diff endpoint
- Reads worktree/branch from task metadata, runs git diff
- Returns unified diff with branch/worktree info
Frontend:
- New DiffViewer component with syntax-highlighted unified diffs
- Green/red line coloring for additions/removals
- Sticky file headers, hunk separators
- Auto-fetches diff when task has worktree/branch metadata
- Shown in task detail dialog before metadata section
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
Backend:
- POST /agents/tasks/{number}/worktree — creates branch task/{N} + worktree
- DELETE /agents/tasks/{number}/worktree — removes worktree, keeps branch ref
- Worktree stored in .spacebot-worktrees/ adjacent to repo
- Task metadata updated with worktree path and branch name
Frontend:
- "Create Worktree" button in task detail dialog (shown for non-done tasks)
- Worktree badge on task cards
MCP Bridge:
- New spacebot_create_worktree tool
- New spacebot_task_diff tool
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
- Run cargo fmt on channel.rs, channel_dispatch.rs, tasks.rs, main.rs, pr_conflicts.rs, spawn_worker.rs, upgrade.rs - Fix missing closing > on JSX div element in AgentTasks.tsx (line 252) - Fix TS2322: cast metadata?.worktree and metadata?.assigned_agent with !! to satisfy ReactNode constraint (Record<string, unknown> values)
22 tasks
task.metadata is serde_json::Value not Option<Value>. Remove incorrect .as_ref()/.unwrap_or_else() calls and call .get() directly on the Value in task_diff, create_worktree, and delete_worktree handlers.
Welcome Page:
- Detects Claude Max OAuth (anthropic provider check)
- Shows provider type ("Anthropic (Claude Max / OAuth)")
- Agent status with direct navigation
- Kanban Board quick-link when agent exists
Kanban Board:
- Project filter dropdown (all repos from registry)
- GitHub Issues toggle with count badge
- GitHub Issues column showing issues from all registry repos
- Issues show repo name, labels, assignees, timestamp
- Click issue to open on GitHub
Backend:
- New GET /api/registry/issues endpoint
- Fetches issues from all registry repos via gh CLI
- Supports repo filter and state filter (open/closed)
- Sorted by updated_at descending
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
- Replace non-null assertions with safe variable access - Use href links instead of TanStack navigate for dynamic agent routes - Prevents blank page when agents query is still loading Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
Backend: - Fix Anthropic OAuth detection in providers API (anthropic_oauth.json) - /api/providers now returns anthropic: true for Claude Max users Frontend: - New useSpacebotConfig hook (merges agentConfig + messaging + providers) - Kanban is now the default agent landing page (Board tab) - Overview moved to /agents/$agentId/overview tab - Config status bar: worker model, concurrency, worktrees, platforms, auth - GitHub Issue import button (creates Kanban task from issue) - Already-imported issues show "Imported" badge - Project filter now filters both tasks AND issues Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Complete Kanban Sales Platform for Spacebot — Cline-inspired multi-agent orchestration with all planned features implemented.
7 Commits — Full Feature Set
ba3ca5ee47ab58spacebot localcommand (zero-config + auto-browser), Welcome Page4f81a5721f4dec3f401dd95e11c270b4e4eNew Files (8)
interface/src/routes/Pricing.tsx— 3-tier pricing pageinterface/src/routes/Welcome.tsx— Onboarding checklistinterface/src/components/TaskDependencyGraph.tsx— Graph visualizationinterface/src/components/DiffViewer.tsx— Unified diff viewermcp-bridge/spacebot_mcp_server.py— MCP server bridge (11 tools)mcp-bridge/README.md— Bridge documentationModified Files (6)
src/main.rs—spacebot localsubcommand + auto-browser-opensrc/api/tasks.rs— diff endpoint + worktree create/delete APIsrc/api/server.rs— new route registrationsinterface/src/routes/AgentTasks.tsx— dependencies, graph toggle, diff, worktree UIinterface/src/ui/style/colors.scss— Ember themeinterface/src/hooks/useTheme.ts+Settings.tsx+Sidebar.tsx+router.tsxRelated Issues (all closed)
Open Research Issues
Test plan
spacebot local→ opens browser at 127.0.0.1:19898🤖 Generated with Claude Code