Skip to content

feat: Implement Uplink remote management system - #6

Closed
MiniCodeMonkey wants to merge 2 commits into
mainfrom
feat/uplink
Closed

MiniCodeMonkey wants to merge 2 commits into
mainfrom
feat/uplink

Conversation

@MiniCodeMonkey

Copy link
Copy Markdown
Owner

Summary

Implements the Uplink feature — a complete remote management and control system for Chief. This enables a central server to manage Chief instances running on remote machines via WebSocket, supporting remote PRD sessions, run control, file watching, project management, and automated deployment.

Changes

CLI Foundation

  • Migrated CLI to Cobra framework for extensible command structure (US-001)
  • Extracted shared engine from TUI for reuse across command modes (US-005)

Authentication

  • Credential storage with secure keyring integration (US-002)
  • chief login / chief logout with automatic token refresh (US-003, US-004)
  • One-time setup token for automated provisioning (US-025)

WebSocket Communication Layer

  • WebSocket client with automatic reconnection and exponential backoff (US-006)
  • Protocol handshake with version negotiation (US-007)
  • Typed message serialization with 30+ message types (US-008)
  • Rate limiting to prevent message flooding (US-026)

Server Mode (chief serve)

  • Headless server command for remote-managed operation (US-009)
  • Workspace scanner for project discovery (US-010)
  • Selective file watcher with gitignore-aware filtering (US-011)
  • State snapshots and project handlers (US-012)
  • Graceful shutdown with connection draining (US-027)
  • Configurable WebSocket URL for local development (US-028)

Remote Operations

  • Interactive PRD sessions over WebSocket (US-013)
  • Session timeout with idle warnings (US-014)
  • Run control — start, pause, resume, cancel (US-015)
  • Quota detection and automatic pause (US-016)
  • Real-time run progress streaming (US-017)
  • Project settings management (US-018)
  • Per-story logging and retrieval (US-019)
  • Per-story diff generation (US-020)
  • Git clone and project creation (US-021)
  • Remote chief update triggered via WebSocket (US-022, US-023)

Deployment

  • Systemd service unit file (US-024)
  • Cloud-init script for automated VM provisioning (US-024)

Stats

  • 58 files changed
  • ~19,550 lines added
  • 28 user stories implemented (US-001 through US-028)
  • Comprehensive test coverage across all new packages

…d WebSocket connectivity

Adds device OAuth authentication, a headless `serve` command with WebSocket connectivity
via Pusher protocol, workspace management, Claude session management over WebSocket,
and a self-update mechanism. The existing TUI experience is preserved by refactoring the
loop engine into a shared core that both TUI and serve consume.

Key changes:
- Migrate CLI to Cobra framework for structured command tree
- Add login/logout commands with device OAuth flow
- Add serve command for headless WebSocket-connected operation
- Add uplink package (Pusher client, HTTP client, message batcher)
- Add engine package as shared loop abstraction
- Add workspace scanner and file watcher
- Add WebSocket message types and rate limiting
- Remove multi-agent support (Claude-only going forward)
- Remove markdown PRD format (JSON-only)
- Update docs to reflect new architecture
Reverts docs/, CONTRIBUTING.md, LICENSE, and internal/update/update.go
changes that were unrelated to the uplink feature.
@MiniCodeMonkey

Copy link
Copy Markdown
Owner Author

Closing this to take it in a slightly different direction

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