Skip to content

Add GitHub-like tab navigation and issues API#74

Merged
joshribakoff merged 14 commits intomainfrom
github-views
Jan 22, 2026
Merged

Add GitHub-like tab navigation and issues API#74
joshribakoff merged 14 commits intomainfrom
github-views

Conversation

@joshribakoff
Copy link
Owner

Summary

  • Add tab bar to web dashboard with Worktrees/Issues/PRs tabs
  • Keyboard navigation: 1=Worktrees, 2=Issues, 3=PRs, Tab=cycle views
  • Add GET /api/issues endpoint returning plans with issue numbers
  • Parse issue numbers from frontmatter (#123 or 123 format)

Part of the GitHub-like views plan for making Bearing navigation more familiar.

Test plan

  • All daemon tests pass (13 tests including new TestHandleIssues)
  • Tab switching works via click and keyboard
  • Issues/PRs views show placeholder (content coming soon)

🤖 Generated with Claude Code

joshribakoff and others added 7 commits January 20, 2026 19:44
- Add HTTP server for web dashboard with API endpoints
- Endpoints: /api/projects, /api/worktrees, /api/plans, /api/prs, /api/health, /api/status, /api/events (SSE)
- Add ReadProjects method to jsonl store
- Comprehensive test coverage for all endpoints including SSE

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Start HTTP server on port 8374 when daemon runs
- Broadcast health updates to connected SSE clients
- Add StaticFS config option for embedded web assets

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- index.html: Three-panel layout matching TUI (projects, worktrees, details)
- style.css: Darcula-inspired theme matching TUI colors
- app.js: Vanilla JS with keyboard navigation, SSE for real-time updates

Features:
- Keyboard navigation (0-2 for panels, j/k for nav, ? for help)
- Project selection with worktree count
- Worktree table with status indicators (dirty, unpushed, PR state)
- Details panel showing selected worktree info
- Plans modal (p key)
- Real-time updates via Server-Sent Events

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Tests realistic scenarios with:
- Static file serving
- Combined worktree/health data
- Project filtering
- Plans frontmatter parsing
- Empty workspace handling

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Terminal-noir aesthetic with IBM Plex fonts
- Hero section with TUI screenshot as centerpiece
- Benefits cards with hover effects
- Features grid, CTA section
- Light/dark theme support
- Subtle grid background and glow effects

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Web Dashboard:
- Add tab bar with Worktrees/Issues/PRs tabs
- Keyboard navigation: 1=Worktrees, 2=Issues, 3=PRs, Tab=cycle views
- Show placeholder for upcoming Issues/PRs views

Daemon API:
- Add GET /api/issues endpoint returning plans with issue numbers
- Parse issue numbers from plan frontmatter (#123 or 123 format)
- Include plan_id, repo, title, status, priority in response

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@vercel
Copy link

vercel bot commented Jan 22, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
bearing Ready Ready Preview, Comment Jan 22, 2026 3:52am

joshribakoff and others added 2 commits January 21, 2026 17:16
- Click column headers to sort (folder, branch, status, PR)
- Default sort: OPEN PRs first, then dirty, then alphabetical
- Sort indicators with arrows (▲/▼)
- Sort persists through data refresh

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Create KEYBINDINGS.md documenting shared keybindings for TUI and Web
- Add on_click handlers to TUI ProjectList for better mouse support
- Add 4 mouse click tests to verify selection behavior
- Document discrepancies between TUI (panel focus) and Web (view switching)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove header bar, move status indicator to footer
- Fix details panel: fixed height (80px), multi-column layout, scrollable
- Add localStorage persistence for selection, sort, and view state
- Details now use CSS grid for responsive multi-column display

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
joshribakoff and others added 3 commits January 21, 2026 17:39
Store selectedWorktreeFolder instead of worktreeIndex in localStorage.
Index is fragile since it changes with sort order. Folder name is stable.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Daemon serves web files from StaticFS
- Dynamic port selection with fallback (writes to ~/.bearing/http.port)
- Web dashboard improvements

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@joshribakoff joshribakoff merged commit f67cbda into main Jan 22, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant