Jason Staack
04f6d46082
feat(helm): add API deployment and service templates
...
Includes two init containers (VPN route setup, Alembic migrations),
secret refs for JWT/encryption/OpenBao/SMTP, and PVC mounts for
git-store, firmware-cache, and wireguard config.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-17 18:45:45 -05:00
Jason Staack
d2b75bdae8
feat(helm): add OpenBao StatefulSet with config ConfigMap and service
...
File-backed storage, IPC_LOCK capability for mlock, startup/liveness/
readiness probes. Config mounted via subPath from ConfigMap.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-17 18:44:07 -05:00
Jason Staack
a2de7e7482
feat(helm): add NATS JetStream StatefulSet with headless and client services
...
Runs nats-server with --jetstream and monitoring on port 8222.
Headless service for StatefulSet DNS, ClusterIP service for app connections.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-17 18:44:02 -05:00
Jason Staack
d785aadad7
feat(helm): add Redis Deployment and ClusterIP Service
...
Ephemeral cache with no PVC. Includes redis-cli ping probes for
liveness and readiness.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-17 18:43:58 -05:00
Jason Staack
e79588a9b6
feat(helm): add PostgreSQL StatefulSet with init SQL and headless service
...
Includes ConfigMap for init.sql (TimescaleDB extension, app_user and
poller_user role creation), StatefulSet with liveness/readiness probes,
and headless Service for stable DNS.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-17 18:43:54 -05:00
Jason Staack
321ce548ea
feat(helm): add standalone PVC templates for git-store, firmware-cache, wireguard
...
Three PVCs with configurable size and storageClass. Wireguard PVC is
conditional on wireguard.enabled.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-17 18:41:48 -05:00
Jason Staack
be11959d7c
feat(helm): add secrets and configmap templates
...
Single Secret with all sensitive values (JWT, encryption keys, DB
passwords, SMTP credentials, poller DB URL). Single ConfigMap with
all non-sensitive config including URL helpers and optional value guards.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-17 18:41:25 -05:00
Jason Staack
fdf1735531
feat(helm): rewrite values.yaml and update Chart.yaml for v1.0.0
...
Complete values.yaml with all config sections: API, frontend, poller,
postgres, redis, NATS, OpenBao, WireGuard, storage, ingress, SMTP,
secrets, telemetry, backup, and storage paths.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-17 18:40:57 -05:00
Jason Staack
c8dbada606
feat(helm): add _helpers.tpl with naming, labels, and URL builders
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-17 18:39:53 -05:00
Jason Staack
ab560df532
chore(helm): remove old chart templates for rewrite
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-17 18:39:30 -05:00
Jason Staack
ecbefae9ab
feat: add opt-in anonymous setup telemetry
...
Instruments setup.py to send per-step diagnostic events to the TOD
telemetry collector when the user opts in. Uses a shared static token
with no registration flow — fully anonymous.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 20:04:26 -05:00
Jason Staack
21563132e1
feat: replace Cloudflare analytics with self-hosted pixel, clarify privacy
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 19:19:58 -05:00
Jason Staack
f6283cff7c
fix(lint): remove unused FleetDevice import in traffic page
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 19:03:31 -05:00
Jason Staack
c455fe4ed5
feat(ui): sweep remaining components for Deep Space consistency
...
Replace old design tokens and hardcoded colors across 29 files:
- bg-primary/text-primary-foreground -> bg-accent/text-white
- text-muted-foreground -> text-text-muted
- text-destructive/bg-destructive -> text-error/bg-error
- bg-muted -> bg-elevated (background usage)
- Hardcoded green/red/yellow/emerald/amber/slate -> semantic tokens
- Remove shadow-md/lg from cards, tooltips, topology nodes
- rounded-xl -> rounded-lg on cards/panels
- focus:ring-1 focus:ring-ring -> focus:border-accent on inputs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 19:00:36 -05:00
Jason Staack
25d4a80b73
feat(ui): polish command palette and login page for Deep Space
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 18:42:07 -05:00
Jason Staack
4924580a4b
feat(ui): polish remaining pages with Deep Space tokens
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 18:40:48 -05:00
Jason Staack
1a463cfa84
chore: add demo data seeder and config editor smoke test
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 18:37:28 -05:00
Jason Staack
133e6e50e4
feat(ui): wire Wireless and Traffic pages to live data
...
Replace placeholder "coming soon" pages with functional implementations
that query the fleet APIs and display real-time wireless issues and
resource consumption data.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 18:36:44 -05:00
Jason Staack
1800330545
feat: expand config editor menu tree and add WiFi wave2 template
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 18:27:38 -05:00
Jason Staack
b8797c9b79
chore: remove deprecated Header component (replaced by ContextStrip)
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:45:49 -05:00
Jason Staack
bdff65b9cf
chore: remove Geist font files and dependency
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:45:26 -05:00
Jason Staack
64dc6beb11
feat(ui): polish Config Editor with Deep Space styling
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:44:18 -05:00
Jason Staack
8fadfc4d7d
feat(ui): polish device table with Deep Space styling
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:43:31 -05:00
Jason Staack
06ac1b73b6
feat(ui): polish Fleet Overview with Deep Space styling
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:42:44 -05:00
Jason Staack
bea80b354f
feat(ui): add placeholder Wireless and Traffic routes
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:39:51 -05:00
Jason Staack
99215810a9
feat(ui): replace AppLayout with ContextStrip + rebuilt Sidebar
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:39:31 -05:00
Jason Staack
b9bbcf4a45
feat(ui): rebuild Sidebar with Fleet/Config/Admin structure
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:39:12 -05:00
Jason Staack
a10e609c02
feat(ui): add ContextStrip with org switcher, status, and user controls
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:38:24 -05:00
Jason Staack
76d7f5561d
feat(ui): restyle DropdownMenu and Popover
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:34:01 -05:00
Jason Staack
627c5af8da
feat(ui): restyle Select, Badge, Tabs, Checkbox
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:33:56 -05:00
Jason Staack
d5eaaafcfc
feat(ui): restyle Dialog with Deep Space overlay and borders
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:33:52 -05:00
Jason Staack
038a988c55
feat(ui): restyle Card — borders over shadows
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:33:48 -05:00
Jason Staack
b347d4bb89
feat(ui): restyle Input with Deep Space focus behavior
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:33:43 -05:00
Jason Staack
eea3321e7d
feat(ui): restyle Button with Deep Space variants
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:33:38 -05:00
Jason Staack
267724ccb6
feat(ui): add Deep Space transition defaults
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:30:52 -05:00
Jason Staack
304844c3ff
feat(ui): update Tailwind theme for Deep Space tokens
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:30:34 -05:00
Jason Staack
e7a5567f0c
feat(ui): replace color tokens with Deep Space palette
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:30:23 -05:00
Jason Staack
258a8fe8b4
feat(ui): swap Geist for Manrope + IBM Plex Mono
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:29:26 -05:00
Jason Staack
79cc0ad793
chore: add Manrope and IBM Plex Mono font files
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:28:57 -05:00
Jason Staack
5717b3deb4
docs: add Deep Space UI redesign implementation plan
...
22 tasks across 4 phases: tokens/fonts, component restyling, layout
restructure (ContextStrip + sidebar), page-level polish. Includes
responsive spot-check and WCAG contrast audit.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:13:57 -05:00
Jason Staack
d191ac2be3
blog: add "This Is Not Stable Software" post
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 17:03:12 -05:00
Jason Staack
421808e0ac
docs: add Deep Space UI redesign spec
...
Full visual overhaul spec — new color system, typography (Manrope + IBM
Plex Mono), component language, layout restructure with Context Strip,
and 4-phase implementation plan. WCAG AA compliant in both modes.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 16:58:49 -05:00
Jason Staack
2b08cc5898
docs: add quick start guide
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-16 08:58:12 -05:00
Jason Staack
d9acd6bc66
docs: clarify terminology and expand acronyms in user guide
2026-03-16 08:57:22 -05:00
Jason Staack
d0eae197dc
docs: clarify terminology and expand acronyms in README
2026-03-16 08:57:17 -05:00
Jason Staack
398dc99466
docs: correct technical details and version references
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-16 08:57:04 -05:00
Jason Staack
5e2e560bb0
docs: correct port numbers, memory limits, and version references
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-16 08:56:40 -05:00
Jason Staack
144fb8b32d
fix: resolve React Compiler lint errors
...
- WifiPanel: revert useEffect back to useState initializer (avoids
synchronous setState in effect)
- Device detail: avoid Date.now() during render for push alert check
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-15 23:34:58 -05:00
Jason Staack
874542f802
fix: mount RollbackAlert, fix WifiPanel useEffect, remove unused PoolPanel prop
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-15 23:17:07 -05:00
Jason Staack
091c19c434
fix: remove unreachable kms_service import in notification_service
...
kms_service.py does not exist and Transit encryption was never
implemented for SMTP passwords, making the decrypt_transit code path
unreachable. Remove it entirely and leave only the Fernet fallback.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-15 23:15:39 -05:00