diff --git a/.beads/beads.jsonl b/.beads/beads.jsonl deleted file mode 100644 index b4a7aba..0000000 --- a/.beads/beads.jsonl +++ /dev/null @@ -1,63 +0,0 @@ -{"id":"vsbeads-1k7","title":"Test Chrome DevTools MCP for agent browser automation","description":"Quick spike to verify Chrome DevTools MCP works for our use case.\n\n## Install\n```bash\nclaude mcp add chrome-devtools -- npx -y chrome-devtools-mcp@latest\n```\n\n## Test Plan\n\n1. **Navigate** - Open a webpage (e.g., https://example.com)\n2. **Click** - Click on a link/element\n3. **Inspect DOM** - Use `take_snapshot` to see page structure\n4. **Screenshot** - Use `take_screenshot` to capture visual state\n5. **Console access** - Use `list_console_messages` to read dev console output\n6. **Script execution** - Use `evaluate_script` to run `document.title` or `getComputedStyle()`\n\n## Success Criteria\n- Headed browser window opens (Jason can watch)\n- All 6 capabilities work\n- Console messages are accessible (key painpoint)\n\n## Fallback\nIf this doesn't work well, try Playwright MCP instead.","notes":"## Test Results - ALL PASSED\n\n| Capability | Tool | Status |\n|------------|------|--------|\n| Navigate | `navigate_page` | ✅ |\n| Click | `click` | ✅ |\n| DOM Snapshot | `take_snapshot` | ✅ |\n| Screenshot | `take_screenshot` | ✅ (viewport only) |\n| Console access | `list_console_messages` | ✅ |\n| Script execution | `evaluate_script` | ✅ |\n| Computed styles | `evaluate_script` + JS | ✅ |\n\n## Decision\n**Chrome DevTools MCP is the winner** for agent browser automation:\n- Headed mode by default (human can watch)\n- Full console access (key painpoint solved)\n- Script execution for computed styles\n- Network/performance tools available\n\n## Not needed for now\n- Playwright MCP: fallback if chrome-devtools issues arise\n- Browser MCP: less capable, no evaluate_script\n- chrome-inspector-mcp: requires extension, evaluate_script suffices\n\n## Limitations noted\n- Screenshots capture page viewport only, not Chrome UI/DevTools\n- See vsbeads-uak for macOS window capture research","status":"closed","priority":1,"issue_type":"task","created_at":"2025-11-27T17:17:05.174573-08:00","updated_at":"2025-11-27T17:39:10.636615-08:00","closed_at":"2025-11-27T17:39:10.636615-08:00","dependencies":[{"issue_id":"vsbeads-1k7","depends_on_id":"vsbeads-q6r","type":"discovered-from","created_at":"2025-11-27T17:17:09.142776-08:00","created_by":"daemon"},{"issue_id":"vsbeads-1k7","depends_on_id":"vsbeads-3cn","type":"parent-child","created_at":"2025-11-27T18:50:55.223845-08:00","created_by":"daemon"}]} -{"id":"vsbeads-1vr","title":"Extract Daemon* API types to separate file","description":"Refactor daemon API types out of types.ts into a dedicated file (e.g., daemon-types.ts).\n\nCurrent inline types to extract:\n- `DaemonBeadDependency` (already defined)\n- `DaemonComment` (inline in issueToWebviewBead signature)\n- Full daemon issue structure (the large inline type in issueToWebviewBead)\n\nBenefits:\n- Clear separation between daemon API types and internal/webview types\n- Easier to update when daemon API changes\n- Better documentation of the daemon contract","status":"open","priority":3,"issue_type":"chore","created_at":"2025-11-28T15:55:07.524718-08:00","updated_at":"2025-11-28T15:55:07.524718-08:00","labels":["backend"]} -{"id":"vsbeads-1za","title":"Fix Issues view: sticky header and remove excess padding","description":"Two issues with the Issues view:\n1. Table header scrolls off screen - should be sticky/fixed at top\n2. Unnecessary padding around the list taking up space","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-11-27T01:37:30.569797-08:00","updated_at":"2025-11-27T02:10:19.754932-08:00","closed_at":"2025-11-27T02:10:19.754932-08:00"} -{"id":"vsbeads-33u","title":"Add search clear button to Issues panel","description":"Add a clear (×) button inside the search input field to quickly clear the search text.\n\nStandard UX pattern - shows when there's text in the search field.","status":"closed","priority":3,"issue_type":"feature","created_at":"2025-11-27T19:08:09.666845-08:00","updated_at":"2025-11-27T19:42:30.460018-08:00","closed_at":"2025-11-27T19:42:30.460018-08:00","comments":[{"id":5,"issue_id":"vsbeads-33u","author":"jason","text":"Closed prematurely - need user verification","created_at":"2025-11-28T03:37:32Z"}]} -{"id":"vsbeads-34v","title":"Add static filter favorites with \"Not Closed\" default","description":"Initial implementation of filter favorites. Add a dropdown with static preset filter combinations, defaulting to \"Not Closed\".","design":"**Implementation:**\n1. Add favorites dropdown next to \"+ Filter\" button\n2. Static presets:\n - \"All\" - no filters\n - \"Not Closed\" - status: open, in_progress, blocked (default)\n - \"Active\" - status: in_progress, blocked\n3. On load, apply \"Not Closed\" preset\n4. Selecting a preset replaces current filters\n5. Manual filter changes clear the preset selection (show as \"Custom\")\n\n**UI placement:**\n`[Favorites ▾] [+ Filter] [Clear]`\n\nOr integrate into existing filter UI as first option in the filter menu.","acceptance_criteria":"- Favorites dropdown visible in filter toolbar\n- \"Not Closed\" applied by default on panel load\n- Selecting preset updates filter chips\n- Clear button resets to \"All\"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-26T23:34:31.948083-08:00","updated_at":"2025-11-26T23:36:12.283982-08:00","closed_at":"2025-11-26T23:36:12.283982-08:00"} -{"id":"vsbeads-3cn","title":"Agent-Driven VS Code Extension Development","description":"Enable Claude to effectively develop and debug VS Code extensions through browser automation and MCP integration.\n\nGoals:\n- Run VS Code in a browser (code-server or VS Code Web) with locally-built extensions\n- Control VS Code via MCP (Browser MCP, Chrome DevTools MCP, or Playwright)\n- Access debugging tools: screenshots, logs, inspector, terminal output\n- Enable human participation via VNC/X11 for guidance and review\n\nSuccess criteria:\n- Claude can start/stop VS Code, reload extensions, run commands\n- Claude can see UI state, logs, and errors programmatically\n- Jason can observe and guide Claude's actions in real-time","status":"in_progress","priority":2,"issue_type":"epic","created_at":"2025-11-27T13:28:48.987495-08:00","updated_at":"2025-11-27T20:55:24.433168-08:00","labels":["dx"],"comments":[{"id":2,"issue_id":"vsbeads-3cn","author":"jason","text":"Context is a problem...","created_at":"2025-11-28T03:11:56Z"},{"id":21,"issue_id":"vsbeads-3cn","author":"jason","text":"a very big problem","created_at":"2025-11-28T04:53:09Z"}]} -{"id":"vsbeads-3zm","title":"Filter menu UX improvements: submenu indicators and click-away dismiss","description":"Two issues with the filter menu:\n\n1. **Submenu indicators missing**: When clicking the filter menu, it's not clear that the first menu item leads to submenus. There should be visual treatment (arrow/chevron) to indicate there's another menu before a selection is made.\n\n2. **Dismiss behavior**: The filter button requires multiple clicks to dismiss if you were just looking. Should dismiss as soon as the user clicks away from the menu (standard click-outside-to-close behavior).","status":"open","priority":3,"issue_type":"bug","created_at":"2025-11-27T13:31:46.108524-08:00","updated_at":"2025-11-27T13:31:46.108524-08:00","labels":["ui"]} -{"id":"vsbeads-4n2","title":"Improve Details panel UX - consider inline expansion vs separate panel","description":"VS Code WebviewView API has show() but no collapse/hide method. Current behavior: Details panel auto-expands when bead selected but can't auto-collapse when cleared.\n\nOptions to explore:\n- Inline expansion in the Issues list (like a details row)\n- Editor panel instead of sidebar panel\n- TreeView with expandable items\n- Accept limitation with compact empty state (current)","status":"open","priority":3,"issue_type":"feature","created_at":"2025-11-26T16:33:59.306123-08:00","updated_at":"2025-11-26T23:11:39.608131-08:00","labels":["ui"]} -{"id":"vsbeads-56z","title":"Add transient toast feedback for copy/refresh actions","description":"No visual feedback when:\n- Clicking bead ID/title to copy to clipboard\n- Clicking refresh button\n\nNeed transient toast/popup near the action location.","design":"Implement a simple toast component:\n- Positioned near the triggering element\n- Auto-dismisses after 1.5s\n- Small, non-intrusive\n- Use for: copy actions, refresh complete","status":"closed","priority":2,"issue_type":"feature","created_at":"2025-11-27T00:07:42.824348-08:00","updated_at":"2025-11-27T00:57:29.115178-08:00","closed_at":"2025-11-27T00:57:29.115178-08:00","comments":[{"id":1,"issue_id":"vsbeads-56z","author":"jason","text":"Toast positioning still being refined","created_at":"2025-11-27T08:56:05Z"}]} -{"id":"vsbeads-5c0","title":"Sub-agent browser automation to reduce context bloat","description":"Use sub-agents with isolated context windows to handle Chrome DevTools MCP operations, preventing context bloat in main conversation.\n\n**Problem:** Chrome DevTools MCP returns ~400 lines (full a11y tree) after every action, burning context fast.\n\n**Solution:** Delegate browser operations to short-lived sub-agents that:\n- Have their own context window (bloat stays there)\n- Return only minimal summaries to main agent\n- Batch multiple operations per invocation\n\n**Approach:**\n1. Create `browser-task` sub-agent with only Chrome DevTools MCP tools\n2. Focused instructions: execute task, return minimal summary\n3. Use for: reload window, click sequences, verify UI state","status":"open","priority":2,"issue_type":"epic","created_at":"2025-11-28T21:52:14.860652-08:00","updated_at":"2025-11-28T21:52:14.860652-08:00","labels":["dx"],"dependencies":[{"issue_id":"vsbeads-5c0","depends_on_id":"vsbeads-3cn","type":"parent-child","created_at":"2025-11-28T21:52:42.200798-08:00","created_by":"daemon"},{"issue_id":"vsbeads-5c0","depends_on_id":"vsbeads-n64","type":"related","created_at":"2025-11-28T21:52:42.256772-08:00","created_by":"daemon"}]} -{"id":"vsbeads-65h","title":"Add label filter option to issues list","description":"Allow filtering issues by label in the issues list view. Could be a dropdown/chip selector similar to existing status filters.","status":"open","priority":3,"issue_type":"feature","created_at":"2025-11-28T17:39:51.904712-08:00","updated_at":"2025-11-28T17:39:51.904712-08:00","labels":["ui"]} -{"id":"vsbeads-6qz","title":"Bump minor version on release from main, reset patch to 0","description":"Current bump strategy increments patch version. For main branch releases, should bump minor version (0.x.0 → 0.y.0) and reset patch to 0. This better reflects semantic versioning where main releases are feature releases.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-11-28T17:04:40.688149-08:00","updated_at":"2025-11-28T21:39:01.557158-08:00","closed_at":"2025-11-28T21:39:01.557158-08:00","labels":["infra"]} -{"id":"vsbeads-7ny","title":"Rename \"Beads Dashboard\" references to \"Beads\"","description":"Extension was renamed to \"Beads\" but there are leftover \"Beads Dashboard\" references. Output channel still shows \"Beads Dashboard\" in selector.","design":"Search and replace:\n- Output channel name in extension.ts\n- Any other \"Beads Dashboard\" strings in code/comments\n- Keep historical references in git commits as-is","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-11-26T18:43:02.79866-08:00","updated_at":"2025-11-27T01:18:57.016161-08:00","closed_at":"2025-11-27T01:18:57.016161-08:00"} -{"id":"vsbeads-8pl","title":"Reduce Dashboard view minimum height","description":"Dashboard stats section takes too much vertical space, partially cutting off the Issues panel below. Need more compact layout for the stat boxes.","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-11-27T01:01:36.914842-08:00","updated_at":"2025-11-27T01:05:05.154318-08:00","closed_at":"2025-11-27T01:05:05.154318-08:00"} -{"id":"vsbeads-8wo","title":"Support patch version bumps for release branches","description":"When releasing from a release branch (e.g., release-0.2.x), should increment patch version (0.2.0 → 0.2.1) for bugfix releases. Complements the minor bump strategy for main branch releases.","status":"open","priority":4,"issue_type":"task","created_at":"2025-11-28T17:04:40.744218-08:00","updated_at":"2025-11-28T17:04:40.744218-08:00","labels":["infra"]} -{"id":"vsbeads-92t","title":"Implement BeadsDaemonClient with Unix socket RPC","description":"Replace CLI-spawning BeadsBackend with direct daemon socket connection using JSON-RPC protocol. Support real-time mutations via get_mutations.","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-11-26T15:59:20.209079-08:00","updated_at":"2025-11-26T23:11:39.603475-08:00","closed_at":"2025-11-26T16:03:59.684447-08:00"} -{"id":"vsbeads-93b","title":"Release workflow: validate changelog before publish","description":"Current release workflow doesn't check if CHANGELOG.md is properly updated before publishing.\n\nShould detect:\n- Missing release notes for the version being released\n- Non-empty [Unreleased] section when releasing (suggests notes weren't moved)\n- Version mismatch between package.json and changelog\n\nCould be a pre-release validation step in the GitHub Action.","status":"open","priority":3,"issue_type":"feature","created_at":"2025-11-28T17:28:03.814546-08:00","updated_at":"2025-11-28T17:28:03.814546-08:00","labels":["infra"]} -{"id":"vsbeads-94s","title":"Change to a better icon for Beads in the side panel","description":"The current icon in the VS Code activity bar/side panel could be improved. Find or create a more distinctive icon that better represents Beads.","status":"open","priority":3,"issue_type":"task","created_at":"2025-11-27T02:15:50.331234-08:00","updated_at":"2025-11-27T02:15:50.331234-08:00","labels":["ui"]} -{"id":"vsbeads-9cp","title":"Configurable columns: reorder, type icons, user preferences","description":"Add configuration and customization options for the Issues table columns:\n\n**Column Configuration:**\n- Reorder columns via drag-and-drop or settings\n- Show/hide specific columns\n- User preferences persisted\n\n**Type Icons:**\n- Add icons for issue types (bug, feature, task, epic, chore)\n- Use in type column and dependency badges (Depends On / Blocks sections)\n- Color badges by type in dependency lists\n\n**Reference:** See vsbeads-jue for where type-based coloring is needed in dep badges.","design":"Options:\n- Drag-and-drop column reordering (complex)\n- Settings-based column order array (simpler)\n- Type icons: bug=🐛, feature=✨, task=☑️, epic=🎯, chore=🔧 (or codicons)","status":"open","priority":3,"issue_type":"feature","created_at":"2025-11-27T01:39:27.294846-08:00","updated_at":"2025-11-27T19:08:06.42803-08:00","labels":["ui"]} -{"id":"vsbeads-ba5","title":"Extension should auto-start daemon when not running","description":"Extension failed to connect with error: \"Socket error: connect ENOENT /Users/jason/ws/jdillon/vscode-beads/.beads/bd.sock\"\n\nThe daemon wasn't running and the extension didn't auto-start it. Need to investigate why the auto-start mechanism failed.","design":"## Investigation Areas\n\n1. **Why didn't auto-start work?**\n - Check if startDaemon is being called on connection failure\n - Verify the retry/backoff logic in BeadsBackend\n - Check if there's a race condition or timeout issue\n\n2. **Potential improvements**\n - Add daemon status indicator to UI (statusbar or panel)\n - Add \"Restart Daemon\" command to command palette\n - Show daemon connection status per-project in multi-root workspaces\n - Better error messaging when daemon fails to start\n\n3. **Diagnostics needed**\n - View current daemon connections across all projects\n - Force restart capability\n - Daemon health/metrics visibility in extension","status":"open","priority":2,"issue_type":"bug","created_at":"2025-11-29T02:34:16.15086-08:00","updated_at":"2025-11-29T02:34:16.15086-08:00"} -{"id":"vsbeads-bci","title":"Fix confusing dependency type handling and parent-child usage","description":"Dependency handling is confusing in multiple ways:\n\n**Problem 1: Directional confusion**\n- `blocks` relationship is the same whether viewed as \"depends on\" or \"blocks\"\n- UI shows \"Depends On\" and \"Blocks\" sections but both use `blocks` type\n- Not clear to users that these are the same underlying relationship\n\n**Problem 2: Not using parent-child for epics**\n- We have epics (e.g., vsbeads-5c0) with child tasks\n- But agent creates them with `blocks` dependencies, not `parent-child`\n- Should epics use `parent-child` type? What's the semantic difference?\n\n**Problem 3: Unclear when to use each type**\n- `blocks` - hard blocker, affects ready queue\n- `related` - soft link, context only\n- `parent-child` - epic/subtask hierarchy\n- `discovered-from` - work found during other work\n\nWhen should agent use parent-child vs blocks vs discovered-from?\n\n**Potential fixes:**\n1. Add dependency graph visualization showing relationships clearly\n2. Update CLAUDE.md/agent instructions on when to use each type\n3. Clarify UI labels (maybe show relationship type, not just direction)\n4. Consider migrating existing epic→task relationships to parent-child","design":"## Correct Usage (from beads docs)\n\n**`blocks`** - Hard blocker between independent issues\n- \"Task A blocks Task B\" = B can't start until A is done\n- Both directions affect ready queue\n\n**`parent-child`** - Epic/subtask hierarchy\n- `bd dep add EPIC_ID TASK_ID --type parent-child`\n- Epic is parent, tasks are children\n- Special behaviors:\n - `bd epic status` shows progress/completion %\n - `bd epic close-eligible` auto-closes complete epics\n - Children blocked if parent is blocked\n- **We should use this for epics, not `blocks`!**\n\n**`related`** - Soft link for context\n- Doesn't affect ready queue\n- Just for reference/navigation\n\n**`discovered-from`** - Work discovered during other work\n- Tracks \"yak shaving\" chains\n- `bd dep tree --reverse` shows discovery tree\n\n## Current Problem\n\nAgent creates epic relationships with `blocks` but should use `parent-child`:\n```bash\n# Wrong (what we do now):\nbd dep add vsbeads-5c0 vsbeads-yjr --type blocks\n\n# Right (what we should do):\nbd dep add vsbeads-5c0 vsbeads-yjr --type parent-child\n```\n\n## Fixes Needed\n\n1. Update CLAUDE.md with dependency type guidance\n2. Fix vscode-beads MCP tools to support `--type` parameter\n3. Consider graph view showing relationship types with different edge styles","notes":"## Upstream Bug: `bd show` mislabels dependency types\n\nFrom `sandbox/bd-show-display-bug.md`:\n\n**Bug:** `bd show` displays ALL dependencies under \"Blocks\" header, regardless of actual type.\n\n```\n$ bd show platform-wue\n\nBlocks (10): # WRONG - these are parent-child!\n ← platform-1pi: ...\n```\n\n**Actual data in beads.jsonl:**\n```json\n{\"issue_id\":\"platform-1pi\",\"depends_on_id\":\"platform-wue\",\"type\":\"parent-child\",...}\n```\n\n**Expected:**\n```\nChildren (10):\n ← platform-1pi: ...\n```\n\n## Impact on vscode-beads\n\nThe `--json` output should include `dependency_type` field. We can:\n1. Use `dependency_type` from JSON to display correctly in UI\n2. Group by type: \"Children\", \"Blocks\", \"Related\", \"Discovered From\"\n3. Different visual styling per type (icons, colors)\n\n## Action Items\n\n1. **Upstream:** File bug/PR for `bd show` to respect dependency type in display\n2. **vscode-beads:** Use `dependency_type` from daemon API to display correctly\n3. **vscode-beads:** Show relationship type in UI (badge, icon, or section header)","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-29T02:42:42.366247-08:00","updated_at":"2025-11-29T13:07:18.994989-08:00","closed_at":"2025-11-29T13:07:18.994989-08:00","labels":["dx","ui"]} -{"id":"vsbeads-btf","title":"Scroll to latest comment when adding a comment in Details view","description":"When adding a comment in the Details panel, the view should auto-scroll to show the newly added comment at the bottom. Initial implementation attempts didn't work due to webview scroll container complexity.","status":"open","priority":4,"issue_type":"feature","created_at":"2025-11-27T20:45:35.746701-08:00","updated_at":"2025-11-27T20:45:35.746701-08:00","labels":["ui"]} -{"id":"vsbeads-c46","title":"Bug: Unable to add comment to issue (or comment doesn't show up)","description":"Adding a comment via the Details panel doesn't work or the comment doesn't appear after adding.\n\nNeed to investigate:\n- Is the message being sent to extension?\n- Is the bd CLI being called correctly?\n- Is the view refreshing after add?\n\nLocation: `src/webview/views/DetailsView.tsx` (add comment UI) and `src/providers/BeadDetailsViewProvider.ts` (handler)","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-11-27T19:12:55.728488-08:00","updated_at":"2025-11-27T20:44:36.179784-08:00","closed_at":"2025-11-27T20:44:36.179784-08:00","comments":[{"id":8,"issue_id":"vsbeads-c46","author":"jason","text":"test","created_at":"2025-11-28T03:50:08Z"}]} -{"id":"vsbeads-cqi","title":"Redesign UI: sidebar for navigation, editor panels for views","description":"Move Kanban, Dependency Graph, and Details to WebviewPanel (editor tabs). Keep project selector and issue list in sidebar.","status":"open","priority":2,"issue_type":"feature","created_at":"2025-11-26T15:59:20.263974-08:00","updated_at":"2025-11-26T23:11:39.605734-08:00","labels":["ui"],"dependencies":[{"issue_id":"vsbeads-cqi","depends_on_id":"vsbeads-92t","type":"blocks","created_at":"2025-11-26T15:59:26.155171-08:00","created_by":"daemon"}]} -{"id":"vsbeads-cy5","title":"Setup GitHub Action for PR CI (lint, test, build)","description":"Add GitHub Action workflow to run on PRs to main branch. Should run lint, tests (once we have them), and verify build succeeds.","design":"`.github/workflows/ci.yml`\n- Trigger: pull_request to main\n- Steps: checkout, setup bun, install, lint, test, compile\n- Note: No tests exist yet - add placeholder or skip until tests added","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-26T18:39:27.003903-08:00","updated_at":"2025-11-27T20:56:11.148364-08:00","closed_at":"2025-11-27T20:56:11.148364-08:00"} -{"id":"vsbeads-dso","title":"Setup VS Code Marketplace publisher account","description":"Create Azure DevOps org, get PAT, create planet57 publisher, configure for publishing. See sandbox/PUBLISHING.md for steps.","status":"closed","priority":3,"issue_type":"task","created_at":"2025-11-26T18:39:27.189685-08:00","updated_at":"2025-11-27T20:56:48.666442-08:00","closed_at":"2025-11-27T20:56:48.666442-08:00"} -{"id":"vsbeads-ejn","title":"Research: Better beads workflow to avoid PR/branch conflicts","description":"Beads conflates PR/branch workflows with issue tracker changes, causing beads created in feature branches to be auto-deleted when PRs merge.\n\n**Problem:**\n- Beads created in feature branch get committed with code\n- PR merges bring beads into main via git\n- `bd sync --from-main` runs and treats these as \"foreign\" entries\n- git-history-backfill incorrectly deletes them as \"pruned from manifest\"\n\n**Analysis:** See `tmp/beads-deletion-analysis.md`\n**Full discussion:** See `tmp/session-subagent-discussion.jsonl`\n\n**Potential Solutions to Research:**\n\n1. **Protected branch support** - beads has this feature, unclear if it helps\n - Does it prevent sync from touching certain branches?\n - Can it isolate beads changes from code changes?\n\n2. **Dedicated beads branch** - worktree with separate branch just for .beads/\n - Code stays on feature branches\n - Beads always committed to a single branch (e.g., `beads-main`)\n - Avoids merge conflicts between code PRs and beads state\n\n3. **Gitignore .beads/ in feature branches**\n - Only commit beads on main\n - Feature branches inherit but don't modify\n - Sync happens only on main\n\n4. **Submodule approach** - .beads/ as separate git repo\n - Complete isolation of issue tracker from code\n - More complex setup\n\n\u003e submodule is probably not great sub modules tie to revisions and the revision of this will be constantly changing.\n\n**Goal:** Find a workflow where:\n- Beads can be created/updated during feature work\n- PRs don't bring stale/conflicting beads state\n- No accidental deletions via sync","design":"## Research Findings\n\n### Question: Is it by design that all branches carry beads changes?\n\n**Answer: NO - this is incidental and problematic, not by design.**\n\n### Evidence from GitHub Issues\n\n1. **Issue #207 (Using beads with PRs)** - Steve Yegge (Nov 4): \"We're taking a serious look at offering a multi-repo solution, where beads uses separate repos\"\n\n2. **Issue #195 (.beads as worktree on orphan branch)** - Steve Yegge (Nov 4): Rejected worktree approach as \"too git-centric\", pursuing separate repository option instead for:\n - Clean separation of issue tracking from code history\n - Platform-agnostic approach (VCS-independent)\n - Better monorepo/multi-project support\n\n3. **Issue #158 (Merge conflicts)** - Extensive discussion about multi-agent conflicts, led to improved 3-way merging in v0.24.1+\n\n### Currently Supported Solutions\n\n1. **Protected Branch Workflow** (`bd init --branch beads-metadata`):\n - Beads commits to separate branch via git worktrees\n - Code stays on feature branches\n - Periodically merge beads-metadata → main via PR\n - See: docs/PROTECTED_BRANCHES.md\n\n2. **Contributor Workflow** (`bd init --contributor`):\n - For OSS contributors\n - Issues stored in `~/.beads-planning` (separate local repo)\n - Never pollutes upstream PRs\n\n### Our Specific Bug\n\nThe `git-history-backfill` deleting beads from PRs appears to be a **bug**, not intended behavior:\n- Expected: Beads in git history should be **recovered** (added to local DB)\n- Actual: Beads are **deleted** as \"pruned from manifest\"\n\n### Recommendation\n\nTry protected branch workflow:\n```bash\nbd config set sync.branch beads-metadata\nbd daemon restart\n```\n\nConsider filing bug report for git-history-backfill behavior.","notes":"## Decision (2025-11-28)\n\n**Strategy:** Try protected branch workflow now, wait for upstream multi-repo solution.\n\n## Experiment on forge (2025-11-28)\n\nTested `bd config set sync.branch beads-metadata` with `--auto-commit --auto-push`:\n\n**What works:**\n- ✅ Beads commits go to `beads-metadata` branch (via worktree)\n- ✅ Auto-push to `origin/beads-metadata` works\n- ✅ `main` branch stays untouched (no new commits)\n\n**Issues found:**\n- ❌ Working tree still shows `.beads/beads.jsonl` modified (tracked on main)\n - Fix: untrack from main with `git rm --cached`\n- ❌ `beads-metadata` is NOT an orphan branch - it's a snapshot of main at config time\n - Contains full code tree + history\n - Designed for merge workflow, not true isolation\n - For \"never merge\" approach, this is wasteful/messy\n\n**Branch structure:**\n```\nmain ─────────────────────────────────► (gets beads.jsonl changes in working tree)\n \\\n └─ beads-metadata ──────────► (beads commits here, has full code copy)\n```\n\n**What we'd want (orphan):**\n```\nmain ──────────────────► (code only)\nbeads-metadata (orphan) ──────────────► (beads only, no shared history)\n```\n\nIssue #195 proposed orphan approach but Steve rejected as \"too git-centric\" - pursuing separate repo instead.\n\n**Status:** Experiment complete, need to decide:\n1. Live with non-orphan branch (functional but messy)\n2. DIY orphan branch (unsupported)\n3. Wait for upstream multi-repo","status":"in_progress","priority":2,"issue_type":"task","created_at":"2025-11-28T22:03:57.82966-08:00","updated_at":"2025-11-28T22:43:29.544702-08:00","labels":["infra"],"dependencies":[{"issue_id":"vsbeads-ejn","depends_on_id":"vsbeads-hw7","type":"related","created_at":"2025-11-28T22:04:03.147893-08:00","created_by":"daemon"}]} -{"id":"vsbeads-fwp","title":"Improvement: Colored dropdowns in edit mode for type/status/priority","description":"In DetailsView edit mode, the type/status/priority dropdowns are plain text. They should show colored versions matching how they appear elsewhere:\n- Either as chips (like view mode)\n- Or as colored badges (like filter panel)\n\nThis improves visual consistency and makes it easier to identify options at a glance.\n\nLocation: `src/webview/views/DetailsView.tsx` lines 188-227","status":"open","priority":3,"issue_type":"feature","created_at":"2025-11-27T19:01:47.152941-08:00","updated_at":"2025-11-27T19:01:47.152941-08:00","labels":["ui"]} -{"id":"vsbeads-fyn","title":"Add copy ID action to issues list rows","description":"Currently copying a bead ID requires clicking a row to open details, then clicking the ID badge. Add a way to copy the ID directly from the list without navigating away.\n\nOptions:\n- Click on ID column copies to clipboard\n- Right-click context menu with \"Copy ID\"\n- Small copy icon on hover","design":"Click on ID span in issues list row copies to clipboard. Row selection still happens (no propagation stop). Add cursor pointer and title tooltip on ID span. Show brief visual feedback on copy.","status":"closed","priority":3,"issue_type":"feature","created_at":"2025-11-27T01:36:42.479739-08:00","updated_at":"2025-11-28T16:53:09.00156-08:00","closed_at":"2025-11-28T16:53:09.00156-08:00"} -{"id":"vsbeads-gfr","title":"Generate label colors algorithmically from label name","description":"Labels currently have no color distinction. Use a deterministic algorithm to generate background color from label name (e.g., hash to HSL hue). Auto-select light/dark foreground text based on background luminance for legibility.\n\nAlgorithm approach:\n- Hash label name to get consistent hue (0-360)\n- Use fixed saturation/lightness for consistency\n- Calculate relative luminance of background\n- Choose white or dark text based on WCAG contrast ratio","status":"closed","priority":3,"issue_type":"feature","created_at":"2025-11-28T17:08:39.964997-08:00","updated_at":"2025-11-28T17:23:27.090457-08:00","closed_at":"2025-11-28T17:23:27.090457-08:00","labels":["ui"]} -{"id":"vsbeads-gr5","title":"Filter presets/favorites system for Issues panel","description":"Currently filtering requires manually adding multiple filters (e.g., Open + In Progress + Blocked to exclude Closed). Need a better UX for common filter combinations.","design":"**Options considered:**\n\n1. **Preset filters** - Built-in presets like \"Not Closed\", \"Active Work\"\n - Simple UX, covers common cases\n - Limited flexibility\n\n2. **Negated filters** - Click to toggle +/- on any filter\n - Full flexibility\n - More complex UX, needs visual indicator\n\n3. **Default filter** - Start with a filter applied (e.g., \"Not Closed\")\n - Good for most common use case\n - User can clear if needed\n\n**Recommended approach:**\nCombination of 1 + 3: Filter \"favorites\" dropdown that preconfigures filter sets.\n- Start with static built-in favorites: \"Not Closed\", \"Active\" (in_progress + blocked), \"All\"\n- Future: Allow saving custom filter sets as favorites\n- Default to \"Not Closed\" on load","status":"open","priority":3,"issue_type":"feature","created_at":"2025-11-26T23:34:31.877133-08:00","updated_at":"2025-11-26T23:34:31.877133-08:00","labels":["ui"],"dependencies":[{"issue_id":"vsbeads-gr5","depends_on_id":"vsbeads-34v","type":"parent-child","created_at":"2025-11-26T23:34:39.784152-08:00","created_by":"daemon"}]} -{"id":"vsbeads-gsb","title":"Support secondary sort in issues table","description":"Add multi-column sorting to the issues table.\n\nPossible approaches:\n- Shift+click for secondary sort (common pattern)\n- Always use a default secondary sort (e.g., Updated as tiebreaker)\n- Configurable sort order via settings","status":"open","priority":3,"issue_type":"feature","created_at":"2025-11-27T13:04:59.70662-08:00","updated_at":"2025-11-27T13:04:59.70662-08:00","labels":["ui"]} -{"id":"vsbeads-hgm","title":"Test sub-agent context isolation","description":"After creating browser-task agent, test that:\n\n1. MCP response bloat stays in sub-agent context\n2. Only summary returns to main agent\n3. Measure context savings vs direct MCP calls\n\n**Test workflow:**\n- Invoke browser-task to reload code-server window\n- Check main context size before/after\n- Compare to doing reload directly with MCP","status":"open","priority":1,"issue_type":"task","created_at":"2025-11-28T21:52:30.146368-08:00","updated_at":"2025-11-28T21:52:30.146368-08:00","labels":["dx"],"dependencies":[{"issue_id":"vsbeads-hgm","depends_on_id":"vsbeads-yjr","type":"blocks","created_at":"2025-11-28T21:52:30.148724-08:00","created_by":"daemon"},{"issue_id":"vsbeads-hgm","depends_on_id":"vsbeads-5c0","type":"parent-child","created_at":"2025-11-28T21:52:42.044495-08:00","created_by":"daemon"}]} -{"id":"vsbeads-hjx","title":"Filter toggle button feels broken when filters are active","description":"When the filter panel is open and filters are active (icon is green), clicking the filter toggle button doesn't do anything. This feels broken.\n\nPossible solutions:\n- Toggle could hide/show the panel without clearing filters\n- Some other UX pattern\n\nNeed to determine the right behavior.","status":"open","priority":4,"issue_type":"bug","created_at":"2025-11-27T02:27:29.005135-08:00","updated_at":"2025-11-27T02:27:29.005135-08:00","labels":["ui"]} -{"id":"vsbeads-hw7","title":"Investigate: beads auto-deleted via git-history-backfill","description":"Several beads created on 2025-11-28 were automatically deleted at 23:54:29 via `git-history-backfill` with reason \"recovered from git history (pruned from manifest)\".\n\n**Affected beads:**\n- vsbeads-ded (epic)\n- vsbeads-b80, vsbeads-csu, vsbeads-8q3, vsbeads-jpc (tasks)\n- vsbeads-b0e, vsbeads-xtn, vsbeads-cau, vsbeads-c04, vsbeads-e4j, vsbeads-92s\n\n**Investigation needed:**\n1. What triggered git-history-backfill?\n2. Was there a git checkout/reset/merge that reverted .beads files?\n3. Check git reflog for what happened around that time\n4. Review bd sync behavior - should it delete beads not in git history?\n\n**Session file for reference:** `tmp/session-subagent-discussion.jsonl`","status":"open","priority":2,"issue_type":"bug","created_at":"2025-11-28T21:51:58.272122-08:00","updated_at":"2025-11-28T21:51:58.272122-08:00","labels":["infra"]} -{"id":"vsbeads-ipb","title":"Show time in addition to date for timestamps in Details view","description":"Created/Updated/Closed timestamps in Details view currently only show date (toLocaleDateString). Should also show time for better context.\n\nLocation: `src/webview/views/DetailsView.tsx` (details-meta section)","status":"open","priority":4,"issue_type":"feature","created_at":"2025-11-27T20:49:34.095573-08:00","updated_at":"2025-11-27T20:49:34.095573-08:00","labels":["ui"]} -{"id":"vsbeads-jb7","title":"Allow opening issue detail in editor panel","description":"Add option to open an issue's full detail view in an editor panel (tab) instead of just the sidebar Details panel. This allows viewing/editing while keeping sidebar free, and the view doesn't change when selecting different issues in the list.","design":"- Double-click or context menu \"Open in Editor\" on issue row\n- Opens `vscode.window.createWebviewPanel()` in editor area\n- Panel is independent - doesn't sync with sidebar selection\n- Can have multiple issue tabs open\n- Full editing support\n- Title shows issue ID","status":"open","priority":2,"issue_type":"feature","created_at":"2025-11-26T18:39:34.504524-08:00","updated_at":"2025-11-26T23:11:39.604108-08:00","labels":["ui"]} -{"id":"vsbeads-jru","title":"Add copy ID button to Details panel title bar","description":"Added copy button to Details panel VS Code title bar. Also normalized all copy feedback to use VS Code status bar messages (2s auto-dismiss) instead of yellow toast popups.\n\n**Changes:**\n- `package.json`: Added `beads.copyBeadId` command with conditional visibility (`when` clause)\n- `extension.ts`: Command handler using `setStatusBarMessage`\n- `BeadDetailsViewProvider.ts`: `getCurrentBeadId()` getter, context key management, `copyBeadId` message handler\n- `DetailsView.tsx`: Added `onCopyId` prop, uses message passing instead of toast\n- `types.ts`: Added `copyBeadId` message type\n\nButton only shows when a bead is selected.","status":"closed","priority":3,"issue_type":"feature","created_at":"2025-11-27T18:31:28.983608-08:00","updated_at":"2025-11-27T18:43:41.736313-08:00","closed_at":"2025-11-27T18:43:41.736313-08:00"} -{"id":"vsbeads-jue","title":"Show dependents in BeadDetails view","description":"BeadDetails only shows \"Depends On\" (issues this bead depends on). Need to also show \"Dependents\" (issues that depend on this bead) to see the full relationship graph.\n\nCurrently the MCP show command returns both `dependencies` and `dependents`, but only dependencies are displayed in the UI.","design":"1. Update `Bead` type in types.ts to include `dependents?: string[]`\n2. Ensure backend passes through dependents from bd show\n3. Add \"Dependents\" section to BeadDetails.tsx (similar to \"Depends On\")\n4. Make dependent badges clickable to navigate to that issue","status":"closed","priority":2,"issue_type":"feature","created_at":"2025-11-27T01:00:57.071592-08:00","updated_at":"2025-11-27T19:15:58.191577-08:00","closed_at":"2025-11-27T19:15:58.191577-08:00","dependencies":[{"issue_id":"vsbeads-jue","depends_on_id":"vsbeads-gr5","type":"related","created_at":"2025-11-27T01:01:56.807728-08:00","created_by":"daemon"}]} -{"id":"vsbeads-k3d","title":"test","description":"test","status":"closed","priority":3,"issue_type":"bug","created_at":"2025-11-27T19:00:03.991806-08:00","updated_at":"2025-11-27T20:44:36.231963-08:00","closed_at":"2025-11-27T20:44:36.231963-08:00","comments":[{"id":3,"issue_id":"vsbeads-k3d","author":"jason","text":"test","created_at":"2025-11-28T03:27:34Z"},{"id":4,"issue_id":"vsbeads-k3d","author":"jason","text":"test","created_at":"2025-11-28T03:27:47Z"},{"id":7,"issue_id":"vsbeads-k3d","author":"jason","text":"Test comment from bug investigation","created_at":"2025-11-28T03:46:44Z"},{"id":9,"issue_id":"vsbeads-k3d","author":"jason","text":"tst","created_at":"2025-11-28T03:51:07Z"},{"id":10,"issue_id":"vsbeads-k3d","author":"jason","text":"foo bar baz","created_at":"2025-11-28T03:52:00Z"},{"id":11,"issue_id":"vsbeads-k3d","author":"jason","text":"test","created_at":"2025-11-28T04:10:12Z"},{"id":12,"issue_id":"vsbeads-k3d","author":"jason","text":"Testing auto-scroll feature","created_at":"2025-11-28T04:15:27Z"},{"id":13,"issue_id":"vsbeads-k3d","author":"jason","text":"test","created_at":"2025-11-28T04:22:02Z"},{"id":14,"issue_id":"vsbeads-k3d","author":"jason","text":"test","created_at":"2025-11-28T04:22:27Z"},{"id":15,"issue_id":"vsbeads-k3d","author":"jason","text":"5es","created_at":"2025-11-28T04:24:20Z"},{"id":16,"issue_id":"vsbeads-k3d","author":"jason","text":"dfs","created_at":"2025-11-28T04:24:45Z"},{"id":17,"issue_id":"vsbeads-k3d","author":"jason","text":"test","created_at":"2025-11-28T04:26:07Z"},{"id":18,"issue_id":"vsbeads-k3d","author":"jason","text":"maybe?","created_at":"2025-11-28T04:33:19Z"},{"id":19,"issue_id":"vsbeads-k3d","author":"jason","text":"test","created_at":"2025-11-28T04:35:03Z"}]} -{"id":"vsbeads-l27","title":"Markdown rendering has excessive spacing around lists","description":"UL elements have too much padding/margin around them, and there appears to be forced spacing between LI elements despite CSS rules attempting to remove it. The markdown rendering should be more compact - simple lists should look similar to plain text with proper bullet formatting.","status":"open","priority":3,"issue_type":"bug","created_at":"2025-11-26T17:55:40.606838-08:00","updated_at":"2025-11-26T23:11:39.607882-08:00","labels":["ui"]} -{"id":"vsbeads-m0t","title":"Agent VS Code dev: next steps after research","description":"## Context\nResearch complete in `sandbox/agent-vscode-dev-research.md`. Ready to test and implement.\n\n## Immediate Next Step\n1. **Test Chrome DevTools MCP** (vsbeads-1k7)\n - Install: `claude mcp add chrome-devtools -- npx -y chrome-devtools-mcp@latest`\n - Restart Claude Code\n - Run test plan: navigate, click, snapshot, screenshot, console, evaluate_script\n - Key goal: verify console access works (painpoint for debugging)\n\n## If Chrome DevTools MCP works\n2. Create implementation beads from roadmap Phase 1:\n - Install code-server locally\n - Configure Chrome DevTools MCP for code-server\n - Test: open code-server, navigate, see console/errors\n - Install vscode-beads VSIX\n\n## If Chrome DevTools MCP fails\n- Fallback to Playwright MCP\n- May lose console access, need workaround\n\n## Reference\n- Research doc: `sandbox/agent-vscode-dev-research.md`\n- Epic: vsbeads-3cn\n- Research task: vsbeads-q6r","status":"closed","priority":1,"issue_type":"task","created_at":"2025-11-27T17:17:51.470823-08:00","updated_at":"2025-11-27T19:17:07.693297-08:00","closed_at":"2025-11-27T19:17:07.693297-08:00","dependencies":[{"issue_id":"vsbeads-m0t","depends_on_id":"vsbeads-1k7","type":"blocks","created_at":"2025-11-27T17:17:55.445037-08:00","created_by":"daemon"},{"issue_id":"vsbeads-m0t","depends_on_id":"vsbeads-3cn","type":"parent-child","created_at":"2025-11-27T18:50:55.250208-08:00","created_by":"daemon"}]} -{"id":"vsbeads-mbo","title":"Fix bd sync prefix mismatch (vscode-beads- vs vscode-)","description":"bd sync fails with: \"prefix mismatch detected: database uses 'vscode-beads-' but found issues with prefixes: [vscode- (16 issues)]\". This prevents syncing beads to git.","design":"Error suggests using --rename-on-import flag. May need to:\n1. Run bd sync --rename-on-import\n2. Or fix the prefix in config.yaml\n3. Or re-export with correct prefix","notes":"**Root Cause:** Bug in `internal/utils/issue_id.go:ExtractIssuePrefix` - used `strings.Index` (first hyphen) instead of `strings.LastIndex` (last hyphen). For `vscode-beads-4n2`, it extracted prefix as `vscode` instead of `vscode-beads`.\n\n**Fix:** Already in beads main (commit 6294ef0c). New bd built at `/tmp/bd-new`.\n\n**Workaround Applied:** Renamed prefix from `vscode-beads` to `vsbeads`.","status":"closed","priority":1,"issue_type":"bug","created_at":"2025-11-26T18:52:04.449107-08:00","updated_at":"2025-11-26T23:13:56.591814-08:00","closed_at":"2025-11-26T23:13:56.591814-08:00"} -{"id":"vsbeads-n64","title":"Build optimized agent automation for VS Code/code-server (reduce context bloat)","description":"Chrome DevTools MCP returns ~400 lines (full a11y tree) after EVERY action. This burns through context extremely fast. Need to build custom tooling.\n\n**Problem observed:**\n- `press_key` → 401 lines returned\n- `click` → full snapshot returned \n- Simple reload workflow = ~120KB context\n- Playwright MCP has same issue (also uses a11y snapshots)\n\n**Direction:**\nBuild custom tooling for optimized agent-driven VS Code/code-server automation:\n1. Helper extension that exposes simple commands (reload, focus panel, etc.) callable via API\n2. Custom MCP that returns minimal/filtered responses instead of full tree\n3. Script-based helpers agent can invoke without snapshot overhead\n4. Same pattern needed for Figma later\n\n**Current workaround:**\n- Use Chrome DevTools MCP sparingly for single feature verification\n- Leave window reload to human to avoid context burn\n- Hybrid: agent codes, human clicks to verify","status":"open","priority":2,"issue_type":"task","created_at":"2025-11-27T18:31:28.924977-08:00","updated_at":"2025-11-27T18:36:56.270524-08:00","labels":["dx"],"dependencies":[{"issue_id":"vsbeads-n64","depends_on_id":"vsbeads-3cn","type":"parent-child","created_at":"2025-11-27T18:50:55.275699-08:00","created_by":"daemon"}]} -{"id":"vsbeads-ops","title":"Redesign Dashboard for compactness and usefulness","description":"Current dashboard has redundant/space-wasting sections. The status bar chart duplicates the summary cards above. Need a more compact, meaningful layout.","design":"**Keep:**\n- Summary cards (Total, Ready, In Progress, Blocked) - useful at a glance\n- In Progress list - very useful\n\n**Remove/Replace:**\n- Status breakdown bars (redundant with cards)\n- Priority breakdown bars (takes too much space)\n\n**Options for compact redesign:**\n\n**Option A: Type + Priority chips**\n```\n[Summary Cards Row]\n\nBY TYPE BY PRIORITY\nbug: 3 P1: 1 P2: 4 P3: 3\nfeature: 4\ntask: 1\n\nIN PROGRESS BLOCKED (if any)\n- issue... - issue...\n```\n\n**Option B: Single stats row**\n```\n[Summary Cards Row]\n\nTypes: 🐛3 ✨4 📋1 Priority: P1:1 P2:4 P3:3\n\nIN PROGRESS READY (top 3)\n- issue... - issue...\n```\n\n**Option C: Kanban-lite summary**\n```\n[Summary Cards Row]\n\nREADY (3) IN PROGRESS (2) BLOCKED (0)\n- issue... - issue... (none)\n- issue... - issue...\n```\n\nRecommendation: Option C - shows actionable items, no redundancy","status":"open","priority":2,"issue_type":"feature","created_at":"2025-11-26T18:20:49.922324-08:00","updated_at":"2025-11-26T23:11:39.605441-08:00","labels":["ui"]} -{"id":"vsbeads-oqb","title":"Fix column resize in Issues list","description":"Column resize handles are visible and highlight on hover, but dragging doesn't properly resize columns. Title column can be made bigger but not smaller despite minWidth being reduced. The resize logic and CSS need debugging.","design":"Current implementation:\n- Resize handle on right edge of each th\n- onMouseDown captures startX and startWidth\n- mousemove calculates delta and updates column width in state\n- width applied via inline style\n\nIssues to investigate:\n- Is the state actually updating?\n- Is the width being applied correctly?\n- Is something else overriding the width?\n- Table layout behavior with/without table-layout: fixed","status":"open","priority":2,"issue_type":"bug","created_at":"2025-11-26T18:25:55.633017-08:00","updated_at":"2025-11-26T23:11:39.605193-08:00","labels":["ui"]} -{"id":"vsbeads-q29","title":"Setup GitHub Action to build VSIX on push to main","description":"Add GitHub Action workflow to build extension VSIX archive on push to main. Upload as artifact for manual download/testing.","design":"`.github/workflows/build.yml`\n- Trigger: push to main\n- Steps: checkout, setup bun, install, compile, vsce package\n- Upload VSIX as artifact\n- Could also publish to marketplace on tag (see PUBLISHING.md)","status":"closed","priority":2,"issue_type":"task","created_at":"2025-11-26T18:39:27.093552-08:00","updated_at":"2025-11-27T20:56:11.086242-08:00","closed_at":"2025-11-27T20:56:11.086242-08:00"} -{"id":"vsbeads-q6r","title":"Research: Agent-based VS Code extension development options","description":"Research and document the best approaches for enabling agent-driven VS Code extension development.\n\n## Areas to investigate\n\n### VS Code in Browser\n- code-server (https://github.com/coder/code-server)\n- VS Code Web / vscode.dev\n- Custom builds with local extension support\n\n### Browser Automation/MCP\n- Browser MCP (https://browsermcp.io/)\n- Chrome DevTools MCP (https://github.com/ChromeDevTools/chrome-devtools-mcp)\n- Playwright (https://playwright.dev/)\n- Other automation options\n\n### Required Capabilities\n- Start/stop VS Code, reload extensions\n- Take screenshots, see logs, debug inspector\n- Terminal/output panel access\n- Problem panel (type errors)\n- Command palette execution\n- Webview inspection\n- Test runner integration\n\n### Human Participation\n- VNC access for headless environments\n- X11 forwarding options\n- Screen sharing alternatives\n\n## Deliverable\nResearch document in sandbox/ with findings, trade-offs, and recommendations.","notes":"## Research Findings\n\n### Winning Stack\n```\nChrome DevTools MCP + code-server\n```\n\n### VS Code in Browser - DECIDED ✅\n| Option | Verdict |\n|--------|---------|\n| **code-server** | ✅ WINNER - native macOS, bd socket works |\n| OpenVSCode Server | ⚠️ Docker only, socket blocked |\n| vscode.dev | ❌ No local extension support |\n\n### Browser Automation - DECIDED ✅\n| Option | Verdict |\n|--------|---------|\n| **Chrome DevTools MCP** | ✅ WINNER - headed, console access, evaluate_script |\n| Browser MCP | ❌ Less capable |\n| Playwright MCP | Fallback if needed |\n\n### Capabilities Verified ✅\n- Start/stop VS Code: CLI `code-server` command\n- Reload extensions: DevTools \"Developer: Reload Window\"\n- Screenshots: `take_screenshot`\n- Console access: `list_console_messages`\n- Command palette: `press_key` Meta+Shift+P\n- Webview inspection: `take_snapshot` sees iframe content\n- Extension install: `code-server --install-extension`\n\n### Still to Verify\n- Terminal/output panel access\n- Problem panel (type errors via getDiagnostics?)\n- Test runner integration\n\n### Human Participation - SOLVED\nHeaded browser = human watches directly. No VNC/X11 needed.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-11-27T13:28:56.851044-08:00","updated_at":"2025-11-27T18:36:56.350768-08:00","closed_at":"2025-11-27T18:36:56.350768-08:00","dependencies":[{"issue_id":"vsbeads-q6r","depends_on_id":"vsbeads-3cn","type":"blocks","created_at":"2025-11-27T13:28:56.85284-08:00","created_by":"daemon"}]} -{"id":"vsbeads-q92","title":"Investigate real-time mutation updates not working","description":"Issues panel doesn't update when beads are created via CLI/MCP. The mutation watching infrastructure exists but may not be working correctly.","design":"Debug checklist:\n- Check \"Beads Dashboard\" output channel for mutation logs\n- Verify daemon is connected and mutation watch started\n- Check if getMutations RPC is returning data\n- Verify mutation timestamp filtering isn't too aggressive\n- Test with manual refresh to confirm data is available","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-11-26T18:41:19.755338-08:00","updated_at":"2025-11-26T23:44:58.678746-08:00","closed_at":"2025-11-26T23:44:58.678746-08:00"} -{"id":"vsbeads-rbp","title":"Bug: Edit mode status selector shows \"Unknown\"","description":"In DetailsView edit mode, the status dropdown shows \"Unknown\" as an option. This shouldn't be selectable - it's only for display when status can't be parsed.\n\nLocation: `src/webview/views/DetailsView.tsx` lines 201-212","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-11-27T19:01:47.079665-08:00","updated_at":"2025-11-27T19:19:24.818633-08:00","closed_at":"2025-11-27T19:19:24.818633-08:00"} -{"id":"vsbeads-rru","title":"Implement Dependency Graph as editor panel","description":"Reimplement the dependency graph view as an editor panel (like Settings) instead of sidebar webview. More space for visualization, better UX.","design":"Use `vscode.window.createWebviewPanel()` to open in editor area.\n- Register command to open graph\n- Panel shows in editor tabs like Settings/Keyboard Shortcuts\n- Can have full width for node visualization\n- Consider using a proper graph library (d3, cytoscape, etc)","status":"open","priority":3,"issue_type":"feature","created_at":"2025-11-26T18:39:29.324895-08:00","updated_at":"2025-11-26T23:11:39.606778-08:00","labels":["ui"]} -{"id":"vsbeads-rtk","title":"Render comments with markdown support","description":"Comments in the Details view are rendered as plain text. Should render with markdown support for code blocks, links, formatting, etc.\n\n**Current behavior:**\n- Comments display as raw text\n- Code snippets, links, bold/italic not rendered\n\n**Expected:**\n- Markdown formatting rendered in comment display\n- Code blocks with syntax highlighting\n- Links clickable\n- Lists, headers, etc. supported\n\n**Location:** `src/webview/views/DetailsView.tsx` (comment display section)","status":"open","priority":3,"issue_type":"feature","created_at":"2025-11-29T12:10:26.143399-08:00","updated_at":"2025-11-29T12:10:26.143399-08:00","labels":["ui"]} -{"id":"vsbeads-rz9","title":"Test: code-server vs OpenVSCode Server for local dev","description":"Compare the two VS Code in browser options for our use case.\n\n## Test Plan\n\n### OpenVSCode Server (Gitpod) - Test First\n```bash\ndocker run -p 3000:3000 gitpod/openvscode-server\n```\n- Open in Chrome DevTools MCP\n- Install vscode-beads VSIX\n- Verify extension loads, webviews work\n- Check console access for errors\n\n### code-server (Coder) - Compare\n```bash\nbrew install code-server\ncode-server --bind-addr localhost:8080\n```\n- Same tests as above\n- Compare: auth, settings persistence, extension compat\n\n## Decision Criteria\n- Extension installation ease\n- Webview support (critical for vscode-beads)\n- Console/error visibility\n- Closer to desktop VS Code behavior","notes":"## Final Verdict\n\n**Winner: code-server** for vscode-beads development on macOS.\n\n---\n\n## OpenVSCode Server (Docker) - PARTIAL ⚠️\n\n### Setup\n```bash\ndocker run -p 3000:3000 -v $(pwd):/home/workspace:cached gitpod/openvscode-server\n```\n\n### Results\n- ✅ Extension installs and loads\n- ✅ Webviews render correctly\n- ❌ **bd daemon socket blocked** by Docker isolation\n - Error: `connect ECONNREFUSED /home/workspace/.beads/bd.sock`\n\n### CLI Install\n```bash\ndocker exec \u003ccontainer-id\u003e /home/.openvscode-server/bin/openvscode-server \\\n --install-extension /home/workspace/vscode-beads-0.1.0.vsix\n```\n\n**Verdict**: Good for UI testing only, not full extension functionality.\n\n---\n\n## code-server (Native) - SUCCESS ✅\n\n### Setup\n```bash\nbrew install code-server\ncode-server --bind-addr localhost:8080 --auth none /path/to/project\n```\n\n### Results\n- ✅ Extension installs via CLI\n- ✅ Webviews render correctly\n- ✅ **bd daemon socket works** (native macOS access)\n- ✅ Full functionality - issues list, filters, everything\n\n### CLI Install\n```bash\ncode-server --install-extension /path/to/extension.vsix\n```\n\n**Verdict**: Full functionality, recommended for vscode-beads development.\n\n---\n\n## Comparison Table\n\n| Feature | code-server | OpenVSCode Server |\n|---------|-------------|-------------------|\n| Install | `brew install` | Docker only (macOS) |\n| bd socket | ✅ Works | ❌ Blocked |\n| CLI install | ✅ | ✅ |\n| Webviews | ✅ | ✅ |\n| Dev workflow | Full | UI testing only |","status":"closed","priority":1,"issue_type":"task","created_at":"2025-11-27T17:38:55.41521-08:00","updated_at":"2025-11-27T18:00:01.424195-08:00","closed_at":"2025-11-27T18:00:01.424195-08:00","dependencies":[{"issue_id":"vsbeads-rz9","depends_on_id":"vsbeads-3cn","type":"parent-child","created_at":"2025-11-27T18:50:55.1978-08:00","created_by":"daemon"}]} -{"id":"vsbeads-tty","title":"Improve dependency/dependent display in Details view - show type + title","description":"The \"Depends On\" and \"Blocks\" sections in Details view currently only show issue IDs as badges. Hard to understand what issues are without navigating back and forth.\n\nMinimum: Show type + title alongside ID\nIdeal: Mini issues list with type, title, status, priority columns\n\nLocation: `src/webview/views/DetailsView.tsx` (deps-list sections)","status":"closed","priority":3,"issue_type":"feature","created_at":"2025-11-27T20:47:54.611811-08:00","updated_at":"2025-11-28T00:24:25.518796-08:00","closed_at":"2025-11-28T00:24:25.518796-08:00"} -{"id":"vsbeads-ua2","title":"Research: code execution skill as MCP replacement","description":"Future work: Build skill with TypeScript utilities as eventual MCP replacement.\n\n**Approach:**\n- `.claude/skills/vscode-dev/SKILL.md` + supporting files\n- Functions: `reloadWindow()`, `clickElement()`, `getElementContent()`\n- Execute via Bash, return minimal output\n- Eventually deprecate Chrome DevTools MCP dependency\n\n**Note:** Skills share parent context (no isolation), but if output is minimal, that's fine.","status":"open","priority":3,"issue_type":"task","created_at":"2025-11-28T21:52:30.285657-08:00","updated_at":"2025-11-28T21:52:30.285657-08:00","labels":["dx"],"dependencies":[{"issue_id":"vsbeads-ua2","depends_on_id":"vsbeads-5c0","type":"parent-child","created_at":"2025-11-28T21:52:42.143962-08:00","created_by":"daemon"}]} -{"id":"vsbeads-uak","title":"Research: macOS window screenshot for full Chrome capture","description":"Browser MCP tools only capture page viewport, not full Chrome window (including DevTools).\n\nResearch how to capture full window via macOS:\n- `screencapture -l \u003cwindowid\u003e` requires finding window ID\n- AppleScript can list windows but may need permissions\n- Useful for showing agent what's visible in DevTools panel\n\nLow priority - programmatic console/network access works for most cases.","status":"open","priority":3,"issue_type":"task","created_at":"2025-11-27T17:34:17.25294-08:00","updated_at":"2025-11-27T17:34:17.25294-08:00","labels":["dx"],"dependencies":[{"issue_id":"vsbeads-uak","depends_on_id":"vsbeads-3cn","type":"parent-child","created_at":"2025-11-27T18:50:55.301246-08:00","created_by":"daemon"}]} -{"id":"vsbeads-vlk","title":"viewContainer/title buttons not showing in BEADS header","description":"Configured beads.switchProject and beads.refresh commands in viewContainer/title menu with `when: viewContainer == beads`, but no buttons appear in the BEADS header. Only the [...] overflow menu shows.","design":"VS Code does not support extension-contributed inline buttons in viewContainer title bars. The `viewContainer/title` menu contribution point only adds items to the overflow/context menu.\n\nThis is confirmed by microsoft/vscode#74221 which was closed as out-of-scope.","notes":"**Finding:** This is a VS Code platform limitation, not a bug in our extension.\n\nPer [microsoft/vscode#74221](https://github.com/microsoft/vscode/issues/74221):\n- Built-in view containers (Run and Debug, Search) can have title bar buttons\n- Extension view containers can ONLY add to overflow menu (...)\n- Feature request was rejected as \"out-of-scope\"\n\n**Current workaround:** Use `view/title` to add buttons to individual view headers (e.g., Issues panel title bar) instead of the container title bar.\n\n**Status:** Won't fix - VS Code limitation","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-11-26T18:30:18.437949-08:00","updated_at":"2025-11-27T00:26:50.564762-08:00","closed_at":"2025-11-27T00:26:50.564762-08:00"} -{"id":"vsbeads-vp1","title":"Implement Kanban board as editor panel","description":"Reimplement Kanban board as an editor panel instead of sidebar webview. Sidebar is too narrow for a useful Kanban view.","design":"Use `vscode.window.createWebviewPanel()` to open in editor area.\n- Register command to open Kanban\n- Full-width columns for drag-and-drop\n- Cards show status, priority, assignee\n- Drag between columns to change status","status":"open","priority":3,"issue_type":"feature","created_at":"2025-11-26T18:39:31.95544-08:00","updated_at":"2025-11-26T23:11:39.606519-08:00","labels":["ui"]} -{"id":"vsbeads-wk9","title":"Make badge colors configurable via settings","description":"Expose status, priority, and type badge colors as VS Code settings so users can customize them. Should support both background and text colors for each value, with consideration for light/dark themes.","design":"Settings structure could be:\n- `beads.colors.priority.P0`: { bg, text }\n- `beads.colors.priority.P1`: { bg, text }\n- `beads.colors.status.open`: { bg, text }\n- `beads.colors.type.bug`: { bg, text }\n\nOr a single object per category. Consider theme-aware defaults.","status":"open","priority":3,"issue_type":"feature","created_at":"2025-11-26T17:57:59.132401-08:00","updated_at":"2025-11-26T23:11:39.607417-08:00","labels":["ui"]} -{"id":"vsbeads-xgn","title":"Refine browser-task agent instructions","description":"Based on testing results, refine:\n\n- System prompt for optimal response format\n- Standard task patterns (reload, click sequence, verify)\n- What to include/exclude in summaries\n- Error reporting format","status":"open","priority":2,"issue_type":"task","created_at":"2025-11-28T21:52:30.218145-08:00","updated_at":"2025-11-28T21:52:30.218145-08:00","labels":["dx"],"dependencies":[{"issue_id":"vsbeads-xgn","depends_on_id":"vsbeads-5c0","type":"parent-child","created_at":"2025-11-28T21:52:42.094448-08:00","created_by":"daemon"},{"issue_id":"vsbeads-xgn","depends_on_id":"vsbeads-hgm","type":"blocks","created_at":"2025-11-28T21:52:49.395613-08:00","created_by":"daemon"}]} -{"id":"vsbeads-yjr","title":"Create browser-task sub-agent configuration","description":"Create `.claude/agents/browser-task.md` with:\n\n```markdown\n---\nname: browser-task\ndescription: Execute multi-step browser automation tasks in VS Code/code-server\ntools: mcp__chrome-devtools__*\nmodel: haiku\n---\n\nExecute browser automation tasks and return minimal summaries.\nDo not return full DOM snapshots. Summarize results concisely.\nIf errors occur, return specific error details.\n```\n\n**Questions to verify:**\n- Can we use glob `mcp__chrome-devtools__*` or must list each tool?\n- Should model be haiku (fast) or sonnet (better instruction following)?","status":"open","priority":1,"issue_type":"task","created_at":"2025-11-28T21:52:14.912814-08:00","updated_at":"2025-11-28T21:52:14.912814-08:00","labels":["dx"],"dependencies":[{"issue_id":"vsbeads-yjr","depends_on_id":"vsbeads-5c0","type":"parent-child","created_at":"2025-11-28T21:52:41.99215-08:00","created_by":"daemon"}]} -{"id":"vsbeads-zbt","title":"Test: OpenVSCode Server native (non-Docker) for bd socket access","description":"Test running OpenVSCode Server directly on macOS (not in Docker) to get native bd daemon socket access.\n\n## Motivation\nDocker isolation blocks access to `bd.sock` Unix socket. Native run should have full socket access.\n\n## Test Plan\n1. Install openvscode-server via npm or download release\n2. Run on localhost:8080 (different port from Docker instance)\n3. Install vscode-beads VSIX\n4. Verify Beads panel connects to daemon successfully\n5. Compare dev experience with Docker version\n\n## Success Criteria\n- Extension loads\n- Webviews work\n- bd daemon socket connects (no ECONNREFUSED)\n- Issues display in panel","status":"closed","priority":1,"issue_type":"task","created_at":"2025-11-27T17:53:52.58167-08:00","updated_at":"2025-11-27T17:57:42.340387-08:00","closed_at":"2025-11-27T17:57:42.340387-08:00","dependencies":[{"issue_id":"vsbeads-zbt","depends_on_id":"vsbeads-3cn","type":"parent-child","created_at":"2025-11-27T18:50:55.172572-08:00","created_by":"daemon"}]} -{"id":"vsbeads-zkc","title":"Test: code-server for native macOS dev with bd socket access","description":"Test code-server (Coder) running natively on macOS for vscode-beads development.\n\n## Motivation\n- openvscode-server only available via Docker on macOS\n- Docker isolation blocks bd daemon socket access\n- code-server runs natively, should have full socket access\n\n## Setup\n```bash\nbrew install code-server\ncode-server --bind-addr localhost:8080\n```\n\n## Test Plan\n1. Install code-server via brew\n2. Start on localhost:8080\n3. Install vscode-beads VSIX\n4. Verify Beads panel connects to bd daemon\n5. Test Chrome DevTools MCP integration\n6. Document CLI options for extension management\n\n## Success Criteria\n- Extension loads\n- Webviews work \n- bd daemon socket connects (no ECONNREFUSED)\n- Issues display in panel","notes":"## Results - SUCCESS ✅\n\n### Setup\n```bash\nbrew install code-server\ncode-server --bind-addr localhost:8080 --auth none /path/to/project\n```\n\n### CLI Extension Management\n```bash\ncode-server --install-extension /path/to/extension.vsix\ncode-server --list-extensions\n```\n\n### Test Results\n- ✅ VS Code loads in browser at localhost:8080\n- ✅ Extension installs via CLI\n- ✅ Extension loads after reload + trust folder\n- ✅ Beads tab appears in activity bar\n- ✅ Webviews render correctly\n- ✅ **bd daemon socket connects** (no ECONNREFUSED!)\n- ✅ Issues list displays all 26 issues\n- ✅ Filter controls, project selector work\n\n### Why It Works\ncode-server runs natively on macOS, so it has direct access to the Unix socket at `.beads/bd.sock`. No Docker isolation.\n\n### Dev Workflow\n1. `bun run watch` (local rebuild)\n2. `bun run package` (create VSIX)\n3. `code-server --install-extension vscode-beads-*.vsix`\n4. DevTools MCP: \"Developer: Reload Window\"\n5. Test extension in browser\n\n### Comparison vs OpenVSCode Server (Docker)\n| Feature | code-server | OpenVSCode Server |\n|---------|-------------|-------------------|\n| Install | `brew install` | Docker only on macOS |\n| bd socket | ✅ Works | ❌ Docker isolation |\n| CLI install | ✅ | ✅ |\n| Webviews | ✅ | ✅ |\n\n**Winner: code-server** for vscode-beads development on macOS.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-11-27T17:57:42.397471-08:00","updated_at":"2025-11-27T17:59:55.75636-08:00","closed_at":"2025-11-27T17:59:55.75636-08:00","dependencies":[{"issue_id":"vsbeads-zkc","depends_on_id":"vsbeads-3cn","type":"parent-child","created_at":"2025-11-27T18:50:55.146686-08:00","created_by":"daemon"}]} diff --git a/.beads/deletions.jsonl b/.beads/deletions.jsonl index 132aed3..0aef015 100644 --- a/.beads/deletions.jsonl +++ b/.beads/deletions.jsonl @@ -15,4 +15,3 @@ {"id":"vsbeads-c04","ts":"2025-11-28T23:54:29.184309Z","by":"git-history-backfill","reason":"recovered from git history (pruned from manifest)"} {"id":"vsbeads-e4j","ts":"2025-11-28T23:54:29.190131Z","by":"git-history-backfill","reason":"recovered from git history (pruned from manifest)"} {"id":"vsbeads-92s","ts":"2025-11-28T23:54:29.195367Z","by":"git-history-backfill","reason":"recovered from git history (pruned from manifest)"} -{"id":"vsbeads-gfr","ts":"2025-11-29T01:24:30.363325Z","by":"git-history-backfill","reason":"recovered from git history (pruned from manifest)"} diff --git a/.beads/issues.jsonl b/.beads/issues.jsonl new file mode 100644 index 0000000..ff08444 --- /dev/null +++ b/.beads/issues.jsonl @@ -0,0 +1,97 @@ +{"id":"vsbeads-09ad","title":"Details view: dependency list doesn't refresh when dependent status changes","description":"When a dependent bead's status changes (e.g., open → in_progress), the dependency list in Details view doesn't update until user navigates away and back. Likely missing refresh trigger when bead data updates.","status":"open","priority":2,"issue_type":"bug","created_at":"2025-12-22T01:20:55.37934-08:00","updated_at":"2025-12-22T01:20:55.37934-08:00","labels":["ui"]} +{"id":"vsbeads-0e0","title":"Hook flag mismatch: --no-git-history passed to bd import","description":"## Problem\n\nThe post-checkout hook calls:\n```bash\nbd sync --import-only --no-git-history\n```\n\nThis fails because when `--import-only` is used, `bd sync` internally calls `bd import` and passes `--no-git-history` to it. But `bd import` doesn't have that flag.\n\n## Error\n```\nError importing: import failed: exit status 1\nError: unknown flag: --no-git-history\nUsage:\n bd import [flags]\n```\n\n## Expected\n`bd sync --import-only --no-git-history` should work, or the hook should use different flags.\n\n## Workaround\nThe warning is harmless - `bd sync` works fine when called manually.","status":"open","priority":2,"issue_type":"bug","created_at":"2025-12-17T02:18:27.830006-08:00","updated_at":"2025-12-17T02:18:27.830006-08:00","labels":["beads","hooks"]} +{"id":"vsbeads-0l0","title":"Details panel sometimes delays updating when selecting issue","description":"When clicking on an issue in the Issues list, the Details panel sometimes doesn't update immediately. There's a noticeable delay (few seconds) where the old issue remains displayed, making it appear broken.\n\n**Observed behavior:**\n- Click issue in Issues list\n- Details panel shows previous issue (or loading state)\n- After a few seconds, the correct issue appears\n\n**Expected behavior:**\n- Details panel should update immediately on selection, or show a clear loading indicator\n\n**Possible causes:**\n- Internal data reload triggered by selection\n- Race condition between selection event and data fetch\n- Daemon polling interfering with UI updates\n- Multiple re-renders during state transitions\n\n**Investigation needed:**\n- Check if `selectedBeadId` change triggers unnecessary data refetch\n- Look at timing of `postMessage` flow between webview and extension\n- Check if daemon mutation events are causing intermediate states","status":"open","priority":2,"issue_type":"bug","estimated_minutes":120,"created_at":"2025-12-04T17:09:05.568882-08:00","updated_at":"2025-12-05T12:01:16.715451-08:00","labels":["bug","ui","ux"]} +{"id":"vsbeads-1le","title":"User customization and preferences","description":"Settings, preferences, and customization options for personalizing the extension experience.","status":"open","priority":2,"issue_type":"epic","created_at":"2025-12-10T02:09:38.170459-08:00","updated_at":"2025-12-10T02:09:38.170459-08:00","labels":["ui"]} +{"id":"vsbeads-1vr","title":"Extract Daemon* API types to separate file","description":"Refactor daemon API types out of types.ts into a dedicated file (e.g., daemon-types.ts).\n\nCurrent inline types to extract:\n- `DaemonBeadDependency` (already defined)\n- `DaemonComment` (inline in issueToWebviewBead signature)\n- Full daemon issue structure (the large inline type in issueToWebviewBead)\n\nBenefits:\n- Clear separation between daemon API types and internal/webview types\n- Easier to update when daemon API changes\n- Better documentation of the daemon contract","status":"open","priority":3,"issue_type":"chore","estimated_minutes":90,"created_at":"2025-11-28T15:55:07.524718-08:00","updated_at":"2025-12-04T11:59:33.211027-08:00","labels":["backend"]} +{"id":"vsbeads-2byn","title":"Markdown links to relative files should open in VS Code editor","notes":"## Problem\nMarkdown links to relative files (e.g., `[config](./src/config.ts)`) in bead content don't do anything when clicked.\n\n## Expected\nClicking a relative file link should open the file in VS Code editor.\n\n## Implementation\n1. Intercept link clicks in markdown renderer\n2. Detect relative file paths (starts with `./`, `../`, or no protocol)\n3. Resolve path relative to workspace root\n4. Use VS Code API: `vscode.commands.executeCommand('vscode.open', vscode.Uri.file(resolvedPath))`\n\n## Considerations\n- Handle missing files gracefully (show error toast)\n- Support line number anchors? e.g., `./file.ts#L42`\n- External URLs should still open in browser","status":"closed","priority":2,"issue_type":"feature","assignee":"jdillon","created_at":"2025-12-29T00:49:31.625156-08:00","created_by":"jason","updated_at":"2025-12-29T13:46:41.907893-08:00","closed_at":"2025-12-29T13:46:41.907903-08:00","labels":["ui"],"dependencies":[{"issue_id":"vsbeads-2byn","depends_on_id":"vsbeads-un3l","type":"parent-child","created_at":"2025-12-29T11:39:53.301409-08:00","created_by":"daemon"}]} +{"id":"vsbeads-2t7n","title":"Add BeadsStore with caching and on-demand loading","status":"open","priority":2,"issue_type":"feature","created_at":"2025-12-25T17:42:12.08201-08:00","updated_at":"2025-12-25T17:42:12.08201-08:00","labels":["architecture","backend"]} +{"id":"vsbeads-3cn","title":"Agent-Driven VS Code Extension Development","description":"Enable Claude to effectively develop and debug VS Code extensions through browser automation and MCP integration.\n\nGoals:\n- Run VS Code in a browser (code-server or VS Code Web) with locally-built extensions\n- Control VS Code via MCP (Browser MCP, Chrome DevTools MCP, or Playwright)\n- Access debugging tools: screenshots, logs, inspector, terminal output\n- Enable human participation via VNC/X11 for guidance and review\n\nSuccess criteria:\n- Claude can start/stop VS Code, reload extensions, run commands\n- Claude can see UI state, logs, and errors programmatically\n- Jason can observe and guide Claude's actions in real-time","status":"open","priority":2,"issue_type":"epic","estimated_minutes":1800,"created_at":"2025-11-27T13:28:48.987495-08:00","updated_at":"2025-12-04T11:58:55.337807-08:00","labels":["dx"],"comments":[{"id":2,"issue_id":"vsbeads-3cn","author":"jason","text":"Context is a problem...","created_at":"2025-11-28T03:11:56Z"},{"id":21,"issue_id":"vsbeads-3cn","author":"jason","text":"a very big problem","created_at":"2025-11-28T04:53:09Z"},{"id":22,"issue_id":"vsbeads-3cn","author":"jason","text":"Initial design, we moved on to some real exploration on wonderland/platform to test with mobile-mcp. Will follow up here after more work is done there.","created_at":"2025-12-01T02:09:06Z"}]} +{"id":"vsbeads-3ly3","title":"Hierarchical IDs create implicit parent-child not exposed by daemon API","notes":"## Summary\nHierarchical bead IDs (`\u003cparent-id\u003e.\u003cN\u003e`) create an **implicit** parent-child relationship based on ID naming convention. This implicit relationship:\n1. Is NOT exposed through the daemon API\n2. Blocks adding explicit `parent-child` dependencies\n3. Results in \"orphaned\" parent-child relationships invisible to vscode-beads\n\n## Reproduction\n```bash\n# Create parent\nbd create --title=\"Parent\" --type=epic\n# Output: vsbeads-515e\n\n# Create child with --parent (works correctly - adds BOTH hierarchical ID AND explicit dep)\nbd create --title=\"Child\" --type=task --parent=vsbeads-515e\n# Output: vsbeads-515e.1 (hierarchical ID)\n# Also adds explicit parent-child dependency record\n\n# Try to manually add parent-child dep (BLOCKED)\nbd dep add vsbeads-515e.1 vsbeads-515e --type=parent-child\n# Error: cannot add dependency: vsbeads-515e.1 is already a child of vsbeads-515e.\n# Children inherit dependency on parent completion via hierarchy.\n# Adding an explicit dependency would create a deadlock\n```\n\n## Root Cause\nThe `isChildOf()` function checks if an ID follows hierarchical pattern (`parent.N`):\n- If true, blocks adding explicit `parent-child` dependency (bd-nim5 fix)\n- But daemon API doesn't synthesize this implicit relationship in dependency queries\n- vscode-beads only sees explicit dependencies from daemon\n\n## Upstream Code References\n| File | Line | Function | Purpose |\n|------|------|----------|---------|\n| `cmd/bd/dep.go` | 30 | `isChildOf()` | Checks if ID follows hierarchical pattern |\n| `cmd/bd/dep.go` | 142-146 | dep add | Blocks child→parent deps with deadlock error |\n| `internal/rpc/server_labels_deps_comments.go` | 15-24 | `isChildOf()` | Same check in daemon RPC |\n| `internal/rpc/server_labels_deps_comments.go` | 35-42 | `DepAdd()` | Daemon-side blocking |\n| `internal/storage/sqlite/ids.go` | 44-64 | `IsHierarchicalID()` | Parses hierarchical IDs |\n| `internal/storage/sqlite/ids.go` | 70-91 | `ParseHierarchicalID()` | Extracts parent ID and child number |\n\n## Impact\n- Issues imported with hierarchical IDs (e.g., from Linear) may lack explicit dependencies\n- Parent-child relationships invisible in vscode-beads UI\n- Cannot manually fix by adding dependency (blocked)\n- Dependency display shows \"-\" for parent/children columns\n\n## Possible Solutions\n1. **Upstream fix**: Daemon API should synthesize implicit parent-child from hierarchical IDs\n2. **vscode-beads workaround**: Parse hierarchical IDs client-side to infer relationships\n3. **Data migration**: Script to add missing explicit deps for existing hierarchical IDs\n\n## Related\n- bd-nim5: Original fix that added the blocking behavior\n- GH#728: Child counter updates for explicit child IDs\n- `bd doctor --fix-child-parent`: Opt-in fix for child→parent deps","status":"closed","priority":0,"issue_type":"bug","assignee":"jdillon","created_at":"2025-12-27T20:50:53.075865-08:00","updated_at":"2025-12-29T11:36:24.070757-08:00","closed_at":"2025-12-29T11:36:24.070757-08:00","close_reason":"Testing shows mechanism works correctly. Will file new issue if reproduction steps found in other project.","labels":["backend","daemon","upstream"],"dependencies":[{"issue_id":"vsbeads-3ly3","depends_on_id":"vsbeads-yhok","type":"related","created_at":"2025-12-27T21:03:11.869224-08:00","created_by":"daemon"},{"issue_id":"vsbeads-3ly3","depends_on_id":"vsbeads-yhok.2","type":"related","created_at":"2025-12-27T21:03:11.911184-08:00","created_by":"daemon"},{"issue_id":"vsbeads-3ly3","depends_on_id":"vsbeads-90cp","type":"related","created_at":"2025-12-27T21:03:11.951047-08:00","created_by":"daemon"}],"comments":[{"id":38,"issue_id":"vsbeads-3ly3","author":"jason","text":"## Testing Findings (2025-12-27)\n\nTested both parent-child creation methods - both work correctly:\n\n### Test 1: Using --parent flag\n```bash\nbd create --title=\"Test Epic\" --type=epic # → vsbeads-yhok\nbd create --title=\"Child task\" --type=task --parent=vsbeads-yhok # → vsbeads-yhok.2\n```\n**Result**: ✓ Hierarchical ID created, explicit `parent-child` dep added, shows in daemon API\n\n### Test 2: Manual association\n```bash\nbd create --title=\"Standalone task\" --type=task # → vsbeads-90cp\nbd dep add vsbeads-90cp vsbeads-yhok --type=parent-child\n```\n**Result**: ✓ Regular ID, manual dep works, shows in daemon API\n\n### Revised Hypothesis\nThe bug may be triggered by:\n1. **Imported hierarchical IDs** without explicit dep records\n2. **Misuse of ID format** (manually setting `.N` suffix without using `--parent`)\n3. **Data migration edge cases** from older beads versions\n\nThe `isChildOf()` blocking logic assumes hierarchical IDs always have implicit relationships, but if the explicit dep record is missing, the relationship becomes invisible yet unfixable.\n\n### Test Issues\n- vsbeads-yhok (epic)\n- vsbeads-yhok.2 (child via --parent)\n- vsbeads-90cp (child via manual dep add)\n\nAll showing correct parent-child relationships in daemon API.","created_at":"2025-12-28T05:03:05Z"}]} +{"id":"vsbeads-3tx","title":"Fix pre-existing TypeScript errors","description":"Fixed 6 pre-existing TypeScript errors that were failing CI:\n\n1. DependencyGraph type not defined - added placeholder interface\n2. WebviewSettings missing userId in backend/types.ts - synced with webview types\n3. IssuesView filtering for non-existent 'unknown' status - removed dead code\n4. columnMenuRef typed as HTMLDivElement but used on \u003cth\u003e - fixed to HTMLTableCellElement\n5. WebviewMessage missing 'openFile' type - added to union\n6. BeadDetailsViewProvider updateArgs cast - fixed type assertion through unknown\n\nAll fixes applied in PR #62.","status":"closed","priority":3,"issue_type":"bug","assignee":"jdillon","owner":"jdillon@users.noreply.github.com","created_at":"2026-01-31T05:00:52.208165-08:00","created_by":"Jason Dillon","updated_at":"2026-01-31T05:01:18.364355-08:00","closed_at":"2026-01-31T05:01:18.364355-08:00","close_reason":"Fixed in feat/kanban-improvements branch, commit eb7df5d","labels":["dx"]} +{"id":"vsbeads-44c","title":"Add \"me\" option to assignee filter for saved filters support","description":"The assignee filter dropdown should include a special \"me\" option that resolves to the current user. This enables saved filters like \"not closed and assigned to me\" that work across different users/machines.","status":"open","priority":2,"issue_type":"feature","created_at":"2025-12-11T02:15:28.470012-08:00","updated_at":"2025-12-11T02:15:28.470012-08:00","labels":["filters","ui"],"dependencies":[{"issue_id":"vsbeads-44c","depends_on_id":"vsbeads-gr5","type":"related","created_at":"2025-12-11T02:15:47.790211-08:00","created_by":"daemon","metadata":"{}"}]} +{"id":"vsbeads-4e7","title":"E2E Testing Infrastructure with Playwright","description":"Establish automated end-to-end testing for the VS Code extension using Playwright with code-server.\n\n**Goal:** Prevent regressions when making UI/feature changes (like the TanStack Table migration).\n\n**Strategy:**\n- Playwright for browser automation (Microsoft-recommended, excellent iframe/webview support)\n- code-server as the test target (VS Code in browser)\n- Nightly runs on GitHub Actions (not blocking PRs, but catches regressions)\n- Manual trigger option for PR testing when needed\n\n**Success criteria:**\n- Tests cover core user flows: view issues, select issue, see details\n- Tests run reliably in CI (no flakiness)\n- Failures produce actionable artifacts (screenshots, traces)\n- Test suite runs in \u003c 5 minutes","status":"open","priority":1,"issue_type":"epic","created_at":"2025-12-05T00:22:22.058747-08:00","updated_at":"2025-12-10T00:18:15.564344-08:00","labels":["ci","dx","testing"]} +{"id":"vsbeads-4f0","title":"Investigate i18n options for VS Code extension","description":"Research internationalization (i18n) options for VS Code extensions. Determine what's needed to support multiple languages for UI strings, commands, settings, etc.","status":"open","priority":3,"issue_type":"task","created_at":"2025-12-11T01:38:58.666866-08:00","updated_at":"2025-12-11T01:38:58.666866-08:00","labels":["dx","research"]} +{"id":"vsbeads-4m5i","title":"Periodic upstream beads sync check","description":"Periodically check steveyegge/beads for changes that affect vscode-beads:\n\n**What to check:**\n- Daemon API changes (internal/rpc/protocol.go, internal/types/types.go)\n- New bead types (issue_type values)\n- CLI command/flag changes\n\n**How to check:**\n```bash\ncd ~/ws/reference/beads \u0026\u0026 git fetch \u0026\u0026 git pull\ngit log --oneline -20 # See recent commits\ngit diff \u003clast-checked-commit\u003e..HEAD -- internal/types/ internal/rpc/\n```\n\n**What to update:**\n- BeadsDaemonClient.ts types\n- docs/reference/beads-daemon-api.md\n- src/webview/types.ts (BeadType, colors, icons)\n\nThis is a recurring maintenance task, not a one-time fix.","status":"closed","priority":4,"issue_type":"chore","assignee":"jdillon","created_at":"2025-12-25T17:01:12.311585-08:00","updated_at":"2025-12-29T13:40:32.810063-08:00","closed_at":"2025-12-29T13:40:32.810063-08:00","close_reason":"Created /upstream-sync command with process guide, docs/upstream-sync/ for reports, and reference doc tracking","labels":["maintenance"],"dependencies":[{"issue_id":"vsbeads-4m5i","depends_on_id":"vsbeads-un3l","type":"blocks","created_at":"2025-12-29T11:45:27.253083-08:00","created_by":"daemon"}]} +{"id":"vsbeads-4n2","title":"Improve Details panel UX - consider inline expansion vs separate panel","description":"VS Code WebviewView API has show() but no collapse/hide method. Current behavior: Details panel auto-expands when bead selected but can't auto-collapse when cleared.\n\nOptions to explore:\n- Inline expansion in the Issues list (like a details row)\n- Editor panel instead of sidebar panel\n- TreeView with expandable items\n- Accept limitation with compact empty state (current)","status":"open","priority":3,"issue_type":"feature","estimated_minutes":300,"created_at":"2025-11-26T16:33:59.306123-08:00","updated_at":"2025-12-04T12:00:11.87706-08:00","labels":["ui"]} +{"id":"vsbeads-4rj","title":"Retry button doesn't reload details panel","description":"When clicking Retry after daemon reconnects, the Issues panel reloads but the Details panel does not refresh. Both panels should refresh on retry.","status":"open","priority":3,"issue_type":"bug","estimated_minutes":60,"created_at":"2025-11-29T15:04:48.965543-08:00","updated_at":"2025-12-04T11:59:27.840917-08:00","labels":["ui"]} +{"id":"vsbeads-4v9","title":"Show helpful message when no project is open instead of \"Loading...\"","description":"When VS Code has no folder opened, the Issues panel shows \"Loading...\" indefinitely. Should show a helpful message like \"Open a folder to view issues\" instead.","status":"open","priority":3,"issue_type":"bug","created_at":"2025-12-16T12:05:33.472472-08:00","updated_at":"2025-12-16T12:05:33.472472-08:00","labels":["ui","ux"]} +{"id":"vsbeads-515e","title":"Test parent for hierarchy","status":"tombstone","priority":3,"issue_type":"epic","created_at":"2025-12-27T20:45:41.415098-08:00","updated_at":"2025-12-27T20:46:34.953177-08:00","deleted_at":"2025-12-27T20:46:34.953177-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"epic"} +{"id":"vsbeads-515e.1","title":"Test child using --parent","status":"tombstone","priority":3,"issue_type":"task","created_at":"2025-12-27T20:45:47.180329-08:00","updated_at":"2025-12-27T20:46:34.905009-08:00","dependencies":[{"issue_id":"vsbeads-515e.1","depends_on_id":"vsbeads-515e","type":"parent-child","created_at":"2025-12-27T20:45:47.190475-08:00","created_by":"daemon"}],"deleted_at":"2025-12-27T20:46:34.905009-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"} +{"id":"vsbeads-57m","title":"Search should show filtered-out matches or offer to clear filters","description":"When searching by bead ID or text, results may be hidden by active filters (status, type, priority). This is confusing - you search for \"vsbeads-abc\" and see nothing because it's closed.\n\nOptions to consider:\n1. **Bypass filters when searching** - Global search ignores column filters\n2. **Show \"hidden by filter\" indicator** - \"3 matches hidden by filters\" with option to clear\n3. **Show filtered matches differently** - Grayed out rows at bottom showing filtered-out matches\n4. **Auto-clear filters on exact ID match** - If search matches a bead ID exactly, clear filters and select it","status":"open","priority":3,"issue_type":"feature","estimated_minutes":120,"created_at":"2025-12-04T16:58:53.89163-08:00","updated_at":"2025-12-05T12:01:16.828888-08:00","labels":["ui","ux"],"dependencies":[{"issue_id":"vsbeads-57m","depends_on_id":"vsbeads-wgr","type":"parent-child","created_at":"2025-12-17T16:53:56.291691-08:00","created_by":"daemon","metadata":"{}"}]} +{"id":"vsbeads-5c0","title":"Sub-agent browser automation to reduce context bloat","description":"Use sub-agents with isolated context windows to handle Chrome DevTools MCP operations, preventing context bloat in main conversation.\n\n**Problem:** Chrome DevTools MCP returns ~400 lines (full a11y tree) after every action, burning context fast.\n\n**Solution:** Delegate browser operations to short-lived sub-agents that:\n- Have their own context window (bloat stays there)\n- Return only minimal summaries to main agent\n- Batch multiple operations per invocation\n\n**Approach:**\n1. Create `browser-task` sub-agent with only Chrome DevTools MCP tools\n2. Focused instructions: execute task, return minimal summary\n3. Use for: reload window, click sequences, verify UI state","status":"open","priority":2,"issue_type":"epic","estimated_minutes":600,"created_at":"2025-11-28T21:52:14.860652-08:00","updated_at":"2025-12-04T11:58:51.219932-08:00","labels":["dx"],"dependencies":[{"issue_id":"vsbeads-5c0","depends_on_id":"vsbeads-3cn","type":"parent-child","created_at":"2025-11-28T21:52:42.200798-08:00","created_by":"daemon","metadata":"{}"},{"issue_id":"vsbeads-5c0","depends_on_id":"vsbeads-n64","type":"related","created_at":"2025-11-28T21:52:42.256772-08:00","created_by":"daemon","metadata":"{}"}]} +{"id":"vsbeads-66j","title":"Merge kanban board PR #56","description":"Merge the contributed kanban board view from micahbrich.\n\n## Context\n- **PR**: https://github.com/jdillon/vscode-beads/pull/56\n- **Author**: micahbrich (trusted contributor, 16yr GitHub account)\n- **Security review**: PASSED - no vulnerabilities\n- **Code review**: Clean, follows project patterns\n\n## Files Added/Changed\n- `src/webview/views/KanbanBoard.tsx` (new, ~73 lines)\n- `src/webview/views/IssuesView.tsx` (+28 lines for toggle)\n- `src/webview/styles.css` (+150 lines kanban styles)\n- `README.md` (feature documentation)\n\n## Acceptance Criteria\n- [ ] PR merged to main\n- [ ] Build passes\n- [ ] Toggle between Table/Board works\n- [ ] Cards show title, type badge, priority badge, assignee\n- [ ] Closed column collapsed by default\n- [ ] Click card opens details panel\n\n## Open Questions\n- Should we squash commits or preserve history?\n- Tag contributor in release notes?","status":"closed","priority":2,"issue_type":"task","owner":"jdillon@users.noreply.github.com","created_at":"2026-01-31T03:47:32.434094-08:00","created_by":"Jason Dillon","updated_at":"2026-01-31T03:51:05.563564-08:00","closed_at":"2026-01-31T03:51:05.563564-08:00","close_reason":"PR #56 merged to main","labels":["ui"],"dependencies":[{"issue_id":"vsbeads-66j","depends_on_id":"vsbeads-h5f","type":"child","created_at":"2026-01-31T03:48:15.832452-08:00","created_by":"Jason Dillon"}]} +{"id":"vsbeads-695","title":"Support detecting beads database/daemon when using worktrees","description":"When using git worktrees, the extension should properly detect the .beads directory and daemon socket location.\n\n**Problem:**\nGit worktrees have their .git as a file pointing to the main worktree's .git directory, not a directory. The current detection logic may not handle this correctly.\n\n**Expected behavior:**\n- Detect .beads directory in worktree root\n- Fall back to main worktree if not found in current worktree\n- Daemon socket detection should work across worktrees\n- Project manager should handle worktree scenarios\n\n**Investigation needed:**\n- Test current behavior with worktrees\n- Check how .beads location is resolved\n- Verify daemon socket path resolution\n- Document expected worktree patterns (shared .beads vs per-worktree)","status":"open","priority":2,"issue_type":"feature","owner":"jdillon@users.noreply.github.com","created_at":"2026-01-30T18:04:47.926774-08:00","created_by":"Jason Dillon","updated_at":"2026-01-30T18:04:47.926774-08:00","labels":["backend","daemon"]} +{"id":"vsbeads-6mx","title":"Support file attachments via beads-attachments directory","description":"Consider supporting file attachments (screenshots, docs) by:\n\n1. Store files in a `beads-attachments/` directory in repo (or on beads-metadata branch)\n2. Extension provides \"Attach file\" action that:\n - Copies/moves file to `beads-attachments/\u003cissue-id\u003e/filename.png`\n - Adds markdown link/embed to issue body or as a comment\n3. Render inline in Details panel when markdown contains `![](beads-attachments/...)`\n\nUse cases:\n- \"Look at this screenshot\" during bug reports\n- Design mockups attached to feature issues\n- Reference docs for complex tasks\n\nQuestions:\n- Store on main branch or beads-metadata branch?\n- Naming convention: `beads-attachments/\u003cissue-id\u003e/` or flat with prefixes?\n- Auto-cleanup when issue is compacted/deleted?","status":"open","priority":4,"issue_type":"feature","estimated_minutes":480,"created_at":"2025-11-30T01:18:31.564585-08:00","updated_at":"2025-12-04T12:00:13.942853-08:00","labels":["ui"]} +{"id":"vsbeads-79pr","title":"Tooltip content shows raw markdown instead of rendered","notes":"## Problem\nTooltip content displays raw markdown syntax instead of rendered HTML.\n\nExample: Shows `**bold**` and `- list item` instead of rendered **bold** and bullet points.\n\n## Expected\nMarkdown in tooltip content should be rendered as formatted HTML.\n\n## Fix\nUse a markdown renderer (e.g., `marked`, `react-markdown`) to convert markdown to HTML before displaying in tooltips.","status":"closed","priority":2,"issue_type":"bug","assignee":"jdillon","created_at":"2025-12-28T02:15:56.691005-08:00","updated_at":"2025-12-29T12:51:26.56702-08:00","closed_at":"2025-12-29T12:51:26.56702-08:00","close_reason":"Closed","labels":["ui"],"dependencies":[{"issue_id":"vsbeads-79pr","depends_on_id":"vsbeads-un3l","type":"parent-child","created_at":"2025-12-29T11:39:53.265742-08:00","created_by":"daemon"}]} +{"id":"vsbeads-7e9","title":"Docking, undocking, and editor tab support","description":"Support for opening beads views in editor tabs, undocking panels, and flexible window arrangements.","status":"open","priority":2,"issue_type":"epic","created_at":"2025-12-10T02:08:17.588144-08:00","updated_at":"2025-12-10T02:08:17.588144-08:00","labels":["ui"]} +{"id":"vsbeads-7jw","title":"Setup dedicated test workspace for UI testing","description":"Create a separate workspace/project with beads initialized for testing the extension UI, so we don't pollute vscode-beads with test beads.\n\nPossible approaches:\n- Create `test-workspace/` directory with `.beads/` initialized\n- Or use a separate repo entirely\n- Should have sample beads with various states, labels, priorities, dependencies for testing edge cases","status":"open","priority":1,"issue_type":"task","estimated_minutes":90,"created_at":"2025-12-01T15:45:24.063029-08:00","updated_at":"2025-12-04T11:58:41.463335-08:00","labels":["dx"]} +{"id":"vsbeads-7ue","title":"Show connection status indicator instead of full error view on disconnect","description":"When daemon disconnects, the entire panel shows an error view with Retry button. Better UX would be a status indicator (green→red) that shows connection state without replacing the panel content.","status":"open","priority":2,"issue_type":"feature","estimated_minutes":210,"created_at":"2025-11-29T15:04:49.017327-08:00","updated_at":"2025-12-04T11:58:48.492907-08:00","labels":["ui"]} +{"id":"vsbeads-7xr","title":"Write E2E test: Issue selection shows details","description":"Test the core interaction flow: selecting an issue shows its details.\n\n**Test scenario:**\n1. Load Issues panel with seed data\n2. Click on an issue row\n3. Verify Details panel updates with selected issue\n4. Verify title, description, status display correctly\n\n**This proves:**\n- webview ↔ extension message passing works\n- Details panel receives selection events\n- UI updates reactively","acceptance_criteria":"- Test passes locally\n- Uses stable selectors (data-testid preferred)\n- Documents the interaction pattern","status":"open","priority":2,"issue_type":"task","estimated_minutes":60,"created_at":"2025-12-05T00:23:04.002552-08:00","updated_at":"2025-12-05T01:14:47.777369-08:00","labels":["testing"],"dependencies":[{"issue_id":"vsbeads-7xr","depends_on_id":"vsbeads-4e7","type":"parent-child","created_at":"2025-12-05T00:23:16.454114-08:00","created_by":"daemon","metadata":"{}"},{"issue_id":"vsbeads-7xr","depends_on_id":"vsbeads-w2x","type":"blocks","created_at":"2025-12-05T00:23:31.129272-08:00","created_by":"daemon","metadata":"{}"}]} +{"id":"vsbeads-804l","title":"Fix markdown list bullet rendering","description":"Markdown syntax is not rendering list bullets sanely in the webview","status":"open","priority":1,"issue_type":"task","created_at":"2026-01-11T00:46:08.429779-08:00","created_by":"jason","updated_at":"2026-01-11T00:46:08.429779-08:00","labels":["bug","ui"]} +{"id":"vsbeads-89u","title":"Kanban: Display labels on cards","description":"Add label badges to kanban board cards.\n\n## Context\nCurrently kanban cards show: title, type badge, priority badge, assignee.\nMissing: Labels (e.g., 'ui', 'backend', 'bug') which help categorize issues.\n\n## Implementation\nFile: `src/webview/views/KanbanBoard.tsx`\n\nThe `LabelBadge` component already exists and is used in table view.\nImport and render `bead.labels` array using `LabelBadge`.\n\nExample from IssuesView.tsx:\n```tsx\nimport { LabelBadge } from \"../common/LabelBadge\";\n// ...\n{bead.labels?.map(label =\u003e \u003cLabelBadge key={label} label={label} /\u003e)}\n```\n\n## Design Considerations\n- Cards are narrower than table rows - labels may wrap\n- Consider limiting visible labels (e.g., show 2-3, then '+N more')\n- LabelBadge has size prop - use 'small' for compact display\n\n## Acceptance Criteria\n- [ ] Labels display on kanban cards\n- [ ] Uses existing LabelBadge component\n- [ ] Handles cards with many labels gracefully\n- [ ] Styling matches table view labels\n\n## Open Questions\n- Max labels to show before truncating?\n- Label position: in meta row or separate row?\n- Should labels wrap or scroll horizontally?","status":"closed","priority":2,"issue_type":"feature","assignee":"jdillon","owner":"jdillon@users.noreply.github.com","created_at":"2026-01-31T03:47:46.377432-08:00","created_by":"Jason Dillon","updated_at":"2026-01-31T04:53:29.149837-08:00","closed_at":"2026-01-31T04:53:29.149837-08:00","close_reason":"Implemented in feat/kanban-improvements branch","labels":["ui"],"dependencies":[{"issue_id":"vsbeads-89u","depends_on_id":"vsbeads-h5f","type":"child","created_at":"2026-01-31T03:48:15.963853-08:00","created_by":"Jason Dillon"},{"issue_id":"vsbeads-89u","depends_on_id":"vsbeads-66j","type":"blocks","created_at":"2026-01-31T03:48:19.497035-08:00","created_by":"Jason Dillon"}]} +{"id":"vsbeads-8oc","title":"Add right-click context menu for type/status/priority in Issues list","description":"Add context menu actions to the Issues list so users can right-click on type/status/priority badges to change them inline.\n\nSimilar to the inline editing in Details view (vsbeads-fwp), but using right-click instead of click since the list rows already have click-to-select behavior.\n\n## Requirements\n- Right-click on type badge → dropdown menu to change type\n- Right-click on status badge → dropdown menu to change status \n- Right-click on priority badge → dropdown menu to change priority\n- Changes auto-save (no confirmation needed)\n- Use same ColoredSelect dropdown component from Details view\n\n## Notes\n- Click on row = select issue (existing behavior)\n- Right-click on badge = edit that field (new behavior)","status":"open","priority":3,"issue_type":"feature","estimated_minutes":210,"created_at":"2025-12-01T00:39:43.583441-08:00","updated_at":"2025-12-04T11:59:24.877438-08:00","labels":["ui"],"dependencies":[{"issue_id":"vsbeads-8oc","depends_on_id":"vsbeads-wgr","type":"parent-child","created_at":"2025-12-17T16:53:56.326584-08:00","created_by":"daemon","metadata":"{}"}],"comments":[{"id":24,"issue_id":"vsbeads-8oc","author":"jason","text":"**Estimate: Medium (~1-2 hours)**\n\nWhat's needed:\n1. Add `onContextMenu` handlers to type/status/priority badge cells in IssuesView\n2. Render a positioned dropdown menu on right-click (similar to column menu)\n3. Wire up the change to call `onUpdateBead` (already exists but unused in IssuesView)\n4. Reuse `ColoredSelect` or create a context menu variant\n\nComplexity factors:\n- We already have dropdown/menu patterns (column menu, preset dropdown)\n- We already have `ColoredSelect` component from DetailsView\n- Main work is positioning the context menu at click coordinates\n- Need to handle click-outside dismiss (pattern already exists)\n\nThe patterns exist, it's mostly wiring them together in a new context.","created_at":"2025-12-02T00:41:30Z"}]} +{"id":"vsbeads-90cp","title":"Standalone task to associate with epic","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-27T20:54:31.509608-08:00","updated_at":"2025-12-29T11:36:43.341811-08:00","dependencies":[{"issue_id":"vsbeads-90cp","depends_on_id":"vsbeads-yhok","type":"parent-child","created_at":"2025-12-27T20:54:36.25191-08:00","created_by":"daemon"}],"deleted_at":"2025-12-29T11:36:43.341811-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"} +{"id":"vsbeads-9r1","title":"\"Active\" filter includes blocked issues - should it?","description":"## Problem\n\nThe \"Active\" filter currently includes issues with `status=blocked`. This pollutes the list with items that can't be worked on.\n\n## Intent of \"Active\"\n\n\"Active\" was created to fill the gap between:\n- `bd ready` = open + no blockers (things to pick up)\n- `bd list --status=in_progress` = things currently being worked\n\nNeither shows both. \"Active\" should be: **ready + in_progress** = everything I can touch today.\n\n## Current Behavior\n\n`bd list --status=active` returns:\n- `open` (all, not just unblocked)\n- `in_progress`\n- `blocked` ← shouldn't be here\n\n## Expected Behavior\n\n\"Active\" should return:\n- `open` with no blockers (i.e., ready)\n- `in_progress`\n\nExcludes:\n- `blocked` (stalled, can't work on)\n- `open` with unresolved blockers (also can't work on)\n\n## Fix\n\nChange \"Active\" filter logic to: `(status=open AND no_blockers) OR status=in_progress`","status":"open","priority":2,"issue_type":"bug","created_at":"2025-12-17T02:14:50.439131-08:00","updated_at":"2025-12-17T02:14:50.439131-08:00","labels":["filter","ux"]} +{"id":"vsbeads-adc","title":"Extract DependencySection component","description":"Extract dependency rendering from DetailsView:\n- Grouped display (depends on / blocks)\n- Sorting logic (blocked first, closed last)\n- Add/remove in edit mode\n- Click to navigate\n\nSaves ~200 LOC from DetailsView. Creates src/webview/common/DependencySection.tsx","status":"open","priority":3,"issue_type":"task","estimated_minutes":90,"created_at":"2025-12-04T15:54:11.232894-08:00","updated_at":"2025-12-05T12:01:16.905522-08:00","labels":["refactor","ui"]} +{"id":"vsbeads-ava","title":"Allow undocking Issues panel to editor tab or new window","description":"With many columns visible, the Issues panel gets quite wide and the sidebar becomes cramped. Should be able to undock/pop-out the Issues view to:\n- An editor tab (more horizontal space)\n- A new window (for multi-monitor setups)\n\nSimilar to how VS Code allows undocking panels to the editor area.","status":"open","priority":2,"issue_type":"feature","created_at":"2025-12-09T21:53:30.742241-08:00","updated_at":"2025-12-09T21:53:30.742241-08:00","labels":["ui"],"dependencies":[{"issue_id":"vsbeads-ava","depends_on_id":"vsbeads-cqi","type":"related","created_at":"2025-12-09T21:53:35.746342-08:00","created_by":"daemon","metadata":"{}"},{"issue_id":"vsbeads-ava","depends_on_id":"vsbeads-7e9","type":"parent-child","created_at":"2025-12-10T02:08:25.039573-08:00","created_by":"daemon","metadata":"{}"}]} +{"id":"vsbeads-ba5","title":"Extension should auto-start daemon when not running","description":"Extension failed to connect with error: \"Socket error: connect ENOENT /Users/jason/ws/jdillon/vscode-beads/.beads/bd.sock\"\n\nThe daemon wasn't running and the extension didn't auto-start it. Need to investigate why the auto-start mechanism failed.","design":"## Investigation Areas\n\n1. **Why didn't auto-start work?**\n - Check if startDaemon is being called on connection failure\n - Verify the retry/backoff logic in BeadsBackend\n - Check if there's a race condition or timeout issue\n\n2. **Potential improvements**\n - Add daemon status indicator to UI (statusbar or panel)\n - Add \"Restart Daemon\" command to command palette\n - Show daemon connection status per-project in multi-root workspaces\n - Better error messaging when daemon fails to start\n\n3. **Diagnostics needed**\n - View current daemon connections across all projects\n - Force restart capability\n - Daemon health/metrics visibility in extension","status":"open","priority":3,"issue_type":"bug","estimated_minutes":180,"created_at":"2025-11-29T02:34:16.15086-08:00","updated_at":"2025-12-04T11:59:29.224036-08:00","labels":["daemon"]} +{"id":"vsbeads-bcu","title":"Test bead for labels overflow","description":"Testing label display and overflow behaviordfsfs","status":"open","priority":3,"issue_type":"task","estimated_minutes":0,"created_at":"2025-12-01T15:32:16.718649-08:00","updated_at":"2025-12-04T11:59:22.270468-08:00","labels":["E","a","b","c","d"]} +{"id":"vsbeads-btf","title":"Scroll to latest comment when adding a comment in Details view","description":"When adding a comment in the Details panel, the view should auto-scroll to show the newly added comment at the bottom. Initial implementation attempts didn't work due to webview scroll container complexity.","status":"open","priority":4,"issue_type":"feature","estimated_minutes":45,"created_at":"2025-11-27T20:45:35.746701-08:00","updated_at":"2025-12-04T12:00:18.508148-08:00","labels":["ui"],"comments":[{"id":23,"issue_id":"vsbeads-btf","author":"jason","text":"turns out this is kinda hard, or was for claude to get correct.","created_at":"2025-12-02T00:38:50Z"}]} +{"id":"vsbeads-bxnb","title":"Research tree view / hierarchy display for issues list","description":"Explore options for optional tree/hierarchy view in issues list:\n\n**Inspiration**: IntelliJ IDEA project view has multiple view modes (flat list vs tree hierarchy)\n\n**Options to research**:\n1. Tree column in existing table (expandable rows)\n2. Separate tree view panel\n3. Toggle between list/tree modes\n4. TanStack Table tree data support\n\n**Questions**:\n- How to represent epic → task → subtask hierarchy?\n- How to handle dependencies vs parent-child?\n- What does TanStack Table support for tree data?\n- UX for expand/collapse in table vs dedicated tree view?","notes":"---\n2025-12-25: Draft PR #54 opened. Tree view basic functionality works but UI needs refinement - icons and visual hierarchy indicators need design review. TanStack Query added for data caching.","status":"blocked","priority":3,"issue_type":"task","assignee":"jdillon","created_at":"2025-12-23T00:21:40.100896-08:00","updated_at":"2026-01-31T05:02:01.942889-08:00","labels":["research","ui"],"comments":[{"id":37,"issue_id":"vsbeads-bxnb","author":"jason","text":"Need to find some examples to show the agent what to build.","created_at":"2025-12-26T08:58:27Z"}]} +{"id":"vsbeads-cjh","title":"Kanban: Make all columns collapsible","description":"Allow collapsing any kanban column, not just the Closed column.\n\n## Context\nCurrent implementation only allows collapsing the Closed column:\n```tsx\nconst [closedExpanded, setClosedExpanded] = useState(false);\n// ...\nconst isCollapsed = status === \"closed\" \u0026\u0026 !closedExpanded;\n```\n\nUsers may want to collapse other columns (e.g., Open when focusing on in-progress work).\n\n## Implementation\nFile: `src/webview/views/KanbanBoard.tsx`\n\nChange from single boolean to a Set tracking collapsed columns:\n```tsx\nconst [collapsedColumns, setCollapsedColumns] = useState\u003cSet\u003cBeadStatus\u003e\u003e(\n new Set([\"closed\"]) // Closed collapsed by default\n);\n\nconst toggleColumn = (status: BeadStatus) =\u003e {\n setCollapsedColumns(prev =\u003e {\n const next = new Set(prev);\n if (next.has(status)) next.delete(status);\n else next.add(status);\n return next;\n });\n};\n\nconst isCollapsed = collapsedColumns.has(status);\n```\n\n## Design Considerations\n- All column headers should be clickable (currently only Closed)\n- Add visual affordance (collapse/expand icon in header)\n- Persist collapsed state? (localStorage or just session)\n- Collapsed column should show count prominently\n\n## Acceptance Criteria\n- [ ] All 4 columns can be collapsed/expanded\n- [ ] Closed still collapsed by default\n- [ ] Click any column header to toggle\n- [ ] Visual indicator for collapsible headers\n- [ ] Collapsed columns show item count\n\n## Open Questions\n- Persist collapse state across sessions (localStorage)?\n- Add explicit collapse/expand icon or just clickable header?\n- Keyboard shortcut to collapse/expand?\n- Should collapsed columns have a minimum width or be truly minimal?","status":"closed","priority":3,"issue_type":"feature","assignee":"jdillon","owner":"jdillon@users.noreply.github.com","created_at":"2026-01-31T03:48:08.114162-08:00","created_by":"Jason Dillon","updated_at":"2026-01-31T04:53:29.153421-08:00","closed_at":"2026-01-31T04:53:29.153421-08:00","close_reason":"Implemented in feat/kanban-improvements branch","labels":["ui"],"dependencies":[{"issue_id":"vsbeads-cjh","depends_on_id":"vsbeads-h5f","type":"child","created_at":"2026-01-31T03:48:16.09939-08:00","created_by":"Jason Dillon"},{"issue_id":"vsbeads-cjh","depends_on_id":"vsbeads-66j","type":"blocks","created_at":"2026-01-31T03:48:19.632969-08:00","created_by":"Jason Dillon"}]} +{"id":"vsbeads-cqi","title":"Redesign UI: sidebar for navigation, editor panels for views","description":"Move Kanban, Dependency Graph, and Details to WebviewPanel (editor tabs). Keep project selector and issue list in sidebar.","status":"open","priority":2,"issue_type":"feature","estimated_minutes":960,"created_at":"2025-11-26T15:59:20.263974-08:00","updated_at":"2025-12-04T11:58:59.107775-08:00","labels":["ui"]} +{"id":"vsbeads-dhe","title":"Set up GitHub Actions workflow for nightly E2E tests","description":"Create GitHub Actions workflow that runs integration tests on a schedule.\n\n**Requirements:**\n- Run nightly (not on every commit - too slow/resource intensive)\n- Manual trigger option (`workflow_dispatch`)\n- Use ubuntu-latest runner\n- Install code-server, bd CLI, Playwright browsers\n- Upload test artifacts on failure (screenshots, traces, HTML report)\n\n**Pattern:**\n```yaml\non:\n schedule:\n - cron: '0 6 * * *' # 6am UTC daily\n workflow_dispatch:\n```","acceptance_criteria":"- Workflow file in `.github/workflows/integration-tests.yml`\n- Manual trigger works from Actions tab\n- Artifacts available on failure\n- Sends notification on failure (optional/later)","status":"open","priority":2,"issue_type":"task","estimated_minutes":90,"created_at":"2025-12-05T00:23:04.64811-08:00","updated_at":"2025-12-05T01:14:48.401601-08:00","labels":["ci","testing"],"dependencies":[{"issue_id":"vsbeads-dhe","depends_on_id":"vsbeads-4e7","type":"parent-child","created_at":"2025-12-05T00:23:16.83836-08:00","created_by":"daemon","metadata":"{}"},{"issue_id":"vsbeads-dhe","depends_on_id":"vsbeads-w2x","type":"blocks","created_at":"2025-12-05T00:23:31.666861-08:00","created_by":"daemon","metadata":"{}"}]} +{"id":"vsbeads-drg","title":"Document branch naming convention in CLAUDE.md","description":"Add branch naming strategy to CLAUDE.md:\n\nFormat: `beads/\u003cbead-id\u003e-\u003cterse-description\u003e`\n\nExamples:\n- `beads/vsbeads-93b-release-workflow`\n- `beads/vsbeads-xyz-fix-daemon-polling`\n\nThis ties branches to tracked work and makes it easy to find related issues.","status":"open","priority":4,"issue_type":"task","estimated_minutes":30,"created_at":"2025-11-29T16:47:10.870444-08:00","updated_at":"2025-12-04T12:00:16.819609-08:00","labels":["dx"],"comments":[{"id":28,"issue_id":"vsbeads-drg","author":"jason","text":"this is good, but we often work on a few beads a time. Might want to noramlize some other branch name strategy instead.","created_at":"2025-12-06T20:31:29Z"}]} +{"id":"vsbeads-dxo","title":"Create code-server test fixture","description":"Create Playwright fixture that manages code-server lifecycle for tests.\n\n**Requirements:**\n- Start code-server before test suite (global setup)\n- Stop code-server after tests complete (global teardown)\n- Handle port allocation (avoid conflicts)\n- Wait for code-server to be ready before tests start\n- Symlink extension into code-server extensions directory\n\n**Considerations:**\n- Use `child_process` spawn for code-server\n- Health check endpoint or port availability\n- Cleanup on test failure/interrupt","acceptance_criteria":"- Fixture starts code-server automatically\n- Tests can navigate to code-server URL\n- Clean shutdown on test completion\n- Works on macOS and Linux (CI)","status":"open","priority":2,"issue_type":"task","estimated_minutes":120,"created_at":"2025-12-05T00:23:01.414273-08:00","updated_at":"2025-12-05T01:14:42.779394-08:00","labels":["testing"],"dependencies":[{"issue_id":"vsbeads-dxo","depends_on_id":"vsbeads-4e7","type":"parent-child","created_at":"2025-12-05T00:23:16.266027-08:00","created_by":"daemon","metadata":"{}"},{"issue_id":"vsbeads-dxo","depends_on_id":"vsbeads-ur9","type":"blocks","created_at":"2025-12-05T00:23:29.976788-08:00","created_by":"daemon","metadata":"{}"}]} +{"id":"vsbeads-e36","title":"Add icons to view contributions","description":"VS Code warns about missing `icon` property on view contributions in package.json.\n\nIcons are used when views are dragged to Activity Bar or title can't be shown.\n\nViews needing icons:\n- beadsDashboard\n- beadsPanel (Issues)\n- beadsDetails\n\nOptions:\n- Use same beads-icon.svg for all (quick fix)\n- Create distinct icons per view (better UX)\n\nDecide on iconography style before implementing.","status":"open","priority":4,"issue_type":"task","estimated_minutes":60,"created_at":"2025-11-29T17:41:35.403094-08:00","updated_at":"2025-12-04T12:00:15.568122-08:00","labels":["ui"]} +{"id":"vsbeads-e74","title":"DetailsView crashes on unknown dependency types","description":"groupDependenciesByType crashes with 'Cannot read properties of undefined (reading push)' when a bead has a dependency type not in the hardcoded list.\n\n## Root Cause\nThe function only handles: blocks, parent-child, discovered-from, related. Beads CLI now allows custom dependency types.\n\n## Fix\nAdded fallback to 'related' for unknown types in groupDependenciesByType().\n\n## File\nsrc/webview/views/DetailsView.tsx:102-105","status":"closed","priority":1,"issue_type":"bug","owner":"jdillon@users.noreply.github.com","created_at":"2026-01-31T04:24:22.23266-08:00","created_by":"Jason Dillon","updated_at":"2026-01-31T04:24:57.985278-08:00","closed_at":"2026-01-31T04:24:57.985278-08:00","close_reason":"Fixed in feat/kanban-improvements branch","labels":["ui"]} +{"id":"vsbeads-ebs","title":"Add comment count column to Issues list","description":"Add a synthetic column showing comment count per bead, hidden by default.\n\nUse case: Sort/filter by activity level - beads with more comments often indicate complexity or ongoing discussion.\n\nImplementation notes:\n- Column disabled by default (like Assignee/Estimate)\n- Would need comment count in list data (currently only fetched in Details view)\n- Consider if daemon API supports count without fetching full comments","status":"open","priority":4,"issue_type":"feature","estimated_minutes":90,"created_at":"2025-12-01T17:18:34.567726-08:00","updated_at":"2025-12-04T12:00:13.1052-08:00","labels":["ui"],"comments":[{"id":30,"issue_id":"vsbeads-ebs","author":"jason","text":"not sure how useful this really is... doesn't seem like agents use comments to append data, its more for humans.","created_at":"2025-12-10T10:09:01Z"}]} +{"id":"vsbeads-eby","title":"Add data-testid attributes to UI components","description":"Add stable `data-testid` attributes to key UI elements for reliable test selectors.\n\n**Target elements:**\n- Issues table rows (`data-testid=\"issue-row-{id}\"`)\n- Status badges (`data-testid=\"status-badge\"`)\n- Priority indicators (`data-testid=\"priority-badge\"`)\n- Details panel sections (`data-testid=\"details-title\"`, etc.)\n- Filter controls\n\n**Why:**\n- CSS class selectors are fragile (change with styling)\n- Text selectors break with i18n\n- data-testid is E2E testing best practice","acceptance_criteria":"- Key interactive elements have data-testid\n- Tests use these selectors instead of classes\n- No visual impact to UI","status":"open","priority":3,"issue_type":"task","estimated_minutes":45,"created_at":"2025-12-05T00:23:05.294226-08:00","updated_at":"2025-12-05T01:14:41.917251-08:00","labels":["testing","ui"],"dependencies":[{"issue_id":"vsbeads-eby","depends_on_id":"vsbeads-4e7","type":"parent-child","created_at":"2025-12-05T00:23:17.386975-08:00","created_by":"daemon","metadata":"{}"}]} +{"id":"vsbeads-el1i","title":"Sync daemon client types with upstream beads 0.37.0","description":"Keep BeadsDaemonClient types aligned with upstream beads daemon API.\n\nNew fields to add:\n- `CreateArgs.id_prefix` - custom ID prefix (mol, wisp, etc.)\n- `ListArgs.wisp` - filter by wisp status (boolean)\n- `Issue.source_formula` - steam engine tracing\n- `Issue.source_location` - steam engine tracing\n\nReference: beads commits d3245d26..6bb11c42\n\nEven if we don't use these features, our types should match the daemon for forward compatibility.","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-25T16:53:02.796309-08:00","updated_at":"2025-12-29T14:01:59.183309-08:00","closed_at":"2025-12-29T14:01:59.183309-08:00","close_reason":"Upstream sync completed v0.37.0 → v0.40.0","labels":["backend"],"dependencies":[{"issue_id":"vsbeads-el1i","depends_on_id":"vsbeads-4m5i","type":"related","created_at":"2025-12-25T17:01:21.930664-08:00","created_by":"daemon"},{"issue_id":"vsbeads-el1i","depends_on_id":"vsbeads-un3l","type":"parent-child","created_at":"2025-12-29T13:43:31.681844-08:00","created_by":"daemon"}]} +{"id":"vsbeads-fpp1","title":"vscode-server skill: open browser in incognito mode","description":"**Goal:** Open code-server in incognito window to avoid cache issues during development.\n\n**What we tried:**\n- Using Chrome CLI directly: `/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome --incognito \"http://127.0.0.1:{PORT}/\"`\n- This opens in existing browser session but chrome-devtools MCP can't see/select the new page\n\n**Problem:**\n- chrome-devtools MCP launches its own Chrome instance with `--remote-debugging-pipe`\n- Incognito windows opened via CLI go to the user's regular Chrome, not the MCP-controlled Chrome\n- MCP's `list_pages` gets stuck when previously selected page is closed\n\n**Possible solutions:**\n1. Find a way to open incognito in MCP-controlled Chrome (if possible via DevTools protocol)\n2. Configure MCP to launch Chrome with `--incognito` flag from the start\n3. Use `--disk-cache-size=0` or similar cache-busting flags instead of incognito\n4. Just rely on hard reload (`ignoreCache: true`) which we already do","status":"open","priority":3,"issue_type":"task","created_at":"2025-12-25T17:30:36.272116-08:00","updated_at":"2025-12-25T17:30:36.272116-08:00","labels":["dx"]} +{"id":"vsbeads-g09","title":"Setup planet57.com and verify publisher domains","description":"Set up planet57.com website and use it to verify publisher identity on both marketplaces.\n\nTasks:\n1. Set up planet57.com (landing page or redirect to GitHub)\n2. Add DNS TXT record for VS Code Marketplace verification\n3. Complete domain verification on VS Code Marketplace\n4. (Open VSX uses namespace ownership claim instead of domain verification - already filed)","notes":"VS Code Marketplace requires the domain to be live (responding at https://planet57.com) before showing the verify button. Need to set up the site first, then verify.\n\nOpen VSX uses namespace ownership claim (GitHub issue) instead of domain verification - already filed at https://github.com/EclipseFdn/open-vsx.org/issues/6642\n\n---\n\n**GitHub Pages setup plan:**\n1. Create repo `jdillon/planet57.github.io` (or use any repo with Pages enabled)\n2. Add a `CNAME` file with `planet57.com`\n3. Point DNS: `A` record to GitHub's IPs or `CNAME` to `jdillon.github.io`\n4. Enable HTTPS in repo settings\n5. Simple landing page or redirect to GitHub profile","status":"open","priority":3,"issue_type":"task","created_at":"2025-12-10T22:19:40.356092-08:00","updated_at":"2025-12-10T22:24:48.97242-08:00","labels":["dx","release"]} +{"id":"vsbeads-gr5","title":"Filter presets/favorites system for Issues panel","description":"Currently filtering requires manually adding multiple filters (e.g., Open + In Progress + Blocked to exclude Closed). Need a better UX for common filter combinations.","design":"**Options considered:**\n\n1. **Preset filters** - Built-in presets like \"Not Closed\", \"Active Work\"\n - Simple UX, covers common cases\n - Limited flexibility\n\n2. **Negated filters** - Click to toggle +/- on any filter\n - Full flexibility\n - More complex UX, needs visual indicator\n\n3. **Default filter** - Start with a filter applied (e.g., \"Not Closed\")\n - Good for most common use case\n - User can clear if needed\n\n**Recommended approach:**\nCombination of 1 + 3: Filter \"favorites\" dropdown that preconfigures filter sets.\n- Start with static built-in favorites: \"Not Closed\", \"Active\" (in_progress + blocked), \"All\"\n- Future: Allow saving custom filter sets as favorites\n- Default to \"Not Closed\" on load","status":"open","priority":3,"issue_type":"feature","estimated_minutes":300,"created_at":"2025-11-26T23:34:31.877133-08:00","updated_at":"2025-12-04T11:59:38.532327-08:00","labels":["ui"]} +{"id":"vsbeads-h5f","title":"Add contributed Kanban board view","description":"Integrate PR #56 from micahbrich - a kanban board view for the Issues panel. The contribution is solid but needs a few improvements before/after merge.\n\n## PR Details\n- **PR**: https://github.com/jdillon/vscode-beads/pull/56\n- **Author**: micahbrich (trusted - 16yr GitHub account)\n- **Security**: Reviewed and approved\n- **Files**: KanbanBoard.tsx (new), IssuesView.tsx, styles.css, README.md\n\n## Scope\n1. Merge the PR\n2. Add bead-id display to cards\n3. Add labels display to cards\n4. Replace text toggle with icons\n5. Make all columns collapsible (not just Closed)","status":"closed","priority":2,"issue_type":"epic","owner":"jdillon@users.noreply.github.com","created_at":"2026-01-31T03:42:29.839294-08:00","created_by":"Jason Dillon","updated_at":"2026-01-31T04:53:36.186585-08:00","closed_at":"2026-01-31T04:53:36.186585-08:00","close_reason":"All improvements complete - PR #62","labels":["ui"]} +{"id":"vsbeads-hgm","title":"Test sub-agent context isolation","description":"After creating browser-task agent, test that:\n\n1. MCP response bloat stays in sub-agent context\n2. Only summary returns to main agent\n3. Measure context savings vs direct MCP calls\n\n**Test workflow:**\n- Invoke browser-task to reload code-server window\n- Check main context size before/after\n- Compare to doing reload directly with MCP","status":"open","priority":1,"issue_type":"task","estimated_minutes":90,"created_at":"2025-11-28T21:52:30.146368-08:00","updated_at":"2025-12-04T11:58:43.57841-08:00","labels":["dx"],"dependencies":[{"issue_id":"vsbeads-hgm","depends_on_id":"vsbeads-yjr","type":"blocks","created_at":"2025-11-28T21:52:30.148724-08:00","created_by":"daemon","metadata":"{}"},{"issue_id":"vsbeads-hgm","depends_on_id":"vsbeads-5c0","type":"parent-child","created_at":"2025-11-28T21:52:42.044495-08:00","created_by":"daemon","metadata":"{}"}]} +{"id":"vsbeads-hjx","title":"Filter toggle button feels broken when filters are active","description":"When the filter panel is open and filters are active (icon is green), clicking the filter toggle button doesn't do anything. This feels broken.\n\nPossible solutions:\n- Toggle could hide/show the panel without clearing filters\n- Some other UX pattern\n\nNeed to determine the right behavior.","status":"open","priority":4,"issue_type":"bug","estimated_minutes":90,"created_at":"2025-11-27T02:27:29.005135-08:00","updated_at":"2025-12-04T12:00:20.708765-08:00","labels":["ui"]} +{"id":"vsbeads-i32l","title":"Make type sort order configurable","description":"Allow users to customize the display order of bead types. Could be a VS Code setting or .beads config.","status":"open","priority":3,"issue_type":"feature","created_at":"2025-12-22T01:18:39.209631-08:00","updated_at":"2025-12-22T01:18:39.209631-08:00","labels":["config","ui"]} +{"id":"vsbeads-i41","title":"Split styles.css into component modules","description":"Break up monolithic styles.css (~1000 lines) into logical modules:\n- base.css (variables, resets)\n- badges.css\n- dropdowns.css\n- table.css\n- details.css\n- dashboard.css\n\nImport all in index.tsx or use CSS modules.","status":"open","priority":4,"issue_type":"chore","estimated_minutes":90,"created_at":"2025-12-04T15:54:11.880134-08:00","updated_at":"2025-12-05T12:01:16.978282-08:00","labels":["dx","refactor"],"dependencies":[{"issue_id":"vsbeads-i41","depends_on_id":"vsbeads-prs","type":"blocks","created_at":"2025-12-04T15:54:23.363098-08:00","created_by":"daemon","metadata":"{}"}]} +{"id":"vsbeads-im0d","title":"Make tooltip hover delay configurable with disable option","description":"The bead description tooltip appears too quickly (currently 400ms). Add VS Code settings to:\n- Configure the hover delay (default: 1000ms)\n- Disable tooltips entirely\n- Reset to default option\n\nLocations:\n- Delay is set in src/webview/views/IssuesView.tsx:195","status":"in_progress","priority":2,"issue_type":"feature","assignee":"jdillon","owner":"jdillon@users.noreply.github.com","created_at":"2026-01-24T22:55:38.931254-08:00","created_by":"Jason Dillon","updated_at":"2026-01-24T22:55:44.267525-08:00","labels":["ui"]} +{"id":"vsbeads-iur","title":"Show labels in Details panel child bead references","description":"Child bead references in the Details panel dependencies section should display labels (like they do in the Issues list).","notes":"2025-12-11: Investigated - BeadDependency type doesn't include labels. Would need to update: 1) bd CLI to include labels in dependency responses, 2) DaemonBeadDependency type, 3) normalization logic, 4) BeadDependency type. Not a quick win - deferred.","status":"open","priority":3,"issue_type":"feature","estimated_minutes":60,"created_at":"2025-11-30T00:34:09.763359-08:00","updated_at":"2025-12-11T01:36:03.346378-08:00","labels":["ui"],"dependencies":[{"issue_id":"vsbeads-iur","depends_on_id":"vsbeads-wgr","type":"parent-child","created_at":"2025-12-17T16:53:56.364942-08:00","created_by":"daemon","metadata":"{}"}]} +{"id":"vsbeads-iyn","title":"Daemons management view","description":"Add a dedicated daemons view panel showing all workspace daemons with detailed status and management options.\n\n**Potential features:**\n- List all beads projects with daemon status\n- Start/Stop/Restart buttons per daemon\n- Health indicators (DB status, uptime, last activity)\n- Log viewer integration\n- Auto-refresh status\n\nLower priority since status bar + quick pick menu covers basic needs.","status":"open","priority":3,"issue_type":"feature","estimated_minutes":420,"created_at":"2025-12-03T00:13:55.94898-08:00","updated_at":"2025-12-04T11:59:01.921198-08:00","labels":["daemon","ui"]} +{"id":"vsbeads-jb7","title":"Allow opening issue detail in editor panel","description":"Add option to open an issue's full detail view in an editor panel (tab) instead of just the sidebar Details panel. This allows viewing/editing while keeping sidebar free, and the view doesn't change when selecting different issues in the list.","design":"- Double-click or context menu \"Open in Editor\" on issue row\n- Opens `vscode.window.createWebviewPanel()` in editor area\n- Panel is independent - doesn't sync with sidebar selection\n- Can have multiple issue tabs open\n- Full editing support\n- Title shows issue ID","status":"open","priority":2,"issue_type":"feature","estimated_minutes":300,"created_at":"2025-11-26T18:39:34.504524-08:00","updated_at":"2025-12-04T11:58:56.508839-08:00","labels":["ui"],"dependencies":[{"issue_id":"vsbeads-jb7","depends_on_id":"vsbeads-7e9","type":"parent-child","created_at":"2025-12-10T02:08:25.013461-08:00","created_by":"daemon","metadata":"{}"}]} +{"id":"vsbeads-jfa","title":"Create test beads project fixture","description":"Create fixture that provides isolated beads test data for each test.\n\n**Requirements:**\n- Create temp directory with `.beads/` initialized\n- Seed with known test issues (various statuses, priorities, types)\n- Clean up after test completes\n- Option to customize seed data per test\n\n**Approach:**\n- Use `bd init` to create fresh beads db\n- Use `bd create` or direct JSON import for seed data\n- Store seed data templates in `e2e/fixtures/seed-data/`","acceptance_criteria":"- Each test gets isolated beads project\n- Seed data is consistent and predictable\n- No cross-test data pollution\n- Cleanup happens even on test failure","status":"open","priority":2,"issue_type":"task","estimated_minutes":90,"created_at":"2025-12-05T00:23:02.061916-08:00","updated_at":"2025-12-05T01:14:43.946258-08:00","labels":["testing"],"dependencies":[{"issue_id":"vsbeads-jfa","depends_on_id":"vsbeads-4e7","type":"parent-child","created_at":"2025-12-05T00:23:16.309365-08:00","created_by":"daemon","metadata":"{}"},{"issue_id":"vsbeads-jfa","depends_on_id":"vsbeads-ur9","type":"blocks","created_at":"2025-12-05T00:23:30.023879-08:00","created_by":"daemon","metadata":"{}"}]} +{"id":"vsbeads-l1j","title":"Research: Obsidian plugin for beads with shared daemon client","description":"Explore building an Obsidian plugin for beads, potentially sharing implementation with vscode-beads.\n\n**Context:** Jason the Great is using Claude and beads in a git-enabled Obsidian vault and wants to view/manage beads directly in Obsidian.\n\n**Sharing strategy to evaluate:**\n\n1. **Extract `BeadsDaemonClient` to standalone package**\n - Pure TypeScript, no VS Code dependencies\n - Socket connection + JSON-RPC\n - Could be shared npm package or monorepo\n\n2. **Share type definitions**\n - `Bead`, `BeadStatus`, `BeadPriority`, etc.\n - Extract from `src/backend/types.ts`\n\n3. **UI is platform-specific**\n - Obsidian: their component system (or Svelte)\n - VS Code: React webviews\n\n**Questions to answer:**\n- Can Obsidian plugins access Unix sockets? (Node.js `net` in Electron renderer)\n- What's Obsidian's plugin architecture? Views, sidebars, modals?\n- Should we use daemon socket or just shell out to `bd` CLI?\n- Monorepo vs separate repos with shared npm package?\n\n**Reference:**\n- Obsidian plugin docs: https://docs.obsidian.md/Plugins\n- vscode-beads daemon client: `src/backend/BeadsDaemonClient.ts`\n\n**Deliverable:** Decision doc on architecture + feasibility assessment","status":"open","priority":2,"issue_type":"task","estimated_minutes":120,"created_at":"2025-12-06T16:47:13.708368-08:00","updated_at":"2025-12-06T16:47:18.624578-08:00","labels":["dx","obsidian","research"]} +{"id":"vsbeads-mkvi","title":"Add autocomplete for dependency input","description":"When adding a dependency, provide autocomplete suggestions as the user types. Should match on:\n- Bead ID (e.g., vsbeads-xxx)\n- Title text\n\nThis makes it easier to find the correct bead without needing to remember exact IDs.\n\nCould also validate that the entered ID exists before submitting.","status":"open","priority":3,"issue_type":"feature","created_at":"2025-12-25T14:54:32.085931-08:00","updated_at":"2025-12-25T14:54:32.085931-08:00","labels":["ui"]} +{"id":"vsbeads-mwic","title":"Re-sync upstream from v0.37.0 covering el1i and u5xh context","description":"Re-run /upstream-sync starting from v0.37.0 instead of v0.38.0 to capture context from:\n\n- vsbeads-el1i: Daemon client types (id_prefix, wisp, source_formula, source_location)\n- vsbeads-u5xh: Children list vanishing bug (may be race condition like vsbeads-re92)\n\nAfter re-review, close vsbeads-el1i and vsbeads-u5xh if covered.\n\nUpdate docs/upstream-sync/README.md sync point to v0.37.0 before running.","status":"closed","priority":2,"issue_type":"task","assignee":"jdillon","created_at":"2025-12-29T13:43:34.073673-08:00","created_by":"jason","updated_at":"2025-12-29T14:01:59.180523-08:00","closed_at":"2025-12-29T14:01:59.180523-08:00","close_reason":"Upstream sync completed v0.37.0 → v0.40.0","labels":["backend","ui"],"dependencies":[{"issue_id":"vsbeads-mwic","depends_on_id":"vsbeads-un3l","type":"parent-child","created_at":"2025-12-29T13:43:44.225598-08:00","created_by":"daemon"}]} +{"id":"vsbeads-n64","title":"Build optimized agent automation for VS Code/code-server (reduce context bloat)","description":"Chrome DevTools MCP returns ~400 lines (full a11y tree) after EVERY action. This burns through context extremely fast. Need to build custom tooling.\n\n**Problem observed:**\n- `press_key` → 401 lines returned\n- `click` → full snapshot returned \n- Simple reload workflow = ~120KB context\n- Playwright MCP has same issue (also uses a11y snapshots)\n\n**Direction:**\nBuild custom tooling for optimized agent-driven VS Code/code-server automation:\n1. Helper extension that exposes simple commands (reload, focus panel, etc.) callable via API\n2. Custom MCP that returns minimal/filtered responses instead of full tree\n3. Script-based helpers agent can invoke without snapshot overhead\n4. Same pattern needed for Figma later\n\n**Current workaround:**\n- Use Chrome DevTools MCP sparingly for single feature verification\n- Leave window reload to human to avoid context burn\n- Hybrid: agent codes, human clicks to verify","status":"open","priority":2,"issue_type":"task","estimated_minutes":720,"created_at":"2025-11-27T18:31:28.924977-08:00","updated_at":"2025-12-04T11:58:54.423038-08:00","labels":["dx"],"dependencies":[{"issue_id":"vsbeads-n64","depends_on_id":"vsbeads-3cn","type":"parent-child","created_at":"2025-11-27T18:50:55.275699-08:00","created_by":"daemon","metadata":"{}"}]} +{"id":"vsbeads-onk","title":"Consider dev/snapshot version suffix after release","description":"After tagging a release, main stays at the released version (e.g., 0.2.0). This could be confusing when building from main after additional commits - same version but different code.\n\nOptions to consider:\n- Bump to `X.Y+1.0-dev` after release\n- Bump to `X.Y.Z-SNAPSHOT` pattern\n- Leave as-is (simpler, beads project does this)\n\nIf implementing, update `/project-release` to bump version after pushing tag.","status":"open","priority":3,"issue_type":"task","estimated_minutes":45,"created_at":"2025-11-29T17:34:58.801913-08:00","updated_at":"2025-12-04T11:59:26.955052-08:00","labels":["dx"]} +{"id":"vsbeads-ops","title":"Redesign Dashboard for compactness and usefulness","description":"Current dashboard has redundant/space-wasting sections. The status bar chart duplicates the summary cards above. Need a more compact, meaningful layout.","design":"**Keep:**\n- Summary cards (Total, Ready, In Progress, Blocked) - useful at a glance\n- In Progress list - very useful\n\n**Remove/Replace:**\n- Status breakdown bars (redundant with cards)\n- Priority breakdown bars (takes too much space)\n\n**Options for compact redesign:**\n\n**Option A: Type + Priority chips**\n```\n[Summary Cards Row]\n\nBY TYPE BY PRIORITY\nbug: 3 P1: 1 P2: 4 P3: 3\nfeature: 4\ntask: 1\n\nIN PROGRESS BLOCKED (if any)\n- issue... - issue...\n```\n\n**Option B: Single stats row**\n```\n[Summary Cards Row]\n\nTypes: 🐛3 ✨4 📋1 Priority: P1:1 P2:4 P3:3\n\nIN PROGRESS READY (top 3)\n- issue... - issue...\n```\n\n**Option C: Kanban-lite summary**\n```\n[Summary Cards Row]\n\nREADY (3) IN PROGRESS (2) BLOCKED (0)\n- issue... - issue... (none)\n- issue... - issue...\n```\n\nRecommendation: Option C - shows actionable items, no redundancy","status":"open","priority":2,"issue_type":"feature","estimated_minutes":300,"created_at":"2025-11-26T18:20:49.922324-08:00","updated_at":"2025-12-04T11:58:57.526016-08:00","labels":["ui"]} +{"id":"vsbeads-otf","title":"Explore ways to better comprehend large bead lists","description":"As the number of beads grows, it becomes hard to keep track of what's there. Need to brainstorm UX improvements for navigating/understanding large backlogs.\n\n**Ideas to explore:**\n\n1. **Grouping/categorization**\n - Group by label (ui, dx, refactor, etc.)\n - Group by epic/parent\n - Collapsible sections\n\n2. **Summary views**\n - \"What's hot\" - recently updated, high priority\n - \"Stale\" - open items not touched in X days\n - Tag cloud of labels with counts\n\n3. **Search enhancements**\n - Fuzzy search across title + description\n - Saved searches/filters\n - Quick filters: \"my stuff\", \"blockers\", \"quick wins\"\n\n4. **Visual aids**\n - Mini roadmap view (epics + children)\n - Priority heatmap\n - Dependency graph (already exists but could be improved)\n\n5. **AI-assisted**\n - \"Summarize my backlog\" - Claude generates overview\n - \"What should I work on?\" - smart prioritization\n - \"Find duplicates\" - detect similar issues","status":"open","priority":3,"issue_type":"task","estimated_minutes":60,"created_at":"2025-12-05T00:17:41.069543-08:00","updated_at":"2025-12-05T12:01:16.791294-08:00","labels":["research","ux"]} +{"id":"vsbeads-p78","title":"Add autocomplete menu for label input with existing labels","description":"When adding labels to an issue, show a dropdown menu with matching existing labels as the user types. Should support both selecting an existing label and creating a new label that doesn't exist yet.","notes":"2025-12-11: Attempted implementation using AutocompleteInput component (created for vsbeads-65h label filter). \n\nApproaches tried:\n1. Inline input with AutocompleteInput - dropdown clipped by overflow:hidden on parent containers\n2. Added useFixedPositioning prop to calculate fixed position via getBoundingClientRect - didn't solve clipping\n3. Wrapped in Dropdown component with AutocompleteInput inside - layout breaks, dropdown menu positioning issues\n\nCore problem: The details-badges area has multiple nested containers with overflow constraints. The autocomplete dropdown gets clipped no matter which approach.\n\nPossible solutions to explore:\n- Portal-based dropdown that renders at document root\n- Completely different UX (modal/popover for adding labels)\n- Fix overflow constraints on parent containers (may break other things)\n\nAutocompleteInput component itself works fine in filter bar context (vsbeads-65h).\n\n---\n\n2025-12-11: Stashed WIP for later: `stash@{0}: On feature/ux-polish: WIP: label autocomplete (vsbeads-p78, vsbeads-65h)`","status":"blocked","priority":3,"issue_type":"feature","created_at":"2025-12-11T02:04:29.914692-08:00","updated_at":"2025-12-11T13:09:45.969264-08:00","labels":["ui"],"dependencies":[{"issue_id":"vsbeads-p78","depends_on_id":"vsbeads-wgr","type":"parent-child","created_at":"2025-12-17T16:53:56.399661-08:00","created_by":"daemon","metadata":"{}"}],"comments":[{"id":32,"issue_id":"vsbeads-p78","author":"jason","text":"Testing comment functionality from Claude","created_at":"2025-12-11T21:10:33Z"}]} +{"id":"vsbeads-pqx","title":"Extract FilterBar component","description":"Extract filter bar UI from IssuesView into reusable component:\n- Filter presets dropdown\n- Active filter chips\n- Add filter menu (status/priority/type)\n- Clear button\n- Optional faceted counts support\n\nSaves ~150 LOC from IssuesView. Creates src/webview/common/FilterBar.tsx","status":"open","priority":2,"issue_type":"task","estimated_minutes":90,"created_at":"2025-12-04T15:54:10.593422-08:00","updated_at":"2025-12-05T12:01:16.754411-08:00","labels":["refactor","ui"]} +{"id":"vsbeads-prs","title":"Reorganize webview component directory structure","description":"Group components by function:\n- common/badges/ (StatusBadge, PriorityBadge, TypeBadge, LabelBadge)\n- common/dropdowns/ (Dropdown, ColoredSelect, ProjectDropdown)\n- common/filters/ (FilterBar, FilterChip)\n- common/feedback/ (Toast, Loading, ErrorMessage)\n- hooks/ (useClickOutside, useColumnState)\n\nUpdate all imports.","status":"open","priority":3,"issue_type":"chore","estimated_minutes":60,"created_at":"2025-12-04T15:54:11.547522-08:00","updated_at":"2025-12-05T12:01:16.866291-08:00","labels":["dx","refactor"],"dependencies":[{"issue_id":"vsbeads-prs","depends_on_id":"vsbeads-pqx","type":"blocks","created_at":"2025-12-04T15:54:23.266227-08:00","created_by":"daemon","metadata":"{}"}]} +{"id":"vsbeads-qcb","title":"Research beads skill vs MCP vs plugin architecture","description":"Understand the relationship between beads skill, MCP server, and Claude Code plugin:\n\n**Questions to answer:**\n1. What is the beads \"skill\" and how does it differ from the MCP server?\n2. Why isn't the skill bundled in the plugin?\n3. What functionality does each provide?\n4. When should users use skill vs MCP vs plugin slash commands?\n\n**Reference docs in upstream repo (`~/ws/reference/beads`):**\n- `docs/PLUGIN.md` - Plugin documentation\n- `.claude-plugin/plugin.json` - Plugin manifest\n- `.claude-plugin/agents/task-agent.md` - Task agent definition\n\n**Deliverables:**\n- Document the architectural relationship\n- Clarify the design rationale\n- Recommend if skill should be added to plugin (or why not)","acceptance_criteria":"- Clear explanation of skill vs MCP vs plugin\n- Design rationale documented\n- Recommendation with trade-offs","status":"open","priority":2,"issue_type":"task","assignee":"jason","estimated_minutes":90,"created_at":"2025-12-05T01:18:24.504312-08:00","updated_at":"2026-01-31T04:41:14.855536-08:00","labels":["dx","research","upstream"]} +{"id":"vsbeads-re92","title":"Labels column empty on fresh VS Code startup","notes":"## Symptoms\n- Labels column shows \"-\" for all beads on fresh VS Code startup\n- Labels appear correctly after:\n - Switching to another project and back\n - Reloading the VS Code window\n\n## Likely Cause\nTiming/initialization issue - label data may not be fetched or populated during initial extension activation.\n\n## Investigation Needed\n- Check BeadsBackend initialization order\n- Verify when label data is requested vs when webview is ready\n- Look for race condition between project selection and data fetch","status":"closed","priority":2,"issue_type":"bug","assignee":"jdillon","created_at":"2025-12-26T15:53:57.445613-08:00","updated_at":"2025-12-29T14:43:30.209454-08:00","closed_at":"2025-12-29T14:43:30.209454-08:00","close_reason":"Fixed in Cycle 2 - race condition in webview initialization","labels":["ui"],"dependencies":[{"issue_id":"vsbeads-re92","depends_on_id":"vsbeads-un3l","type":"parent-child","created_at":"2025-12-29T11:39:53.227766-08:00","created_by":"daemon"}],"comments":[{"id":39,"issue_id":"vsbeads-re92","author":"jason","text":"### Investigation \u0026 Fix\n\n**Root cause identified**: Race condition in `BaseViewProvider.resolveWebviewView()`\n\nThe issue was that `initializeView()` was called immediately after setting the webview HTML, but the React app hadn't loaded yet to receive messages. This caused the initial data (including labels) to be lost.\n\n**Fix applied**: Removed the premature `initializeView()` call. Now we wait for the \"ready\" message from the webview, which indicates React is loaded and listening for messages.\n\n**File changed**: `src/providers/BaseViewProvider.ts`\n\n**Note**: Original bug was intermittent and couldn't be reproduced during testing, but the race condition was clearly present in the code. Fix verified working in code-server.","created_at":"2025-12-29T20:13:14Z"}]} +{"id":"vsbeads-rru","title":"Implement Dependency Graph as editor panel","description":"Reimplement the dependency graph view as an editor panel (like Settings) instead of sidebar webview. More space for visualization, better UX.","design":"Use `vscode.window.createWebviewPanel()` to open in editor area.\n- Register command to open graph\n- Panel shows in editor tabs like Settings/Keyboard Shortcuts\n- Can have full width for node visualization\n- Consider using a proper graph library (d3, cytoscape, etc)","status":"open","priority":3,"issue_type":"feature","estimated_minutes":480,"created_at":"2025-11-26T18:39:29.324895-08:00","updated_at":"2025-12-04T11:59:40.971443-08:00","labels":["ui"]} +{"id":"vsbeads-t5e","title":"Research external issue tracker sync (GitHub/GitLab/Jira)","description":"While beads is great for managing context and agent work, teams often need a subset of beads to sync with external trackers (GitHub Issues, GitLab, Jira, etc.).\n\nResearch questions:\n1. What upstream beads features exist for external sync? (check `external_ref` field usage)\n2. Are there examples or docs for bi-directional sync?\n3. What's the recommended workflow - manual link via `external_ref` or automated sync?\n4. Any plugins or integrations available?\n\nGoal: Understand what's possible today and what gaps exist for team workflows.","status":"open","priority":3,"issue_type":"task","estimated_minutes":180,"created_at":"2025-12-01T16:40:03.527205-08:00","updated_at":"2025-12-04T11:59:04.481436-08:00","labels":["dx","research"]} +{"id":"vsbeads-tom","title":"Create webview frame helper utilities","description":"Build helper utilities for accessing VS Code webview content in Playwright.\n\n**Challenges:**\n- Webviews render in nested iframes\n- Frame URLs/names may not be predictable\n- Need to wait for webview to fully render\n\n**Approach:**\n- Create `getWebviewFrame(page, viewId)` helper\n- Use `frameLocator()` with VS Code webview patterns\n- Add retry/wait logic for frame availability\n- Document the iframe structure for future reference","acceptance_criteria":"- Helper reliably locates Issues panel webview\n- Helper reliably locates Details panel webview\n- Works across code-server reloads\n- Clear error messages when webview not found","status":"open","priority":2,"issue_type":"task","estimated_minutes":120,"created_at":"2025-12-05T00:23:02.709382-08:00","updated_at":"2025-12-05T01:14:44.700141-08:00","labels":["testing"],"dependencies":[{"issue_id":"vsbeads-tom","depends_on_id":"vsbeads-4e7","type":"parent-child","created_at":"2025-12-05T00:23:16.357135-08:00","created_by":"daemon","metadata":"{}"},{"issue_id":"vsbeads-tom","depends_on_id":"vsbeads-ur9","type":"blocks","created_at":"2025-12-05T00:23:30.07375-08:00","created_by":"daemon","metadata":"{}"}]} +{"id":"vsbeads-toz","title":"Architecture review: extension and React component design","description":"Review the vscode-beads extension architecture from an expert perspective.\n\nAreas to evaluate:\n1. **Component duplication** - Where are we duplicating code that should be extracted?\n2. **Common components** - Are shared components in `common/` well-designed and reusable?\n3. **Hacks/workarounds** - Identify technical debt and quick fixes that need proper solutions\n4. **State management** - Is the webview↔extension messaging pattern clean?\n5. **View structure** - Are views (IssuesView, DetailsView, etc.) well-organized?\n6. **CSS organization** - Is `styles.css` maintainable or becoming a dumping ground?\n7. **Type safety** - Are types properly shared between extension and webview?\n\nDeliverable: Report with findings, recommendations, and priority for improvements.","status":"open","priority":2,"issue_type":"task","estimated_minutes":300,"created_at":"2025-12-01T17:23:41.507236-08:00","updated_at":"2025-12-04T11:58:47.201579-08:00","labels":["dx","research"]} +{"id":"vsbeads-u0wk","title":"Implicit parent-child from hierarchical IDs not reflected in daemon/UI","notes":"## Problem\nHierarchical bead IDs (e.g., `bd-abc.1`, `bd-abc.2`) create an **implicit** parent-child relationship based purely on the ID naming convention. This implicit relationship:\n\n1. **Blocks adding explicit dependencies** - Trying to add a parent-child dependency returns: \"cannot add dependency: X is already a child of Y. Children inherit dependency via hierarchy.\"\n2. **May not be reflected in daemon/UI** - The implicit relationship from ID naming may not be exposed through the daemon API, so vscode-beads can't display it\n\n## How Hierarchical IDs Work (upstream beads)\n- When creating with `--parent`, `bd create` does TWO things:\n 1. Generates hierarchical ID: `parent-id.N` (e.g., `vsbeads-515e.1`)\n 2. Adds explicit `parent-child` type dependency\n- The `isChildOf()` function in `dep.go` and `server_labels_deps_comments.go` checks if an ID follows the hierarchical pattern\n- Fix bd-nim5 added validation to prevent \"deadlock\" from explicit deps on implicit relationships\n\n## Key Code Locations (upstream)\n- `cmd/bd/dep.go:30` - `isChildOf()` function\n- `cmd/bd/dep.go:142-146` - Check that blocks child→parent deps\n- `internal/rpc/server_labels_deps_comments.go:15-24` - Same check in daemon\n- `internal/storage/sqlite/ids.go:44-64` - `IsHierarchicalID()` parsing\n\n## Impact on vscode-beads\nIf issues have hierarchical IDs but the daemon doesn't expose the implicit parent-child relationship:\n- Parent/child won't show in dependency display\n- Can't manually add the relationship (blocked)\n- Possible data inconsistency\n\n## Investigation Needed\n- Check if daemon returns implicit hierarchy in dependency queries\n- Verify how Linear imports or other sources create hierarchical IDs\n- Determine if this is an upstream beads issue or vscode-beads display issue","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-12-27T20:46:41.636091-08:00","updated_at":"2025-12-27T20:51:17.967887-08:00","closed_at":"2025-12-27T20:51:17.967887-08:00","close_reason":"Superseded by vsbeads-3ly3 (P0 with full details)","labels":["backend","daemon"]} +{"id":"vsbeads-u5xh","title":"Details panel children list vanishes when bead is updated","description":"When viewing a bead in the details panel, if that bead gets updated, the children list disappears from the panel. The list should remain visible and update with the new data.","notes":"---\n2025-12-29: Identified root cause - race condition in loadData()\n\n**Problem:** Multiple refresh() calls result in concurrent loadData() executions.\nResponses can complete out of order, with stale data overwriting newer data.\n\n**Fix:** Added request sequencing in BeadDetailsViewProvider:\n- loadSequence counter increments on each loadData() call\n- Before applying response, check if thisRequest === loadSequence\n- Discard stale responses (older requests that completed late)\n\n**Files changed:**\n- src/providers/BeadDetailsViewProvider.ts\n\nNeeds testing to verify fix.","status":"closed","priority":0,"issue_type":"bug","assignee":"jdillon","created_at":"2025-12-23T17:54:44.777683-08:00","updated_at":"2025-12-29T14:43:18.70786-08:00","closed_at":"2025-12-29T14:43:18.70786-08:00","close_reason":"Fixed race condition with request sequencing in loadData()","labels":["ui"],"dependencies":[{"issue_id":"vsbeads-u5xh","depends_on_id":"vsbeads-un3l","type":"parent-child","created_at":"2025-12-29T13:43:32.923121-08:00","created_by":"daemon"}]} +{"id":"vsbeads-ua2","title":"Research: code execution skill as MCP replacement","description":"Future work: Build skill with TypeScript utilities as eventual MCP replacement.\n\n**Approach:**\n- `.claude/skills/vscode-dev/SKILL.md` + supporting files\n- Functions: `reloadWindow()`, `clickElement()`, `getElementContent()`\n- Execute via Bash, return minimal output\n- Eventually deprecate Chrome DevTools MCP dependency\n\n**Note:** Skills share parent context (no isolation), but if output is minimal, that's fine.","status":"open","priority":3,"issue_type":"task","estimated_minutes":180,"created_at":"2025-11-28T21:52:30.285657-08:00","updated_at":"2025-12-04T11:59:31.525211-08:00","labels":["dx"],"dependencies":[{"issue_id":"vsbeads-ua2","depends_on_id":"vsbeads-5c0","type":"parent-child","created_at":"2025-11-28T21:52:42.143962-08:00","created_by":"daemon","metadata":"{}"}]} +{"id":"vsbeads-uak","title":"Research: macOS window screenshot for full Chrome capture","description":"Browser MCP tools only capture page viewport, not full Chrome window (including DevTools).\n\nResearch how to capture full window via macOS:\n- `screencapture -l \u003cwindowid\u003e` requires finding window ID\n- AppleScript can list windows but may need permissions\n- Useful for showing agent what's visible in DevTools panel\n\nLow priority - programmatic console/network access works for most cases.","status":"open","priority":3,"issue_type":"task","estimated_minutes":90,"created_at":"2025-11-27T17:34:17.25294-08:00","updated_at":"2025-12-04T11:59:34.100523-08:00","labels":["dx"],"dependencies":[{"issue_id":"vsbeads-uak","depends_on_id":"vsbeads-3cn","type":"parent-child","created_at":"2025-11-27T18:50:55.301246-08:00","created_by":"daemon","metadata":"{}"}]} +{"id":"vsbeads-un3l","title":"UI Improvements Sprint 2025-12-29","status":"closed","priority":2,"issue_type":"epic","created_at":"2025-12-29T11:39:29.634057-08:00","created_by":"jason","updated_at":"2025-12-30T01:46:19.212774-08:00","closed_at":"2025-12-30T01:46:19.21278-08:00","labels":["ui"]} +{"id":"vsbeads-ur9","title":"Set up Playwright with Bun and TypeScript","description":"Initialize Playwright in the project with proper TypeScript and Bun configuration.\n\n**Tasks:**\n- Install `@playwright/test` as dev dependency\n- Create `playwright.config.ts` with sensible defaults\n- Set up `testsuite/` directory structure\n- Add npm scripts: `test:integration`, `test:integration:headed`, `test:integration:ui`\n- Configure for Chromium-only (code-server target)\n- Document local test running workflow","acceptance_criteria":"- `bun run test:integration` runs successfully (even with empty test file)\n- TypeScript types work in test files\n- Config includes proper timeouts for code-server startup","status":"open","priority":2,"issue_type":"task","estimated_minutes":60,"created_at":"2025-12-05T00:23:00.768062-08:00","updated_at":"2025-12-05T01:14:41.119755-08:00","labels":["dx","testing"],"dependencies":[{"issue_id":"vsbeads-ur9","depends_on_id":"vsbeads-4e7","type":"parent-child","created_at":"2025-12-05T00:23:16.221581-08:00","created_by":"daemon","metadata":"{}"}]} +{"id":"vsbeads-uvh","title":"Kanban: Use icons for view toggle","description":"Replace 'Table' and 'Board' text buttons with icons to save toolbar space.\n\n## Context\nCurrent toggle in IssuesView.tsx uses text buttons:\n```tsx\n\u003cbutton\u003eTable\u003c/button\u003e\n\u003cbutton\u003eBoard\u003c/button\u003e\n```\n\nIcons would be more compact and match the filter button style.\n\n## Implementation\nFile: `src/webview/views/IssuesView.tsx`\nIcons: `src/webview/icons/`\n\nNeed two icons:\n- Table view: rows/list icon (e.g., fa-table-list or fa-bars)\n- Board view: grid/kanban icon (e.g., fa-grip or fa-columns)\n\nProject uses Font Awesome Free SVGs stored in `src/webview/icons/`.\n\n## Design Considerations\n- Match existing icon style (16x16, currentColor fill)\n- Icons should be recognizable for table vs board concept\n- Keep title attribute for accessibility\n- Consider toggle group styling (segmented control)\n\n## Acceptance Criteria\n- [ ] Text replaced with appropriate icons\n- [ ] Icons added to `src/webview/icons/`\n- [ ] Title tooltips preserved for accessibility\n- [ ] Active state clearly visible\n- [ ] Matches filter button styling\n\n## Open Questions\n- Which specific Font Awesome icons? (fa-list vs fa-table-list vs fa-bars?)\n- Segmented control style or separate icon buttons?\n- Add visual separator between filter and view toggle?","status":"closed","priority":3,"issue_type":"feature","assignee":"jdillon","owner":"jdillon@users.noreply.github.com","created_at":"2026-01-31T03:47:51.094781-08:00","created_by":"Jason Dillon","updated_at":"2026-01-31T04:53:29.151754-08:00","closed_at":"2026-01-31T04:53:29.151754-08:00","close_reason":"Implemented in feat/kanban-improvements branch","labels":["ui"],"dependencies":[{"issue_id":"vsbeads-uvh","depends_on_id":"vsbeads-h5f","type":"child","created_at":"2026-01-31T03:48:16.032489-08:00","created_by":"Jason Dillon"},{"issue_id":"vsbeads-uvh","depends_on_id":"vsbeads-66j","type":"blocks","created_at":"2026-01-31T03:48:19.563973-08:00","created_by":"Jason Dillon"}]} +{"id":"vsbeads-vp1","title":"Implement Kanban board as editor panel","description":"Reimplement Kanban board as an editor panel instead of sidebar webview. Sidebar is too narrow for a useful Kanban view.","design":"Use `vscode.window.createWebviewPanel()` to open in editor area.\n- Register command to open Kanban\n- Full-width columns for drag-and-drop\n- Cards show status, priority, assignee\n- Drag between columns to change status","status":"open","priority":3,"issue_type":"feature","estimated_minutes":600,"created_at":"2025-11-26T18:39:31.95544-08:00","updated_at":"2025-12-04T11:59:40.103462-08:00","labels":["ui"]} +{"id":"vsbeads-w2x","title":"Write first E2E test: Issues panel loads and displays data","description":"Write the first real E2E test that validates the Issues panel works.\n\n**Test scenario:**\n1. Open code-server with test beads project\n2. Navigate to Beads sidebar\n3. Verify Issues panel webview loads\n4. Verify issues from seed data appear in table\n5. Verify status badges display correctly\n\n**This proves:**\n- End-to-end data flow works (bd CLI → backend → webview)\n- Webview helper utilities work\n- Test fixtures work together","acceptance_criteria":"- Test passes locally with `bun run test:integration`\n- Test is readable and documents the user flow\n- Test uses shared selectors (not fragile locators)","status":"open","priority":2,"issue_type":"task","estimated_minutes":90,"created_at":"2025-12-05T00:23:03.354187-08:00","updated_at":"2025-12-05T01:14:47.066522-08:00","labels":["testing"],"dependencies":[{"issue_id":"vsbeads-w2x","depends_on_id":"vsbeads-4e7","type":"parent-child","created_at":"2025-12-05T00:23:16.404077-08:00","created_by":"daemon","metadata":"{}"},{"issue_id":"vsbeads-w2x","depends_on_id":"vsbeads-dxo","type":"blocks","created_at":"2025-12-05T00:23:30.127404-08:00","created_by":"daemon","metadata":"{}"},{"issue_id":"vsbeads-w2x","depends_on_id":"vsbeads-jfa","type":"blocks","created_at":"2025-12-05T00:23:30.189514-08:00","created_by":"daemon","metadata":"{}"},{"issue_id":"vsbeads-w2x","depends_on_id":"vsbeads-tom","type":"blocks","created_at":"2025-12-05T00:23:30.579435-08:00","created_by":"daemon","metadata":"{}"},{"issue_id":"vsbeads-w2x","depends_on_id":"vsbeads-eby","type":"blocks","created_at":"2025-12-05T00:23:32.194889-08:00","created_by":"daemon","metadata":"{}"}]} +{"id":"vsbeads-wgr","title":"UX polish phase 3: complex UI interactions","description":"Continuation of UX improvements from vsbeads-nin. Remaining work involves more complex UI changes:\n\n- Search/filter interaction improvements (vsbeads-57m)\n- Right-click context menus for inline editing (vsbeads-8oc) \n- Labels in dependency references (vsbeads-iur)\n- Label autocomplete with portal-based dropdown (vsbeads-p78, blocked)\n\nThese require more architectural consideration (portals, context menus, search UX design).","status":"open","priority":2,"issue_type":"epic","created_at":"2025-12-17T16:42:52.180108-08:00","updated_at":"2025-12-17T16:54:23.622708-08:00","labels":["ui"]} +{"id":"vsbeads-wk9","title":"Make badge colors configurable via settings","description":"Expose status, priority, and type badge colors as VS Code settings so users can customize them. Should support both background and text colors for each value, with consideration for light/dark themes.","design":"Settings structure could be:\n- `beads.colors.priority.P0`: { bg, text }\n- `beads.colors.priority.P1`: { bg, text }\n- `beads.colors.status.open`: { bg, text }\n- `beads.colors.type.bug`: { bg, text }\n\nOr a single object per category. Consider theme-aware defaults.","status":"open","priority":3,"issue_type":"feature","estimated_minutes":120,"created_at":"2025-11-26T17:57:59.132401-08:00","updated_at":"2025-12-04T12:00:09.336584-08:00","labels":["ui"],"dependencies":[{"issue_id":"vsbeads-wk9","depends_on_id":"vsbeads-1le","type":"parent-child","created_at":"2025-12-10T02:09:42.69549-08:00","created_by":"daemon","metadata":"{}"}]} +{"id":"vsbeads-wwl","title":"Migrate icons from Font Awesome to Lucide","description":"Replace all Font Awesome icons with Lucide equivalents for consistent stroke-based styling.\n\n## Context\nCurrently using Font Awesome Free (fill-based). Lucide offers:\n- Consistent stroke-based design\n- MIT license\n- Specific icons like 'kanban' that FA lacks\n\n## Migration Map\n| Current (FA) | Lucide |\n|--------------|--------|\n| bug | bug |\n| lightbulb | lightbulb |\n| square-check | square-check |\n| bolt | zap |\n| wrench | wrench |\n| code-merge | git-merge |\n| flask | flask-conical |\n| user | user |\n| tag | tag |\n| external-link | external-link |\n| notdef | circle-help |\n\n## Implementation\n1. Update Icon component to use Lucide React components\n2. Replace all icon imports\n3. Remove old SVG files\n4. Update any fill-based styling to stroke-based\n\n## Notes\n- kanban and table icons already migrated (vsbeads-uvh)\n- Can use lucide-react package directly instead of raw SVGs","status":"open","priority":3,"issue_type":"chore","owner":"jdillon@users.noreply.github.com","created_at":"2026-01-31T04:13:10.810464-08:00","created_by":"Jason Dillon","updated_at":"2026-01-31T04:13:10.810464-08:00","labels":["ui"],"dependencies":[{"issue_id":"vsbeads-wwl","depends_on_id":"vsbeads-uvh","type":"related","created_at":"2026-01-31T04:13:54.685886-08:00","created_by":"Jason Dillon"}]} +{"id":"vsbeads-xgn","title":"Refine browser-task agent instructions","description":"Based on testing results, refine:\n\n- System prompt for optimal response format\n- Standard task patterns (reload, click sequence, verify)\n- What to include/exclude in summaries\n- Error reporting format","status":"open","priority":2,"issue_type":"task","estimated_minutes":120,"created_at":"2025-11-28T21:52:30.218145-08:00","updated_at":"2025-12-04T11:58:49.641387-08:00","labels":["dx"],"dependencies":[{"issue_id":"vsbeads-xgn","depends_on_id":"vsbeads-5c0","type":"parent-child","created_at":"2025-11-28T21:52:42.094448-08:00","created_by":"daemon","metadata":"{}"},{"issue_id":"vsbeads-xgn","depends_on_id":"vsbeads-hgm","type":"blocks","created_at":"2025-11-28T21:52:49.395613-08:00","created_by":"daemon","metadata":"{}"}]} +{"id":"vsbeads-xxl","title":"Investigate API parity gaps between bd CLI, daemon, and MCP","description":"Analyze the three beads interfaces to identify coverage gaps and inconsistencies:\n\n1. **bd CLI** - Full-featured command-line interface\n2. **Beads Daemon** - Socket-based API for real-time integration\n3. **Beads MCP** - Model Context Protocol server for AI agents\n\n**Goal:** Document gaps and file upstream issues to encourage API parity across all three interfaces.\n\n**Analysis approach:**\n1. Review latest upstream repo (`~/ws/reference/beads`)\n2. Catalog all operations available in each interface\n3. Create comparison matrix showing coverage\n4. Identify missing operations in daemon/MCP that exist in CLI\n5. Note any behavioral differences for same operations\n6. File issues upstream with specific recommendations\n\n**Expected deliverables:**\n- Comparison matrix (CLI vs Daemon vs MCP)\n- List of gaps with severity/impact\n- Upstream issues filed (or PR if straightforward)","acceptance_criteria":"- Comparison matrix complete for all major operations\n- Gaps documented with use-case impact\n- At least one upstream issue filed for significant gaps","status":"open","priority":2,"issue_type":"task","estimated_minutes":180,"created_at":"2025-12-05T01:17:15.838445-08:00","updated_at":"2025-12-05T01:17:20.028981-08:00","labels":["dx","research","upstream"]} +{"id":"vsbeads-yhok","title":"Test Epic for hierarchy demo","status":"tombstone","priority":2,"issue_type":"epic","created_at":"2025-12-27T20:52:48.814844-08:00","updated_at":"2025-12-29T11:36:43.338738-08:00","deleted_at":"2025-12-29T11:36:43.338738-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"epic"} +{"id":"vsbeads-yhok.2","title":"Child task of epic","status":"tombstone","priority":2,"issue_type":"task","created_at":"2025-12-27T20:53:03.840173-08:00","updated_at":"2025-12-29T11:36:43.340845-08:00","dependencies":[{"issue_id":"vsbeads-yhok.2","depends_on_id":"vsbeads-yhok","type":"parent-child","created_at":"2025-12-27T20:53:03.846123-08:00","created_by":"daemon"}],"deleted_at":"2025-12-29T11:36:43.340845-08:00","deleted_by":"daemon","delete_reason":"delete","original_type":"task"} +{"id":"vsbeads-yjr","title":"Create browser-task sub-agent configuration","description":"Create `.claude/agents/browser-task.md` with:\n\n```markdown\n---\nname: browser-task\ndescription: Execute multi-step browser automation tasks in VS Code/code-server\ntools: mcp__chrome-devtools__*\nmodel: haiku\n---\n\nExecute browser automation tasks and return minimal summaries.\nDo not return full DOM snapshots. Summarize results concisely.\nIf errors occur, return specific error details.\n```\n\n**Questions to verify:**\n- Can we use glob `mcp__chrome-devtools__*` or must list each tool?\n- Should model be haiku (fast) or sonnet (better instruction following)?","status":"open","priority":1,"issue_type":"task","estimated_minutes":60,"created_at":"2025-11-28T21:52:14.912814-08:00","updated_at":"2025-12-04T11:58:45.105085-08:00","labels":["dx"],"dependencies":[{"issue_id":"vsbeads-yjr","depends_on_id":"vsbeads-5c0","type":"parent-child","created_at":"2025-11-28T21:52:41.99215-08:00","created_by":"daemon","metadata":"{}"}]} +{"id":"vsbeads-zsz","title":"Kanban: Display bead ID on cards","description":"Add the bead ID to kanban board cards for quick reference.\n\n## Context\nCurrently kanban cards show: title, type badge, priority badge, assignee.\nMissing: The bead ID (e.g., 'vsbeads-abc') which is useful for referencing issues.\n\n## Implementation\nFile: `src/webview/views/KanbanBoard.tsx`\n\nAdd bead ID display to the card, likely in `.kanban-card-meta` section or as a subtle ID above the title.\n\n## Design Considerations\n- ID should be visually subtle (not compete with title)\n- Consider monospace font for IDs\n- Match styling used in table view for consistency\n\n## Acceptance Criteria\n- [ ] Bead ID visible on each kanban card\n- [ ] Styling consistent with table view\n- [ ] ID is copy-able or at least readable\n\n## Open Questions\n- Full ID or short ID? (e.g., 'vsbeads-abc' vs 'abc')\n- Position: above title, below title, or in meta row?\n- Should ID be clickable (copy to clipboard)?","status":"closed","priority":2,"issue_type":"feature","assignee":"jdillon","owner":"jdillon@users.noreply.github.com","created_at":"2026-01-31T03:47:47.766612-08:00","created_by":"Jason Dillon","updated_at":"2026-01-31T04:53:29.147575-08:00","closed_at":"2026-01-31T04:53:29.147575-08:00","close_reason":"Implemented in feat/kanban-improvements branch","labels":["ui"],"dependencies":[{"issue_id":"vsbeads-zsz","depends_on_id":"vsbeads-h5f","type":"child","created_at":"2026-01-31T03:48:15.898179-08:00","created_by":"Jason Dillon"},{"issue_id":"vsbeads-zsz","depends_on_id":"vsbeads-66j","type":"blocks","created_at":"2026-01-31T03:48:19.431165-08:00","created_by":"Jason Dillon"}]} diff --git a/.beads/metadata.json b/.beads/metadata.json index c41ac40..a0a0742 100644 --- a/.beads/metadata.json +++ b/.beads/metadata.json @@ -1,5 +1,5 @@ { "database": "beads.db", "jsonl_export": "beads.jsonl", - "last_bd_version": "0.26.0" + "last_bd_version": "0.28.0" } \ No newline at end of file