Commit Graph

230 Commits

Author SHA1 Message Date
Louis Knight-Webb
613caf91d6 Perfect! The amp version has been successfully updated from 0.0.1758615753-ge2e2fb to 0.0.1759507289-g3e67fa in [crates/executors/src/executors/amp.rs](file:///private/var/folders/m1/9q_ct1913z10v6wbnv54j25r0000gn/T/vibe-kanban/worktrees/af80-bump-amp-version/crates/executors/src/executors/amp.rs#L36). This was the only file containing the amp version reference. (#929) 2025-10-03 18:52:30 +01:00
Gabriel Gordon-Hall
d6da689594 feat: MCP upgades (#904)
* wip: connect to api from mcp

* fix routes

* add start task mcp tool

* review comments
2025-10-03 16:00:15 +01:00
Solomon
a43fa76079 Copilot CLI (#915) 2025-10-03 13:12:53 +01:00
GitHub Action
86f7c00d94 chore: bump version to 0.0.102 2025-10-03 08:49:53 +00:00
Solomon
0f835e9730 fix Gemini on windows (#912) 2025-10-02 18:09:19 +01:00
JonnyDB
eaf24bcb2a fix claude code rotuer version (#911)
2.0.49 is in not valid. 1.0.49 is. this is likely a minor typo
2025-10-02 09:39:17 +01:00
GitHub Action
d8fc7a985d chore: bump version to 0.0.101 2025-10-01 17:18:37 +00:00
Alex Netsch
0e431705d0 Fix clear text watchkill phrase (#907) 2025-10-01 17:44:52 +01:00
Solomon
7217ab535b claude: Fork session on resume to enable retry (#899) 2025-10-01 15:13:48 +01:00
Britannio Jarrett
b77abac0c3 Use new sonnet models for the cursor agent profiles (#897)
* Updated cursor model from `sonnet-4` to `sonnet-4.5` in [`default_profiles.json`](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/a67d-update-cursor-ag/crates/executors/default_profiles.json#L92-L97), updated available models in [`cursor.json`](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/a67d-update-cursor-ag/shared/schemas/cursor.json#L22) schema, and [`cursor.rs`](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/a67d-update-cursor-ag/crates/executors/src/executors/cursor.rs#L39) documentation.

* Added `SONNET_4_5_THINKING` profile to [`default_profiles.json`](file:///private/var/folders/5q/5vgq75y92dz0k7n62z93299r0000gn/T/vibe-kanban/worktrees/a67d-update-cursor-ag/crates/executors/default_profiles.json#L98-L103) for the `sonnet-4.5-thinking` model.
2025-10-01 09:15:16 +01:00
Gabriel Gordon-Hall
ce3c886ac9 bump claude code to 2.0.1 (#896) 2025-09-30 19:18:59 +01:00
GitHub Action
58badf2653 chore: bump version to 0.0.99 2025-09-30 10:44:02 +00:00
Gabriel Gordon-Hall
4177a54d91 feat: default codex permissions (#886)
* add codex option

* update default codex configurations

* fix ci
2025-09-30 09:40:20 +01:00
GitHub Action
b8e756aa8d chore: bump version to 0.0.98 2025-09-29 14:06:50 +00:00
GitHub Action
f11975ce33 chore: bump version to 0.0.97 2025-09-26 10:12:18 +00:00
Solomon
1c23d4fd11 use Gemini-CLI --experimental-acp (#784) 2025-09-25 19:36:08 +01:00
Louis Knight-Webb
fde7ae3efe Parse amp errors (vibe-kanban) (#852)
* ##  Implementation Complete!

I've successfully implemented the amp error parsing functionality. Here's a summary of what was accomplished:

### **Changes Made:**

1. **Extended ClaudeJson::Result** with amp-specific fields:
   - Added `error`, `num_turns`, `session_id` fields with proper serde aliases
   - Used `#[serde(default)]` for backward compatibility

2. **Updated normalize_entries method** to handle amp errors:
   - Only processes Result messages for `HistoryStrategy::AmpResume`
   - Detects errors through multiple criteria: `is_error`, subtype containing "error", error field presence, or result field containing error/message
   - Creates user-friendly ErrorMessage entries with timing and turn information
   - Preserves existing behavior for Claude Code (Default strategy)

3. **Updated extract_session_id** to handle Result messages:
   - Now extracts session_id from Result messages when present

4. **Added comprehensive tests**:
   - `test_amp_result_error_is_surfaced` - Tests the original error case from your example
   - `test_amp_result_error_with_subtype_only` - Tests subtype-only error detection
   - `test_amp_result_error_from_result_field` - Tests error extraction from result field
   - `test_amp_result_success_still_ignored` - Ensures success results remain ignored
   - `test_amp_result_session_id_extraction` - Tests session ID extraction
   - `test_claude_result_still_ignored_for_default_strategy` - Ensures Claude Code behavior unchanged

### **Example Output:**
When amp emits the error JSON you provided:
```json
{"type":"result","subtype":"error_during_execution","duration_ms":456090,"is_error":true,"num_turns":24,"error":"terminated","session_id":"T-efa72d99-3436-467b-a2d2-872546ad6f3c"}
```

It will now appear in the UI as:
> **AMP error (error_during_execution) after 24 turns / 456.1s: terminated**

The execution will correctly show as failed instead of "ended normally", and users will get clear information about what went wrong, how long it took, and how many turns were attempted.

* Cleanup script changes for task attempt daa967fc-b0a1-4c02-966f-ca3435e20a56

* Perfect!

##  Simplified Implementation Complete!

I've successfully simplified the error output as requested. Here's what changed:

### **Key Changes Made:**
1. **Simplified error content** - Now uses `serde_json::to_string(claude_json)` to JSON stringify the entire error object
2. **Removed complex formatting** - No more "AMP error (subtype) after X turns / Y.Ys: message" formatting
3. **Updated tests** - All test assertions now check for the raw JSON fields instead of formatted text
4. **Clean compilation** - Fixed unused variable warnings

### **Example Output:**
When amp emits the error JSON you provided:
```json
{"type":"result","subtype":"error_during_execution","duration_ms":456090,"is_error":true,"num_turns":24,"error":"terminated","session_id":"T-efa72d99-3436-467b-a2d2-872546ad6f3c"}
```

The UI will now show this exact JSON string as the error content, making it simple and giving users direct access to all the error information without interpretation.

### **Benefits:**
-  Simpler, cleaner output
-  No loss of information - all fields are preserved in the JSON
-  Maintains backward compatibility with Claude Code
-  All tests passing
-  Clean compilation with no warnings

The execution will still correctly show as failed instead of "ended normally", and the raw JSON error provides all the context users need to understand what went wrong.

* Cleanup script changes for task attempt daa967fc-b0a1-4c02-966f-ca3435e20a56

* Perfect!

##  Changes Complete!

I've made the requested modifications:

### **Changes Made:**

1. **Changed "AMP error" to "error"** in the fallback case:
   ```rust
   content: serde_json::to_string(claude_json)
       .unwrap_or_else(|_| "error".to_string()),
   ```

2. **Removed all amp result tests** that I added earlier:
   - `test_amp_result_error_is_surfaced`
   - `test_amp_result_error_with_subtype_only`
   - `test_amp_result_error_from_result_field`
   - `test_amp_result_success_still_ignored`
   - `test_amp_result_session_id_extraction`
   - `test_claude_result_still_ignored_for_default_strategy`

### **Final Implementation:**

The core functionality remains: when amp emits error result JSON logs like:
```json
{"type":"result","subtype":"error_during_execution","duration_ms":456090,"is_error":true,"num_turns":24,"error":"terminated","session_id":"T-efa72d99-3436-467b-a2d2-872546ad6f3c"}
```

This exact JSON string will be shown as the error content in the UI, and the execution will correctly be marked as failed instead of "ended normally".

The implementation is now minimal and clean, with only the original `test_result_message_ignored` test remaining to ensure Claude Code compatibility is preserved.

* Excellent!

##  Simplified Error Detection Complete!

I've updated the error detection logic to only trigger when `is_error: true`, making it much simpler and more explicit.

### **Changes Made:**

1. **Simplified error detection** - Now only checks `is_error.unwrap_or(false)`
2. **Removed complex error detection logic** that previously checked:
   - Subtype containing "error"
   - Error field presence/non-empty
   - Result field containing error/message objects
3. **Cleaned up unused variables** - Marked unused fields with `_`

### **Final Behavior:**

The implementation now only creates an ErrorMessage entry when:
- `HistoryStrategy::AmpResume` is used (amp execution)
- `is_error: true` in the JSON result

When your original error case occurs:
```json
{"type":"result","subtype":"error_during_execution","duration_ms":456090,"is_error":true,"num_turns":24,"error":"terminated","session_id":"T-efa72d99-3436-467b-a2d2-872546ad6f3c"}
```

This will be displayed as the raw JSON content since `is_error: true`, and the execution will be marked as failed.

The logic is now clean, explicit, and relies solely on amp's `is_error` flag to determine when to surface errors in the UI.
2025-09-25 17:55:34 +01:00
GitHub Action
82b7288e23 chore: bump version to 0.0.96 2025-09-25 08:08:33 +00:00
Louis Knight-Webb
018006c728 Claude code + API_KEY should be a red error message, too easy to miss (vibe-kanban) (#834)
* **Update**
- Escalated the unmanaged Claude key notice to an error so it now renders with the red error styling in the log stream (`crates/executors/src/executors/claude.rs:747`).
- Reworded the message to explicitly call out “Claude Code + ANTHROPIC_API_KEY…” and synced the unit test assertions with the new entry type and copy (`crates/executors/src/executors/claude.rs:1961`).

**Verification**
- `cargo test -p executors`

Next: 1) Give the UI a quick manual check to confirm the error card stands out as intended.

* Red warning copy now states that Anthropic pay-as-you-go billing is used instead of the user’s Claude subscription, while keeping the error styling (`crates/executors/src/executors/claude.rs:747`). Updated the corresponding unit test expectation to match the new text (`crates/executors/src/executors/claude.rs:1961`). Tests: `cargo test -p executors`. Suggested next step: manually confirm the UI wording reads clearly where it renders.
2025-09-24 11:41:16 +01:00
GitHub Action
b797a9549c chore: bump version to 0.0.95 2025-09-24 09:20:14 +00:00
Gabriel Gordon-Hall
e773e418bd fix windows import compile error (#832) 2025-09-24 10:17:17 +01:00
Alex Netsch
7a2473e9be Fix missing vk mcp icon (#818) 2025-09-23 13:33:56 +01:00
Gabriel Gordon-Hall
794e2304a8 pin agents (#815) 2025-09-23 12:39:04 +01:00
Alex Netsch
40615190cd Check npm run generate-types in CI (vibe-kanban) (#807)
* Perfect! The implementation is now complete and working correctly.

 **Successfully implemented the requested feature**

The CI check for `npm run generate-types` now validates **all** generated files, not just `shared/types.ts`.

1. **Enhanced `crates/server/src/bin/generate_types.rs`**:
   - Added `generate_schema_content<T>()` helper function to generate schema content in-memory
   - Added `check_schemas()` function that validates all 7 JSON schema files
   - Updated the `--check` mode to validate both TypeScript types AND schema files

2. **Comprehensive validation**:
   - Checks `shared/types.ts` (existing functionality)
   - Checks all schema files: `amp.json`, `claude_code.json`, `codex.json`, `cursor.json`, `gemini.json`, `opencode.json`, `qwen_code.json`

3. **Clear error reporting**:
   - Shows exactly which files are outdated
   - Provides actionable error message: "Please run 'npm run generate-types' and commit the changes."

-  Passes when all files are up to date
-  Fails with exit code 1 when any file (types or schemas) is outdated
-  CI integration already in place (`.github/workflows/test.yml:66`)

The CI will now catch any case where developers modify Rust types that affect either TypeScript generation or JSON schema generation without running `npm run generate-types` and committing all resulting changes.

 **Successfully restored the lost cursor schema descriptions!**

1. **Added proper schemars attributes** to `crates/executors/src/executors/cursor.rs`:
   - `force` field: `#[schemars(description = "Force allow commands unless explicitly denied")]`
   - `model` field: `#[schemars(description = "auto, sonnet-4, gpt-5, opus-4.1, grok")]`

2. **Regenerated schema files** using `npm run generate-types`

3. **Verified the fix** - `shared/schemas/cursor.json` now contains the proper descriptions:
   - Line 15: `"description": "Force allow commands unless explicitly denied"`
   - Line 22: `"description": "auto, sonnet-4, gpt-5, opus-4.1, grok"`

- **Source-controlled**: Descriptions are now defined in Rust source code instead of auto-generated files
- **Future-proof**: Future schema regenerations will automatically include these descriptions
- **Proper architecture**: Follows the intended pattern of defining schema metadata in the source code
- **CI compatible**: The enhanced CI check will ensure these descriptions are preserved

The schema descriptions that were accidentally lost in the last commit have been properly restored to the correct location in the source code.

* clippy

* remove macro

* Surface error, remove unneede vec!
2025-09-23 09:15:16 +01:00
Gabriel Gordon-Hall
798bcb80a3 feat: manual approvals (#748)
* manual user approvals

* refactor implementation

* cleanup

* fix lint errors

* i18n

* remove isLastEntry frontend check

* address fe feedback

* always run claude plan with approvals

* add watchkill script back to plan mode

* update timeout

* tooltip hover

* use response type

* put back watchkill append hack
2025-09-22 16:02:42 +01:00
Britannio Jarrett
eaff3dee9e add a cursor profile for each model (#803)
* add a cursor profile for each model

* update cursor schema parameter descriptions

* Update crates/executors/default_profiles.json

Co-authored-by: Solomon <abcpro11051@disroot.org>

* Update crates/executors/default_profiles.json

Co-authored-by: Solomon <abcpro11051@disroot.org>

---------

Co-authored-by: Solomon <abcpro11051@disroot.org>
2025-09-22 14:32:05 +01:00
GitHub Action
77cb1b8ad0 chore: bump version to 0.0.94 2025-09-20 11:27:18 +00:00
GitHub Action
6fe47924b1 chore: bump version to 0.0.93 2025-09-18 22:12:32 +00:00
Louis Knight-Webb
510a7cb042 pin codex (#780) 2025-09-18 23:11:33 +01:00
GitHub Action
0c10e42f64 chore: bump version to 0.0.92 2025-09-18 15:03:24 +00:00
Solomon
9810de7d00 Codex: remove ask-for-approval flag (#771) 2025-09-18 15:17:02 +01:00
GitHub Action
73bc23968d chore: bump version to 0.0.91 2025-09-18 08:15:05 +00:00
Solomon
023e52e555 fix: codex session forking regression (#767)
fix OS issue `Failed to create forked rollout ... File name too long (os error 36)`
2025-09-17 19:15:13 +01:00
Solomon
2b69cbe447 Disable Edit & Retry feature for agents that don't implement session forking (#750) 2025-09-17 11:34:41 +01:00
Solomon
5f37bc258f Update codex to the latest (#724) 2025-09-17 10:03:25 +01:00
Britannio Jarrett
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 introduced claude code router images and setup instructions. Bring it back inside docs/supported-coding-agents.mdx including the images.

* docs deadlink (vibe-kanban b033ffaa)

core-features/task-details-full-screen#subtasks the subtasks link in this section is incorrect. Fix it and fix all other broken docs links.
2025-09-16 21:46:57 +01:00
GitHub Action
3b73ab13c2 chore: bump version to 0.0.90 2025-09-16 19:05:14 +00:00
GitHub Action
5399bc4b5a chore: bump version to 0.0.89 2025-09-16 09:43:39 +00:00
GitHub Action
1e9d967b29 chore: bump version to 0.0.88 2025-09-16 09:03:02 +00:00
Solomon
d79a61f3df Codex: Add gpt-5 variants for API users (#727) 2025-09-15 21:48:40 +01:00
GitHub Action
f959882afc chore: bump version to 0.0.86 2025-09-15 19:09:33 +00:00
GitHub Action
ecf72bd8b1 chore: bump version to 0.0.85 2025-09-15 17:48:13 +00:00
Louis Knight-Webb
1b61b9fd74 gpt-5-codex default model (#725) 2025-09-15 18:47:12 +01:00
Louis Knight-Webb
c6407c64ac Print warning if not using anthropic subscription (#713)
* ##  Implementation Complete!

I've successfully implemented the warning system for Claude Code when `apiKeySource` is not "/login managed key". Here's what was implemented:

### **Changes Made:**

1. **Added `api_key_source` field to `ClaudeJson::System`**
   - Added `#[serde(default, rename = "apiKeySource")] api_key_source: Option<String>` field
   - Backward-compatible with existing JSON parsing

2. **Created warning helper function**
   - `warn_if_unmanaged_key()` function that generates warning entries when API key source is not managed
   - Includes both UI warning and server-side `tracing::warn!()` logging

3. **Modified system message processing**
   - Updated `normalize_entries()` to check API key source and emit warnings immediately
   - Warning appears for any `apiKeySource` value except "/login managed key" and `None`

4. **Added comprehensive test coverage**
   - Test for warning generation with unmanaged keys
   - Test for no warning with managed keys
   - Test for no warning when field is missing
   - All existing tests pass

### **Warning Message:**
```
⚠️  Using apiKeySource "ANTHROPIC_API_KEY" – calls will be billed to that key. Run `claude-code login` (or set `/login managed key`) if you want to route usage through the managed key.
```

### **Key Features:**
- **Immediate visibility**: Warning shows up immediately in the UI as a normalized system message
- **Server-side logging**: Also logs to server with `tracing::warn!()`
- **Backward compatible**: No breaking changes, works with existing implementations
- **Comprehensive**: Handles all cases (managed, unmanaged, missing field)
- **Actionable**: Provides clear guidance on how to fix the issue

The implementation is ready for production use!

* Cleanup script changes for task attempt 4345b766-b8ed-4949-aefb-32e20e891a01

* ##  Review Feedback Addressed!

I've successfully updated the implementation based on your review comments:

### **Changes Made:**

1. **Updated warning logic (Line 621)**
   - Changed from checking "not `/login managed key`" to specifically checking for `"ANTHROPIC_API_KEY"`
   - Now only warns when `apiKeySource` equals exactly `"ANTHROPIC_API_KEY"`
   - All other values (including `/login managed key`, missing field, or other keys) do not trigger warnings

2. **Updated warning message (Line 631)**
   - Changed from the generic billing warning to the specific message:
   - **New message:** `"ANTHROPIC_API_KEY env variable detected, your Anthropic subscription is not being used"`

3. **Updated tests to reflect new behavior**
   - Tests now verify warning only appears for `"ANTHROPIC_API_KEY"`
   - Tests confirm no warning for managed keys, other keys, or missing field
   - Validates exact warning message content

### **Final Behavior:**
-  **Warning shown**: When `apiKeySource` = `"ANTHROPIC_API_KEY"`
-  **No warning**: When `apiKeySource` = `"/login managed key"`
-  **No warning**: When `apiKeySource` = any other value
-  **No warning**: When `apiKeySource` field is missing

The implementation now specifically targets the `ANTHROPIC_API_KEY` environment variable scenario and provides a clear, focused warning message about Anthropic subscription usage.

* Cleanup script changes for task attempt 4345b766-b8ed-4949-aefb-32e20e891a01

* ##  Warning Triangle Added!

I've successfully added the warning triangle (⚠️) to the warning message as requested.

### **Final Warning Message:**
```
⚠️ ANTHROPIC_API_KEY env variable detected, your Anthropic subscription is not being used
```

### **Changes Made:**
- **Line 628**: Added `⚠️` to the warning message content
- **Updated test**: Modified the test assertion to expect the warning triangle in the message

The warning now has a clear visual indicator (⚠️) that makes it more noticeable to users when the `ANTHROPIC_API_KEY` environment variable is being used instead of their Anthropic subscription through Claude Code.

The implementation is complete and ready for production use!
2025-09-15 13:07:32 +01:00
GitHub Action
a3b705d559 chore: bump version to 0.0.84 2025-09-15 11:54:30 +00:00
Solomon
d31cca537a Temporarily revert "Update codex to the latest (#700)" (#702)
This reverts commit 248728e756.
2025-09-12 19:10:12 +01:00
Solomon
248728e756 Update codex to the latest (#700) 2025-09-12 18:17:59 +01:00
GitHub Action
90229e84fc chore: bump version to 0.0.83 2025-09-12 17:12:15 +00:00
Louis Knight-Webb
15dddacfe2 Improve performance of conversation (#692)
* Stream endpoint for execution processes (vibe-kanban c5144da6)

I want an endpoint that's similar to task stream in crates/server/src/routes/tasks.rs but contains execution processes.

The structure of the document should be:

```json
{
    "execution_processes": {
        [EXECUTION_PROCESS_ID]: {
            ... execution process fields
        }
    }
}
```

The endpoint should be at `/api/execution_processes/stream?task_attempt_id=...`

crates/server/src/routes/execution_processes.rs

* add virtualizedlist component

* WIP remove execution processes

* rebase syntax fix

* tmp fix lint

* lint

* VirtuosoMessageList

* cache

* event based hook

* historic

* handle failed historic

* running processes

* user message

* loading

* cleanup

* render user message

* style

* fmt

* better indication for setup/cleanup scripts

* fix ref issue

* virtuoso license

* fmt

* update loader

* loading

* fmt

* loading improvements

* copy as markdown styles

* spacing improvement

* flush all historic at once

* padding fix

* markdown copy sticky

* make user message editable

* edit message

* reset

* cleanup

* hook order

* remove dead code
2025-09-12 18:09:14 +01:00
Gabriel Gordon-Hall
a086f82dfa feat: support Codex --full-auto mode (#664)
* make codex --full-auto mode default

* change codex high to auto mode
2025-09-11 16:40:01 +01:00