* Cleanup scripts (vibe-kanban 9244f51c) We want the user to be able to specify a cleanup script, which will run after coding agent execution is complete. This is similar to how setup scripts work, but obviously the main difference is that these run after the coding agent rather than before. Things to ensure: - New executor for cleanup scripts - Project settings (FE + BE) updated with cleanup script - Auto run cleanup script (if specified) after coding agent runs - Task activity * Add tab to display execution processes (vibe-kanban 444e3cf9) Add a new tab in the TabNavigation component called "Processes" This will be a list of all the Execution Processes associated with the selected task attempt. Clicking on a process will open the raw logs for that execution process. The list of execution processes is already being fetched in the frontend. * fmt * clippy * format * The processes tab info has UI glitch (vibe-kanban) (#289) * Perfect! Fixed both UI glitches: 1. **Overlay issue**: Added `pb-20` (padding-bottom: 5rem) to both the process list view and process details view to ensure the "continue working on this task..." follow-up section doesn't overlap the process content 2. **Scrolling issue**: Changed `max-h-64` to `h-64` for both stdout/stderr log containers to ensure they have a fixed height and proper scrolling behavior The build completed successfully, confirming the TypeScript changes are valid. * Fixed! The issue was with the flex container setup. I made these key changes: 1. **Added `min-h-0`** to the process details container - this prevents flex items from having an implicit minimum height 2. **Added `flex-shrink-0`** to the header - this prevents the header from shrinking and ensures it stays fixed 3. **Changed `overflow-auto` to `overflow-y-auto`** - this specifically enables vertical scrolling only Now the parent tab should properly scroll to show all process sections while the individual stdio boxes maintain their own internal scrolling. * Execute Plan: Auto commit changes after cleanup script (vibe-kanban) (#290) * Perfect! I've successfully implemented auto-commit functionality after cleanup script execution. Here's what was accomplished: ## Summary Successfully implemented auto-commit functionality in [`handle_cleanup_completion()`](file:///private/var/folders/kr/jdxkcn7129j376nrg0stj9zm0000gn/T/vibe-kanban/vk-6cc2-execute-pl/backend/src/execution_monitor.rs#L1024-L1095) that: 1. **Follows existing patterns** - Reuses the same `commit_execution_changes()` function used by coding agent completion 2. **Only commits on success** - Auto-commit only triggers when cleanup script succeeds 3. **Proper error handling** - Logs errors without failing the entire process 4. **Descriptive commit messages** - Uses "Task attempt {id} - Post-cleanup changes" format 5. **Comprehensive logging** - Provides clear success/failure feedback The implementation leverages the existing Git infrastructure and maintains consistency with the codebase patterns. The project compiles and builds successfully with the new feature. * fmt * Done! The commit message is now simply "Cleanup script". * Execute Plan: Move tasks to in-review after cleanup script (vibe-kanban 78f2eb17) # Plan: Move Tasks to In-Review After Cleanup Script ## Current Problem - Tasks are moved to 'in-review' status immediately when coding agent completes - Sound notifications play immediately after coding agent completion - Cleanup scripts run after the task is already marked as complete - This creates inconsistent UX where users think task is done before cleanup finishes ## Proposed Solution ### 1. Modify Coding Agent Completion Handler (`execution_monitor.rs:873-933`) - **Remove** immediate task status update to `InReview` - **Remove** immediate sound notification - Keep cleanup script triggering logic - Add intermediate status or flag to track "coding complete, waiting for cleanup" ### 2. Enhance Cleanup Completion Handler (`execution_monitor.rs:1024-1097`) - **Add** task status update to `InReview` after successful cleanup - **Add** sound notification after successful cleanup completion - Handle cleanup failure cases (still move to `InReview` with appropriate messaging) - Preserve existing auto-commit functionality ### 3. Handle Edge Cases - **No cleanup script configured**: Move to `InReview` immediately after coding agent (maintain current behavior) - **Cleanup script fails**: Still move to `InReview` but with failure notification - **Cleanup script timeout**: Move to `InReview` with timeout notification ### 4. Files to Modify - `backend/src/execution_monitor.rs` - Main logic changes - Potentially update notification messages to reflect cleanup completion ## Expected Outcome - Tasks only move to 'in-review' after ALL processing (including cleanup) is complete - Sound notifications align with actual task completion - Better user experience with accurate status representation * Execute Plan: Show 'stop attempt' if cleanup script running (vibe-kanban 8fbcfe55) ## Implementation Plan: Show 'Stop Attempt' for Cleanup Scripts ### Current State Analysis - 'Stop Attempt' button shows when `isAttemptRunning` is true - `isAttemptRunning` only checks for `codingagent` and `setupscript` process types - `ExecutionProcessType` enum currently only includes: `"setupscript" | "codingagent" | "devserver"` - Types are auto-generated from backend via `generate_types.rs` ### Required Changes #### 1. Backend Type Updates (High Priority) - Find and update the Rust `ExecutionProcessType` enum to include `cleanupscript` - Run `backend/src/bin/generate_types.rs` to regenerate `shared/types.ts` #### 2. Frontend Logic Updates (High Priority) - Modify `isAttemptRunning` in `TaskDetailsContextProvider.tsx:278-289`: ```typescript return attemptData.processes.some( (process: ExecutionProcessSummary) => (process.process_type === 'codingagent' || process.process_type === 'setupscript' || process.process_type === 'cleanupscript') && process.status === 'running' ); ``` #### 3. Verification (Medium Priority) - Verify backend creates cleanup script processes with correct `process_type` - Test that stop functionality works with cleanup scripts (should work automatically via existing `stopAllExecutions` API) ### Expected Outcome When cleanup scripts are running, the 'Stop Attempt' button will appear and clicking it will stop the cleanup script, maintaining consistency with setup scripts and coding agents. * Format
Get 10X more out of Claude Code, Gemini CLI, Codex, Amp and other coding agents...
Overview
AI coding agents are increasingly writing the world's code and human engineers now spend the majority of their time planning, reviewing, and orchestrating tasks. Vibe Kanban streamlines this process, enabling you to:
- Easily switch between different coding agents
- Orchestrate the execution of multiple coding agents in parallel or in sequence
- Quickly review work and start dev servers
- Track the status of tasks that your coding agents are working on
- Centralise configuration of coding agent MCP configs
You can watch a video overview here.
Installation
Make sure you have authenticated with your favourite coding agent. A full list of supported coding agents can be found in the docs. Then in your terminal run:
npx vibe-kanban
Documentation
Please head to the website for the latest documentation and user guides.
Support
Please open an issue on this repo if you find any bugs or have any feature requests.
Contributing
We would prefer that ideas and changes are raised with the core team via GitHub issues, where we can discuss implementation details and alignment with the existing roadmap. Please do not open PRs without first discussing your proposal with the team.
Development
Prerequisites
pnpm i
Running the dev server
pnpm run dev
This will start the frontend and backend with live reloading. A blank DB will be copied from the dev_assets_seed folder.
Build from source
- Run
build-npm-package.sh - In the
npx-clifolder runnpm pack - You can run your build with
npx [GENERATED FILE].tgz
Environment Variables
The following environment variables can be configured at build time or runtime:
| Variable | Type | Default | Description |
|---|---|---|---|
GITHUB_CLIENT_ID |
Build-time | Ov23li9bxz3kKfPOIsGm |
GitHub OAuth app client ID for authentication |
POSTHOG_API_KEY |
Build-time | Empty | PostHog analytics API key (disables analytics if empty) |
POSTHOG_API_ENDPOINT |
Build-time | Empty | PostHog analytics endpoint (disables analytics if empty) |
BACKEND_PORT |
Runtime | 0 (auto-assign) |
Backend server port |
FRONTEND_PORT |
Runtime | 3000 |
Frontend development server port |
HOST |
Runtime | 127.0.0.1 |
Backend server host |
DISABLE_WORKTREE_ORPHAN_CLEANUP |
Runtime | Not set | Disable git worktree cleanup (for debugging) |
Build-time variables must be set when running pnpm run build. Runtime variables are read when the application starts.
Custom GitHub OAuth App (Optional)
By default, Vibe Kanban uses Bloop AI's GitHub OAuth app for authentication. To use your own GitHub app for self-hosting or custom branding:
- Create a GitHub OAuth App at GitHub Developer Settings
- Enable "Device Flow" in the app settings
- Set scopes to include
user:email,repo - Build with your client ID:
GITHUB_CLIENT_ID=your_client_id_here pnpm run build
