Native macOS IDE with Corveil branding and GitHub integration#1
Merged
dhilgaertner merged 6 commits intomainfrom Apr 2, 2026
Merged
Native macOS IDE with Corveil branding and GitHub integration#1dhilgaertner merged 6 commits intomainfrom
dhilgaertner merged 6 commits intomainfrom
Conversation
…, and GitHub integration Native Swift/SwiftUI app replacing CMUX for AI development session management: - Ticket Board tab with GitHub Projects status pipeline (Backlog → Ready → In Progress → In Review) - GraphQL-based project status fetching with fuzzy status mapping - Session/worktree/terminal management via ride CLI over Unix socket IPC - Ghostty-based terminal surfaces with off-screen pre-warming for reliable initialization - Auto-completion of sessions when linked PRs are merged or issues are closed - PR detection on session branches with --repo flag for reliable lookups - Safe deletion that protects main branch checkouts from worktree cleanup - Context-aware delete confirmation dialogs - App icon support via SwiftPM bundled resources - ride-workspace skill with auto-assign and project status updates Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…d sidebar redesign Branding: - Corveil design tokens (CorveilTheme.swift) from corveil.com CSS - Gold accents, dark backgrounds, branded sidebar and detail headers - Corveil brandmark in sidebar, window title "Corveil AI IDE" - Consistent gold title styling across all right-pane headers Sidebar redesign: - Removed section headers, replaced with bold inline dividers - Manager row styled as centered gold button - Session cards show repo/branch, issue badge, PR badge with status, Claude state - Ticket row with SF Symbol icons (tray, flag, bolt, eye, checkmark) and done-24h count - Consolidated delete confirmation into shared DeleteSessionAlert modifier Terminal readiness system: - TerminalReadiness state machine: uninitialized → surfaceCreated → shellReady → claudeLaunched - Lazy Claude launch on first tab focus instead of eager launch at startup - Loading overlay while terminal initializes - Status dot reflects terminal lifecycle (gray → yellow → blue → green) - Readiness tracking for both hydrated and newly created sessions PR status enrichment: - PRStatus model tracking pipeline checks, review status, merge readiness - IssueTracker fetches PR status via gh pr view --json - PRBadge component with color-coded pipeline/review icons - PRStatusDetail in session header showing "1 failing", "Needs review", etc. Bug fixes: - Fixed resolveRepoSlug regex not stripping .git suffix from SSH URLs - Fixed provider never being set (auto-detect from ticket URL, backfill on hydrate) - Fixed get-session RPC not returning all fields - Fixed JSONStore silently wiping data on decode failure (now logs + backs up) - Fixed wireTerminalReadiness called after window render (moved before window creation) - Renamed "Complete" to "Mark as Completed" - Safe delete for main branch checkouts - Polling interval reduced from 5 min to 60 sec Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Orphan detection: - On startup, scan all repos for worktrees not tracked in the store - Auto-recover orphans as sessions with ticket metadata from GitHub - Detect PRs on orphan branches (using --state all for merged PRs) - Persist recovered sessions to the store immediately Merged PR display: - Added .merged case to PRStatus.MergeStatus - Purple badge with checkmark for merged PRs instead of pipeline/review icons - "Merged" text label in detail header - hasBlockers returns false for merged PRs Bug fixes: - fetchPRStatuses now checks all sessions (not just active) so completed sessions show PR status - Issue link label now shows "Issue #N" format in recovered sessions Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… reference Covers prerequisites (Swift 6, Zig, gh CLI), build steps (Ghostty framework, swift build, app bundle), first-run setup wizard, workspace configuration, architecture overview with package descriptions, ride CLI reference, feature documentation (ticket board, PR status, auto-complete, orphan recovery), and debugging tips. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…change IssueTracker: - Moved shell command execution to Task.detached so process.waitUntilExit() runs on a background thread instead of blocking the main actor - Eliminates beach ball during the 60-second GitHub polling cycle GhosttySurfaceView: - Added viewDidChangeBackingProperties() to handle display scale factor changes when moving between monitors with different DPI - Added resize(withOldSuperviewSize:) to recalculate surface dimensions on window resize - Fixes terminal appearing zoomed in after moving to a different display Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds app-specific Ghostty config override that sets scroll-to-bottom = keystroke, no-output so the terminal viewport stays in place when scrolled up while Claude Code is producing output. Users can still scroll to bottom by pressing any key. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
dhilgaertner
added a commit
that referenced
this pull request
Apr 8, 2026
Wrap Int interpolations with String() to prevent locale-aware formatting that adds commas to numbers >= 1,000 (e.g., #1,486 → #1486). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
dhilgaertner
added a commit
that referenced
this pull request
Apr 8, 2026
## Summary - Fixes ticket and PR numbers displaying with locale-aware comma separators (e.g., `#1,486` instead of `#1486`) - Wraps `Int` string interpolations with `String()` across 4 UI files to bypass Swift's locale formatting Closes #124 ## Test plan - [x] Verify ticket numbers >= 1,000 display without commas in session list - [x] Verify ticket numbers display correctly in session detail view - [x] Verify issue numbers display correctly on the ticket board - [x] Verify PR numbers display correctly on the ticket board and review board 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Closed
3 tasks
5 tasks
dhilgaertner
added a commit
that referenced
this pull request
May 4, 2026
…xes (#238) Closes #235 ## Summary - Adds `docs/automation.md` as the canonical guide to Settings → Automation and the full auto-flow lifecycle. - Updates `docs/architecture.md` with the dual Ghostty/tmux backend (#229), the new `TerminalRouter` dispatch, the Settings tab split (#228), and the Review Board surface (#188, #205, #207, #210, #212, #220, #226, #231). - Adds `crow rename-terminal` (#206) to `docs/cli-reference.md`. - Adds troubleshooting rows for tmux backend missing, Ghostty surface retry (#218), GitLab nested groups (#233), `GITLAB_HOST` silent skip (#215), auto-respond not firing, and the silent no-op `hook-event` behavior (#234). - Adds `CROW_TMUX_BACKEND` and `CROW_HOOK_DEBUG` to the `docs/configuration.md` env-var table. - Backfills `CHANGELOG.md` `[Unreleased]` with every PR from #137 through #234, grouped by theme. - Updates `README.md` features list and docs index for the new automation suite, review board, terminal renaming, and tmux opt-in. - Appends an "Implementation Status (2026-05)" footer to `docs/terminal-runtime-research.md` noting #229 shipped the headless-PTY backend recommended in the original research. The audit checklist called out as deliverable #1 in the issue is posted as a [comment on #235](#235 (comment)). ## Test plan - [ ] `git diff --stat main` shows only the listed `docs/`, `CHANGELOG.md`, and `README.md` files - [ ] Render each modified doc on GitHub and confirm anchors / cross-links resolve - [ ] Confirm `crow --help` matches the command list in `docs/cli-reference.md` (only `rename-terminal` was missing pre-PR) - [ ] Walk every PR number in the CHANGELOG against `git log --since=2026-04-15 main --oneline` and confirm each one resolves - [ ] Re-export `docs/crow-screenshot.jpeg` against the current Settings/Review-Board UI — **deferred to a follow-up**, called out in the audit comment 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
claude --continuerideCLI for session orchestration over Unix socket IPCTest plan
swift build— no errors/ride-workspacein Manager tab🤖 Generated with Claude Code