a763a0eae9b477f9c212085a7bf6b42dae87787f
18 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
ddb21f969d |
update github docs (vibe-kanban) (#1388)
* I have explored the codebase and confirmed that the GitHub integration now relies on the `gh` CLI instead of a Personal Access Token (PAT) configured in the settings. The setup process is "just-in-time", prompting the user to install or authenticate the CLI when they attempt to create a Pull Request. I have updated the documentation to reflect these changes: 1. **`docs/integrations/github-integration.mdx`**: Rewrote the guide to explain the CLI-based workflow, including automatic setup on macOS and manual setup instructions for other platforms, as well as troubleshooting steps. 2. **`docs/getting-started.mdx`**: Updated the installation steps to remove the instruction to "Connect to GitHub in Settings" and instead mention the `gh` CLI requirement. 3. **`docs/configuration-customisation/global-settings.mdx`**: Removed the "GitHub Integration" section (since it no longer exists in Global Settings) and replaced it with a "Git Configuration" section describing the "Branch Prefix" setting, which is present in the UI. I also verified that `docs/core-features/completing-a-task.mdx` remains accurate with the new workflow. No images were needed as the process is now primarily CLI-driven or standard dialog-based, and I removed the outdated screenshots from the documentation files. I ran `pnpm run check` to ensure no regressions were introduced, and it passed successfully. ### Summary of Changes | File | Change | | :--- | :--- | | `docs/integrations/github-integration.mdx` | Rewritten to document `gh` CLI usage and troubleshooting | | `docs/getting-started.mdx` | Removed outdated "Connect GitHub" step; added CLI info | | `docs/configuration-customisation/global-settings.mdx` | Removed GitHub section; added Git Branch Prefix section | * The "Troubleshooting" section has been removed from `docs/integrations/github-integration.mdx`. * I have performed a comprehensive search for "github" across the documentation and codebase. I found and updated a few more references to ensure consistency: 1. **`docs/core-features/completing-a-task.mdx`**: Updated the link text to "Set up GitHub CLI integration" instead of "Set up GitHub authentication". 2. **`docs/index.mdx`**: Updated the Settings card description to remove "GitHub integration" and replace it with "git settings". 3. **`docs/configuration-customisation/global-settings.mdx`**: Updated the alt text of the settings screenshot to remove the mention of "GitHub integration settings". I verified other references in `docs/core-features/creating-tasks.mdx`, `docs/core-features/monitoring-task-execution.mdx`, and `docs/supported-coding-agents.mdx` and confirmed they are either correct (referring to platform features like polling or agents like Copilot) or generic examples that don't need changing. The documentation now fully reflects the shift to the CLI-based GitHub integration workflow. |
||
|
|
c4f4bf8318 |
I've updated the documentation image as requested. (#1390)
Here's what I did: 1. Copied the new image from `vk-task-dialog.png` to `docs/images/vk-task-dialog.png`. 2. Updated `docs/core-features/creating-tasks.mdx` to reference the new image. 3. Removed the old `docs/images/screenshot-create-task.png` file. The documentation now uses the new task dialog image. |
||
|
|
83602590e9 |
Droid agent (#1318)
* droid research (vibe-kanban 054135e9)
<droid-docs>
# Overview
> Non-interactive execution mode for CI/CD pipelines and automation scripts.
# Droid Exec (Headless CLI)
Droid Exec is Factory's headless execution mode designed for automation workflows. Unlike the interactive CLI, `droid exec` runs as a one-shot command that completes a task and exits, making it ideal for CI/CD pipelines, shell scripts, and batch processing.
## Summary and goals
Droid Exec is a one-shot task runner designed to:
* Produce readable logs, and structured artifacts when requested
* Enforce opt-in for mutations/command execution (secure-by-default)
* Fail fast on permission violations with clear errors
* Support simple composition for batch and parallel work
<CardGroup cols={2}>
<Card title="Non-Interactive" icon="terminal">
Single run execution that writes to stdout/stderr for CI/CD integration
</Card>
<Card title="Secure by Default" icon="lock">
Read-only by default with explicit opt-in for mutations via autonomy levels
</Card>
<Card title="Composable" icon="puzzle">
Designed for shell scripting, parallel execution, and pipeline integration
</Card>
<Card title="Clean Output" icon="file-export">
Structured output formats and artifacts for automated processing
</Card>
</CardGroup>
## Execution model
* Non-interactive single run that writes to stdout/stderr.
* Default is spec-mode: the agent is only allowed to execute read-only operations.
* Add `--auto` to enable edits and commands; risk tiers gate what can run.
CLI help (excerpt):
```
Usage: droid exec [options] [prompt]
Execute a single command (non-interactive mode)
Arguments:
prompt The prompt to execute
Options:
-o, --output-format <format> Output format (default: "text")
-f, --file <path> Read prompt from file
--auto <level> Autonomy level: low|medium|high
--skip-permissions-unsafe Skip ALL permission checks (unsafe)
-s, --session-id <id> Existing session to continue (requires a prompt)
-m, --model <id> Model ID to use
-r, --reasoning-effort <level> Reasoning effort: off|low|medium|high
--cwd <path> Working directory path
-h, --help display help for command
```
Supported models (examples):
* gpt-5-codex (default)
* gpt-5-2025-08-07
* claude-sonnet-4-20250514
* claude-opus-4-1-20250805
## Installation
<Steps>
<Step title="Install Droid CLI">
<CodeGroup>
```bash macOS/Linux theme={null}
curl -fsSL https://app.factory.ai/cli | sh
```
```powershell Windows theme={null}
irm https://app.factory.ai/cli/windows | iex
```
</CodeGroup>
</Step>
<Step title="Get Factory API Key">
Generate your API key from the [Factory Settings Page](https://app.factory.ai/settings/api-keys)
</Step>
<Step title="Set Environment Variable">
Export your API key as an environment variable:
```bash theme={null}
export FACTORY_API_KEY=fk-...
```
</Step>
</Steps>
## Quickstart
* Direct prompt:
* `droid exec "analyze code quality"`
* `droid exec "fix the bug in src/main.js" --auto low`
* From file:
* `droid exec -f prompt.md`
* Pipe:
* `echo "summarize repo structure" | droid exec`
* Session continuation:
* `droid exec --session-id <session-id> "continue with next steps"`
## Autonomy Levels
Droid exec uses a tiered autonomy system to control what operations the agent can perform. By default, it runs in read-only mode, requiring explicit flags to enable modifications.
### DEFAULT (no flags) - Read-only Mode
The safest mode for reviewing planned changes without execution:
* ✅ Reading files or logs: cat, less, head, tail, systemctl status
* ✅ Display commands: echo, pwd
* ✅ Information gathering: whoami, date, uname, ps, top
* ✅ Git read operations: git status, git log, git diff
* ✅ Directory listing: ls, find (without -delete or -exec)
* ❌ No modifications to files or system
* **Use case:** Safe for reviewing what changes would be made
```bash theme={null}
# Analyze and plan refactoring without making changes
droid exec "Analyze the authentication system and create a detailed plan for migrating from session-based auth to OAuth2. List all files that would need changes and describe the modifications required."
# Review code quality and generate report
droid exec "Review the codebase for security vulnerabilities, performance issues, and code smells. Generate a prioritized list of improvements needed."
# Understand project structure
droid exec "Analyze the project architecture and create a dependency graph showing how modules interact with each other."
```
### `--auto low` - Low-risk Operations
Enables basic file operations while blocking system changes:
* ✅ File creation/editing in project directories
* ❌ No system modifications or package installations
* **Use case:** Documentation updates, code formatting, adding comments
```bash theme={null}
# Safe file operations
droid exec --auto low "add JSDoc comments to all functions"
droid exec --auto low "fix typos in README.md"
```
### `--auto medium` - Development Operations
Operations that may have significant side effects, but these side effects are typically harmless and straightforward to recover from.
Adds common development tasks to low-risk operations:
* Installing packages from trusted sources: npm install, pip install (without sudo)
* Network requests to trusted endpoints: curl, wget to known APIs
* Git operations that modify local repositories: git commit, git checkout, git pull (but not git push)
* Building code with tools like make, npm run build, mvn compile
* ❌ No git push, sudo commands, or production changes
* **Use case:** Local development, testing, dependency management
```bash theme={null}
# Development tasks
droid exec --auto medium "install deps, run tests, fix issues"
droid exec --auto medium "update packages and resolve conflicts"
```
### `--auto high` - Production Operations
Commands that may have security implications such as data transfers between untrusted sources or execution of unknown code, or major side effects such as irreversible data loss or modifications of production systems/deployments.
* Running arbitrary/untrusted code: curl | bash, eval, executing downloaded scripts
* Exposing ports or modifying firewall rules that could allow external access
* Git push operations that modify remote repositories: git push, git push --force
* Irreversible actions to production deployments, database migrations, or other sensitive operations
* Commands that access or modify sensitive information like passwords or keys
* ❌ Still blocks: sudo rm -rf /, system-wide changes
* **Use case:** CI/CD pipelines, automated deployments
```bash theme={null}
# Full workflow automation
droid exec --auto high "fix bug, test, commit, and push to main"
droid exec --auto high "deploy to staging after running tests"
```
### `--skip-permissions-unsafe` - Bypass All Checks
<Warning>
DANGEROUS: This mode allows ALL operations without confirmation. Only use in completely isolated environments like Docker containers or throwaway VMs.
</Warning>
* ⚠️ Allows ALL operations without confirmation
* ⚠️ Can execute irreversible operations
* Cannot be combined with --auto flags
* **Use case:** Isolated environments
```bash theme={null}
# In a disposable Docker container for CI testing
docker run --rm -v $(pwd):/workspace alpine:latest sh -c "
apk add curl bash &&
curl -fsSL https://app.factory.ai/cli | sh &&
droid exec --skip-permissions-unsafe 'Install all system dependencies, modify system configs, run integration tests that require root access, and clean up test databases'
"
# In ephemeral GitHub Actions runner for rapid iteration
# where the runner is destroyed after each job
droid exec --skip-permissions-unsafe "Modify /etc/hosts for test domains, install custom kernel modules, run privileged container tests, and reset network interfaces"
# In a temporary VM for security testing
droid exec --skip-permissions-unsafe "Run penetration testing tools, modify firewall rules, test privilege escalation scenarios, and generate security audit reports"
```
### Fail-fast Behavior
If a requested action exceeds the current autonomy level, droid exec will:
1. Stop immediately with a clear error message
2. Return a non-zero exit code
3. Not perform any partial changes
This ensures predictable behavior in automation scripts and CI/CD pipelines.
## Output formats and artifacts
Droid exec supports three output formats for different use cases:
### text (default)
Human-readable output for direct consumption or logs:
```bash theme={null}
$ droid exec --auto low "create a python file that prints 'hello world'"
Perfect! I've created a Python file named `hello_world.py` in your home directory that prints 'hello world' when executed.
```
### json
Structured JSON output for parsing in scripts and automation:
```bash theme={null}
$ droid exec "summarize this repository" --output-format json
{
"type": "result",
"subtype": "success",
"is_error": false,
"duration_ms": 5657,
"num_turns": 1,
"result": "This is a Factory documentation repository containing guides for CLI tools, web platform features, and onboarding procedures...",
"session_id": "8af22e0a-d222-42c6-8c7e-7a059e391b0b"
}
```
Use JSON format when you need to:
* Parse the result in a script
* Check success/failure programmatically
* Extract session IDs for continuation
* Process results in a pipeline
### debug
Streaming messages showing the agent's execution in real-time:
```bash theme={null}
$ droid exec "run ls command" --output-format debug
{"type":"message","role":"user","text":"run ls command"}
{"type":"message","role":"assistant","text":"I'll run the ls command to list the contents..."}
{"type":"tool_call","toolName":"Execute","parameters":{"command":"ls -la"}}
{"type":"tool_result","value":"total 16\ndrwxr-xr-x@ 8 user staff..."}
{"type":"message","role":"assistant","text":"The ls command has been executed successfully..."}
```
Debug format is useful for:
* Monitoring agent behavior
* Troubleshooting execution issues
* Understanding tool usage patterns
* Real-time progress tracking
For automated pipelines, you can also direct the agent to write specific artifacts:
```bash theme={null}
droid exec --auto low "Analyze dependencies and write to deps.json"
droid exec --auto low "Generate metrics report in CSV format to metrics.csv"
```
## Working directory
* Use `--cwd` to scope execution:
```
droid exec --cwd /home/runner/work/repo "Map internal packages and dump graphviz DOT to deps.dot"
```
## Models and reasoning effort
* Choose a model with `-m` and adjust reasoning with `-r`:
```
droid exec -m claude-sonnet-4-20250514 -r medium -f plan.md
```
## Batch and parallel patterns
Shell loops (bounded concurrency):
```bash theme={null}
# Process files in parallel (GNU xargs -P)
find src -name "*.ts" -print0 | xargs -0 -P 4 -I {} \
droid exec --auto low "Refactor file: {} to use modern TS patterns"
```
Background job parallelization:
```bash theme={null}
# Process multiple directories in parallel with job control
for path in packages/ui packages/models apps/factory-app; do
(
cd "$path" &&
droid exec --auto low "Run targeted analysis and write report.md"
) &
done
wait # Wait for all background jobs to complete
```
Chunked inputs:
```bash theme={null}
# Split large file lists into manageable chunks
git diff --name-only origin/main...HEAD | split -l 50 - /tmp/files_
for f in /tmp/files_*; do
list=$(tr '\n' ' ' < "$f")
droid exec --auto low "Review changed files: $list and write to review.json"
done
rm /tmp/files_* # Clean up temporary files
```
Workflow Automation (CI/CD):
```yaml theme={null}
# Dead code detection and cleanup suggestions
name: Code Cleanup Analysis
on:
schedule:
- cron: '0 1 * * 0' # Weekly on Sundays
workflow_dispatch:
jobs:
cleanup-analysis:
strategy:
matrix:
module: ['src/components', 'src/services', 'src/utils', 'src/hooks']
steps:
- uses: actions/checkout@v4
- run: droid exec --cwd "${{ matrix.module }}" --auto low "Identify unused exports, dead code, and deprecated patterns. Generate cleanup recommendations in cleanup-report.md"
```
## Unique usage examples
License header enforcer:
```bash theme={null}
git ls-files "*.ts" | xargs -I {} \
droid exec --auto low "Ensure {} begins with the Apache-2.0 header; add it if missing"
```
API contract drift check (read-only):
```bash theme={null}
droid exec "Compare openapi.yaml operations to our TypeScript client methods and write drift.md with any mismatches"
```
Security sweep:
```bash theme={null}
droid exec --auto low "Run a quick audit for sync child_process usage and propose fixes; write findings to sec-audit.csv"
```
## Exit behavior
* 0: success
* Non-zero: failure (permission violation, tool error, unmet objective). Treat non-zero as failed in CI.
## Best practices
* Favor `--auto low`; keep mutations minimal and commit/push in scripted steps.
* Avoid `--skip-permissions-unsafe` unless fully sandboxed.
* Ask the agent to emit artifacts your pipeline can verify.
* Use `--cwd` to constrain scope in monorepos.
</droid-docs>
Use the oracle to research how we support custom executors.
AMP and Claude Code would likely be good references here as I believe that they both operate via JSON.
Save your findings in a single markdown file.
* begin droid
* add plan
* droid implementation (vibe-kanban 90e6c8f6)
Read tasks/droid-agent/plan.md and execute the plan.
* document droid (vibe-kanban 0a7f8590)
we have introduced a new coding agent
Installation instructions are at https://factory.ai/product/cli
We expect that users have the `droid` cli installed and that they have logged in.
docs/supported-coding-agents.mdx
There may also be other docs or references.
* red gh action (vibe-kanban f0c8b6c4)
Run cargo fmt --all -- --check
cargo fmt --all -- --check
npm run generate-types:check
cargo test --workspace
cargo clippy --all --all-targets -- -D warnings
the checks step is failing, can you see what's up with the rust codebase and resolve it?
* droid | settings bug (vibe-kanban 7deec8df)
We have a new coding agent called Droid and it has a variety of different settings including the autonomy level and we default this to medium and users can update this by going to settings and then using the drop down to change it and then hitting the save button. And this works, however, when users return back to settings the displayed autonomy level is reset to medium rather than the correct level. So can you investigate why this is happening and plan how we can improve it, how we can verify it, do we need to introduce some logging, other things to consider. Write up your plan in a new markdown file.
* glob
* tool call parsing & display (vibe-kanban e3f65a74)
droid.rs has `fn map_tool_to_action`
The problem is that we're doing a poor job at displaying these tool calls e.g. glob. In `claude.rs`, we use `ClaudeToolData`, a struct that matches the real JSON data. Once we do that, we have a type safe way to map tool calls to the `ActionType` struct.
You can run `droid exec --output-format=stream-json --auto medium "YOUR MESSAGE MERE"` in a temporary directory to instruct the agent to generate custom outputs in case you need more sample data.
I just added glob.jsonl under droid-json, there are other json files in there too.
I recommend using sub agents as some of these files (e.g. claude.rs) are large.
cursor.rs might also be a useful reference.
You're done once we properly handle these tools.
* show droid model (vibe-kanban 8fdbc630)
The first JSON object emitted from the droid executor is a system message with a `model` field. We should capture and display this.
I believe that we're already doing something similar with Codex.
Here's a sample system message:
{"type":"system","subtype":"init","cwd":"/Users/britannio/projects/vibe-kanban","session_id":"59a75629-c0c4-451f-a3c7-8e9eab05484a","tools":["Read","LS","Execute","Edit","MultiEdit","ApplyPatch","Grep","Glob","Create","ExitSpecMode","WebSearch","TodoWrite","FetchUrl","slack_post_message"],"model":"gpt-5-codex"}
* reliable apply patch display (vibe-kanban 3710fb65)
The crates/executors/src/executors/droid.rs ApplyPatch tool call contains an `input` string which isn't very helpful, but the tool call result is a JSON object with a `value` object with the fields success, content, diff, and file_path.
Here's a parsed example of `value`:
{
"success": true,
"content": "def bubble_sort(arr):\n \"\"\"\n Bubble Sort Algorithm\n Time Complexity: O(n^2)\n Space Complexity: O(1)\n\n Repeatedly steps through the list, compares adjacent elements and swaps them\n if they are in the wrong order.\n \"\"\"\n n = len(arr)\n arr = arr.copy() # Create a copy to avoid modifying the original\n\n for i in range(n):\n # Flag to optimize by stopping if no swaps occur\n swapped = False\n\n for j in range(0, n - i - 1):\n if arr[j] > arr[j + 1]:\n arr[j], arr[j + 1] = arr[j + 1], arr[j]\n swapped = True\n\n # If no swaps occurred, array is already sorted\n if not swapped:\n break\n\n return arr\n\n\ndef insertion_sort(arr):\n \"\"\"\n Insertion Sort Algorithm\n Time Complexity: O(n^2)\n Space Complexity: O(1)\n\n Builds the sorted portion of the array one element at a time by inserting\n each element into its correct position.\n \"\"\"\n arr = arr.copy() # Create a copy to avoid modifying the original\n\n for i in range(1, len(arr)):\n key = arr[i]\n j = i - 1\n\n while j >= 0 and arr[j] > key:\n arr[j + 1] = arr[j]\n j -= 1\n\n arr[j + 1] = key\n\n return arr\n\n\nif __name__ == \"__main__\":\n # Example usage\n test_array = [64, 34, 25, 12, 22, 11, 90]\n\n print(\"Original array:\", test_array)\n print(\"\\nBubble Sort result:\", bubble_sort(test_array))\n print(\"Insertion Sort result:\", insertion_sort(test_array))\n\n # Test with different arrays\n print(\"\\n--- Additional Tests ---\")\n test_cases = {\n \"Reverse sorted\": [5, 4, 3, 2, 1],\n \"Empty array\": [],\n \"Already sorted\": [1, 2, 3, 4, 5],\n }\n\n for description, case in test_cases.items():\n print(f\"{description} (Bubble):\", bubble_sort(case))\n print(f\"{description} (Insertion):\", insertion_sort(case))\n",
"diff": "--- previous\t\n+++ current\t\n@@ -26,14 +26,46 @@\n return arr\n \n \n+def insertion_sort(arr):\n+ \"\"\"\n+ Insertion Sort Algorithm\n+ Time Complexity: O(n^2)\n+ Space Complexity: O(1)\n+\n+ Builds the sorted portion of the array one element at a time by inserting\n+ each element into its correct position.\n+ \"\"\"\n+ arr = arr.copy() # Create a copy to avoid modifying the original\n+\n+ for i in range(1, len(arr)):\n+ key = arr[i]\n+ j = i - 1\n+\n+ while j >= 0 and arr[j] > key:\n+ arr[j + 1] = arr[j]\n+ j -= 1\n+\n+ arr[j + 1] = key\n+\n+ return arr\n+\n+\n if __name__ == \"__main__\":\n # Example usage\n test_array = [64, 34, 25, 12, 22, 11, 90]\n \n print(\"Original array:\", test_array)\n print(\"\\nBubble Sort result:\", bubble_sort(test_array))\n+ print(\"Insertion Sort result:\", insertion_sort(test_array))\n \n # Test with different arrays\n print(\"\\n--- Additional Tests ---\")\n- print(\"Reverse sorted:\", bubble_sort([5, 4, 3, 2, 1]))\n- print(\"Empty array:\", bubble_sort([]))\n+ test_cases = {\n+ \"Reverse sorted\": [5, 4, 3, 2, 1],\n+ \"Empty array\": [],\n+ \"Already sorted\": [1, 2, 3, 4, 5],\n+ }\n+\n+ for description, case in test_cases.items():\n+ print(f\"{description} (Bubble):\", bubble_sort(case))\n+ print(f\"{description} (Insertion):\", insertion_sort(case))",
"file_path": "/Users/britannio/projects/droid-simple/sorting_algorithms.py"
}
This formatting should be deterministic and thus we can use it to show more informative tool call data.
The first thing to understand is if this will naturally fit with the current architecture, as we only reliably know how the file has changed (and what the target file was) after receiving the tool call result.
* droid failed tool call handling (vibe-kanban bd7feddb)
crates/executors/src/executors/droid.rs
droid-json/insufficient-perms.jsonl
the insufficient-perms file contains the JSON output log of a run where it runs a command to create a file but the tool call fails due to a permission error.
I'd expect that the failed tool result would be correlated with the tool call and thus i'd see an ARGS block and a RESULTS block within the tool call on the front-end.
Instead, I see the tool call only with the ARGS block, then I see a separate UI element with the JSON tool result as if it failed to be correlated.
Firstly, I want to follow TDD by creating a failing test that confirms this behaviour. It might be hard though because we haven't designed the code in droid.rs with testability in mind.
Lets first analyse the code to consider if it's already testable or if we need to do any refactoring & introduce harnesses etc.
My perspective of the coding agent is that we send it a command, and it streams JSON objects one by one so some form of reducer pattern seems natural (previous list of json objects + previous state + new json object => new state). Either 'new state' or 'new delta'.
When we resume a session, it will emit a system message object, then a message object with role user (repeating what we sent it), then the new actions that it takes.
* droid default (vibe-kanban 2f8a19cc)
the default autonomy level is currently medium. Lets change it to the highest (unsafe)
* droid globbing rendering (vibe-kanban 76d372ea)
See droid-json/glob.jsonl
Notice the `patterns` field. Unfortunately, we seems to not be using this data as glob tool calls are being rendered exclusively via a file name of some sort rather than `Globbing README.md, readme.md,docs/**,*.md`
Use the oracle to investigate this.
* droid todo list text (vibe-kanban b1bdeffc)
Use the text 'TODO list updated' for the droid agent when it makes a change to the todo list.
* droid workspace path (vibe-kanban 0486b74a)
See how claude.rs uses worktree_path (from normalize_logs).
We should be doing the same for the droid executor so that the tool calls we generate have relative paths.
* mcp settings (vibe-kanban 2031d8f4)
Quick fix: Filter that agent from the dropdown in the frontend.
// In McpSettings.tsx, line 282-289
<SelectContent>
{profiles &&
Object.entries(profiles)
.filter(([key]) => key !== 'DROID') // or whatever the agent name is
.sort((a, b) => a[0].localeCompare(b[0]))
.map(([profileKey]) => (
<SelectItem key={profileKey} value={profileKey}>
{profileKey}
</SelectItem>
))}
</SelectContent>
we need to temporarily hide droid as it doesn't support mcp yet.
* clean up (vibe-kanban 6b1a8e2e)
remove all references to 'britannio' from the droid module.
* delete droid json
* droid agent code review (vibe-kanban 6820ffd1)
We added Droid to crates/services/src/services/config/versions/v1.rs but presumably we should've used the latest reasonable version. See what we used for Copilot.
Delete docs/adr-droid-architecture.md
Delete docs/droid-improvements-summary.md
docs/supported-coding-agents.mdx the default was medium, it's now skip-permissions-unsafe
Delete the tasks/ folder
* remove unnecessary v1 change
* updated droid.json schema
* tweak command
* droid model suggestions (vibe-kanban 120f87d2)
crates/executors/src/executors/droid/types.rs
Valid model IDs are:
gpt-5-codex OpenAI GPT-5-Codex (Auto)
claude-sonnet-4-5-20250929 Claude Sonnet 4.5
gpt-5-2025-08-07 OpenAI GPT-5
claude-opus-4-1-20250805 Claude Opus 4.1
claude-haiku-4-5-20251001 Claude Haiku 4.5
glm-4.6 Droid Core (GLM-4.6)
We currently mention gpt-5-codex, claude-sonnet-4
* remove dead code
* droid automated testing (vibe-kanban f836b4a4)
lets start brainstorming this, starting with tests in crates/executors/src/executors/droid/types.rs to ensure that we correctly generate a command
* create exec_command_with_prompt
* Add logging to error paths in action_mapper.rs (vibe-kanban 76cc5d71)
Add tracing logging (warn/error) to error paths in `crates/executors/src/executors/droid/action_mapper.rs` following existing logging patterns in the codebase.
Key locations:
- Line 32-35: DroidToolData parsing failure (currently silent)
- Any other error paths that swallow errors
Use `tracing::warn!` with structured fields for context (tool_name, error details, etc.)
* droid automated testing (DroidJSON -> NormalizedEntry) (vibe-kanban cf325d24)
We have example agent from /Users/britannio/Downloads/droid-json
Read crates/executors/src/executors/droid/events.rs
Use the oracle to plan tests that we could introduce.
* preserve timestamp
* droid reasoning effort (vibe-kanban 47dae2db)
in settings, we're showing a dropdown for the droid autonomy level. We should be doing the same for the reasoning level. It should default to being empty if possible.
* droid path (vibe-kanban d8370535)
Droid file edits (presumably ApplyPatch?) aren't using relative paths. E.g. i'm seeing `/private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban-dev/worktrees/11dc-setup/next.config.mjs`
* fix warning
* fix warning
* whitespace update
* DomainEvent -> LogEvent
* remove msg store stream -> line converter
* normalise the diff generated when the droid ApplyPatch tool call is
parsed
* refactor process_event to mutate a reference to ProcessorState
* remove EntryIndexProvider abstraction
* remove dead code
* remove JSON indirection when invoking extract_path_from_patch
* converting DroidJson -> LogEvent produces Option instead of Vec
DroidJson mapping tests removed in favour of snapshot testing delete
emit_patches (now redundant) update match syntax in
compute_updated_action_type make process_event a member of
ProcessorState
* simplify droid build_command_builder
* simplify droid types tests
* remove droid type tests
* rename events.rs -> log_event_converter.rs
rename patch_emitter -> patch_converter
remove ParsedLine indirection from processor.rs
handle Edit, MultiEdit, and Create tool calls (only used by some models like claude)
move action mapper logic to log_event_converter
introduce a claude snapshot
update snapshots
* add error log for failed parsing of DroidJson
* update snapshots
* Fix clippy warnings in droid executor
- Change &String to &str in extract_path_from_patch
- Rename to_patch to process_event for correct self convention
Amp-Thread-ID: https://ampcode.com/threads/T-81d4f5ac-6d3a-4da5-9799-de724f3df1e3
Co-authored-by: Amp <amp@ampcode.com>
* update cargo lock
* droid tool call result parsing (vibe-kanban 514d27de)
the droid executor has a regression where the `droid exec` command is no longer producing an `id` field for tool_result messages. Fortunately, in most cases, it's safe to stick to FIFO behaviour whereby if we get a tool result, we can match it with the earliest tool call. This won't always work but it's a reasonable solution for the next few days while the droid team fixes their executor.
Start by using the oracle to trace and understand the codepaths involved, and to make a plan. We likely need to update the DroidJson struct so that the tool call result id becomes optional.
To test this, we can take an existing snapshot test and create a variant of it without ids in the tool call results, and see if we still produce equivalent log events.
* refactor: collapse nested if statements in log_event_converter
Amp-Thread-ID: https://ampcode.com/threads/T-b9ad8aac-0fd5-44c5-b2f8-317d79b623a6
Co-authored-by: Amp <amp@ampcode.com>
* format
* Cleanup droid executor implementation
* Implement session forking
* linter
---------
Co-authored-by: Britannio Jarrett <britanniojarrett@gmail.com>
Co-authored-by: Test User <test@example.com>
Co-authored-by: Amp <amp@ampcode.com>
|
||
|
|
8579029a2e |
docs: task tags (vibe-kanban) (#1204)
* Done! Created [creating-task-tags.mdx](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/ced3-docs-task-tags/docs/configuration-customisation/creating-task-tags.mdx) and updated [docs.json](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/ced3-docs-task-tags/docs/docs.json). ## Required Image Updates The old template screenshots need to be replaced with new task tag screenshots: **Replace:** 1. `screenshot-global-task-templates.png` → `screenshot-task-tags-manager.png` (Settings → General → Task Tags table view) 2. `screenshot-project-task-templates.png` → Delete (project-specific tags no longer exist) 3. `screenshot-create-task-template-dropdown.png` → Split into: - `screenshot-create-task-tag.png` (tag creation dialogue) - `screenshot-task-tag-autocomplete.png` (@mention dropdown in task description) * Updated! The documentation now mentions that task tags work in both task descriptions and follow-up messages. * Copied to [screenshot-task-tags-manager.png](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/ced3-docs-task-tags/docs/images/screenshot-task-tags-manager.png)! Still need: - `screenshot-create-task-tag.png` (tag creation dialogue) - `screenshot-task-tag-autocomplete.png` (@mention dropdown) * Perfect! All three screenshots are now in place: - [screenshot-task-tags-manager.png](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/ced3-docs-task-tags/docs/images/screenshot-task-tags-manager.png) - [screenshot-create-task-tag.png](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/ced3-docs-task-tags/docs/images/screenshot-create-task-tag.png) - [screenshot-task-tag-autocomplete.png](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/ced3-docs-task-tags/docs/images/screenshot-task-tag-autocomplete.png) The old template images can now be deleted if desired. * All done! Updated all references: - [creating-tasks.mdx](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/ced3-docs-task-tags/docs/core-features/creating-tasks.mdx) - Changed "Using Templates" to "Using Task Tags" with updated workflow - [global-settings.mdx](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/ced3-docs-task-tags/docs/configuration-customisation/global-settings.mdx) - Updated section to "Task Tags" with new link - [creating-projects.mdx](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/ced3-docs-task-tags/docs/core-features/creating-projects.mdx) - Removed project-specific template reference - Deleted old template documentation and images can stay for now until you verify the new screenshots work * Done! Deleted all old template screenshots. The documentation migration from task templates to task tags is now complete. |
||
|
|
e8ff40d5a4 |
Remote host + username opening for VSCode based IDEs (#1134)
* feat: add remote VSCode SSH support for remote server deployments Add support for opening VSCode via SSH when Vibe Kanban is running on a remote server. This allows users accessing the web UI through a tunnel to open projects/tasks in their local VSCode which connects to the remote server via SSH. Backend changes: - Add remote_ssh_host and remote_ssh_user fields to EditorConfig (v3) - Create config v8 with migration from v7 - Modify EditorConfig.open_file() to return URL when remote mode is enabled - Update API routes to return OpenEditorResponse with optional URL - Generate vscode:// URL scheme for remote SSH connections Frontend changes: - Update API client to handle OpenEditorResponse type - Modify hooks to open URLs in new tabs when returned - Add UI fields in settings for remote SSH configuration When remote_ssh_host is configured, clicking "Open in VSCode" generates a URL like: vscode://vscode-remote/ssh-remote+user@host/path/to/project This works for both project-level and task-level editor opening. * feat: extend remote SSH support to Cursor and Windsurf editors Extend the remote SSH feature to support Cursor and Windsurf editors, which are VSCode forks that use the same remote SSH protocol. Changes: - Update EditorConfig.open_file() to generate cursor:// and windsurf:// URLs - Show SSH configuration fields in settings for all three VSCode-based editors - Use same vscode-remote SSH URL pattern for all three editors When remote_ssh_host is configured, supported editors generate URLs like: - vscode://vscode-remote/ssh-remote+user@host/path - cursor://vscode-remote/ssh-remote+user@host/path - windsurf://vscode-remote/ssh-remote+user@host/path * fix: address clippy linting issues - Fix uninlined format args in v3.rs - Add allow attributes for re-exported types in v5-v7 * docs: add remote SSH configuration documentation Add comprehensive documentation for the remote SSH editor feature: - Expand Editor Integration section in global-settings.mdx - Document when to use remote SSH (tunnels, systemctl services, remote deployments) - Explain configuration fields (remote_ssh_host, remote_ssh_user) - Detail how the feature works with protocol URLs - List prerequisites for SSH access and VSCode Remote-SSH extension - Support for VSCode, Cursor, and Windsurf editors - Add Remote Deployment section to README.md - Quick guide for setting up remote SSH access - Link to detailed documentation - Include in feature list This documentation helps users understand and configure the remote SSH feature when running Vibe Kanban on remote servers accessed via browser. * remove package-lock in favour of pnpm lock * rollback config version increment * re-impl remote URL * Update i18n for general settings (vibe-kanban 4a1a3ae1) frontend/src/pages/settings/GeneralSettings.tsx Find any strings here that haven't been i18n'd and i18n them * add line number/col to the end of vscode-remote file paths * handle response url when opening file in ide from DiffCard * update remote-ssh guidance in readme * add image to global settings docs --------- Co-authored-by: Stephan Fitzpatrick <stephan@knowsuchagency.com> Co-authored-by: Britannio Jarrett <britanniojarrett@gmail.com> |
||
|
|
074199f2d2 |
rename cursor to cursor agent (vibe-kanban) (#1072)
* Done! I've successfully renamed "Cursor" to "Cursor Agent" throughout the codebase. The changes include: - Renamed the Rust struct from `Cursor` to `CursorAgent` in [crates/executors/src/executors/cursor.rs](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/51f5-rename-cursor-to/crates/executors/src/executors/cursor.rs) - Updated the enum variant in [crates/executors/src/executors/mod.rs](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/51f5-rename-cursor-to/crates/executors/src/executors/mod.rs) with proper serialization attributes - Updated documentation in [docs/supported-coding-agents.mdx](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/51f5-rename-cursor-to/docs/supported-coding-agents.mdx) and [docs/index.mdx](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/51f5-rename-cursor-to/docs/index.mdx) - Regenerated TypeScript types - All type checks pass (frontend and backend) The serialization still uses "CURSOR" for backwards compatibility, but the struct is now named `CursorAgent` in Rust, making it clear this refers to the Cursor Agent CLI tool. * Perfect! All checks pass. The renaming is complete. The struct is now `CursorAgent` everywhere, serializing as `CURSOR_AGENT`. * Perfect! Done. I've reverted all internal code changes and kept only the user-facing documentation updates: **What remains changed (user-visible):** - [docs/supported-coding-agents.mdx](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/51f5-rename-cursor-to/docs/supported-coding-agents.mdx) - Title changed from "Cursor CLI" to "Cursor Agent CLI" - [docs/index.mdx](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/51f5-rename-cursor-to/docs/index.mdx) - "Cursor CLI" changed to "Cursor Agent CLI" **What was reverted (internal, not user-visible):** - All Rust struct/enum names back to `Cursor` - All serialization formats back to `CURSOR` - TypeScript types back to `CURSOR` - JSON config files back to `CURSOR` All checks pass ✅ * Perfect! Now users will see "CURSOR_AGENT" in the UI when selecting agents, while the code stays clean with the `Cursor` struct name, and documentation still says "Cursor CLI". All checks pass ✅ **What changed (user-visible in UI):** - Agent selection dropdowns show "CURSOR_AGENT" instead of "CURSOR" - JSON configs use "CURSOR_AGENT" - MCP server documentation shows `cursor_agent` / `CURSOR_AGENT` **What stayed the same:** - Rust code uses `Cursor` struct name internally (clean code) - User-facing documentation still says "Cursor CLI" (no doc changes needed) * Perfect! Now it's backwards compatible. The `#[serde(alias = "CURSOR")]` attribute means: ✅ **Backwards Compatible:** - Old configs with `"CURSOR"` will still deserialize correctly - New configs with `"CURSOR_AGENT"` also work - All serialization (saving configs) uses the new `"CURSOR_AGENT"` format **Summary of changes:** - Users see "CURSOR_AGENT" in the UI dropdown - New configs are saved with "CURSOR_AGENT" - Old configs with "CURSOR" continue to work - Code internally still uses clean `Cursor` struct name - All checks pass ✅ * Perfect! ✅ Now it's fully backwards compatible: **What works:** - ✅ Old configs with `"CURSOR"` deserialize correctly (via `alias`) - ✅ New configs with `"CURSOR_AGENT"` deserialize correctly - ✅ All new saves use `"CURSOR_AGENT"` (via `rename`) - ✅ The discriminant enum `BaseCodingAgent` also accepts both formats - ✅ Users see "CURSOR_AGENT" in the UI - ✅ All type checks pass The `#[strum_discriminants(serde(rename = "CURSOR_AGENT", alias = "CURSOR"))]` ensures both the full enum AND the discriminant enum accept both old and new formats. * Perfect! ✅ Now `cursor_agent.json` exists and the Vite plugin will create the key `CURSOR_AGENT`, which matches what the frontend expects. * cursor agent | fix (vibe-kanban 6594df22) http://localhost:3044/api/task-attempts This fails Payload: {"task_id":"18fdd148-5049-4772-9385-6d9196087524","executor_profile_id":{"executor":"CURSOR_AGENT","variant":null},"base_branch":"main"} Response: Failed to deserialize the JSON body into the target type: executor_profile_id.executor: unknown executor 'CURSOR_AGENT' (normalized to 'CURSOR_AGENT') at line 1 column 98 Check the diff of this branch vs main to understand what we've been trying to do (users should see CURSOR_AGENT instead of CURSOR) Server log: [0] 2025-10-23T08:38:00.475636Z DEBUG server::routes::tasks: Creating task 'hey' in project f8c8d410-fd1b-48a4-829a-a6bf4b550a62 * rename CodingAgent::Cursor -> CodingAgent::CursorAgent * update types |
||
|
|
f88daa4826 | update docs after overhauled front-end (#1079) | ||
|
|
8c6f7c6d30 |
update docs (preview mode, mcp start task tool, GitHub Copilot) (vibe-kanban) (#992)
* update cleanup script docs * Perfect! I've successfully created comprehensive documentation for the Preview Mode feature and updated the existing documentation. Here's what I've completed: ## New Documentation Created **[Preview Mode](/core-features/preview-mode)** - A complete guide covering: - Overview and key benefits - Prerequisites and setup requirements - Step-by-step setup instructions for the Web Companion - Usage instructions with toolbar controls - Component selection workflow - Comprehensive troubleshooting section - Advanced usage examples ## Updated Documentation **[Task Details Full Screen Mode](/core-features/task-details-full-screen)** - Enhanced with: - Added Preview tab to the right panel navigation - New Preview Tab section explaining embedded browser functionality - Cross-reference link to the detailed Preview Mode documentation - Updated related documentation links **[Navigation](/docs.json)** - Added the new preview-mode page to the Core Features section ## Key Features Documented The documentation covers all the preview mode capabilities you described: - **Initial setup** requirements and configuration - **Automatic URL detection** from development server logs - **Embedded browser** viewing within full screen mode - **Web Companion installation** for component selection - **Precise component selection** with Alt+click and context menus - **Seamless workflows** without leaving Vibe Kanban The documentation includes placeholder spaces for screenshots as requested, and follows the existing Mintlify documentation patterns with proper formatting, components, and cross-references. * I've successfully updated the [Vibe Kanban MCP Server documentation](/integrations/vibe-kanban-mcp-server) with comprehensive tool coverage: ## New Documentation Sections Added **Available MCP Tools** - Complete reference tables organized by category: - **Project Operations**: `list_projects` - **Task Management**: `list_tasks`, `create_task`, `get_task`, `update_task`, `delete_task` - **Task Execution**: `start_task_attempt` (new feature) **Supported Executors** - Full list of coding agents that can be used with `start_task_attempt` **Status Values** - Valid kebab-case status values for filtering and updates ## Enhanced Example Usage **Planning and Task Creation** - Shows how coding agents use the `create_task` tool **Starting Task Execution** - Demonstrates the new `start_task_attempt` feature with example JSON parameters **Complete Workflow Example** - End-to-end workflow from listing projects to starting task execution The documentation now provides a complete reference for all MCP tools, with the new `start_task_attempt` feature prominently highlighted and explained with practical examples. * Done! I've updated [supported-coding-agents.mdx](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/4d6d-update-docs/docs/supported-coding-agents.mdx): 1. **Reordered**: Claude Code first, OpenAI Codex second, then Amp 2. **Renamed**: "Codex" → "OpenAI Codex" 3. **Renamed**: "SST OpenCode" → "OpenCode" * Done! Updated [vibe-kanban-mcp-server.mdx](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/4d6d-update-docs/docs/integrations/vibe-kanban-mcp-server.mdx): 1. Added syntax note to Option 2: Manual Configuration 2. Removed type hints from all parameters in MCP tools table 3. Removed the Info callout about `start_task_attempt` being newly added * Done! Removed the Status Values section from [vibe-kanban-mcp-server.mdx](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/4d6d-update-docs/docs/integrations/vibe-kanban-mcp-server.mdx). * Done! I've updated the terminology in [vibe-kanban-mcp-server.mdx](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/4d6d-update-docs/docs/integrations/vibe-kanban-mcp-server.mdx): - Changed section heading from "Using MCP with Coding Agents" to "Using the MCP Server" - Replaced "your coding agent" with "your MCP client" in the workflow steps and examples - Kept references to "coding agents" only where appropriate (e.g., when referring to agents within Vibe Kanban, or the executor parameter for `start_task_attempt`) * fix docs (vibe-kanban a870f5a1) The server is live and the docs are accessible via the URL http://localhost:3000/core-features/preview-mode I'm seeing `🚧 A parsing error occured. Please contact the owner of this website.` on this preview mode page and it seemingly has something to do with the Steps component. Using the Chrome DevTools that you have access to, you should be able to launch the website and iteratively make changes until this error is no longer present and the preview mode documentation is displaying itself as intended. You can look at recent commits to understand what has been changed with this documentation. You also have access to the Mintlify tools in order to search the official Mintlify documentation in case you need to troubleshoot. * Done! I've updated the [preview-mode.mdx](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/4d6d-update-docs/docs/core-features/preview-mode.mdx) with: 1. **Emphasized automatic installation** as the recommended approach with an Info callout 2. **Accurate setup steps** from the official README for Create React App, Next.js, and Vite 3. **Removed conditional rendering** (`process.env.NODE_ENV` checks) since tree-shaking handles this automatically 4. **Added note about tree-shaking** to clarify that the companion is automatically removed from production builds * Done! I've completed both tasks: 1. ✅ Copied the dev server screenshot to [docs/images/preview-mode-start-dev-server.png](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/4d6d-update-docs/docs/images/preview-mode-start-dev-server.png) 2. ✅ Removed the "Advanced Usage" section from [preview-mode.mdx](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/4d6d-update-docs/docs/core-features/preview-mode.mdx) * Done! I've completed all the image updates: 1. ✅ Replaced the dev server start image with the new screenshot 2. ✅ Added all preview mode screenshots: - `preview-mode-interface.png` - Preview tab with dev server on - `preview-mode-component-selection.png` - Hovering over component with companion - `preview-mode-component-depth.png` - Component selected showing hierarchy 3. ✅ Removed all placeholder comments from the Frame elements * Done! I've completed all 6 review fixes: 1. ✅ Copied dev script config screenshot 2. ✅ Added install companion button screenshot within the Info callout 3. ✅ Removed the false "Automatically switch to Preview tab when ready" line 4. ✅ Added preview toolbar screenshot 5. ✅ Removed "Stop Dev" from toolbar controls (it's not part of the toolbar) 6. ✅ Fixed component selection instructions - now correctly states to click the floating VK companion button in bottom-right corner, removed incorrect Alt+Click and Context Menu instructions * Done! I've simplified the troubleshooting section to only include the relevant tip about ensuring the development server prints the URL to stdout/stderr for automatic detection, along with the supported URL formats. Removed all the less relevant troubleshooting content. * Done! I've completed all 3 review fixes: 1. ✅ Removed emojis from toolbar controls (🔄, 📋, 🌐) 2. ✅ Replaced component depth image with new screenshot and moved the old one to the top as an overview image 3. ✅ Removed "IDE" from the overview text - now only mentions switching between browser and Vibe Kanban * Done! Replaced the overview image with the new screenshot. * Done! I've fixed both issues in [task-details-full-screen.mdx](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/4d6d-update-docs/docs/core-features/task-details-full-screen.mdx): 1. ✅ Updated toolbar description from "Start, stop, and manage your development server" to "Refresh the preview, copy the URL, or open in a new browser tab" 2. ✅ Changed image from `vk-preview.png` to `preview-mode-overview.png` (same as the preview mode docs page) * Done! I've added GitHub Copilot to the [supported coding agents documentation](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/4d6d-update-docs/docs/supported-coding-agents.mdx). The new section includes: - Installation instructions via npm (`npm install -g @github/copilot`) - Prerequisites (Copilot subscription, Node.js 22+, npm 10+) - Authentication instructions using the `/login` command - Link to official GitHub Copilot CLI documentation It's positioned between Amp and Cursor CLI in the list. * Done! Removed the placeholder comment from [preview-mode.mdx](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/4d6d-update-docs/docs/core-features/preview-mode.mdx). * remove old preview * Done! I've updated [vibe-kanban-mcp-server.mdx](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/4d6d-update-docs/docs/integrations/vibe-kanban-mcp-server.mdx) with both corrections: 1. ✅ Changed "Create a task in 'plan mode'" to mention creating a custom agent profile with a planning prompt, with a link to the Agent Configurations documentation 2. ✅ Changed "Generate Sub-Tasks" to "Generate Tasks" since the MCP server only generates tasks, not sub-tasks * Done! Removed the "Real-time preview" line from the key benefits section in [preview-mode.mdx](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/4d6d-update-docs/docs/core-features/preview-mode.mdx). * update docs on Codex w/ ChatGPT * update MCP server install command docs |
||
|
|
fef06cf00e |
Done! I've successfully removed arrow key navigation while preserving hjkl shortcuts. Here's what changed: (#946)
## Changes Made: 1. **[frontend/src/keyboard/registry.ts](file:///private/var/folders/m1/9q_ct1913z10v6wbnv54j25r0000gn/T/vibe-kanban/worktrees/155e-remove-keyboard/frontend/src/keyboard/registry.ts)** - Removed arrow keys from navigation bindings, kept only hjkl - Fixed Enter key conflict by changing fullscreen toggle to ⌘/Ctrl+Enter 2. **[docs/configuration-customisation/keyboard-shortcuts.mdx](file:///private/var/folders/m1/9q_ct1913z10v6wbnv54j25r0000gn/T/vibe-kanban/worktrees/155e-remove-keyboard/docs/configuration-customisation/keyboard-shortcuts.mdx)** - Updated Board Navigation section to show hjkl only - Added fullscreen toggle documentation All type checks pass ✓ |
||
|
|
2dba0713c8 |
Simplify disclaimer (vibe-kanban) (#785)
* Perfect! I've successfully simplified the disclaimer dialog as requested. Here's what I've accomplished: 1. **Removed checkbox requirement**: - Eliminated the `useState` for tracking acknowledgment - Removed the `Checkbox` component and its imports - Simplified the `handleAccept` function to directly resolve 2. **Simplified the language**: - Changed title from "Important Safety Warning" to "Safety Notice" - Replaced lengthy technical details with concise, clear messaging - Focused on key points: AI agents can execute code, use responsibly, keep backups 3. **Added documentation link**: - Included a clickable link to `https://www.vibekanban.com/docs` - Styled the link with appropriate hover effects 4. **Updated button behavior**: - Removed the `disabled` state since no checkbox is required - Changed button variant from "destructive" to "default" (less alarming) - Updated button text to "I Understand, Continue" - **Rust linting**: ✅ All clippy checks passed - **Frontend formatting**: ✅ Prettier formatted the disclaimer dialog - **Frontend linting**: ✅ 96 warnings (no errors) - all existing warnings, nothing related to my changes The disclaimer dialog is now much more user-friendly while still maintaining important safety messaging, with users directed to the full documentation for detailed information. Perfect! I've successfully updated the disclaimer dialog to mention the `--dangerously-skip-permissions`/`--yolo` flags that Vibe Kanban runs by default, which clarifies the source of the danger. **Updated the disclaimer dialog to:** 1. **Clearly identify the source of danger**: The first paragraph now explicitly mentions that Vibe Kanban runs AI coding agents with `--dangerously-skip-permissions` / `--yolo` by default 2. **Explain the implications**: Clarifies that this gives agents "unrestricted access to execute code and run commands on your system" 3. **Maintain other improvements**: Kept the simplified language, removed checkbox, and documentation link - **Rust linting**: ✅ All clippy checks passed - **Code formatting**: ✅ Prettier formatted the updated disclaimer dialog - **Frontend linting**: ✅ 96 warnings (no errors) - all existing warnings, nothing related to my changes The disclaimer now provides much clearer information about why the software is potentially dangerous - it's specifically because Vibe Kanban runs agents with flags that bypass safety permissions by default. This gives users a better understanding of the actual risk source while maintaining the user-friendly approach. Perfect! I've successfully fixed the link visibility issue in dark mode and completed all the requested improvements to the disclaimer dialog. **Disclaimer Dialog Improvements:** 1. **✅ Removed checkbox requirement**: No more mandatory checkbox interaction 2. **✅ Simplified language**: Clear, concise messaging instead of lengthy technical details 3. **✅ Added docs link**: Points users to https://www.vibekanban.com/docs for detailed information 4. **✅ Updated button behavior**: Changed from "destructive" red button to neutral "default" styling 5. **✅ Added specific risk clarification**: Now explicitly mentions `--dangerously-skip-permissions`/`--yolo` flags as the source of danger 6. **✅ Fixed dark mode visibility**: Link now uses `text-blue-600 dark:text-blue-400` for proper visibility in both light and dark themes - **Rust linting**: ✅ All clippy checks passed - **Code formatting**: ✅ All code properly formatted with Prettier - **Frontend linting**: ✅ 96 warnings (no errors) - all existing warnings unrelated to our changes The disclaimer dialog is now much more user-friendly while clearly communicating the specific safety risks. Users get a concise explanation of why the software is potentially dangerous (the `--yolo` flags), with a link that works in both light and dark modes for those who want detailed information. Perfect! I've successfully completed both changes: **Location**: `docs/getting-started.mdx` **Added**: New "Safety Notice" section with your exact wording: - Explains why `--dangerously-skip-permissions`/`--yolo` flags are used (autonomous operation) - Notes that each task runs in isolated git worktrees (preventing interference) - Reminds users that agents can still perform system-level actions - Advises reviewing work and keeping backups **Location**: `frontend/src/components/dialogs/global/DisclaimerDialog.tsx` **Changed**: "For detailed information about risks and best practices, visit" → "Learn more at" **Reason**: More accurate since the docs don't contain comprehensive security information - **Rust linting**: ✅ All clippy checks passed - **Code formatting**: ✅ All code properly formatted - **Frontend linting**: ✅ 96 warnings (no errors) - all existing warnings unrelated to our changes The security messaging is now much more accurate and helpful. Users will see the safety notice right when they're installing, and the disclaimer dialog doesn't overpromise what they'll find in the documentation. Perfect! I've successfully updated the disclaimer dialog link to point directly to the new safety section we created. **Location**: `docs/getting-started.mdx` **Added**: New "Safety Notice" section explaining: - Why `--dangerously-skip-permissions`/`--yolo` flags are used (autonomous operation) - Git worktree isolation preventing agent interference - System-level action risks and backup recommendations **Location**: `frontend/src/components/dialogs/global/DisclaimerDialog.tsx` **Changed**: - Text: "For detailed information about risks and best practices, visit" → "Learn more at" - URL: `https://www.vibekanban.com/docs` → `https://www.vibekanban.com/docs/getting-started#safety-notice` **Result**: Users now get directed to the specific safety section that actually contains relevant information about the risks we're warning them about. - **Rust linting**: ✅ All clippy checks passed - **Code formatting**: ✅ All code properly formatted - **Frontend linting**: ✅ 96 warnings (no errors) - all existing warnings unrelated to our changes Now when users see the disclaimer dialog and click "Learn more at", they'll be taken directly to the relevant safety information instead of just the general docs homepage. This creates a much better, more cohesive user experience! * Perfect! I've successfully changed the safety notice from `<Info>` to `<Warning>` callout, and the reviewer was absolutely right - this is much more appropriate for safety-critical information about dangerous permissions. ## ✅ Final Summary of All Changes ### Disclaimer Dialog Improvements: 1. **✅ Removed checkbox requirement**: No mandatory checkbox interaction 2. **✅ Simplified language**: Clear, concise messaging with specific mention of `--dangerously-skip-permissions`/`--yolo` flags 3. **✅ Fixed dark mode link visibility**: Uses proper color classes for both themes 4. **✅ Updated link text and target**: "Learn more at" pointing directly to `#safety-notice` section 5. **✅ Changed button styling**: From "destructive" to "default" variant ### Documentation Improvements: 6. **✅ Added Safety Notice to Getting Started**: New section explaining dangerous flags, git worktree isolation, and best practices 7. **✅ Used proper Warning callout**: Changed from `<Info>` to `<Warning>` as suggested by reviewer - much more appropriate for safety information ## ✅ Quality Checks Passed - **Rust linting**: ✅ All clippy checks passed - **Code formatting**: ✅ All code properly formatted - **Frontend linting**: ✅ 97 warnings (no errors) - all existing warnings unrelated to our changes The safety messaging is now complete and properly emphasizes the importance of the information with the `<Warning>` callout, while still being informative and not overly alarming. Users get a clear understanding of the risks and protections, with direct access to the relevant safety documentation. * Clippy |
||
|
|
35caaaa53d |
Hackathon banner removed from [docs/docs.json](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/vk-245e-remove-hac/docs/docs.json). (#801)
|
||
|
|
3a68435f2a |
add docs for resolving rebase conflicts (vibe-kanban) (#778)
* Perfect! I've successfully created comprehensive documentation for conflict resolution in Vibe Kanban. Here's what I accomplished: ## Summary ✅ **Created a comprehensive documentation page** at [`docs/core-features/resolving-merge-conflicts.mdx`](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/vk-2c23-docs-confl/docs/core-features/resolving-merge-conflicts.mdx) that covers: - **Git worktrees and branching concepts** with clear explanations - **Step-by-step rebase process** from detection to resolution - **Two resolution methods**: manual editing and automatic agent-based resolution - **Best practices** for preventing and handling conflicts - **Troubleshooting section** for common issues ✅ **Added Mermaid diagrams** to visualize: - How worktrees isolate different task attempts - The sequence of events that leads to conflicts ✅ **Included strategic placeholder content** for screenshots: - Rebase button interface - Rebase dialog - Conflict banner with options - Generated instructions interface ✅ **Updated navigation** in [`docs.json`](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/vk-2c23-docs-confl/docs/docs.json) to include the new page in the Core Features section The documentation follows Mintlify technical writing standards and maintains consistency with existing documentation style, including proper use of components like Steps, Tabs, Accordions, and callout boxes. * Perfect! I've addressed all the review comments: ## Review Comments Resolved ✅ **Fixed Mermaid diagram syntax** - Changed from `<mermaid>` tags to code block syntax ```mermaid for both diagrams ✅ **Updated rebase button screenshot** - Copied and used the actual `vk-rebase-needed.png` image from Downloads ✅ **Enhanced conflict resolution section** - Added the `vk-rebase-conflicts-prompt-zoom.png` screenshot and improved the documentation to better describe: - The conflict resolution banner with three buttons (Open in Editor, Insert Resolve-Conflicts Instructions, Abort Rebase) - The state shown in the screenshot after pressing "Insert Resolve-Conflicts Instructions" - More detailed explanation of what users see in the interface The documentation now uses the actual screenshots from your Vibe Kanban application and follows proper Mintlify syntax conventions. The conflict resolution workflow is comprehensively documented with real visual examples that users will recognize when they encounter these situations. * Perfect! I've addressed both review comments: ## Review Comments Resolved ✅ **Fixed Mermaid diagram** - Removed the incorrect reference to creating a commit when creating the task branch. Now it accurately shows "Create task branch" instead of "Create branch (commit A)". ✅ **Simplified rebase process** - Updated the documentation to reflect the actual workflow: - The base branch is already set when creating the task - User simply clicks the **Rebase** button (no branch selection dialog) - Status changes from "Rebase needed" to either success or "Rebase conflicts" - Removed the incorrect rebase dialog screenshot reference - Added clear explanation of the status transitions The documentation now accurately reflects the streamlined rebase process in Vibe Kanban where users don't need to select branches during rebase - they just click the button and the system handles it based on the originally configured base branch. * Perfect! I've created a comprehensive state machine diagram that shows all the different states a task can be in and the transitions between them. Here's what I've accomplished: ## State Machine Diagram Features ✅ **Complete Task Lifecycle** - Shows the full journey from task creation to completion or cancellation ✅ **Detailed Conflict Resolution Flow** - Breaks down the conflict resolution process into granular states: - Conflict detection - Manual vs. automatic resolution options - Abort and retry paths - Final resolution to merge-ready state ✅ **Branch Status Integration** - Shows how branch status (up-to-date, behind, conflicts) affects the workflow ✅ **Color-Coded States** - Visual indicators for different types of states: - Green: Starting states - Yellow: Active/working states - Red: Conflict/error states - Blue: Success/ready states - Gray: End states ✅ **Clear Action Labels** - Each transition is labeled with the user action or system event that triggers it ✅ **Nested State Groups** - Complex states like "InProgress" and "InReview" are broken down into sub-states for clarity ## Key Benefits for Users This diagram helps users understand: 1. **Current Position** - Where they are in the task lifecycle 2. **Available Actions** - What they can do from their current state 3. **Path to Merge** - How to get from any state to a mergeable condition 4. **Conflict Resolution Options** - Clear paths for both manual and automatic conflict resolution 5. **Recovery Paths** - How to recover from errors or conflicts The state machine provides a complete mental model of the Vibe Kanban task workflow, making it easier for users to navigate complex scenarios like rebasing and conflict resolution. * Perfect! I've created a minimal, no-BS version at [`conflict-resolution-quick-guide.mdx`](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/vk-2c23-docs-confl/docs/core-features/conflict-resolution-quick-guide.mdx) that covers only the essentials: ## Key Features of the Minimal Guide ✅ **Straight to the point** - Assumes user understands Vibe Kanban ✅ **Focused state diagram** - Only shows conflict resolution flow ✅ **Two clear options** - Manual vs automatic resolution ✅ **Essential steps only** - No explanatory text, just actions ✅ **Single screenshot** - The most important UI element ✅ **Quick reference format** - Scannable for users in a hurry ## What's Removed - Extensive explanations about Git worktrees - General Vibe Kanban concepts - Best practices section - Troubleshooting scenarios - Detailed background information - Multiple screenshots and examples ## What's Kept - Essential conflict resolution workflow - Clear action steps - The key screenshot showing the conflict banner - Simple state diagram focused only on conflict states - Immediate next steps This version is perfect for users who encounter their first merge conflict and just need to know "what do I click to fix this?" without all the context and background information. * ✅ Updated [`docs.json`](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/vk-2c23-docs-confl/docs/docs.json) to include the new conflict resolution quick guide in the Core Features navigation. The documentation now has both versions: 1. **Comprehensive guide** - "Resolving Merge Conflicts" with full explanations 2. **Quick reference** - "Conflicts Quick Guide" for experienced users who just need the essentials * Perfect! I've successfully: ✅ **Removed the quick guide** - Deleted the file and updated [`docs.json`](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/vk-2c23-docs-confl/docs/docs.json) ✅ **Simplified the state machine** - Reduced to just three core states: - **Mergeable** (green) - Ready to merge - **Behind** (yellow) - Needs rebase - **Rebase Conflicts** (red) - Conflicts to resolve The new diagram is much cleaner and focuses only on the branch status states that users actually encounter when dealing with merge conflicts. It shows the essential flow: task completes → base advances → rebase needed → conflicts (maybe) → back to mergeable. * ✅ **Removed the state machine entirely** from the documentation. The documentation now flows directly from the introduction to the Git worktrees explanation, making it more streamlined and focused on the practical aspects of resolving merge conflicts. * Perfect! I've completely restructured the documentation to be much more concise and focused: ## Key Changes Made ✅ **Moved rebase image to the top** - Now leads with "When You See 'Rebase Needed'" showing the actual UI ✅ **Simplified flow** - Clear progression: Rebase Needed → Click Rebase → Conflicts (maybe) → Resolution ✅ **Focused on automatic resolution** - Positioned as the "Recommended Approach" with the conflict resolution screenshot prominently displayed ✅ **Removed verbose sections**: - Git worktrees explanations - Complex state diagrams - Conflict types breakdown - Best practices section - Troubleshooting section ✅ **Made it more actionable** - Users see exactly what buttons to click and what happens next ## New Structure 1. **Rebase Needed** - Shows the rebase button image upfront 2. **What Happens** - Simple tabs showing success vs conflicts 3. **Automatic Resolution** - Featured approach with the conflict banner image 4. **Manual Alternative** - Brief alternative for advanced users 5. **Abort Option** - Simple escape hatch The documentation is now much more direct and focused on the essential user journey: see rebase button → click it → handle conflicts (preferably automatically) → done. * Perfect! I've addressed the review comment and made the requested improvements: ## Changes Made ✅ **Updated starting image** - Now shows the "Rebase conflicts" status instead of "Rebase needed" using the new screenshot ✅ **Restructured from conflicts state** - Docs now start after the user has already pressed rebase and encountered conflicts, which is more intuitive ✅ **Simplified automatic resolution section** - Converted the Steps component to a single, more concise paragraph that flows better ✅ **Streamlined flow** - Removed the "What Happens When You Rebase" section since we now start from the conflicts state ## New Structure 1. **When You See "Rebase Conflicts"** - Shows the actual conflict state with the new image 2. **Resolving Conflicts Automatically** - Single paragraph explaining the recommended approach 3. **Manual Resolution (Alternative)** - Brief alternative for advanced users 4. **Aborting a Rebase** - Simple escape hatch The documentation is now even more focused and starts exactly where users are most likely to be when they need help - after they've encountered conflicts and are looking at the conflict resolution banner. * ✅ **Added the conflict banner image** perfectly positioned after "The conflict banner provides three options to resolve the situation:" The documentation now has a clear visual showing exactly what the conflict banner looks like, making it much easier for users to identify the three options (Open in Editor, Insert Resolve-Conflicts Instructions, Abort Rebase) when they encounter the conflict state. This visual reinforcement helps users quickly understand their available actions. * ✅ **Updated the manual resolution section** to accurately reflect both approaches: ## Key Changes Made **Added two distinct options:** - **Single file approach** - Using "Open in Editor" from the conflict banner (requires refreshing and repeating for each file) - **Multiple files approach** - Using "Open in [Your IDE]" from the Actions pane (recommended for multiple conflicts) **Updated the workflow:** - Changed the first step to mention both options with a recommendation for the IDE approach - Updated the git commands to use `git add .` instead of adding individual files, since users would likely be resolving multiple files - Made it clear that the IDE approach is more efficient when dealing with multiple conflicted files This gives users a much clearer understanding of their options and steers them toward the more efficient workflow when they have multiple conflicts to resolve. * ✅ **Updated the automatic resolution text** with the requested changes: ## Changes Made - **Simplified description** - Changed from detailed list of actions to simply "complete the rebase automatically" - **British spelling** - Changed "analyze" to "analyse" - **Removed bold formatting** - Changed "**Send**" to just "Send" The text is now more concise and focuses on the end result rather than the technical details of what the agent does internally. * ✅ **Made "Send" bold again** - Changed back to **Send** to maintain consistency with other UI button references in the documentation. * ✅ **Updated the status description** to accurately reflect what users actually see - the task will show commits ahead (like "3 commits ahead") and the **Merge** button becomes available, rather than referring to a non-existent "Ready to Merge" status. * ✅ **Addressed both review comments:** ## Changes Made 1. **Fixed commits ahead text** - Changed "commits ahead" to "*n* commits ahead" with *n* in italics to show it's a variable number 2. **Converted to ordered list** - Broke down the wall of text into a clear 2-step ordered list: - Step 1: Click the button to generate instructions - Step 2: Review and send to the agent The automatic resolution section is now much more scannable and easier to follow, while the status description is more accurate about what users will actually see. * ✅ **Successfully updated the task-details-full-screen.mdx file** with all requested changes: ## Updates Made ✅ **Added backlink** - Added "Resolving Merge Conflicts" to both the Rebase section and Related Documentation section ✅ **Removed false statements**: - Removed "Some task actions (like "View full diff") automatically switch to full screen mode for better visibility" - Removed "Tab Navigation: Use browser tab controls to switch between Logs, Diffs, and Processes" - Removed "Conflict Handling: Any merge conflicts are displayed in the Diffs tab" ✅ **Added 'n' shortcut** - Added "**n**: Create a new task attempt" to the Keyboard Shortcuts section ✅ **Fixed British spelling** - Changed "Minimize" to "Minimise" in the Exiting Full Screen Mode section ✅ **Enhanced rebase section** - Added a proper reference to the new merge conflicts documentation right in the rebase section where users would need it most The documentation now accurately reflects the actual functionality and provides proper cross-references to help users navigate between related features. * ✅ **Successfully renamed the documentation from "Resolving Merge Conflicts" to "Resolving Rebase Conflicts"** ## Changes Made ✅ **Renamed file** - [`resolving-merge-conflicts.mdx`](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/vk-2c23-docs-confl/docs/core-features/resolving-merge-conflicts.mdx) → [`resolving-rebase-conflicts.mdx`](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/vk-2c23-docs-confl/docs/core-features/resolving-rebase-conflicts.mdx) ✅ **Updated frontmatter** - Changed title and sidebarTitle to "Resolving Rebase Conflicts" ✅ **Updated navigation** - Updated [`docs.json`](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/vk-2c23-docs-confl/docs/docs.json) to reference the new file path ✅ **Updated cross-references** - Updated both references in [`task-details-full-screen.mdx`](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/vk-2c23-docs-confl/docs/core-features/task-details-full-screen.mdx) to point to the renamed page The rename makes the documentation more accurate since these conflicts specifically occur during rebase operations in Vibe Kanban's workflow, not general merge operations. * ✅ **Image cleanup completed!** ## Summary **Images currently used in the documentation:** 1. ✅ `vk-rebase-conflicts-actions-pane.png` - Main image showing "Rebase conflicts" status 2. ✅ `vk-rebase-conflicts-banner.png` - Conflict banner showing three resolution options 3. ✅ `vk-rebase-conflicts-prompt-zoom.png` - Generated instructions in the follow-up field **Removed unused image:** - ❌ `vk-rebase-needed.png` - This was replaced when we restructured to start from the conflicts state instead of the "rebase needed" state All remaining images are actively referenced in the documentation and serve important purposes in explaining the conflict resolution workflow. |
||
|
|
cc66eb96a3 | update mintlify creds (#774) | ||
|
|
75205c065c |
docs: remove all references to /user-guide (vibe-kanban) (#747)
* remove all references to /user-guide (vibe-kanban 6a57d64c) `/user-guide` is no longer a valid folder in docs. Find all references to it and fix them. See the docs/ folder. docs/index.mdx docs/configuration-customisation/global-settings.mdx docs/configuration-customisation/agent-configurations.mdx * remove all references to /user-guide (vibe-kanban 6a57d64c) `/user-guide` is no longer a valid folder in docs. Find all references to it and fix them. See the docs/ folder. docs/index.mdx docs/configuration-customisation/global-settings.mdx docs/configuration-customisation/agent-configurations.mdx |
||
|
|
d443dc63b4 | PostHog analytics has been successfully added to your [docs.json](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/vk-72ce-add-postho/docs/docs.json#L88-L93) with your provided API key and EU endpoint. This will enable analytics tracking on your documentation site and disable the default Mintlify dashboard analytics. (#754) | ||
|
|
09d2710a34 |
Update all documentation (#718)
* add AGENTS/CLAUDE.md file to docs/
* collapse supported coding agents (vibe-kanban 52fd2ae6)
docs/AGENTS.md
docs/docs.json
We have a section in the docs denoted 'Supported Coding Agents' but we don't need a separate sub page for each one, we can combine it into a single page.
* docs multiple dev servers (vibe-kanban 3e3a6195)
"At the moment only one dev server can be running for each project, so if you start one it will kill any that are already running."
This sentence in the docs is no longer true and should be removed
* docs update: reviewing code changes (vibe-kanban e3b5db87)
docs/AGENTS.md
docs/docs.json
Introduce a new page in the user guide that covers code review. After a task has completed, it will enter the 'in review' column. From there, the user can open the task in full screen and press on the 'Diff' tab to see each changed file in split or unified view. We also support attaching a review comment to a line by clicking on the plus icon at the start of the line. You can create several comments across files and even extend the review with general comments in the task chat field before submitting the review. It is turned into a single message for the coding agent to address.
* Document VS Code Extension Features (vibe-kanban e88b4bb9)
Create a comprehensive user guide page documenting the VS Code extension integration. It works with VSCode and forks of VSCode such as Cursor, Windsurf.
The IDE extension embeds the Logs, Diffs. and Processes view for a current task. It also has a text box to create new task attempts. After installing the extension, the easiest way to use it is by starting a task, opening it, in full screen mode, then pressing the 'Open in (VSCode/Cursor/Windsurf)' button. For troubleshooting, if you open your IDE but not in one of the worktrees created by a vibe kanban task, the extension UI will be empty because it won't find the associated task.
VSCode install link: https://marketplace.visualstudio.com/items?itemName=bloop.vibe-kanban
Cursor/Windsurf: https://open-vsx.org/extension/bloop/vibe-kanban
Id: bloop.vibe-kanban, users can search @id:bloop.vibe-kanban in any of the IDEs to find the extension. It's easiest to search the id if using Cursor/Windsurf as deeplinking from open vsx doesn't work.
* remove /docs prefix from internal links
* hackathon docs banner (vibe-kanban ce53b989)
<guide>
# Banner
> Add a banner to display important site-wide announcements and notifications
Use banners to display important announcements, updates, or notifications across your entire documentation site. Banners appear at the top of every page, support Markdown formatting, and can be made dismissible.
To add a banner, use the `banner` property in your `docs.json`:
<CodeGroup>
```json Product announcements wrap
"banner": {
"content": "🚀 Version 2.0 is now live! See our [changelog](/changelog) for details.",
"dismissible": true
}
```
```json Maintenance notices wrap
"banner": {
"content": "⚠️ Scheduled maintenance: API will be unavailable December 15, 2-4 AM UTC",
"dismissible": false
}
```
```json Required actions wrap
"banner": {
"content": "**Action required:** Migrate to our new version by January 1. [Migration guide](/migration)",
"dismissible": true
}
```
</CodeGroup>
## Properties
<ResponseField name="content" type="string" required>
The banner message. Supports plain text and Markdown formatting.
</ResponseField>
<ResponseField name="dismissible" type="boolean">
Whether users can dismiss the banner. When `true`, users can close the banner and it won't reappear for their session. Defaults to `false`.
</ResponseField>
</guide>
We are hosting a hackathon in London on the 20th of September, so create a site-wide banner advertising this.
* update mcp server docs (vibe-kanban 94754ae1)
Update the documentation on the MCP server.
We have an existing page describing how it works, but it needs a bit of clarification because MCP support comes in two forms for us. Firstly, you can configure the MCP servers accessible to the coding agents you use within our product. And secondly, our product itself exposes an MCP server for other MCP clients to connect to, such as Claude Desktop, Raycast, or a coding agent that you're using either within Vive Kanban or outside Vive Kanban.
Our MCP server is a local MCP server as opposed to a remote MCP server and this means you can connect to it through apps that you've installed on your computer but you can't connect to clients that expect a publicly accessible URL.
The vibe-kanban-mcp-server docs page is exclusively focused on the MCP server that we expose but we should clarify this for users. This means we'll need a new page that focuses on the MCP Server configuration page that we have inside the app. And this is the page that lets users choose the MCP servers connected to each of the coding agents supported within Vibe Kanban. We also have a one-click installation feature for popular servers. such as, these are Context7 and Playwright.
# Update Media
Replace the main screenshot with /Users/britannio/Downloads/vk-mcp-server-config.jpeg by copying it into the project. This screenshot is taken from the MCP server's settings page and it's useful to show how we can add the Vibe Kanban MCP server to a coding agent that we're using within Vibe Kanban. We will also use this screenshot on the new page we're creating to show MCP server configuration, just to convey that you can bring your own MCP server or use one of our one-click installation popular servers for your coding agents.
/Users/britannio/Downloads/vk-raycast-mcp-part-2.png /Users/britannio/Downloads/vk-raycast-mcp-part-1.png
These screenshots are screenshots of the macOS Raycast app and they show you how you can configure the MCP server with it. Raycast is a popular MCP client just like Claude Desktop but many others are supported too.
* docs: creating task attempts - mintlify rules (vibe-kanban 2b54caea)
docs/user-guide/creating-task-attempts.mdx
Apply the Mintlify technical writing rules to this page.
* use british english in mintlify technical writing rule
* docs: agent configurations - mintlify rules (vibe-kanban 8e7d82ec)
docs/user-guide/agent-configurations.mdx
Apply the Mintlify technical writing rules to this page
* docs: creating projects (vibe-kanban 95cd181a)
docs/user-guide/creating-projects.mdx
Copy /Users/britannio/Downloads/vk-create-project.jpeg and use it as the screenshot
When the Create Project button is pressed, you have two options, either to create from an existing git repository or to create from a blank project. If you choose the former, then we will search your file system and show you a sorted list of git repositories that we find where the top project is the one that was most recently active.
In project settings, we not only let you control setup scripts, dev server scripts, and cleanup scripts, but we also let you specify a comma separated list of 'copy files'. And these are files like environment variables or other data that isn't tracked by git that you want to be present in the work tree created by every new task. Put this 'Copy Files' section above cleanup scripts.
How the codebase describes copy files: "Comma-separated list of files to copy from the original project directory to the worktree. These files will be copied after the worktree is created but before the setup script runs. Useful for environment-specific files like .env, configuration files, and local settings. Make sure these are gitignored or they could get committed!"
Since this page was created, we've changed the setup flow. So instead of configuring project settings during project creation, it's done afterwards. So once a user has created a project, they need to explicitly press the settings button in the top right to configure these scripts. As a result of this, it would be sensible to move all of the sections on project settings (git, setup scripts, etc) into a heading titled project settings.
From these project settings, you can also configure project task templates and we have more details about this in a subsection of a different page here: /user-guide/creating-task-templates#project-task-templates
* docs: getting started - minitlify (vibe-kanban 37318053)
{
"group": "Getting started",
"pages": ["index", "getting-started", "onboarding", "global-settings"]
},
Apply the Mintlify technical writing rules to these pages.
Additionally:
```
---
title: ""
description: ""
sidebarTitle: ""
---
```
These docs pages should have a title and description by including this block at the very top of the mdx file.
If the `title` attribute is equivalent to the first header, the header is redundant and can be removed.
sidebarTitle is optional and can be used if the main title os too verbose. The sidebar title should typically be two to three words.
* update creating projects text
* docs: creating tasks - mintlify (vibe-kanban a274f135)
docs/user-guide/creating-tasks.mdx
Apply the Mintlify technical writing rules to this page
* docs: creating task templates - mintlify (vibe-kanban 90f075a7)
docs/user-guide/creating-task-templates.mdx
Apply the Mintlify technical writing rules to this page
* update page title
* docs: keyboard shortcuts (vibe-kanban 8f39c2d0)
use the oracle to explore the codebase and learn how this feature works
add a new docs page covering each shortcut of significance (e.g. esc isn't significant)
* docs: task full screen mode (vibe-kanban a7e097dc)
Task details full screen mode: dev server, rebase, merge, subtask, new attempt, logs, diffs, processes.
Create a new docs page for this full scree mode explaining everything that can be done. Link to other docs for depth on each feature where appropriate.
use the oracle to explore the codebase and learn how this feature works
* docs: github features (vibe-kanban 29aa8f79)
add a docs page describing the features enabled by connecting to Github. Determine which screenshots will be needed and use placeholders for them until I give them to you.
use the oracle to explore the codebase and learn how this feature works
* docs: subtasks (vibe-kanban e038c1ad)
create a docs page for the subtask feature. Leave placeholders for screenshots: we need one for the full screen task view where you can see the button, one for viewing a task with subtasks, and one for viewing a subtask in full screen where it shows its parent task.
use the oracle to explore the codebase and learn how this feature works
* update subtask title
* docs: task templates (vibe-kanban 690b1933)
/Users/britannio/Downloads/vk-task-templates.png
/Users/britannio/Downloads/vk-proj-task-templates.png
Use these updated images in docs/user-guide/creating-task-templates.mdx
* docs: creating tasks screenshots (vibe-kanban 20f70e4f)
docs/user-guide/creating-tasks.mdx
/Users/britannio/Downloads/vk-create-task.png /Users/britannio/Downloads/vk-starting-task-attempt.png /Users/britannio/Downloads/vk-task-template.png
use these as the new screenshots
* docs: onboarding (vibe-kanban 631427c5)
docs/getting-started.mdx
docs/onboarding.mdx
In the documentation, we have an installation page and an onboarding page. But the onboarding page is a bit misleading because what actually happens when you set up the project and run the npx command for the first time is it will open the app and you'll see the projects page. There won't be any projects, so you'll have the chance to create your first project and create your first task. And then if you want to connect to GitHub, you have to manually go to settings and connect that. There isn't actually any encouragement for the user to do any of this. So, review those two pages and review the code base to double check that my understanding of the current onboarding flow is correct. And then update the documentation accordingly. We may not need the onboarding page at all if it's not relevant.
* docs: creating tasks (vibe-kanban 0eb62591)
docs/user-guide/creating-tasks.mdx
We should mention that tasks can be created by a coding agent or by an MCP client such as Claude Desktop or Raycast and then linked to the Vibe Kanban MCP server documentation. This isn't the expected use case for creating tasks but it can be useful for creating tasks in bulk based on existing data that you have or migrating tasks from a different system such as Linear, Github Issues
Conform to the mintlify technical writing rules.
* docs: settings (vibe-kanban 579e1663)
docs/global-settings.mdx
Use this screenshot instaed of screenshot-global-settings.png: /Users/britannio/Downloads/vk-settings.png
Don't change anything else.
* update creating tasks docs (vibe-kanban 140820a6)
docs/user-guide/creating-tasks.mdx
"After creating a project, add tasks by clicking the Add Task button in the navigation section of your project kanban page. Creating a task adds it to your kanban board without automatically starting a coding agent."
The button isn't an 'add task' button, it's a plus icon in the top right. You can also use the shortcut `c`.
* docs: creating task attempts (vibe-kanban fb8c5ad4)
docs/user-guide/creating-task-attempts.mdx
Review what is described in this documentation versus how it actually works in the frontend. For example, the previous documentation about the task attempt toolbar actions doesn't appear to hold anymore because the UI has changed. And the buttons in the image that it refers to are now only visible when viewing a task in full screen. And we have documentation on full screen mode. So that's an opportunity to backlink.
* update docs agents.md file
* Review and Harmonise All Documentation (vibe-kanban 7194a113)
Comprehensive review of all documentation pages to ensure:
- Consistent flow and navigation between pages
- Elimination of unnecessary information duplication
- Proper cross-referencing between related topics
- Consistent terminology and style
- Logical information architecture
- Updated navigation and table of contents
- Ensure docs conform to the mintlify technical rules, lean towards making smaller tweaks rather than larger rewrites as the content is already in a good state.
Deliverables:
- Updated navigation structure in docs.json
- Revised cross-references between pages
- Consolidated duplicate information
- Style and terminology consistency report
- Updated index and getting started pages to reflect new content
Location: Review all files in `/docs/` directory
* update image (vibe-kanban d0dcf34d)
docs/user-guide/creating-projects.mdx
/Users/britannio/Downloads/vk-create-proj.png
This is the new screenshot to use for the creating projects documentation. Just copy it and delete the old one.
* docs: delete unused images (vibe-kanban b8fdd325)
Find all unused images in the docs folder and remove them.
* remove review report
* move docs around (vibe-kanban 5ca2e108)
In the docs folder, we have a single subfolder called User Guide. But if you read docs.json, you'll see we now have four different sections of the documentation. I think the first section, being Getting Started, doesn't need its own folder, so the docs inside it can remain top level. But for all of the other sections, they should have their own folder named appropriately.
* update mintlify docs
* rename settings
* bring back ccr images (vibe-kanban 82c0f5d7)
Commit
|
||
|
|
1db2e0113e | Document CCR setup & usage (#691) | ||
|
|
3db315931b | introduce docs by powered by Mintlify (#679) |