Skip to content

feat: Kanban Sales Platform — Ember Theme, Pricing, Dependencies - #17

Merged
marcmantei merged 12 commits into
mainfrom
feature/kanban-sales-platform
Mar 29, 2026
Merged

feat: Kanban Sales Platform — Ember Theme, Pricing, Dependencies#17
marcmantei merged 12 commits into
mainfrom
feature/kanban-sales-platform

Conversation

@marcmantei

@marcmantei marcmantei commented Mar 27, 2026

Copy link
Copy Markdown
Owner

Summary

Complete Kanban Sales Platform for Spacebot — Cline-inspired multi-agent orchestration with all planned features implemented.

7 Commits — Full Feature Set

# Commit Feature
1 ba3ca5e Ember Theme (dark red/orange), Pricing Page (3-tier), Kanban Dependencies
2 e47ab58 spacebot local command (zero-config + auto-browser), Welcome Page
3 4f81a57 MCP Bridge (Python, zero deps) for Claude Code/Codex/VS Code
4 21f4dec Agent assignment UI, worktree badges on task cards
5 3f401dd Task dependency graph visualization (graphology + Sigma.js)
6 95e11c2 Inline diff review in task detail dialog + backend diff endpoint
7 70b4e4e Git worktree isolation per task (create/delete API + UI)

New Files (8)

  • interface/src/routes/Pricing.tsx — 3-tier pricing page
  • interface/src/routes/Welcome.tsx — Onboarding checklist
  • interface/src/components/TaskDependencyGraph.tsx — Graph visualization
  • interface/src/components/DiffViewer.tsx — Unified diff viewer
  • mcp-bridge/spacebot_mcp_server.py — MCP server bridge (11 tools)
  • mcp-bridge/README.md — Bridge documentation

Modified Files (6)

  • src/main.rsspacebot local subcommand + auto-browser-open
  • src/api/tasks.rs — diff endpoint + worktree create/delete API
  • src/api/server.rs — new route registrations
  • interface/src/routes/AgentTasks.tsx — dependencies, graph toggle, diff, worktree UI
  • interface/src/ui/style/colors.scss — Ember theme
  • interface/src/hooks/useTheme.ts + Settings.tsx + Sidebar.tsx + router.tsx

Related Issues (all closed)

Open Research Issues

Test plan

  • spacebot local → opens browser at 127.0.0.1:19898
  • Switch to Ember theme in Settings
  • Navigate to /pricing → 3-tier layout
  • Navigate to /welcome → onboarding checklist
  • Create task with dependencies → blocked indicators appear
  • Toggle Board/Graph view → dependency graph renders
  • Create worktree for task → metadata updates, badge appears
  • View task detail with worktree → inline diff shown
  • Run MCP bridge → Claude Code can list/create/execute tasks
  • Assign agent to task → badge shown on card

🤖 Generated with Claude Code

marcmantei and others added 4 commits March 27, 2026 23:55
- 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>
marcmantei and others added 4 commits March 28, 2026 01:19
- 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)
marcmantei and others added 4 commits March 28, 2026 01:43
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>
@marcmantei
marcmantei merged commit b51fcea into main Mar 29, 2026
2 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant