Commit Graph
5 Commits
Author SHA1 Message Date
andy c98ace2396 Add GitHub connection type — repo viewer with org grouping and auto-refresh
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.
2026-04-16 00:00:00 +01:00
andy 018f25e601 Fix layout, terminal sizing, notifications, and sidebar styling
Layout:
- Add panel-container and session-panel CSS so workspace content
  doesn't overlap sidebar
- Session panels use position: absolute to fill workspace area
- Workspace is now flex column for proper empty-state/panel stacking

Terminal:
- xterm.js overrides now target .session-panel in addition to
  .terminal-container so terminal fills available space
- Added debounced window resize handler for terminal re-fit

Notifications:
- Rewrote Notifications class to emit .notification-* classes matching
  the existing polished CSS (was emitting .toast-* with no CSS)
- Icon is now a small coloured circle badge instead of oversized SVG

Sidebar:
- Fixed class mismatches: sidebar-dot → protocol-indicator,
  sidebar-item-sub → sidebar-item-host, sidebar-star → sidebar-item-star
- protocolColour() now returns proto-ssh etc. matching CSS selectors

Other:
- Replaced prompt() in tab rename with custom _inputPrompt modal
2026-04-15 00:00:00 +01:00
andy 8752ecef2d Implement connection flow, test connection, and secret prompts
- Change ConnectSession/ConnectQuick to return SessionInfo (not string)
- Change UpdateProfile to return (Profile, error) for frontend use
- Make session connection asynchronous to avoid Wails event loop deadlock
- Implement event-based secret prompt (backend ↔ frontend via requestID)
- Add TestConnection API for TCP reachability checks with latency
- Add 'Save & Connect' button in profile editor
- Wire _testConnection to real backend TCP check
- Add btn-accent CSS for the green action button
2026-04-15 00:00:00 +01:00
andy 8ca351c4a1 Fix UI visibility, form CSS, and quick-connect modal
- Fix drawer/modal backdrop class names and is-visible transitions
- Add protocol tab, settings tab, and command palette CSS
- Add form-section-content as CSS alias for form-section-body
- Add missing form CSS: form-hint, form-toggle, jump-host-row, preset-row
- Add btn-outline, form-input-sm, form-select-sm styles
- Replace window.prompt() with custom modal for WKWebView compatibility
- Remove diagnostic banner and instrumentation
2026-04-15 00:00:00 +01:00
andy 61e99e9fca feat(frontend): add complete CSS design system and HTML shell
Create the Nexus Terminal design system with dark charcoal palette,
teal accent, and premium desktop application styling:

- tokens.css: Design tokens (colours, spacing, typography, layout)
- base.css: Modern reset, scrollbar, focus, and utility styles
- components.css: Buttons, forms, badges, dropdowns, notifications,
  disclosure, search, empty state, tooltip, spinner
- layout.css: App grid shell (sidebar, tab bar, workspace, status bar)
- sidebar.css: Connection manager with sections, profile items, search
- tabs.css: Compact session tabs with status dots, protocol badges
- terminal.css: xterm.js container, RAW mode views, send bar, search
- forms.css: Profile editor sections, tag input, jump hosts, validation
- modals.css: Modal, drawer, confirmation, host key, settings dialogs
- index.html: Complete HTML shell with sidebar, tabs, workspace, status
2026-04-15 00:00:00 +01:00