* docs: add ADR-052 Tauri desktop frontend with DDD bounded contexts
Proposes a Tauri v2 desktop application as the primary UI for RuView,
replacing 6+ CLI tools with a single cross-platform app. Covers hardware
discovery, firmware flashing (espflash), OTA updates, WASM module
management, sensing server control, and live visualization.
Includes DDD domain model with 6 bounded contexts, aggregate definitions,
domain events, and anti-corruption layers for ESP32 firmware APIs.
Closes#177
Co-Authored-By: claude-flow <ruv@ruv.net>
* docs: add persistent node registry, OTA safety gate, plugin architecture to ADR-052
Incorporates engineering review feedback:
- Persistent node registry (~/.ruview/nodes.db) — discovery becomes reconciliation
- BatchOtaSession aggregate with TdmSafe rolling update strategy
- Plugin architecture section — control plane extensibility trajectory
- Renumbered sections for new content (9-12 added, impl phases now section 13)
Co-Authored-By: claude-flow <ruv@ruv.net>
* docs: add ADR-053 UI design system — Foundation Book + Unity-inspired interface
- Dark professional theme with rUv purple accent (#7c3aed)
- Foundation Book typographic hierarchy (heading-xl through body-sm)
- Unity Editor-inspired panel layout (sidebar + list/detail split + inspector)
- 6 component specs: NodeCard, FlashProgress, MeshGraph, PropertyGrid, StatusBadge, LogViewer
- Color system with status indicators (online/warning/error/info)
- 4px base grid spacing system
- Branding: splash screen, status bar, about dialog
Refs #177
Co-Authored-By: claude-flow <ruv@ruv.net>
* fix: rewrite ADR-053 UI design system with practical terminology
Replace sci-fi themed language (Asimov Foundation references, Prime Radiant,
Encyclopedia Galactica, Terminus, Seldon Crisis) with clear, practical
terminology that engineers and operators can immediately understand.
Co-Authored-By: claude-flow <ruv@ruv.net>
* fix: specify Three.js for mesh topology visualization in ADR-053
Use Three.js for the mesh topology view, consistent with existing
visualization patterns in ui/observatory/js/ and ui/components/.
Includes implementation details: MeshPhongMaterial for node status,
BufferGeometry for dynamic updates, OrbitControls, raycasting.
Co-Authored-By: claude-flow <ruv@ruv.net>
* feat: add Tauri v2 desktop crate with React frontend (Phase 1 skeleton)
Rust backend (wifi-densepose-desktop):
- 14 Tauri commands across 6 groups: discovery, flash, OTA, WASM, server, provision
- Domain types: Node, NodeRegistry, FlashSession, OtaSession, BatchOtaSession
- AppState with DiscoveryState and ServerState behind Mutex
- Workspace Cargo.toml updated with new member
- cargo check passes cleanly
React/TypeScript frontend:
- TypeScript types matching Rust domain model
- Hooks: useNodes (discovery polling), useServer (start/stop/status)
- Components: StatusBadge, NodeCard, Sidebar
- Pages: Dashboard, Nodes (table + expandable details), FlashFirmware
(3-step wizard with progress bar), Settings (server/security/discovery)
- App.tsx with sidebar navigation routing
- Vite 6 + React 18 + @tauri-apps/api v2
Implements ADR-052 Phase 1 skeleton. All commands return stub data.
Co-Authored-By: claude-flow <ruv@ruv.net>
* feat: implement ADR-053 design system across all frontend components
Create design-system.css with all ADR-053 tokens:
- CSS custom properties: colors, spacing, fonts, panel dimensions
- Typography scale classes (heading-xl through data-lg)
- Form control and button base styles
- Custom scrollbar, selection highlight, animations
Update all components to use design system tokens:
- Replace hardcoded colors with var(--bg-surface), var(--border), etc.
- Replace generic monospace with var(--font-mono) (JetBrains Mono)
- Replace system font stack with var(--font-sans) (Inter)
- Replace spacing values with var(--space-N) tokens
- StatusBadge: use var(--status-online/warning/error/info)
- Dashboard: add stat cards with data-lg class, use StatusBadge
- FlashFirmware: pulse animation on progress bar during writes
- Settings: default bind_address 127.0.0.1 (matches ADR-050)
Add status bar footer with "Powered by rUv", node count, server status.
Load Inter + JetBrains Mono from Google Fonts in index.html.
Update ADR-053 status from Proposed to Accepted.
Co-Authored-By: claude-flow <ruv@ruv.net>
* fix: add missing @tauri-apps/plugin-dialog and plugin-shell dependencies
Required for firmware file picker in FlashFirmware page and
shell sidecar support. Fixes Vite build failure.
Co-Authored-By: claude-flow <ruv@ruv.net>
* fix: add defensive optional chaining for node.chip access
Rust DiscoveredNode stub doesn't include chip field yet.
Use optional chaining (node.chip?.toUpperCase()) to prevent
TypeError at runtime.
Co-Authored-By: claude-flow <ruv@ruv.net>
* feat: add OTA, Edge Modules, Sensing, Mesh View pages with enhanced design system
Implement all 4 remaining pages (OtaUpdate, EdgeModules, Sensing, MeshView)
and enhance the design system with glassmorphism cards, count-up animations,
page transitions, gradient accents, live status bar, and consistent status
dot glows across the UI.
Co-Authored-By: claude-flow <ruv@ruv.net>
* docs: add desktop crate README and link from main README
Co-Authored-By: claude-flow <ruv@ruv.net>
* docs: add download/run instructions to desktop README
Co-Authored-By: claude-flow <ruv@ruv.net>
- Add intro explaining DDD purpose and bounded context overview table
- Add Edge Intelligence bounded context (#7) for on-device sensing
- Add ubiquitous language terms: Edge Tier, WASM Module
- Fix frame rate 20 Hz -> 28 Hz (measured on hardware)
- Link each context to its source files and ADRs
- Add NVS configuration table and invariants for edge processing
- Create docs/ddd/README.md introducing all 3 domain models
- Update main README docs table to link to DDD index
Co-Authored-By: claude-flow <ruv@ruv.net>
Explains why ADRs matter for AI-generated code (prevents drift,
provides constraints and rationale), how they work with DDD domain
models, and indexes all 44 ADRs by category.
Also fixes ADR count 43 -> 44 in main README.
Co-Authored-By: claude-flow <ruv@ruv.net>
- CHANGELOG: add ADR-043 entries (14 new API endpoints, WebSocket fix,
mobile WS fix, 25 real mobile tests)
- README: update ADR count from 41 to 43
- CLAUDE.md: update ADR count from 32 to 43
- User guide: add 14 new REST endpoints to API reference table, note
that /ws/sensing is available on the HTTP port, update ADR count
Replace 48 ADR-041 anchor links with direct links to the 12
category-specific documentation files in docs/edge-modules/.
Co-Authored-By: claude-flow <ruv@ruv.net>
- New collapsed section before Installation linking to witness log,
ADR-028, and bundle generator
- Shows test counts, proof hash, and 3-command verification steps
Co-Authored-By: claude-flow <ruv@ruv.net>
- CHANGELOG: add MERIDIAN (ADR-027) to Unreleased section
- README: add "Works Everywhere" to Intelligence features, update How It Works
- ADR-002: status → Superseded by ADR-016/017
- ADR-004: status → Partially realized by ADR-024, extended by ADR-027
- ADR-005: status → Partially realized by ADR-023, extended by ADR-027
- ADR-006: status → Partially realized by ADR-023, extended by ADR-027
Co-Authored-By: claude-flow <ruv@ruv.net>
Deep SOTA research into WiFi sensing domain gap problem (2024-2026).
Proposes 7-phase implementation: hardware normalization, domain-adversarial
training with gradient reversal, geometry-conditioned FiLM inference,
virtual environment augmentation, few-shot rapid adaptation, and
cross-domain evaluation protocol.
Cites 10 papers: PerceptAlign, AdaPose, Person-in-WiFi 3D (CVPR 2024),
DGSense, CAPC, X-Fi (ICLR 2025), AM-FM, LatentCSI, Ganin GRL, FiLM.
Addresses the single biggest deployment blocker: models trained in one
room lose 40-70% accuracy in another room. MERIDIAN adds ~12K params
(67K total, still fits ESP32) for cross-layout + cross-hardware
generalization with zero-shot and few-shot adaptation paths.
Co-Authored-By: claude-flow <ruv@ruv.net>
- Add "How It Works" explainer between Key Features and Use Cases
- Add Self-Learning WiFi AI and AI Backbone to Table of Contents
- Update Key Features entry in ToC to match new sub-sections
- Fix changelog: v2.3.0/v2.2.0/v2.1.0 → v3.0.0/v2.0.0 (matches CHANGELOG.md)
- Add crates.io badge for wifi-densepose-ruvector
Co-Authored-By: claude-flow <ruv@ruv.net>
- Remove RuVector AI section from Rust Crates details block
- Add as own collapsed <details> in Models & Training with anchor link
- Add cross-reference from crates table to new section
- Link to issue #67 for deep dive with code examples
Co-Authored-By: claude-flow <ruv@ruv.net>
Replace dry API reference table with AI pipeline diagram, plain-language
capability descriptions, and "what it replaces" comparisons. Reframes
graph algorithms and sparse solvers as learned, self-optimizing AI
components that feed the DensePose neural network.
Co-Authored-By: claude-flow <ruv@ruv.net>
- Introduced ADR-025 documenting the implementation of a macOS CoreWLAN sensing adapter using a Swift helper binary and Rust integration.
- Added a new user guide detailing installation, usage, and hardware setup for WiFi DensePose, including Docker and source build instructions.
- Included sections on data sources, REST API reference, WebSocket streaming, and vital sign detection.
- Documented hardware requirements and troubleshooting steps for various setups.
Reframe the ADR-024 section header to emphasize AI self-learning and
adaptive optimization rather than technical CSI embedding terminology.
Co-Authored-By: claude-flow <ruv@ruv.net>
The sensing server defaults to HTTP :8080 and WS :8765, but Docker
exposes :3000/:3001. Added --http-port 3000 --ws-port 3001 to CMD
in both Dockerfile.rust and docker-compose.yml.
Verified both images build and run:
- Rust: 133 MB, all endpoints responding (health, sensing/latest,
vital-signs, pose/current, info, model/info, UI)
- Python: 569 MB, all packages importable (websockets, fastapi)
- RVF file: 13 KB, valid RVFS magic bytes
Also fixed README Quick Start endpoints to match actual routes:
- /api/v1/health → /health
- /api/v1/sensing → /api/v1/sensing/latest
- Added /api/v1/pose/current and /api/v1/info examples
- Added port mapping note for Docker vs local dev
Co-Authored-By: claude-flow <ruv@ruv.net>
- ToC: Add ruvector GitHub link and integration point count
- RVF Container: Add deployment targets table (ESP32 0.7MB to server
50MB), link to rvf crate family on GitHub
- Training: Add RuVector column to pipeline table showing which crate
powers each phase, add SONA component breakdown table, link arXiv
- RuVector Crates: Split into 5 directly-used (with integration
points mapped to exact .rs files) and 6 additional vendored, add
crates.io and GitHub source links for all 11
Co-Authored-By: claude-flow <ruv@ruv.net>
Add collapsible Use Cases & Applications section organized from
practical (elderly care, hospitals, retail) to specialized (events,
warehouses) to extreme (search & rescue, through-wall). Includes
hardware requirements and scaling notes per category.
Fix multi-person description to reflect reality: no hard software
limit, practical ceiling is signal physics (~3-5 per AP at 56
subcarriers, linear scaling with multi-AP).
Co-Authored-By: claude-flow <ruv@ruv.net>
The 10-person limit is just the default setting (pose_max_persons=10).
The API accepts 1-50, docs show configs up to 50, and Rust uses Option<u8>.
Co-Authored-By: claude-flow <ruv@ruv.net>
Promotes Installation and Quick Start to top-level sections placed
between Key Features and Table of Contents for faster onboarding.
Co-Authored-By: claude-flow <ruv@ruv.net>
Consumer WiFi does not expose Channel State Information — clarify that
pose estimation, vital signs, and through-wall sensing require ESP32-S3
or a research NIC. Added Full CSI column to hardware options table.
Co-Authored-By: claude-flow <ruv@ruv.net>
- Add docker/ folder with Dockerfile.rust (132MB), Dockerfile.python (569MB),
and docker-compose.yml
- Remove stale root-level Dockerfile and docker-compose files
- Implement --export-rvf CLI flag for standalone RVF package generation
- Generate wifi-densepose-v1.rvf (13KB) with model weights, vital config,
SONA profile, and training provenance
- Update README with Docker pull/run commands and RVF export instructions
- Update test count to 542+ and fix Docker port mappings
- Reply to issues #43, #44, #45 with Docker/RVF availability
Co-Authored-By: claude-flow <ruv@ruv.net>
Update ESP32 section with download-flash-provision workflow that
requires no build toolchain. Links to release v0.1.0-esp32 and
tutorial issue #34.
Co-Authored-By: claude-flow <ruv@ruv.net>
- install.sh: 7-step interactive installer detecting system, toolchains,
WiFi hardware (interfaces, ESP32 USB, Intel CSI debug), and recommending
the best build profile (verify/python/rust/browser/iot/docker/field/full)
- Rust is the primary recommended runtime (810x faster than Python)
- Makefile: 15+ targets including make install, make check, make build-rust,
make build-wasm, make bench, make run-api, make run-viz
- README: Updated installation section with Rust-primary ordering, removed
mock testing references, added v2.2.0 changelog entry
https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
Add prominent hardware requirements table at top of README documenting
the three paths to real CSI data (ESP32, research NIC, commodity WiFi).
Include remaining Three.js visualization components for dashboard.
https://claude.ai/code/session_01Ki7pvEZtJDvqJkmyn6B714
- Add detailed wifi-Mat user guide covering:
- Installation and setup
- Detection capabilities (breathing, heartbeat, movement)
- Localization system (triangulation, depth estimation)
- START protocol triage classification
- Alert system with priority escalation
- Field deployment guide
- Hardware setup requirements
- API reference and troubleshooting
- Update main README.md with wifi-Mat section and links
- Fix compilation issues:
- Add missing deadline field in AlertPayload
- Fix type ambiguity in powi calls
- Resolve borrow checker issues in scan_cycle
- Export CsiDataBuffer from detection module
- Add missing imports in test modules
- All 83 tests now passing
- Implemented the WiFi DensePose model in PyTorch, including CSI phase processing, modality translation, and DensePose prediction heads.
- Added a comprehensive training utility for the model, including loss functions and training steps.
- Created a CSV file to document hardware specifications, architecture details, training parameters, performance metrics, and advantages of the model.