New protocol type 'github' for browsing repositories via the GitHub REST API.
Creates a non-terminal panel showing repos grouped by owner/org, sorted by
last commit date (newest first), with search filtering and auto-refresh.
Backend:
- ProtocolGitHub constant and GitHubConfig/GitHubRepo model structs
- New internal/githubclient package (REST API, pagination, token validation)
- Session manager connectGitHub() with periodic refresh goroutine
- API surface: RefreshGitHubRepos() for on-demand refresh
- Token stored via existing credential infrastructure (keychain/vault)
Frontend:
- GitHub tab in profile editor with API URL and token storage fields
- New github.js viewer component (grouped repos, badges, language dots)
- github.css with charcoal-themed repo cards and org headers
- Protocol colour tokens, tab badge, sidebar indicator for GitHub
- Event wiring for session:github:repos and session:github:error
- Cleanup on tab close
Supports GitHub Enterprise via configurable API base URL.
Sidebar:
- Add -webkit-user-select: none to section headers (WebKit prefix)
- Fix class mismatches: sidebar-section-chevron → section-chevron,
sidebar-section-count → section-count, sidebar-section-list → sidebar-list
Terminal resize:
- Poll container dimensions after creation — retry fit every 50ms
until container has non-zero width/height (up to 20 attempts)
- Add flex: 1 and min-height: 0 to .xterm inside session-panel
so it participates in flex layout correctly
.gitignore:
- Comprehensive rewrite covering build output, Wails bindings,
frontend libs, IDE files, OS metadata, and application data
- Add pencil edit button on each sidebar profile item (visible on hover)
- Fire fitAddon.fit() multiple times after terminal creation (50/150/400ms)
to catch the panel finishing its CSS layout
- Re-fit terminal when session:state transitions to 'connected'