feat(mobile): align RuView with Cognitum typography

This commit is contained in:
rUv
2026-08-23 21:52:21 -04:00
parent 10ec346db1
commit 1a394d916c
29 changed files with 460 additions and 136 deletions

View File

@@ -19,22 +19,23 @@ most important state can consequently compete with setup copy, controls, and
technical detail on a narrow phone viewport.
The requested direction is similar to the visual language of Cognitum Explain
Studio: a near-black technical canvas, fine grid, restrained cyan and green
accents, compact monospaced labels, thin luminous outlines, and an orbital or
radar motif. This decision adopts that visual language as design provenance,
not as a product or code dependency. No Cognitum name, logo, wordmark, copy,
source code, private asset, authentication behavior, or investor-deck branding
is reused. RuView keeps its own name, logo, evidence vocabulary, information
Studio and the public `cognitum-one/website`: a near-black technical canvas,
soft blue-black cards, restrained cyan and green accents, Outfit display and
body typography, JetBrains Mono instrumentation, medium-weight headings, and
12 to 16 pixel radii. This decision adopts that visual language as explicit
design provenance. The authoritative token review is pinned to website commit
`0288734c3426ca9125ef4cb2e067ef057c09f3ce`, specifically `src/index.css`,
`tailwind.config.ts`, and `creative-brief.md`. No Cognitum name, logo, wordmark,
copy, private asset, authentication behavior, or investor-deck branding is
reused. RuView keeps its own name, logo, evidence vocabulary, information
architecture, and privacy boundary.
The authenticated Studio route was not available to the automated cloud review
session. The initial contract is therefore derived from the product owner's
direction and the visual characteristics observable on the available hosted
Cognitum Explain reference surface. Pixel equivalence with the authenticated
Studio route is neither claimed nor required. A maintainer with authorized
Studio access can later provide an approved reference screenshot and request a
bounded visual refinement without changing the epistemic or privacy rules in
this decision.
The authenticated Studio route was not required for this refinement because
the public website source defines the typography, colors, radii, borders, and
surface treatment. Pixel equivalence with Studio is neither claimed nor
required. A maintainer with authorized Studio access can later provide an
approved reference screenshot and request a bounded visual refinement without
changing the epistemic or privacy rules in this decision.
This is a UI-only decision. It must not change sensing, reconstruction,
filtering, transport, credential storage, permissions, diagnostic contents,
@@ -131,11 +132,15 @@ UNVERIFIED` only when an authenticated live attempt is active. It resolves to
100 milliseconds over at least 30 repetitions on the same device.
3. Continuous decorative animation must not be required for state recognition.
It pauses when the app or page is inactive and honors reduced motion.
4. The redesign adds no network request, remote font, remote image, analytics
client, sensor subscription, or background timer.
5. Screenshot rendering is deterministic: fixed viewport, fixed fixtures,
4. The redesign adds no runtime network request, remote font, remote image,
analytics client, sensor subscription, or background timer. Outfit and
JetBrains Mono are bundled locally from two pinned font asset packages.
5. The production web export contains only four selected Outfit weights and
two selected JetBrains Mono weights. Their combined uncompressed font asset
size is 456 KB. The native target bundles five TTF files totaling 400 KB.
6. Screenshot rendering is deterministic: fixed viewport, fixed fixtures,
reduced motion, local assets, and no dependency on a live endpoint.
6. Point-cloud geometry is bounded to 288 schematic relay points plus 96
7. Point-cloud geometry is bounded to 288 schematic relay points plus 96
target-return points for each of at most 16 validated tracks, or 1,824 total
points. Browser device pixel ratio is capped at 1.5. GPU resources, animation
frames, resize observers, and pointer listeners are released on unmount.
@@ -359,11 +364,12 @@ and 15 percent respectively.
| Create a cross-platform generated token and component package now | 5 | 5 | 1 | 4 | 3 | 3.90 | Deferred because generation infrastructure is disproportionate to one screen and would expand the UI-only diff materially |
| Keep the current generic card layout | 2 | 4 | 5 | 4 | 4 | 3.65 | Rejected because the evidence state remains visually subordinate and does not meet the requested design outcome |
The selected approach is expected to add roughly two small platform-specific
presentation implementations and one shared behavioral contract, while adding
zero runtime dependency. The cost is duplicated token maintenance. The control
is a screenshot review plus identical state names and accessibility assertions
on both platforms.
The selected approach adds two small platform-specific presentation
implementations, one shared behavioral contract, and two pinned font asset
packages. The 456 KB web and 400 KB native uncompressed font costs replace
runtime font requests with deterministic local loading. The remaining cost is
duplicated token maintenance. The control is a screenshot review plus identical
state names and accessibility assertions on both platforms.
### Point-cloud renderer alternatives
@@ -371,7 +377,7 @@ The same weights apply to the narrower renderer choice.
| Alternative | Clarity 25% | Epistemic safety 25% | Delivery cost 15% | Native accessibility 20% | Maintainability 15% | Weighted score | Decision |
|---|---:|---:|---:|---:|---:|---:|---|
| Three.js web plus SwiftUI Canvas native | 5 | 5 | 4 | 4 | 4 | 4.50 | Selected because it satisfies the requested Three.js view while preserving platform-native accessibility and adding zero runtime dependency |
| Three.js web plus SwiftUI Canvas native | 5 | 5 | 4 | 4 | 4 | 4.50 | Selected because it satisfies the requested Three.js view while preserving platform-native accessibility and adding no renderer dependency |
| Three.js inside a native WebView | 5 | 4 | 3 | 2 | 4 | 3.70 | Rejected because focus, Dynamic Type, startup, memory, and lifecycle behavior are weaker |
| Add `expo-gl` and React Three Fiber for native Expo | 5 | 4 | 2 | 3 | 3 | 3.60 | Rejected because new native dependencies and build risk are disproportionate to a UI-only change |
| Static SVG or Canvas cloud on every platform | 3 | 5 | 5 | 4 | 5 | 4.30 | Rejected as the sole implementation because it does not provide the requested interactive Three.js web experience |
@@ -401,9 +407,9 @@ The same weights apply to the narrower renderer choice.
## Security and privacy
1. The redesign adds no permission, entitlement, endpoint, network request,
storage key, cookie, analytics event, remote asset, background mode, or data
retention path.
1. The redesign adds no permission, entitlement, endpoint, runtime network
request, storage key, cookie, analytics event, remote asset, background mode,
or data retention path. Locally bundled font files are the only new assets.
2. Existing credential rules remain unchanged: the Expo client holds an
ephemeral credential in memory, while the approved native client uses its
existing Keychain boundary. UI code cannot log, render, snapshot, export, or
@@ -493,7 +499,7 @@ claim. A threshold without a completed physical run remains `TARGET`.
| Requirement | Automated evidence | Human or physical evidence | Pass condition |
|---|---|---|---|
| UI-only scope | Pull-request diff allowlist and service or model tests | Reviewer checks no sensing, transport, permissions, persistence, or retention diff | Zero out-of-scope behavior changes |
| Cognitum-inspired, RuView-owned language | Four screenshot baselines and token review | Product reviewer compares hierarchy and general visual language | Requested characteristics present; zero Cognitum branding or private assets |
| Cognitum-inspired, RuView-owned language | Four screenshot baselines, Outfit and JetBrains Mono token assertions, pinned source review, and local font asset contract | Product reviewer compares hierarchy and general visual language | Requested characteristics present; zero Cognitum branding or private assets; no runtime font request |
| Five honest states | Unit tests plus `nlos-evidence-state` Playwright and Maestro selectors | Reviewer verifies wording and fail-closed hierarchy | All five exact labels are representable; unknown never becomes verified |
| Synthetic safety | Unit and E2E assertions for `nlos-synthetic-watermark` | Screenshot review of synthetic baseline | Label and watermark both visible |
| LiDAR point-cloud UI | Deterministic generator tests, exact point budgets, Three.js canvas readiness, reduced-motion capture, and zero-return fail-closed assertion | Browser and native visual review plus physical iPhone GPU check | WebGL renders 288 schematic relay points plus 96 returns per gated track; unverified states render zero target returns; native equivalent is labeled as a projection |
@@ -558,6 +564,9 @@ full iPhone validation.
7. Run Swift package tests and the Xcode 26 unsigned simulator build. Confirm
zero changes to core packages, sensing, transport, credentials, permissions,
diagnostic schema, or retention.
8. Assert the production web export contains only four Outfit and two JetBrains
Mono files totaling no more than 500 KB uncompressed. Confirm the native
target registers its five local TTF files and makes no font network request.
### Physical iPhone gate

View File

@@ -7,6 +7,12 @@ watermark requirements, opens the deterministic Three.js LiDAR point cloud,
verifies the reconstruction boundary, target lock, and confidence HUD, and
writes the PNG files in this directory.
The visual system is pinned to `cognitum-one/website` commit
`0288734c3426ca9125ef4cb2e067ef057c09f3ce`. Outfit supplies display and body
roles, while JetBrains Mono supplies instrumentation and metric roles. Both
font families are bundled locally. Screenshot generation makes no runtime font
request.
The captures contain only the disconnected state, governed setup copy, and the
built in synthetic fixture. The point cloud is generated locally from gated
track hypotheses and schematic relay geometry. It is not a raw sensor point

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 51 KiB