Skip to content

feat(mobile): adopt RuView NLOS instrument interface - #1694

Open
ruvnet wants to merge 5 commits into
feat/consumer-nlos-ruviewfrom
feat/consumer-nlos-mobile-ui
Open

feat(mobile): adopt RuView NLOS instrument interface#1694
ruvnet wants to merge 5 commits into
feat/consumer-nlos-ruviewfrom
feat/consumer-nlos-mobile-ui

Conversation

@ruvnet

@ruvnet ruvnet commented Aug 23, 2026

Copy link
Copy Markdown
Owner

Summary

Adapts the Cognitum Explain Studio visual language into a RuView specific NLOS mobile instrument interface for SwiftUI, Expo iOS, and Expo web. The implementation now follows the public cognitum-one/website design system pinned at commit 0288734c3426ca9125ef4cb2e067ef057c09f3ce, while retaining RuView branding, evidence vocabulary, privacy controls, and information architecture.

This is a UI only stacked pull request. It targets feat/consumer-nlos-ruview, the branch for PR 1687. Retarget this pull request to main after PR 1687 merges.

Scope

  • Redesigns the native SwiftUI NLOS field monitor
  • Redesigns the Expo NLOS screen used by web and iOS
  • Uses Outfit for display and body roles
  • Uses JetBrains Mono only for metrics and instrumentation
  • Aligns surfaces, borders, radii, shadows, cyan, green, foreground, and muted text with the pinned Cognitum website tokens
  • Adds an interactive Three.js WebGL point cloud for Expo web
  • Adds deterministic native Expo SVG and SwiftUI Canvas point cloud projections
  • Uses a bounded cloud budget of 288 schematic relay points plus 96 returns per gated track, capped at 16 tracks and 1,824 total points
  • Preserves exactly five top level evidence states: SYNTHETIC, LIVE VERIFIED, LIVE UNVERIFIED, STALE, and DISCONNECTED
  • Hides target return geometry unless evidence is fresh synthetic data or calibrated verified live data
  • Preserves iPhone safe areas, 44 point interaction targets, explainer access, and tester feedback access

Typography and asset budget

  • Expo imports four selected Outfit weights and two selected JetBrains Mono weights
  • The production web and Expo iOS exports include 456 KB of selected font assets, down from 2.4 MB during the initial unbounded import
  • Native SwiftUI registers five local TTF files totaling 400 KB
  • Font assets are local and licensed under their included OFL files
  • No runtime font request, analytics path, permission, sensor subscription, credential behavior, or retention path is added
  • Font load failure falls back to the platform font instead of blocking startup indefinitely

Trust boundary

The point cloud is a deterministic visualization of already gated RuView tracks plus schematic relay geometry. It does not claim access to raw iPhone LiDAR timing samples, ARKit depth, or physical NLOS evidence. Unverified, stale, disconnected, and replay provenance states expose zero gated target returns.

Verification

  • Jest: 29 suites and 264 tests passed
  • Playwright: 4 production bundle journeys passed at 390 by 844, including the Three.js WebGL cloud
  • TypeScript passed
  • ESLint passed
  • Expo web production export passed
  • Expo iOS production export passed
  • Dependency audit: zero high and zero critical findings, with 20 moderate findings in the existing dependency graph
  • Four committed review captures validated as 390 by 844 PNG files
  • Font contract validates pinned versions, semantic roles, native files, and Info.plist registration
  • Local secret scan and diff integrity checks passed

Screenshots

  • docs/screenshots/consumer-nlos-mobile-ui/overview-390x844.png
  • docs/screenshots/consumer-nlos-mobile-ui/setup-390x844.png
  • docs/screenshots/consumer-nlos-mobile-ui/synthetic-390x844.png
  • docs/screenshots/consumer-nlos-mobile-ui/point-cloud-390x844.png

Residual validation

Physical iPhone GPU performance, native font rendering, touch orbit behavior, VoiceOver, Dynamic Type, and Maestro device execution remain explicit device gates in ADR 342. No physical iPhone validation or raw iPhone LiDAR access is claimed by this pull request.

Acceptance test

The software gate is acceptable when production Expo renders all four 390 by 844 journeys without horizontal overflow, the selected local font payload remains at or below 500 KB, the Three.js canvas reports ready, one gated synthetic track renders exactly 96 target returns, unverified states render zero target returns, synthetic replay visibly carries both the SYNTHETIC state and watermark, all automated checks pass, and the Xcode 26 native gate succeeds. Physical completion requires a TestFlight run on a LiDAR equipped iPhone with correct font rendering, no WebGL context loss, and no accessibility or interaction regression.

Remote CI

The two workflows eligible on the stacked pull request event are green on head 5b680507539b75757cb126c2f025b8dada5d8fe6: CSI data policy and Fix Marker Regression Guard. Consumer NLOS, Continuous Integration, and Security Scanning remain gated by their current branch trigger policy while this pull request targets feat/consumer-nlos-ruview. The complete local software gate passed. The Xcode 26 build remains a required gate when the pull request is retargeted to main or the workflow is dispatched manually.

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