All notable changes to the "beans-vscode" extension will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- chore(deps)(deps-dev): bump vite from 8.0.5 to 8.0.6 by @dependabot[bot] in #131
- fix(webview): escape raw HTML paths and harden webview sanitization by @selfagency in #141
Full Changelog: https://github.com/selfagency/beans-vscode/compare/v1.7.1...v1.7.2
Source: changes from v1.7.1 to v1.7.2.
- fix: eliminate CPU spike from repeated ripgrep config searches by @selfagency in #130
Full Changelog: https://github.com/selfagency/beans-vscode/compare/v1.7.0...v1.7.1
Source: changes from v1.7.0 to v1.7.1.
- feat(mcp): align extension with revised beans-mcp surface by @selfagency in #128
- perf: cache beans sidebar loading by @selfagency in #129
Full Changelog: https://github.com/selfagency/beans-vscode/compare/v1.6.0...v1.7.0
Source: changes from v1.6.0 to v1.7.0.
- chore(deps)(deps-dev): bump esbuild from 0.27.3 to 0.27.4 by @dependabot[bot] in #110
- chore(ci)(deps): bump dorny/paths-filter from 3 to 4 by @dependabot[bot] in #111
- chore(deps)(deps-dev): bump the dev-dependencies group with 5 updates by @dependabot[bot] in #112
- chore(deps)(deps-dev): bump marked from 15.0.12 to 17.0.4 by @dependabot[bot] in #114
- fix: lower engine floor to 1.105.0 for Cursor IDE compatibility by @SamLeatherdale in #117
- fix: escape raw HTML tags in bean body via marked walkTokens by @SamLeatherdale in #118
- fix: resolve Windows MCP provider registration failure by @selfagency in #126
- chore(deps): bump vite and CI action dependencies by @selfagency in #127
- @SamLeatherdale made their first contribution in #117
Full Changelog: https://github.com/selfagency/beans-vscode/compare/v1.5.0...v1.6.0
Source: changes from v1.5.0 to v1.6.0.
- chore(ci)(deps): bump docker/login-action from 3 to 4 by @dependabot[bot] in #107
- chore(ci)(deps): bump actions/upload-artifact from 6 to 7 by @dependabot[bot] in #106
- test(docs): parity regression guards and MCP naming alignment by @selfagency in #108
Full Changelog: https://github.com/selfagency/beans-vscode/compare/v1.4.3...v1.5.0
Source: changes from v1.4.3 to v1.5.0.
- Improved CLI install-method detection on symlinked binaries (for example Homebrew shims in
/usr/local/binand/opt/homebrew/bin) by resolving real paths before classification. - Prevented repeated CLI upgrade prompts for the same installed/latest version pair when users choose View installation instructions.
- Corrected a typo in generated Beans skill schema examples (
"body:auth"search example).
- chore: update mcp server by @selfagency in #103
- feat: Add logging of MCP package version and workspace resolution in BeansMcpServer by @selfagency in #104
- chore(release): update version and changelog for v1.4.2 by @selfagency in #105
Full Changelog: https://github.com/selfagency/beans-vscode/compare/v1.4.2...v1.4.3
Source: changes from v1.4.2 to v1.4.3.
- refactor(mcp): use @selfagency/beans-mcp package in extension by @selfagency in #102
Full Changelog: https://github.com/selfagency/beans-vscode/compare/v1.4.1...v1.4.2
Source: changes from v1.4.1 to v1.4.2.
- fix: handle MCP notification dismissal gracefully and remove copilot reinitialization double-prompt by @selfagency in #101
Full Changelog: https://github.com/selfagency/beans-vscode/compare/v1.4.0...v1.4.1
Source: changes from v1.4.0 to v1.4.1.
- fix(zreb): pass --json to beans init to enable JSON parsing by @selfagency in #72
- chore(ci)(deps): bump actions/upload-artifact from 4 to 6 by @dependabot[bot] in #69
- chore(ci)(deps): bump actions/setup-go from 5 to 6 by @dependabot[bot] in #70
- chore(ci)(deps): bump actions/github-script from 7 to 8 by @dependabot[bot] in #71
- fix(o8ml): prevent invalid parent type drops and clean up CLI error messages by @selfagency in #73
- feat(p7rq): Reinitialize Copilot Instructions & Skills command by @selfagency in #74
- fix(iu27): remove redundant Cancel button from delete confirmation dialogs by @selfagency in #75
- feat(emh8): viewBean loads bean into details panel instead of preview document by @selfagency in #76
- feat(zzcl): add Copilot Start Work to tree and search panel context menus by @selfagency in #77
- fix(30em): resolve conflict between enableOnlyIfInitialized and init prompt by @selfagency in #78
- refactor(mcp): consolidate MCP tools — reduce MCP public surface by @selfagency in #79
- fix(k2bx): prompt to reinitialize Copilot instructions & skill after extension update by @selfagency in #80
- fix: BeansOutput singleton not cleared on deactivate (beans-vscode-i4iz) by @selfagency in #81
- fix: simplify escapeHtml — remove dead-object pattern (beans-vscode-42zk) by @selfagency in #83
- fix: Dispose BeansTreeDataProvider EventEmitter to prevent memory leak (beans-vscode-gamf) by @selfagency in #82
- fix: validate webview message payload before passing to service (beans-vscode-n2u0) by @selfagency in #84
- fix: quarantine notifcation failure (beans-vscode-af9s) by @selfagency in #85
- perf: cache BeansConfigManager as instance field (beans-vscode-ryj0) by @selfagency in #86
- fix(t1qv): add depth limit to isDescendantOf to avoid infinite loops on corrupt cycles by @selfagency in #87
- fix(67hz): render markdown with marked; preserve lists, sanitize links, checklist handling by @selfagency in #89
- fix(cxwb): add configurable periodic pane refresh (beans.view.refreshIntervalMs) and scheduling by @selfagency in #88
- fix(wwj3): replace external shields.io badge requests with local inline badges by @selfagency in #90
- refactor(n5pl): eliminate unjustified any types; add GraphQLError (6tt3) by @selfagency in #91
- chore(beans): enforce branch + bean usage for agents in copilot templates by @selfagency in #92
- refactor: remove duplicate sort/filter logic between BeansMcpServer and queryHelpers (beans-vscode-9xdb) by @selfagency in #93
- chore: preserve and document unused BeansSearchViewProvider (beans-vscode-l7wv) by @selfagency in #94
- chore: remove redundant marked declaration (types included in package) by @selfagency in #95
- fix(beans-vscode-pk4r): fix delete parent/children dialog UX and recursive deletion by @selfagency in #96
- docs: update stale test comment in too-many-mcp-commands.test.ts (beans-vscode-z45w) by @selfagency in #97
- test: reset BeansOutput singleton between tests (beans-vscode-jml4) by @selfagency in #98
- feat: cross-pane drag-to-change-status (beans-vscode-0b3q) by @selfagency in #99
- task: improve test coverage by @selfagency in #100
Full Changelog: https://github.com/selfagency/beans-vscode/compare/v1.3.4...v1.4.0
Source: changes from v1.3.4 to v1.4.0.
Full Changelog: https://github.com/selfagency/beans-vscode/compare/v1.3.3...v1.3.4
Source: changes from v1.3.3 to v1.3.4.
- Add VitePress documentation site (beans-vscode-bmx0) by @selfagency in #68
Full Changelog: https://github.com/selfagency/beans-vscode/compare/v1.3.2...v1.3.3
Source: changes from v1.3.2 to v1.3.3.
- Fix/ebyy quote yaml titles containing colons by @selfagency in #67
- fix: update sidebar pane counts even when panes are collapsed by @selfagency in #66
Full Changelog: https://github.com/selfagency/beans-vscode/compare/v1.3.1...v1.3.2
Source: changes from v1.3.1 to v1.3.2.
- docs/update documentation for v1.3 by @selfagency in #64
Full Changelog: https://github.com/selfagency/beans-vscode/compare/v1.3.0...v1.3.1
Source: changes from v1.3.0 to v1.3.1.
- Feature/beans-vscode-jy1e-malformed-warning-icon by @selfagency in #49
- docs(readme): normalize badge labels — Version capitalization, CI→Tests, Remote Compatibility→Remote Tests (an5a) by @selfagency in #50
- fix: priority icons, quarantine orphaning, tree resilience by @selfagency in #51
- docs(z9nx): add branch start/resume naming guidance by @selfagency in #53
- fix: remove template header explanation comments and use frontmatter by @selfagency in #54
- feat: add diagnostics debug mode for CLI and GraphQL logging by @selfagency in #55
- feat(mcp): notify when Beans MCP server starts (disable setting) by @selfagency in #56
- feat: show toggleable side-panel header counts by @selfagency in #57
- feat(init): offer OS-specific Beans CLI install flow by @selfagency in #58
- chore(beans): start beans-vscode-n1ko for command palette select standardization by @selfagency in #59
- feat(help): add settings gear title action (beans-vscode-ia9x) by @selfagency in #60
- feat(tree): restore scrapped pane ordering (beans-vscode-saan) by @selfagency in #61
- feat: interactive checklists in details view by @selfagency in #62
Full Changelog: https://github.com/selfagency/beans-vscode/compare/v1.2.1...v1.3.0
Source: changes from v1.2.1 to v1.3.0.
- Fix malformed bean handling and silence noisy execution logs by @selfagency in #48
Full Changelog: https://github.com/selfagency/beans-vscode/compare/v1.2.0...v1.2.1
Source: changes from v1.2.0 to v1.2.1.
- docs: add CONTRIBUTING and module headers; README developer onboarding by @selfagency in #41
- docs: developer docs & onboarding — TDD, branch naming, Beans workflow by @selfagency in #42
- feat: harden MCP server security following OWASP MCP Top 10 guidelines by @selfagency in #43
- feat: recursive status propagation to children (beans-vscode-lpcb) by @selfagency in #44
- feat: migrate to beans graphql api by @selfagency in #45
- Fix init/AI prompts and default view ordering by @selfagency in #46
- Fix remote-test Go version and release changelog race warning by @selfagency in #47
Full Changelog: https://github.com/selfagency/beans-vscode/compare/v1.1.1...v1.2.0
Source: changes from v1.1.1 to v1.2.0.
- fix: resolve codicon icons and font not loading in details/search webviews by @selfagency in #30
- fix: explicitly pass github-token to github-script + docs: MCP/command priority by @selfagency in #33
- feat: improve Copilot instructions and skills generation by @selfagency in #32
- fix(release): trigger missing CI workflows instead of blocking by @selfagency in #36
- fix: remove unneeded defensive code flagged by CodeQL by @selfagency in #37
- fix(release): guard against dispatch race condition and improve error handling by @selfagency in #38
- feat(release): poll CI and Remote Compatibility Tests in parallel by @selfagency in #39
- feat(ci): cache dependencies; fix release gating for workflow-only merges by @selfagency in #40
Full Changelog: https://github.com/selfagency/beans-vscode/compare/v1.1.0...v1.1.1
Source: changes from v1.1.0 to v1.1.1.
- feat: native search tree, details back nav, and pane layout updates by @selfagency in #28
- fix: handle resolveReviewThread permission errors gracefully by @selfagency in #29
Full Changelog: https://github.com/selfagency/beans-vscode/compare/v1.0.5...v1.1.0
Source: changes from v1.0.5 to v1.1.0.
- Renamed generated Copilot instructions artifact path from
.github/instructions/beans.instructions.mdto.github/instructions/tasks.instructions.mdacross init flows, code references, and tests.
Full Changelog: https://github.com/selfagency/beans-vscode/compare/v1.0.5...v1.0.6
Source: changes from v1.0.5 to v1.0.6.
- Added a
Create Beantitle action button to the Draft pane in the Beans sidebar. - Added a
Copilot: Start Work on Beantitle action button in the Details pane for the selected bean. - Added auto-linking for issue-id references in Details markdown content so referenced beans open directly in the Details pane.
- Added contextual Details back navigation that appears only after following an internal issue reference.
- Various bug fixes and test updates from branch
fixes/worktree-20260217. - Stabilized a flaky tree sorting test (
should sort by updated timestamp) for slower CI environments by using deterministic UTC dates and explicit per-test timeout headroom. - Restored the Details pane title icon rendering by switching from codicon-font dependency to resilient inline icons.
- Fixed CI pnpm cache setup failures by adding the required
packagesfield topnpm-workspace.yaml. - Fixed TypeScript compile errors in
BeansCommandsby aligning Copilot command attempt typing with VS CodeThenablereturn types. - Fixed PR conversation cleanup workflow to resolve unresolved review threads on all closed PRs instead of only Copilot-authored PRs.
- Minor improvements to tree/workspace handling and developer tooling; see commit for details.
- Updated initial Beans sidebar layout defaults so
SearchandDraftstart collapsed, giving more room toActiveandDetailson first launch. - CI workflow optimized for cost/performance by enabling pnpm caching and consolidating Linux-only lint/typecheck into the matrix test job.
- Remote compatibility workflow optimized with a representative matrix (
include), explicit job timeouts, and on-demand execution of the heavy VS Code integration packaging check. - Issue-to-bean workflow hardened by using Go-based Beans CLI installation (without
sudo) and argument-array process execution in script automation. - Routine repository housekeeping updates for issue-tracking workflow maintenance.
- Restored missing search-bar icons (magnifying glass and filter) in the Search webview.
- Improved icon rendering resilience by replacing codicon font dependency in the search bar with inline SVG icons.
- Updated search/filter icon visual treatment for better contrast and consistency:
- neutral gray by default,
- lighter gray in dark themes,
- outline/empty filter icon style.
- Prevented initialization/create-instructions popups from blocking Beans sidebar activation by moving AI artifact prompt+generation to a non-blocking async path.
- Added integration regression coverage to ensure activation completes even if the Copilot artifact prompt is left unanswered.
- Hardened release workflow trigger/permissions/concurrency logic to ensure tag-based releases only proceed when required workflows succeed.
- Aligned MCP tools test mocks with the direct
CopilotInstructionsimport path used by the standalone MCP server. - Hardened MCP filter/sort handling for nullable list inputs to prevent null-length crashes from client payloads.
- Hardened filter state handling to safely treat null array-like fields as empty in filter manager logic.
- Improved search input icon/button contrast in dark themes by using input-foreground color tokens.
- Added targeted regression coverage for MCP null filter payloads and filter manager null safety.
- Added explicit consent flow before generating Copilot instruction/skill artifacts (
Generate now,Not now,Never for this workspace) and persisted workspace opt-out behavior. - Fixed
blockedBynormalization coverage for CLI field variants (blockedBy,blockedByIds,blocked_by_ids,blocked_by) with regression tests. - Fixed re-parent/update operations when CLI
update --jsonreturns partial payloads by falling back to a full bean fetch. - Fixed standalone MCP server startup by avoiding config barrel imports that could pull in
vscoderuntime dependencies. - Improved settings text consistency for acronym casing (
AI,CLI,MCP,ms).
- Prevented activation/tree fetch failures when
beans list --jsonreturns partial bean payloads withoutslug,path,body, oretagby applying safe list-mode normalization defaults. - Updated release workflow packaging/publish compatibility for current
vscebehavior so tag-based releases complete successfully.
- Pre-commit hooks using Husky and lint-staged for automatic linting and formatting
- Devcontainer configuration (
.devcontainer/devcontainer.json) for local development - Remote compatibility testing infrastructure with Docker and devcontainer tests
- GitHub Actions workflows for CI, remote testing, and releases
- GitHub issue templates and PR workflow
- Dependabot configuration for automated dependency updates
- Comprehensive remote development support documentation
- Code formatting with Prettier
- CI test failures and reliability improvements across multiple workflows
- Broken pnpm lockfile with duplicate package entries
- Beans CLI installation using
@latestinstead of invalid hardcoded versions - Test isolation issues by running tests in clean
/tmp/beans-testdirectory - VSCE packaging errors with pnpm by adding
--no-dependenciesflag - Coverage dependency (
@vitest/coverage-v8) missing from devDependencies - Devcontainer postCreateCommand to use
go installmethod - Beans CLI version command usage (
beans versionnotbeans --version) - Git pre-commit hook configuration (removed redundant
git add) - Go installation in CI using official binaries (Go 1.23.5) instead of distro packages
- SHA256 checksum verification for Go downloads in test scripts
- Remote workspace initialization and Beans CLI resolution
- Updated
@types/nodefrom 22.19.11 to 25.2.3 - Updated
zodfrom 3.25.76 to 4.3.6 - Updated
typescript-eslintto latest version - Updated GitHub Actions:
actions/checkout,actions/setup-node,actions/upload-artifactto latest versions - Improved CI caching and pnpm installation order
- Enhanced error handling and messages in CI workflows
- Improved documentation clarity for CI setup and remote development
- Archive view for archived beans
- Timeline view for bean history
- Dependency graph visualization
- Saved filters and filter presets
- Bean templates for common issue types
- Rich edit mode with in-editor markdown editing
- Metrics dashboard for bean lifecycle analytics
- Tree Views: Dedicated views for Active, Draft, Completed, and Scrapped beans with hierarchical display
- Search View: Full-text search webview with result previews and filtering
- Command Palette: 25+ commands for all bean operations
- Details Panel: Markdown preview with metadata, relationships, and quick actions
- Context Menus: Right-click actions on tree items and views
- Drag & Drop: Visual parent relationship management
- Create beans with interactive prompts (title, type, description)
- View beans in markdown preview pane
- Edit bean markdown files directly in VS Code
- Update bean status (todo, in-progress, draft, completed, scrapped)
- Update bean type (milestone, epic, feature, bug, task)
- Update bean priority (critical, high, normal, low, deferred)
- Manage parent-child relationships via drag-and-drop or commands
- Track blocking dependencies (blocking/blocked-by)
- Copy bean IDs to clipboard
- Delete draft/scrapped beans with confirmation
- Reopen completed/scrapped beans
- Filter by status (multi-select)
- Filter by type (multi-select)
- Filter by tags
- Full-text search across titles and bodies
- Sort modes: status/priority/type/title, priority-first, updated date, created date, ID
- Persistent filters across refresh operations
- Clear filters command
- MCP Server: Expose Beans as tools for AI clients (Copilot, Claude Desktop, Cline, etc.)
- 20+ MCP tools for workspace, bean operations, relationships, and search
- Stdio server bundled with extension
- Dynamic server definition provider
- MCP troubleshooting commands
- Chat Participant:
@beanscommands in GitHub Copilot Chat/summary: Workspace status overview/priority: Top-priority issues/stale: Beans needing attention/create: Guided bean creation/next: Suggestion for next work/search: Search beans by text/commit: Commit message guidance
- Copilot Skill: Auto-generated
.github/skills/beans/SKILL.mdwith planning guidance - Copilot Instructions: Auto-generated
.github/copilot-instructions.mdfor workflow integration
- Full support for SSH, WSL, Dev Containers, and GitHub Codespaces
- Extension runs in workspace extension host (
extensionKind: workspace) - Remote CLI resolution and execution
- Remote MCP server spawning
- Remote filesystem access via VS Code Uri APIs
- Devcontainer configuration examples
beans.cliPath: Custom Beans CLI pathbeans.workspaceRoot: Override workspace root (advanced)beans.enableOnlyIfInitialized: Only activate if.beans.ymlexistsbeans.ai.enabled: Master switch for AI featuresbeans.mcp.enabled: Enable/disable MCP server providerbeans.defaultSortMode: Default tree sort orderbeans.logging.level: Extension log verbosity
- TypeScript throughout with strict type checking
- ESLint with TypeScript ESLint rules
- Vitest for fast unit testing (43+ tests)
- VS Code Test Electron for integration testing
- Mock VS Code API for rapid test iteration
- Watch mode for TDD workflow
- Comprehensive error handling and logging
- Debug configurations for extension and tests
- GitHub Actions CI workflow (Ubuntu, macOS, Windows)
- GitHub Actions release workflow (marketplace publishing)
- Dependabot for automated dependency updates
- Automated test execution on PR and push
- xvfb for headless testing on Linux
- Test artifact uploads on failure
- Issue templates (bug, feature, other)
- PR template with checklist
- Issue-to-bean workflow for automated bean creation
- Architecture Documentation: Module boundaries, data flow, design decisions
- Commands Reference: Complete command guide with usage patterns and workflows
- Testing Documentation: Testing strategy, running tests, writing tests, CI/CD
- Remote Compatibility Guide: Setup and troubleshooting for remote scenarios
- Comprehensive README: Installation, features, settings, troubleshooting
- Accessibility note with WCAG 2.2 guidance
- N/A (initial release)
- N/A (initial release)
- N/A (initial release)
- N/A (initial release)
- Secure process execution with argument arrays (no shell injection)
- Timeout protection on CLI operations (30s default)
- Input validation on all bean operations
- No hardcoded secrets
- Workspace content treated as untrusted
- VS Code secret storage ready for future credentials
- Implemented tree data providers for Active, Draft, Completed, Scrapped beans
- Created
BeansServicefor type-safe CLI operations - Built
BeanTreeItemfor VS Code tree representation - Added
BeansFilterManagerfor centralized filter state - Implemented drag-and-drop controller for parent relationships
- Created Details WebView Provider for bean rendering
- Registered 25+ commands for all bean operations
- Implemented interactive prompts for bean creation
- Added status/type/priority update workflows
- Built parent/blocking relationship management
- Created search and filter commands
- Implemented bean deletion with safety checks
- Built MCP server with 20+ tools
- Integrated MCP server definition provider
- Created
@beanschat participant - Implemented chat slash commands (/summary, /priority, /stale, etc.)
- Auto-generated Copilot skill file
- Auto-generated Copilot instructions
- Comprehensive architecture documentation
- Complete commands reference documentation
- Testing documentation and strategy
- Enhanced README with all features
- Remote compatibility guide
- CI/CD workflows and automation
Beans VS Code Extension is now production-ready! 🎉
This extension brings the power of Beans—the lightweight, file-based issue tracker—directly into VS Code with deep GitHub Copilot integration.
- Native VS Code UI: Sidebar trees, details panels, and search views
- Command-Rich: 25+ commands accessible via palette and context menus
- AI-Powered: MCP tools for any AI client +
@beanschat participant for Copilot - Remote-Ready: Full support for SSH, WSL, Dev Containers, and Codespaces
- Well-Tested: 43+ unit tests, integration tests, and CI across platforms
- Documented: Architecture, commands, testing, and remote setup guides
- Install Beans CLI:
brew install hmans/beans/beans - Install extension from VS Code Marketplace
- Open your project, run:
Beans: Initialize Beans in Workspace - Start creating and managing beans in VS Code!
Use @beans in Copilot Chat:
@beans /summary # Get workspace overview
@beans /priority # See top-priority work
@beans /next # Get suggestion for next bean
@beans /create Add login feature
Or let any AI client use Beans via MCP tools!
Thank you to everyone who contributed feedback, testing, and code to make this release possible. Special thanks to:
- Hendrik Mans for creating Beans
- The Beans community for feedback and feature requests
- Early adopters who tested in remote scenarios
- No visual dependency graph yet (planned for future release)
- Archive view not yet implemented
- Custom keyboard shortcuts require manual configuration
- Testing documentation has minor markdown linting issues (cosmetic only)
See the [Unreleased] section above for planned features in future releases.
For detailed migration guides, troubleshooting, and usage examples, see: