Skip to content

Replicant v0.6.0 — the Factory web UI

Choose a tag to compare

@404SecNotFound 404SecNotFound released this 30 Aug 06:11
· 33 commits to main since this release
ae0b930

A visual identity release. Nothing in the emitted telemetry moves: no new techniques, no CEF changes, no CLI changes. Upgrading matters only if you use the web UI.

The web UI is the Factory system, and dark-only

The UI now follows a "terminal war room at midnight" design system, implemented from three approved mocks that went through a builder/three-critic loop. The design contract is docs/webui-factory-design.md.

  • Fonts: Geist 400/500 and JetBrains Mono 400, both OFL 1.1, self-hosted with license texts beside the woff2 files (they ship inside the wheel). The mocks specified Switzer, but the ITF Free Font License v2.0 prohibits distributing the font through a repository or publicly accessible server, which is exactly what this repo and its releases are, so it was replaced before anything was committed.
  • Palette: #101010 canvas, warm graphite surfaces, hairline borders, and exactly two chromatic colors reserved for live data: signal orange and metric green. Weight 400 everywhere. No gradients, shadows, or glows. A test asserts every documented palette token encodes exactly the hex named beside it.
  • Light mode is removed. The Factory system is dark-only; the toggle, stored preference, and pre-paint script go with it.
  • The run panel is a war-room frame: metric tiles derived from the run's own counters, an instrumented sparkline with a labeled scale, dotted mean, and time axis, and a progress track. The mock's bytes tile deliberately does not ship: the stream carries no byte counter, and a readout that cannot be measured must not render. Labels say emitted, never sent or delivered, where only rendering is measured.
  • Honesty carried into color: "sent, unconfirmed" renders neutral rather than colored, active filter chips recess instead of taking the signal color, and emphasis inside log lines is brightness only.
  • A generated near-black circuit backdrop (18 KB WebP, provenance in NOTICE) sits behind the canvas under a flat scrim; cards are opaque, so text contrast is unchanged.

Fixed

  • Stock tailwind-merge classified the type-scale rungs as text color classes and silently deleted the font size whenever a real color followed in the same cn() call; elements then inherited their parent's size (the vendor segmented control rendered 16px against a class list saying 12px). cn() now registers the rungs, and a test pins every rung the config declares.
  • The Logs tab's info level styled itself with a token that does not exist, so its color was inherited by accident.

Verified

952 Python + 142 frontend tests, black/ruff/mypy/tsc clean, a contrast-and-size audit on the rendered page (zero AA failures across 277 text elements), no horizontal overflow at 1280 or 375, and a live run watched end to end through the new frame. The wheel attached here was built from a clean checkout of this tag and smoke-tested outside the repository.