Skip to content

feat: Drop Control Center — cyberpunk tactical UI for the drop operator#34

Draft
Copilot wants to merge 4 commits into
mainfrom
copilot/feature-drop-ui
Draft

feat: Drop Control Center — cyberpunk tactical UI for the drop operator#34
Copilot wants to merge 4 commits into
mainfrom
copilot/feature-drop-ui

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 27, 2026

Adds a self-contained web UI (drop-ui) for observing the drop operator in real-time: cache coverage across nodes, pull progress, and discovery policy state.

Architecture

  • cmd/ui/main.go — standalone binary; builds a controller-runtime Kubernetes client (in-cluster or kubeconfig) and starts the HTTP server
  • internal/ui/server.go — HTTP server with REST endpoints (/api/v1/{nodes,cachedimages,cachedimagesets,discoverypolicies,status,all}), an SSE stream at /events for live push, and /healthz for probes; static assets embedded via embed.FS
  • internal/ui/static/index.html — zero-dependency SPA (HTML/CSS/Canvas/JS)

UI Views

View What it shows
◈ TACTICAL Canvas radar; nodes orbit a rotating NEXUS hexagon; animated drop-pod ships fly nexus→node during Pulling, particle burst on arrival; node colour encodes phase
⊞ MATRIX Sortable/filterable table of all CachedImage resources with progress bars, phase badges, cached-node chips
◉ RECON Discovery policy inspector — syntax-highlighted YAML spec + ranked discovered-image list

SSE keeps the UI live; falls back to 30 s polling if SSE is unavailable.

Helm

Five new templates (ui-deployment, ui-service, ui-serviceaccount, ui-clusterrole, ui-clusterrolebinding) all gated behind ui.enabled=false. The ClusterRole is read-only: get/list/watch on drop CRDs and nodes.

helm install drop charts/drop -n drop-system --create-namespace \
  --set ui.enabled=true \
  --set ui.image.repository=ghcr.io/breee/drop-ui

Other

  • Makefile: build-ui / run-ui targets
  • README.md: UI section with usage and Helm examples

Copilot AI linked an issue May 27, 2026 that may be closed by this pull request
Copilot AI added 2 commits May 27, 2026 10:07
- internal/ui/server.go: HTTP server with REST + SSE endpoints backed
  by controller-runtime client; exposes /api/v1/{nodes,cachedimages,
  cachedimagesets,discoverypolicies,status,all} and /events (SSE)
- internal/ui/static/index.html: self-contained cyberpunk tactical UI
  with three views: TACTICAL (canvas radar + animated drop-pods),
  MATRIX (filterable/sortable table), RECON (discovery policy YAML
  viewer + discovered image list); live SSE updates with poll fallback
- cmd/ui/main.go: standalone drop-ui binary entry point
- charts/drop/templates/ui-*.yaml: Helm Deployment, Service,
  ServiceAccount, ClusterRole, ClusterRoleBinding (disabled by default)
- charts/drop/values.yaml: add ui: section
- Makefile: add build-ui / run-ui targets
- README.md: document the UI and Helm install instructions
- server.go: add /healthz endpoint for probes; document NewServer
  behaviour for zero pollInterval; add comment on CORS wildcard intent
- ui-deployment.yaml: update liveness + readiness probes to /healthz
- index.html: remove dead color-manipulation code in drawPodTrails();
  add console.error() for SSE and poll error paths
Copilot AI changed the title [WIP] Add UI for drop operator with animated visuals feat: Drop Control Center — cyberpunk tactical UI for the drop operator May 27, 2026
@Breee
Copy link
Copy Markdown
Owner

Breee commented May 27, 2026

@copilot do not check in binaries.

Copy link
Copy Markdown
Contributor Author

Copilot AI commented May 27, 2026

@copilot do not check in binaries.

Removed the ui binary from the repository and added /ui and /drop-ui to .gitignore to prevent accidental future commits. Done in commit fix: remove committed ui binary and add to .gitignore.

Copilot finished work on behalf of Breee May 27, 2026 10:14
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.

feature: Drop UI

2 participants