Requires bd 0.49.x. Recommended CLI: br up to 0.1.33.
- br list not displaying issues since br 0.1.30 (#18):
br list --jsonnow returns a paginated JSON envelope ({ items: [...], total, page, per_page }) instead of a flat array. Added envelope detection in both the Rust backend and Nuxt API layer to unwrap the new format while remaining backward-compatible with older br versions
Requires bd 0.49.x. Recommended CLI: br 0.1.14.
- Cross-platform log path (#15):
get_log_path()was hardcoded to macOS~/Library/Logs/. Now uses platform-aware paths — Linux resolves to~/.local/share/com.beads.manager/logs/beads.log(XDG), Windows to%APPDATA%/com.beads.manager/logs/beads.log - Cross-platform PATH resolution (#15):
get_extended_path()used Unix-onlyHOMEvariable and:separator. Now usesUSERPROFILE/LOCALAPPDATAand;separator on Windows, with appropriate search paths per platform
Requires bd 0.49.x. Recommended CLI: br 0.1.14.
- Toast notifications unreadable in light theme (#8): Added theme-aware backgrounds (light pastel tones in light mode, original dark backgrounds preserved in dark mode) and adjusted icon contrast. Increased default display duration from 3s to 5s
- No window title on Windows (#9): Set default window title to "Beads Task-Issue Tracker" and dynamically update it with the current project name for Windows task switchers (PowerToys Run, Flow Launcher, Switcheroo, etc.)
Requires bd 0.49.x. Recommended CLI: br 0.1.14 — br 0.1.20 has a regression with older databases (fsqlite schema parsing bug), avoid until fixed.
- Pinned issues always on top: Pinned issues float to the top of the table regardless of sort field and direction, with a visual separator between pinned and non-pinned sections
- Epic sort order fix:
groupIssuesnow uses single-pass iteration so epics follow the active sort order instead of being forced to the top
- Lock icon not disappearing after blocker is completed (#7): When a blocking issue was closed, the lock icon on dependent issues remained visible due to stale cached
blockedBydata. The icon now disappears automatically on the next poll, and dependent issues are immediately refreshed when a blocker is closed from within the app
Requires bd 0.49.x. Recommended CLI: br (beads_rust) — use br 0.1.14 (0.1.19 had a regression, fixed in 0.1.20).
- Pin/favorite issues: Pin issues to the dashboard with a dedicated "Check This Out" section and a pin column in the issues table
- Keyboard navigation: Full keyboard navigation for tables and lists — arrow keys, Enter to select, Escape to deselect
- Pinned sort modes: Sort pinned issues by date added, last updated, or manual drag-and-drop order
- Pinned column sort: Sorting by the pinned column now works correctly in the issues table
- CLI usage note: Added side-by-side CLI usage note in README
Recommended CLI:
br(beads_rust) — faster, more optimized, and our primary choice going forward.bd 0.49.xremains supported as a fallback. Ifbdwith Dolt regains comparable reactivity and performance in future versions, we'll reconsider.
- Filesystem-only attachments: The
.beads/attachments/directory is now the sole source of truth — no more reliance onexternal_reffor path storage - Auto-migration v3: Existing projects are automatically migrated on first open (backup created, refs cleaned, files preserved)
- Multi-file attach: Attach multiple images or markdown files in a single operation
- Removed
cleared:{id}sentinel: Emptyexternal_refnow uses native empty string (converted tonullinternally bybr/bd) — simpler, no more sentinel values - Attachment refresh fix: Cache invalidation after attach/detach + proper watch on issue object changes
- External status change toasts: Toast notifications when issues are closed, deleted, or reopened externally (via CLI or another tool)
- Tombstone detection:
br delete --hardcreates tombstone status — now properly detected and surfaced as a delete notification
- Removed dead code:
delete_attachment_file,cleanup_empty_attachment_folder(Rust + TS), legacy external_ref path restoration in migration - Native logger: All debug logging uses the native
logFrontend()→ Rustlog::info!pipeline (log file:~/Library/Logs/com.beads.manager/beads.log)
Requires bd 0.55+ for optimal performance. Compatible with bd 0.50+ (with fallback).
- Rename favorites to projects across UI and composables
- Delete issue notification — Shows a notification when an issue is deleted from the UI (single, multi-select, epic)
- Unified change detection — Replace
useBeadsWatcherwithuseChangeDetectioncomposable (native file watcher)
- Fix bd delete flags for bd 0.50+ (
--hardflag removed)
Requires bd 0.55+ for optimal performance. Compatible with bd 0.50+ (with fallback).
- Refactor
index.vue: Reduced from 2533 to ~1250 lines (~51%) by extracting 2 composables and 4 componentsuseSidebarResizecomposable — sidebar state and resize handlersuseIssueDialogscomposable — dialog state and 20+ handlersIssueDetailHeadercomponent — deduplicates desktop/mobile detail headerDashboardContentcomponent — deduplicates desktop/mobile dashboardIssueListPanelcomponent — deduplicates desktop/mobile issue listDialogsLayercomponent — groups 8 dialogs + image/markdown preview
- Extract pure logic from composables into testable utility modules
issue-helpers.ts— deduplication, natural sort, filtering, sorting, grouping, dashboard statsfavorites-helpers.ts— path normalization, dedup, sorting
- Vitest setup with jsdom environment, path aliases, and test/test:watch scripts
- 179 unit tests across 7 test files covering all pure utility functions
markdown.ts— image/ref extraction, rendering, XSS sanitizationissue-helpers.ts— deduplication, natural sort, filtering, sorting, epic grouping, dashboard statsfavorites-helpers.ts— path normalization, dedup, sort modespath.ts— cross-platform path splitting and separator detectionopen-url.ts— URL validation, local path detection, URL normalizationhash.ts— DJB2 hash determinism
Requires bd 0.55+ for optimal performance. Compatible with bd 0.50+ (with fallback).
- Per-project mutex: Serializes all
bdCLI calls per project to prevent concurrent Dolt embedded access that caused SIGSEGV crashes (nil pointer dereference in dolthub/driver) - Single
bd list --allcall: Uses the fixed--allflag in bd 0.55+ instead of 2 separate calls (open + closed), with automatic fallback for older versions - Dolt mtime detection fix:
get_beads_mtime()now scans the nested Dolt layout (.beads/dolt/<name>/.dolt/) introduced in bd 0.52+, in addition to the legacy layout
- Stop polling/watcher before switch: Prevents concurrent
bdcalls from the old project's poll cycle and watcher cascade during project switch - Pre-flight checks in parallel: Migration check and mtime reset run concurrently before data load
- Watcher resumes after data load: Avoids self-triggered cascade polls from
bdwriting to.beads/
- Add missing
IssueStatusvalues (deferred, tombstone, pinned, hooked) in FilterChips and IssueTable - Fix Vue runtime warnings from directives on TooltipProvider
- Fix zoom breaking favorites drag and drop reordering
- Fix favorite removal modal not showing and duplicate entries
bd 0.50+ compatibility — This release adds full support for the Dolt backend introduced in bd 0.50. The app remains fully compatible with earlier bd versions (SQLite backend). If you upgrade bd to 0.50+, projects still using the legacy SQLite backend will be detected and a migration modal will prompt you to migrate on first open — all data is preserved.
- Backward compatible: The application continues to work with bd versions prior to 0.50 (SQLite backend) without any changes.
- Dolt migration modal: When using bd >= 0.50, projects still on SQLite are detected and a migration modal prompts the user to run a one-time migration. All data (issues, labels, dependencies, comments, attachments) is preserved.
- Parent-child is now structural (bd >= 0.50 only): Parent-child relationships are determined by dot notation in issue IDs (e.g.,
abc.1is a child ofabc). The parent selector is hidden in the issue form for bd >= 0.50. Known limitation: it is no longer possible to attach an existing issue to an epic after creation — children can only be created from the parent issue (via "Create child"), which assigns the correct ID prefix automatically. This does not affect users on earlier bd versions, where the parent selector remains available.
- Dolt migration modal: Detects SQLite projects on open and prompts the user to run the migration with progress feedback
- 7-step migration process: Export JSONL → backup → init Dolt → import → restore labels, dependencies, comments → convert attachment paths to absolute
- Empty project migration: Projects with zero issues are handled gracefully (init-only migration)
- Dot notation parent-child derivation: Parent and children relationships are derived from the loaded issues list based on ID structure
- Short ID in preview header: Issue preview shows the short suffix (e.g.,
d6rp) instead of the full ID, while still copying the full ID to clipboard - Per-project Dolt detection: Dolt logo badge displayed in project browser and debug panel for migrated projects
- Dolt logo readability: Enlarged Dolt SVG logo in FolderPicker badges for better visibility
- FolderPicker cleanup: Removed manual "Migrate to Dolt" button — migration is now handled automatically by the mandatory modal
- Migration error handling: Reset error messages when switching between projects
- Race condition prevention: Migration check runs before any bd CLI command to prevent bd auto-migration from bypassing the custom 7-step process
- Blue flash animation: Prevent flash on all rows when switching projects (only flash newly added issues)
- bd --version isolation: Run
bd --versionfrom temp directory to avoid triggering auto-migration in project directories
Requires bd 0.49.3+ for full feature support.
- New issue flash animation: Newly added issues highlight with a blue flash (status "open" color) that fades over 3 seconds, works for both in-app creation and external CLI additions detected via polling
- Column sort persistence: Persist column sort preferences per project so sorting is remembered across sessions
- Issue preview auto-refresh: Auto-refresh issue preview on any field change, not just status updates
- Epic child ordering: Sort epic child issues by ID suffix for consistent ordering
Requires bd 0.49.3+ for full feature support.
- Changelog fetch caching: Use GitHub Contents API instead of raw.githubusercontent.com CDN which ignores cache-busting query params, causing stale changelog in update checker
Requires bd 0.49.3+ for full feature support.
- Dashboard short IDs: Show key suffixes (e.g.,
d6rp) instead of full IDs in Ready to Work and In Progress panels - Scroll to selected row: Clicking an issue in dashboard panels now smooth-scrolls the table to the corresponding row
- Logo green circle: Restore hardcoded green color on first logo circle after accidental override
- Changelog caching: Bypass GitHub CDN cache when fetching changelog for accurate update checks
Requires bd 0.49.3+ for full feature support.
- Badge color semantics: Swap Open (now blue) and In Progress (now green) status badge colors — green consistently means active work
- Epic badge color: Changed from green to indigo to avoid confusion with active status
- P3 priority color: Changed from green to dark goldenrod for better contrast with P2 amber
- Epic progress bar: Now uses in-progress green instead of primary blue
- All changes applied across Classic, Dark Flat, Light Flat, and Neon themes
Requires bd 0.49.3+ for full feature support.
- Extensible theme system: 4 built-in themes — Classic Light, Classic Dark, Dark Flat, and Neon
- Neon theme: Deep dark UI with transparent glowing badges, neon-colored text, glow effects on KPI cards, charts, dependency links, and filter chips
- Dark Flat theme: Clean solid-color badges without gradients for a minimal look
- Light Flat theme: Same flat badge style adapted for light mode
- Theme selector: New section in Settings dialog with visual theme cards
- Header theme cycling: Click the theme icon to cycle through all themes
- Theme-aware Label badges: Dynamic neon palette for labels in Neon mode
- CSS custom properties architecture: All badge colors driven by CSS variables — adding a new theme = one CSS block, zero component changes
- Auto-migration: Existing users with
beads:darkModesetting are automatically migrated to the new theme system - Epic row backgrounds: Fixed hardcoded dark background for proper light theme support
- Slimmer chart bars: Progress bars reduced for a cleaner dashboard
Requires bd 0.49.3+ for full feature support.
- Tombstone issues shown as Open: Soft-deleted issues (
tombstonestatus) were displayed as "Open" becausenormalize_issue_status()converted unknown statuses to"open"
- Extended bd status support: Added
deferred,tombstone,pinned,hookedstatuses with distinct badge colors (amber, stone, purple, cyan) and filter options
Requires bd 0.49.3+ for full feature support.
- Short IDs in table column: ID column now shows only the key suffix (e.g., "22g" instead of "task-issue-tracker-demo-22g"), replacing the unreliable common-prefix algorithm with direct suffix extraction
Requires bd 0.49.3+ for full feature support.
- Epic progress bar: Collapsed epics show a completion progress bar with percentage and current in-progress child task when the epic or a child is actively being worked on
- Short IDs in preview panel: Children, dependencies (blockers), and relations now display short IDs without the project prefix for better readability
- Dependencies & relations line layout: Replace compact badges with full-width clickable rows showing ID (colored by priority) + title for dependencies and relations
- Always show changelog: Update dialog now always displays the full changelog instead of requiring a click
- Redundant label removed: Remove duplicate "What's new" label above changelog in update dialog
Requires bd 0.49.3+ for full feature support.
- Add/remove relations: Create and remove non-blocking relations (relates-to, duplicates, supersedes, caused-by, etc.) directly from the issue detail view
- Modal dialogs for blockers and relations: Replace inline autocomplete forms with proper modal dialogs for a more reliable and spacious UI
- Dynamic relation types: Available relation types adapt to the detected CLI client (bd: 10 types, br: 7 types)
- Relations on closed issues: Relations can be added and removed on closed issues (e.g. retroactively linking duplicates)
- Search across all issues: Modal search field searches open and closed issues regardless of the filter state
- Exclude closed filter: Toggle filter in the relation modal to show/hide closed issues when browsing
- Priority-colored IDs in modals: Issue IDs are colored by priority (red/orange/green/gray) in both blocker and relation modals
- StatusBadge in modals: Each issue in the selection list shows its status badge for quick identification
- Priority border fallback: Relation badges now look up priority from loaded issues when the backend doesn't provide metadata
- Relation removal direction: Fix remove not working when the relation direction is "dependent" (inverse dependency order)
Requires bd 0.49.3+ for full feature support.
- Epic colored borders always visible: Borders no longer disappear when collapsing an epic or filtering by closed status
- Distinct epic colors: Use index-based color assignment instead of ID hash to prevent color collisions between epics
- No status color confusion: Replaced blue/green/red border colors with amber/violet/teal to avoid visual conflict with status badges
Requires bd 0.49.3+ for full feature support.
- Live updates via native file watcher: Replace the 1s mtime polling loop with a debounced native filesystem watcher (
notifycrate). External changes (e.g.bd createfrom the terminal) are detected instantly with near-zero CPU usage when idle. The previous adaptive polling remains as a 30s safety net with graceful degradation if the watcher fails to start.
- Rust-side: 1000ms debounce covers SQLite WAL write bursts,
NonRecursivewatch on.beads/only - Frontend: 300ms event coalescing + 3s self-trigger cooldown prevents cascading from bd sync writes
- New
useBeadsWatchercomposable with concurrency guard and project path filtering useAdaptivePollingupgraded with watcher-aware mode (30s safety net replaces 5s+1s polling)
Requires bd 0.49.3+ for full feature support.
- Fast mtime detection: Decouple cheap mtime check (1s interval) from data fetch (5s poll). External changes are now detected in ~1s instead of ~5s, with zero CPU cost when nothing changed
- bd CLI update detection: Debug Panel now shows when a newer version of the bd CLI is available, with direct link to releases
- View on GitHub button: Always show "View on GitHub" button in the update dialog, not just when an update is available
Requires bd 0.49.3+ for full feature support.
- File picker on Linux: Add "All supported files" filter as default in file dialogs so Markdown files are visible without manually switching filters (GTK defaults to first filter)
Requires bd 0.49.3+ for full feature support. Core features work with bd 0.42+.
- Metadata display: Read-only formatted JSON display of per-issue metadata in detail view (set via
bd update --metadata) - Spec ID field: Full create/edit support for the
spec_idfield linking issues to specification documents - Comment count column: New "Comments" column in issue list (hidden by default, enable via column config), with fallback to comments array length
- bd/br client detection: Automatic detection of CLI client type (bd vs br) with version-aware feature profiles
- bd 0.50.0 compatibility: Version-aware compatibility layer that auto-disables
--no-daemonflag and JSONL file watching for bd 0.50.0+ - In Progress sidebar: Dashboard sidebar now shows issues currently in progress
- Column config auto-sync: New default columns are automatically added to persisted column config for existing users
- Philosophy documentation: Project philosophy integrated into README
- Graceful missing issues: Handle missing issues in
bd_showwithout crashing
- LATEST release mode: New workflow mode to quickly publish development builds without version bump, overwriting the same
latestGitHub release - Full changelog in update dialog: Update dialog now fetches and displays the full CHANGELOG.md instead of just the release body
- Auto-copy xattr command: On macOS, clicking "Download & Quit" automatically copies the
xattr -crcommand to clipboard
- App menu reorganization: Moved Settings, Check for Update, and Show Logs into the main app menu; removed standalone Debug menu
- Colored markdown headings: Compact markdown variant now has colored headings (h1-h4) and styled strong text for dark/light modes
- Wider update dialog: Increased dialog width and changelog scroll height for better readability
- Update download errors: Add error logging and fix error display for update download failures
- Configurable CLI binary: Add configurable CLI binary path for bd-compatible forks, allowing users to specify a custom binary in settings
- Sortable favorites: Drag-and-drop reordering of sidebar favorites with grip handles
- Sort mode toggle: Cycle between A-Z, Z-A, and manual order via header button
- Reset button: Quick reset to alphabetical order after manual reordering, appears only when needed
- Project path field: Fixed path field not updating when opening picker from favorites
- Changelog in update dialog: Release notes from GitHub are now displayed in a scrollable "What's new" section when an update is available
- Download & Quit: New button downloads the update (DMG on macOS), mounts it, and closes the app automatically
- macOS xattr helper: Shows the
xattr -crcommand with click-to-copy for unsigned app workaround
- Window close permission: Added missing
core:window:allow-closeTauri capability that prevented the app from closing after download
- Stale issue list on project switch: Fixed mtime tracking using a global singleton that caused stale data when switching between favorite projects. Now uses per-project HashMap to track mtimes independently
- Slow refresh after favorite change: Added
bd_reset_mtimecommand to invalidate cached mtimes on project switch, ensuring immediate refresh with correct data
- Markdown CSS consolidation: Refactored markdown preview styles into a shared CSS base with table support
- README documentation: Expanded feature documentation with attachments, bulk operations, and keyboard shortcuts
- Debug panel toggle: Replaced sync indicator with a debug panel toggle button in the footer for quicker access
- Attachment documentation: Added
docs/attachments.mdexplaining how the app repurposesbd's--external-reffield to implement file attachments, with scripting examples
- Reduced CPU/disk usage: 4-layer polling optimization — sync cooldown, filesystem mtime check, batched poll command, and adaptive polling intervals. Most poll cycles now spawn zero bd processes
- Debug Panel smart scroll: Log view no longer jumps to bottom on auto-refresh when scrolled up, allowing inspection of older entries
- Debug Panel logging: Backend logging is now automatically enabled when the Debug Panel is open (was silently disabled)
- mtime guard accuracy: Fixed mtime check always reporting "changed" by snapshotting after all poll-triggered db operations complete
- Markdown file preview: View attached
.mdfiles in a full-screen dialog with rich rendering (headers, tables, code blocks, blockquotes) - Inline markdown editing: Edit markdown files directly in the preview dialog using contentEditable, with save confirmation
- Markdown attachments: Attach
.md/.markdownfiles to issues alongside images, displayed as clickable links in the attachments section - Markdown gallery navigation: Browse multiple markdown attachments with arrow navigation (same UX as image gallery)
- Diagonal gradient badges: All badge types now use diagonal gradient styling
- GitHub footer link: Added GitHub icon in footer and repository link in update dialog
- Favorites auto-cleanup: Users are notified when invalid favorite paths are automatically removed at startup
- Epic children grouping: Re-parented issues (moved under an epic via
bd update --parent) now correctly appear grouped under their epic in the table view, not as standalone issues
- Label multiselect component: Replace comma-separated labels input with a multiselect featuring colored badges, search/filter, and create new labels on the fly
- Periodic update check: App now checks for updates hourly in the background
- Database migration repair: Detect and repair bd 0.49.4 schema migration errors with user-controlled repair dialog for affected projects
- Per-project settings isolation: Filters, column configuration, expanded epics, and collapsible section states are now stored per project using localStorage namespacing with djb2 hash
- Multi-image navigation: Preview modal now supports navigating between multiple attached images
- Image thumbnails: Reduced thumbnail size to 180px for better layout
- Preview sections: 11 collapsible sections in issue preview now persist state per project
- Permanent issue deletion: Issues now use
--force --hardflags for permanent deletion, preventing deleted issues from reappearing after sync - Delete error notification: Show error notification when issue deletion fails
- Filter dropdown behavior: Exclusion dropdown now properly closes other filter dropdowns
- Duplicate issues: Fixed deduplication when merging open/closed issue lists
- Documentation: Updated CLAUDE.md with dev server instance management instructions
- EPIC display issues: Fixed missing EPIC ID in preview, improved children grouping display, and corrected border styling
- Label filter OR logic: When filtering by multiple labels, issues now show if they have at least one of the selected labels instead of requiring all labels
- External ref persistence: Clearing the external_ref field now persists correctly using a sentinel value to satisfy the SQLite UNIQUE constraint
- Epic deletion confirmation: Confirmation dialog when deleting an Epic with options for handling child issues
- Sticky table header: Table header now stays fixed at top when scrolling through issues
- Parent/child relationship management: Attach or detach issues to/from Epic parents via dropdown selector in edit form
- Create child from Epic: New "Create child" button in Epic preview to quickly create child issues with parent pre-selected
- Epic visual styling: Colored left borders on Epic rows for better visual distinction
- Smart form fields: Parent selector hidden when editing Epic issues (Epics cannot have parents)
- CLAUDE.md documentation: Added gotchas about external_ref UNIQUE constraint and its various uses
- Fix update failures: Skip empty --external-ref to avoid UNIQUE constraint errors that caused silent update failures
- Exclusion filter panel: Hide issues by type, labels, status, priority, or assignee via a new dropdown with collapsible sections
- Assignee filter dropdown: Multi-select filter by assignee with slate-colored badge
- Two-row filter chips: "Filters:" row for inclusions, "Hidden:" row for exclusions with independent Clear buttons
- Red checkmark indicator: Excluded items show bright red checkmark (#ff3333) with grayed text
- Auto-open sections: Exclusion sections auto-open when they contain active filters
- Unified filter order: Type, Labels, Status, Priority, Assignee across all filter components
- Project-specific reset: Labels and assignees exclusions cleared on project change
- Hierarchical epic display: Child issues are now grouped under their parent epic with collapsible sections
- Epic progress badge: Shows closed/total count on epic rows (e.g., "1/10")
- Short ID display: Table shows only the unique ID suffix without project prefix (full ID still copied)
- Natural ID sorting: IDs with numbers now sort correctly (40b.2 before 40b.10)
- Visual hierarchy: Child rows have darker background to distinguish from parent
- Compact table rows: Reduced vertical padding in table cells
- Markdown spacing: Fixed double-spacing issue in description panel
- Quick list spacing: Reduced spacing in "Ready to Work" list
- Image attachment system: Attach images from local files or URLs to issues, stored in
.beads/attachments/{issue-id}/ - Attachment cleanup: Automatic purge of orphan attachment folders when deleting issues
- File deletion on detach: Detaching an image from an issue now deletes the file from attachments folder
- Closed issue restrictions: Closed issues are now read-only (no edit, attach, comment) until reopened
- Reopen button: New button to reopen closed issues directly from the preview panel
- Action notifications: Toast notifications for all issue actions (create, save, close, reopen, comment) with issue ID and title
- Update dialog: Replaced footer version tooltip with a proper update dialog
- TypeScript fixes: Fixed type errors in IssueTable, bd-api, markdown, and count.get
- Filter dropdown behavior: Fix Tooltip/DropdownMenu nesting order that was blocking click events
- Exclusive filter state: Clicking one filter now automatically closes the others
- Click outside handling: Clicking outside filter buttons now properly closes the open dropdown
- Image preview system: Issue attachments (screenshots) now display as thumbnails in an "Attachments" section
- Full-screen image viewer: Click on thumbnails to view images in a full-screen modal
- Secure image handling: Tauri commands restricted to image files only (png, jpg, gif, webp, svg, etc.)
- Multi-select filter dropdowns: Replaced the monolithic "Filter" dropdown with 4 individual filter buttons (Status, Type, Priority, Labels)
- Label multi-select filter: Labels now support multi-selection with AND logic (issues must have ALL selected labels)
- Collapsible favorites section: Favorites in the sidebar can now be collapsed/expanded
- Colored filter chips: Filter badges now use the same colors as the app badges (status, type, priority, labels)
- Filter tooltips: Added helpful tooltips to each filter button
- Fix clearing issue fields: Fields like design notes, acceptance criteria, working notes, assignee, and labels can now be properly cleared when editing an issue
- Search filter now bypasses other filters: When searching, all issues (including closed ones) are now searched, instead of only searching within already-filtered results
- Bidirectional sync: Local changes now persist correctly (was using
--import-onlywhich overwrote local changes) - Tolerant JSON parsing: Handles malformed bd CLI output gracefully, displays valid issues even when some fail to parse
- bd update fix: Empty arguments no longer cause update failures
- Export logs: New button to export logs to Downloads folder with path display
- BD version display: Shows bd CLI version in Debug Panel header
- Conditional logging: Logs disabled by default for better performance
- Log rotation: 5MB max file size with automatic rotation (keeps 1 backup)
- Added support for new bd CLI dependency format
- Added
close_reason,issue_id,dependency_countfields - Made dependency fields optional for compatibility
- Debug Panel accessible via menu
Debug > Show Logs...orCmd+Shift+L - Live/Paused mode for real-time log monitoring
- Verbose mode to display detailed bd command output
- Force Sync moved to Debug Panel
- Colorized logs by command type for better readability
- Clear logs with one click
- Resizable panel (up to 50% of screen height)
- Logging enabled in release builds for diagnostics
- Simplified logs by default (byte count only)
- Verbose option to see bd response content
- Native macOS Menu: Added "Check for Update..." menu item in the app menu
- Full native menu bar with Edit (Undo, Redo, Cut, Copy, Paste) and Window menus
- Update dialog shows loading state, version comparison, and download button
- About dialog with app icon, version and credits
- Added checkmark icon to "You're up to date" message in footer
- Unified update status text across menu dialog and footer
- Credits Tooltip: Fixed tooltip position that was appearing below the viewport instead of above the footer