feat: design system and component sticker sheet#14
Open
gmackie wants to merge 164 commits into
Open
Conversation
Implement comprehensive multi-agent architecture supporting Claude, Amazon Q, Codex, Cursor Agent, Gemini, and OpenCode through a unified adapter interface. Features: - Agent factory with dynamic adapter loading - Base adapter interface with standardized agent lifecycle - Individual adapters for each AI agent platform - Session caching for persistent connections - Agent configuration via JSON - Database migration for agent support - Comprehensive test coverage 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Add flexible configuration system supporting multiple build modes (Bob/Jeff/Custom) with environment-based product naming and optional GitHub authentication. Features: - JEFF_MODE: Renames app to "Jeff" and restricts to Amazon Q agent only - APP_NAME: Custom product naming via environment variable - ENABLE_GITHUB_AUTH: Toggle GitHub OAuth (disabled for Electron builds) - GitHub OAuth integration for web deployments - Auth contexts and protected routes - Configuration API endpoint for frontend Environment Variables: - JEFF_MODE=true: Activates Jeff mode (name: Jeff, agent: Amazon Q only) - APP_NAME="CustomName": Sets custom product name - ENABLE_GITHUB_AUTH=false: Disables GitHub auth (for Electron/local use) Authentication is automatically disabled when running via Electron, ensuring local-first usage without requiring GitHub credentials. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Implement comprehensive dashboard system with persistent terminal sessions and repository-level views. Features: - Repository Dashboard: Overview of worktrees, branches, and git status - AgentPanel: Unified terminal interface (renamed from TerminalPanel) - Persistent WebSocket connections with automatic reconnection - Session persistence across page reloads - Settings menu with configuration options - WebSocket debug panel for development - Multi-tab interface: Dashboard, Claude, Directory, Git, Notes - Worktree deletion with confirmation modals - Direct worktree links for collaboration Terminal Persistence: - Sessions survive page reloads via SessionCache - Automatic instance warmup to keep sessions alive - Connection state tracking and recovery - Background instance polling UI Improvements: - Collapsible repository panel - Status indicators for instances - Copy-to-clipboard worktree links - Force delete with git cleanup - Enhanced directory browser integration 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add Dockerfile, docker-compose.yml, and nginx config for containerized deployment - Add VPS setup script and deployment documentation - Add AgentConfigPanel component for managing agent config files - Add GitHubRepoSelector for cloning repos from GitHub - Add agentPaths utility for resolving agent CLI commands - Add system terminal endpoint for non-instance terminals - Add API routes for agent config CRUD and GitHub repo operations - Improve database initialization with waitForInit() for async safety - Update server to support Docker networking (0.0.0.0 binding) - Add OpenCode and Cursor Agent to supported agents list - Update documentation for multi-agent setup and VPS deployment
Major architectural changes: - Migrate from single-app to turborepo monorepo structure - Add packages/: api, db, auth, config, bob, mcp-server, legacy adapters - Add apps/: nextjs (web), expo (mobile), gateway (session management) - Add tooling/: eslint, prettier, typescript, tailwind configs GitHub Integration (Phase 1-6): - Database schema: git_provider_connections, pull_requests, git_commits, webhook_deliveries, task_runs, device_push_tokens - Token vault with AES-256-GCM encryption (HKDF per-row derivation) - Provider clients: GitHub, GitLab, Gitea with unified interface - Webhooks: GitHub/GitLab/Gitea/Kanbanger endpoints with signature verification - PR service: create, update, merge, sync commits - Kanbanger integration: task executor, blocked task handling - Mobile: push token schema, deep linking, offline queue utilities Additional features: - Session management with workflow states (awaiting_input, blocked, etc.) - tRPC routers for git providers, pull requests, sessions - MCP server tools for PR, task, status, and context reporting - Legacy agent adapters (claude, kiro, codex, gemini, opencode, cursor)
- Fix TS2871 in workflowStatusService.test.ts (undefined ?? fallback) - Wrap ChatPage useSearchParams in Suspense boundary for Next.js 16
Add a System Status panel to the dashboard and a minimal UI smoke test. Also make Playwright e2e choose an open port locally when 3000 is occupied.
Replace the empty right-panel welcome state with the System Status panel so host/agent diagnostics are visible before selecting a worktree.
Add a dedicated dashboard page that reuses /api/system-status via SystemStatusPanel.
4-batch plan covering dispatch_batches schema, executeTask agent selection, dispatch tRPC router with dependency-aware scheduling, agent heuristics, dispatch plan UI, and live monitoring. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ype param Add schema for batch dispatch execution: dispatch_batches tracks batch status/concurrency/counters, dispatch_items tracks individual tasks with agent type, blocked-by dependencies, and task run links. Make executeTask accept an optional agentType parameter (defaults to "opencode"). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add dispatch router with 6 procedures (createBatch, getBatch, updateItemAgent, updateConcurrency, dispatch, checkProgress) for dependency-aware batch execution of planning tasks. Add suggestAgent heuristic that assigns agent types based on task kind and content. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Create DispatchPlan component with agent selection table, concurrency control, dispatch button, and progress tracking. Add dispatch page at /planning/dispatch/[batchId]. Wire commitPlan to automatically create a dispatch batch and redirect to the dispatch page. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add dispatch status dots on board cards, an active dispatch status bar on the planning page, a listBatches query, and a useDispatchProgress hook that auto-polls checkProgress for dependency-aware task scheduling. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2-batch plan covering JSON-RPC stdio agent process manager with per-agent adapters (claude, codex, opencode), gateway integration, and auto-completion lifecycle (PR creation, status transitions, notifications on task/batch completion). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add AgentProcessManager that spawns agent CLIs as child processes communicating via JSON-RPC over stdin/stdout, with adapters for Claude, Codex, and OpenCode. Integrated into gateway as an alternative to the existing Docker/PTY path. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…sync When checkProgress detects a completed task, update the planning API status to "in_review" and insert a task_completed notification. When the entire batch completes, insert a batch_completed notification. Extends the workItemNotificationType enum with the two new values. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
4-batch plan: schema extensions (forgegraphRepoId, revision/build tracking on taskRuns, pipelineState on dispatchItems), event reporter service, pipeline orchestrator state machine (build → dev → staging → prod), and UI visibility. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Corrected architecture: ForgeGraph tables in Bob's DB (forge_revisions, forge_builds, forge_deployments, forge_run_events), direct DB operations replacing the incorrect HTTP client, pipeline orchestrator state machine, event reporter service wired into task lifecycle. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace the ForgeGraph HTTP client with native Drizzle tables
(forge_revisions, forge_builds, forge_deployments, forge_run_events)
and rewrite the tRPC router to use direct DB operations. Update UI
components to consume DB record shapes instead of the old
`{ available, data }` wrapper.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…cycle Create event reporter service that records lifecycle events (created, approved, failed, patch_applied, tests) as direct DB operations against forge_revisions and forge_run_events tables. Wire into taskExecutor for task creation events and dispatch router for completion/failure events. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…rodDeploy Implements the build/deploy pipeline for dispatch items: - PipelineOrchestrator advances items through agent_complete → building → gates_passed → deploying_dev → dev_healthy → deploying_staging → staging_healthy → awaiting_prod_approval → deploying_prod → prod_healthy → complete - Wired into checkProgress polling to advance pipeline each cycle - Items entering "completed" status now kick off pipeline with agent_complete - approveProdDeploy endpoint on forgegraph router for prod gate approval - Failure states (build_failed, deploy_failed) are terminal with notifications Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add Pipeline column to dispatch table showing pipeline state badges with color coding, live time-in-stage counters for active states, Approve Prod button for awaiting_prod_approval, and Retry button for failed states. Extend ForgeGraphSection to show build history and deployment status. Add resetPipelineState mutation to dispatch router. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Python 3.14 removed distutils, breaking node-gyp v8. Override to v10 which doesn't depend on distutils. Also add node-pty and @swc/core to pnpm onlyBuiltDependencies for pnpm 10 build script approval. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
3-batch plan: VCS adapter abstraction (auto-detect git/jj), comprehensive tests for planning/dispatch/pipeline/event reporter, and T3 Code protocol bridge validation with event type mapping. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Introduce a VcsAdapter interface with Git and JJ implementations so the gateway can auto-detect .jj repos and dispatch the correct VCS commands. The /git/checkout handler now returns a changeId (commit SHA or jj change ID) which taskExecutor stores as forgegraphRevisionId on the task run for ForgeGraph tracking. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… VCS Add 28 new tests across 5 test files: - planSession router: get, list, updateDraft, setDependency, removeDependency, commitPlan - dispatch router: createBatch, getBatch, updateItemAgent, updateConcurrency, checkProgress - pipelineOrchestrator: state transitions (agent_complete, building, gates_passed, terminal) - eventReporter: reportCreated, reportApproved, reportFailed, null repositoryId handling - VCS adapter: detectVcs and getVcsAdapter for git/jj detection Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add bidirectional event mapping between Bob SessionEvent and T3 Code domain events, mock agent for stdio bridge validation, and integration tests for AgentProcessManager. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Deploy script at scripts/deploy-labnuc.sh: pulls code, installs deps, pushes schema, builds web, restarts services, health checks. Systemd user services configured on labnuc: - bob-web.service: Next.js on :3100 with schema push on start - bob-gateway.service: Gateway via tsx on :3002 with .env sourcing - Caddy reverse proxy on :9443 (web + gateway WebSocket) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add workspace switching via Select dropdown on planning page, recent planning sessions list component, and align settings page with the dashboard header style used across the app. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Next.js couldn't resolve .js extension imports in the legacy package source. Adding it to transpilePackages lets Next.js handle the TS→JS transform. Also updated deploy script to build legacy before web. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Switch @bob/legacy tsconfig from NodeNext to ESNext/bundler module resolution, removing all .js extensions from imports (32 occurrences across 11 files). This fixes Next.js Turbopack resolution failures. - Remove .js extensions from @bob/execution imports (same issue). - Fix styles.css import path for chat.css after route move to (dashboard). - Add @bob/legacy and @bob/execution to serverExternalPackages in next.config.js. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Three-view switcher on the planning page: Board (existing kanban), Graph (xyflow-based DAG showing parent/child + dependency edges with dagre auto-layout, dark-themed custom nodes with status/priority/ pipeline badges), and Timeline (7-column pipeline stages from backlog through deployment to done). Custom WorkItemNode renders identifier, title, status, kind, priority, pipeline state, and dispatch agent. Nodes are clickable (link to detail). Edges show hierarchy (solid) and dependencies (dashed/animated). Dependencies: @xyflow/react, dagre, @types/dagre. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace broken PATH substring check in system-status API with actual `which` + `--version` command execution. Now properly detects git, gh, docker, and agent CLIs regardless of PATH string format. Add breadcrumbs to system page, remove duplicate wrapper div. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Establish Bob's visual identity with DESIGN.md (warm amber primary, Satoshi/DM Sans/JetBrains Mono typography, warm gray neutrals) and a comprehensive HTML sticker sheet covering all UI primitives, app-specific components, and composite screen examples (dashboard, work item detail, settings form, app shell).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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
DESIGN.md— complete design system with warm amber primary, Satoshi/DM Sans/JetBrains Mono typography, warm gray neutrals, and full token spec for colors, spacing, layout, and motiondesign/sticker-sheet.html— standalone HTML reference covering all UI primitives (buttons, badges, inputs, cards, alerts, tables, dialogs, dropdowns, tooltips, toasts, separators), app-specific components (sidebar nav, kanban board, graph nodes, project cards, notifications, dispatch bar, ForgeGraph gates, terminal, inline editable, command palette), and composite screen examples (dashboard overview, work item detail, settings form, full app shell)CLAUDE.mdwith design system enforcement rulesCHANGELOG.mdtracking changes from v0.0.4Pre-Landing Review
No issues found. Documentation-only change — no app code modified.
Test plan
🤖 Generated with Claude Code