R2D2-MERIDIAN/crates/meridian-openapi
Joshua Belke 64a0e86ac3
Some checks failed
helm chart / lint + unittest + render matrix (push) Has been cancelled
helm chart / install on kind (gated) (push) Has been cancelled
helm chart / publish chart to GHCR (push) Has been cancelled
Meridian Harness / Build (aarch64-unknown-linux-musl) (push) Has been cancelled
Meridian Harness / Build (x86_64-unknown-linux-musl) (push) Has been cancelled
Meridian Harness / Publish rolling release (push) Has been cancelled
Meridian Harness / Publish tagged release (push) Has been cancelled
control plane / chart (push) Has been cancelled
control plane / test (push) Has been cancelled
control plane / browser-e2e (push) Has been cancelled
control plane / Build control plane image (linux/amd64) (push) Has been cancelled
control plane / Build control plane image (linux/arm64) (push) Has been cancelled
control plane / Publish signed control plane image (push) Has been cancelled
CI / Detect Changed Paths (push) Has been cancelled
CI / Dead Token Reference Guard (push) Has been cancelled
Docker image / Build (linux/amd64) (push) Has been cancelled
Docker image / Build (linux/arm64) (push) Has been cancelled
Docker image / Build public push gateway (linux/amd64) (push) Has been cancelled
Docker image / Build public push gateway (linux/arm64) (push) Has been cancelled
CI / Rust Lint (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Isolated DB Gate (push) Has been cancelled
CI / Desktop Core (push) Has been cancelled
CI / Desktop Smoke E2E (1) (push) Has been cancelled
CI / Desktop Smoke E2E (2) (push) Has been cancelled
CI / Desktop Smoke E2E (3) (push) Has been cancelled
CI / Desktop Smoke E2E (4) (push) Has been cancelled
CI / Desktop (push) Has been cancelled
CI / Desktop E2E Relay (push) Has been cancelled
CI / Desktop E2E Integration (1/2) (push) Has been cancelled
CI / Desktop E2E Integration (2/2) (push) Has been cancelled
CI / Desktop E2E Integration (push) Has been cancelled
CI / Backend Integration (relay e2e) (push) Has been cancelled
CI / Relay E2E (push) Has been cancelled
CI / Web (push) Has been cancelled
CI / Mobile (push) Has been cancelled
CI / Security (push) Has been cancelled
CI / Server Cross-Compile (push) Has been cancelled
CI / Server Cross-Compile-1 (push) Has been cancelled
CI / Windows Rust (x86_64-pc-windows-msvc) (push) Has been cancelled
CI / Desktop Build (macOS) (push) Has been cancelled
Docker image / Merge release multi-arch manifest (push) Has been cancelled
Docker image / Merge debug multi-arch manifest (push) Has been cancelled
Docker image / Publish public push gateway image (push) Has been cancelled
feat(brand): put every Meridian surface on one dark ramp
Four surfaces had each invented a ground, so a user crossing sign-in → docs →
app → dashboard stepped through four different blues:

- OpenAPI reference: `#0B1B36`, the NATO kit's dark row
- control-plane pages: `#080a12` with a `#2c62b8` blue on neither kit step
- desktop Meridian Dark: a neutral grey content canvas, `0 0% 10.2%`
- admin-web: light, `#d7e7f6` on `#231e1e`

One ramp now, recorded in the brand kit rather than copied four ways. `#060C1A`
is NATO Primary deepened until it reads as dark *blue* — measurably darker than
the reference's old ground (L 0.0038 against 0.0112) and as dark as the sign-in
page's near-black, without its violet cast.

Two roles deliberately leave the kit, because the kit measured them against
white and these sit on ink:

- muted is `#93A6C4`, not `#6B7C99` (4.6:1 here); the kit value stays for
  disabled chrome, where reading as unavailable is the point
- danger text is `#F65D7A`, not `#C8102E` (3.3:1 here); `#C8102E` remains
  correct as a fill

Every pair was measured, not eyeballed: text 17.4:1, muted 7.9:1, accent 5.5:1,
danger 6.4:1, and `#FFFFFF` on `#1F4491` 9.2:1.

The signature ground is that ink under one Primary glow and a 24px dot field,
carried by all four. Scalar paints `--scalar-background-1` over its own root, so
the ground goes on `body` with the app root transparent — set on `.scalar-app`
it is covered rather than layered under.

Desktop Meridian Dark additionally gets the Earth the sign-in screen draws, at
0.22 opacity and a third the rotation. `ContentSurface` is opaque above it, so
what shows is the sliver behind the sidebar and window chrome, never behind the
message timeline. It is rendered conditionally rather than hidden with opacity:
the globe pauses when off-screen or backgrounded, but an `opacity-0` layer still
intersects the viewport, so unmounting is the only thing that stops the loop.

The two guards that failed are updated, not loosened —
`the_theme_uses_only_nato_ramp_colours` gains the three shared-ramp values with
the contrast measurement that justifies each, and
`login_page_uses_the_current_brand` now also refuses the retired `#080a12`,
`#2c62b8`, `#f5f4fb` and `#3b74d0`.

Verified by screenshot on a live relay and a live control plane, not from the
source that produced them: sign-in, the OpenAPI reference, the metrics
dashboard, and the desktop app in Meridian Dark. `just check-brand`,
`cargo test -p meridian-openapi -p meridian-control-plane`, admin-web
Playwright (18) and desktop unit (4051) all pass; clippy and fmt clean.

Two `!important` rules from the metrics filter bar are replaced with the
specificity they were papering over, clearing the biome warnings they raised.

Signed-off-by: Joshua Belke <joshua@innovationhub-act.org>
2026-08-07 08:35:17 -04:00
..
assets feat(openapi): vendor the Scalar renderer, and serve the reference from the binary 2026-08-07 01:40:16 -04:00
src feat(brand): put every Meridian surface on one dark ramp 2026-08-07 08:35:17 -04:00
AGENTS.md feat(openapi): vendor the Scalar renderer, and serve the reference from the binary 2026-08-07 01:40:16 -04:00
Cargo.toml feat(openapi): vendor the Scalar renderer, and serve the reference from the binary 2026-08-07 01:40:16 -04:00