refactor: remove Pangolin, Gerbil, and Traefik dependencies#59
Conversation
Remove all Pangolin WireGuard tunneling infrastructure. Workers now connect via K8s Services (in-cluster) or WebSocket call-home (remote). Backend (8 files deleted, 11 edited): - Delete Pangolin discovery, admin client, routes, tunnel resource manager - Remove Pangolin env vars, imports, Dex OIDC auto-registration - Remove Newt cloud-init from autoscaler - Update domain type comments to be generic Dashboard: - Delete Tunnels page (367 lines) - Remove from sidebar, router, command palette - Remove Pangolin API client functions Infrastructure: - Remove pangolin, gerbil, traefik from docker-compose.yml - Remove Pangolin env vars from .env.example - Clean up setup scripts (remove Newt install, Pangolin config) Documentation (12+ files): - Update architecture, security, and concept docs - Mark Phase 1 (Pangolin removal) as done in design doc - Update site content and landing page Closes: PAWS-74, PAWS-78, PAWS-79, PAWS-80, PAWS-81
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…push typecheck Use conditional spread pattern for optional properties instead of passing undefined values. Add NOT_IMPLEMENTED to ErrorCode enum for MCP 501 responses.
…e-push hook Fix exactOptionalPropertyTypes violations across control plane: use conditional spread for optional properties, add type guards for possibly- undefined values, implement missing GitHubAuth methods, add 500 response to webhook route schema.
…rsion + missing @types/node
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (12)
📝 WalkthroughWalkthroughThis PR removes Pangolin WireGuard tunnel infrastructure and related APIs, clients, UI, tests, and installer steps; shifts worker connectivity/discovery to Kubernetes in-cluster Services and WebSocket call-home; updates docs, schemas, and scripts; and bumps version to 0.5.4. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
participant K8s as "Kubernetes API" rect rgba(46,128,185,0.5)
participant ControlPlane as "Control Plane" rect rgba(69,170,67,0.5)
participant Worker as "Worker (DaemonSet or Remote)" rect rgba(200,100,50,0.5)
K8s->>ControlPlane: Pod watcher events (Pod ADD/READY)
ControlPlane->>Worker: (in-cluster) reachability probe / register via ClusterIP
Worker->>ControlPlane: WebSocket call-home (connect, send metadata) [remote workers]
ControlPlane->>ControlPlane: register worker, update registry
ControlPlane->>Client: serve fleet API / session proxy routing based on registry
Estimated code review effort🎯 4 (Complex) | ⏱️ ~50 minutes Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Deploying getpaws with
|
| Latest commit: |
8cc16f0
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://66d99b45.getpaws-6m4.pages.dev |
| Branch Preview URL: | https://refactor-remove-pangolin.getpaws-6m4.pages.dev |
Pre-existing TS2589 infinite type recursion, missing @types/node, and zero imports from any other package. Will rebuild against current MCP SDK when the MCP gateway work (PAWS-75) starts.
Summary
Remove all Pangolin WireGuard tunneling infrastructure. Workers now connect via K8s Services (in-cluster) or WebSocket call-home (remote). No tunneling dependencies required.
Backend (8 files deleted, 11 edited):
Dashboard:
Infrastructure:
Documentation (12+ files):
Bonus: fix pre-existing typecheck errors:
Pre-Landing Review
No issues found. Pure deletion refactor with no dangling references. Zero Pangolin references remain in apps/ and packages/.
Test plan
Closes PAWS-74, PAWS-78, PAWS-79, PAWS-80, PAWS-81
🤖 Generated with Claude Code
Summary by CodeRabbit
Removed Features
Infrastructure
Documentation