Skip to content

feat(console): real-state-first after-login dashboard + React-wired Brain controls#240

Merged
thecelestialmismatch merged 1 commit into
mainfrom
HoundShield/do-everything-ooda-3c576b
Jul 22, 2026
Merged

feat(console): real-state-first after-login dashboard + React-wired Brain controls#240
thecelestialmismatch merged 1 commit into
mainfrom
HoundShield/do-everything-ooda-3c576b

Conversation

@thecelestialmismatch

Copy link
Copy Markdown
Owner

Why

Founder-directed: "the after-login dashboard — nothing working, redesign it and make sure all buttons work and have meaning, not just generic."

The live audit found the buttons did fire — but a signed-in user still landed on a fake "Acme Defense" demo with their name on top, and the Brain controls were wired imperatively (a re-render away from silent breakage). This redesign makes /console feel like a real product.

What changed

1. Brain controls → real React handlers (root cause, not symptom)

  • Starter chips are now BRAIN_TAB_CHIPS.map(...) with onClick; Send + Enter call askRef.current?.(inputRef.current?.value ?? '').
  • The imperative wiring (addEventListener('click', onSend), the keydown listener, the querySelectorAll('.chips button') loop) and its teardown are deleted.
  • Input stays uncontrolled (id="lcc-bi" + ref), so the XSS-escape guard still reads the DOM value directly.

2. Signed-in operators land on THEIR product (real-state-first)

  • New ActivationStrip on the Overview, signed-in only: "Connect your proxy to go live", honest state pills (Proxy · not connected / Assessment · saved on this device / Reports · ready), and the two real next actions — Get your proxy URL → Settings, Start your assessment → the 110-control board. Anonymous visitors don't see it.
  • The hero live pill reads "Sample preview" for signed-in operators (their live data arrives when the proxy connects) vs "Live demo" for the anonymous public demo.
  • A signed-in operator asking their SPRS score gets an honest "you haven't answered any controls yet" — never the sample org's +78.

Deliberately unchanged (founder-locked, and good)

  • Aurora palette / skin — one source of truth shared with the marketing hero (aurora-redesign-contract, design-studio-contract, founder-directed 2026-07-18). This refines layout + adds the activation surface within those tokens; it is not a palette swap.
  • Honesty contracts — simulated telemetry labeled, KPI seeds single-sourced, provenance dialogs (PR feat(console): click any number to see exactly where it comes from — data-provenance dialogs #208), findings name-only, no fabricated real-customer metrics.
  • Logo motion (tilt, never translate) + a11y token grades.

Test plan

  • tsc --noEmit — clean
  • next lint — 0 errors
  • vitest run1479/1479 (incl. +13 new redesign-contract assertions in LiveCommandCenter.test.tsx)
  • next build — success, 252 pages
  • Browser-verified on a clean production build (next start): signed-in /console renders with 0 console errors; the activation anchor is cohesive with the aurora skin; the Brain SPRS chip fires via React and returns the operator's own honest answer.

Docs: compliance-firewall-agent/docs/DASHBOARD-CONSOLE-REDESIGN-2026-07-22.md

🤖 Generated with Claude Code

…rain controls

Founder-directed redesign of /console ("buttons work + have meaning, not
generic; redesign it"). The audit found the buttons did fire, but two things
made the dashboard feel like a fake demo:

1. Brain-tab chips + Send + Enter were wired imperatively (addEventListener /
   querySelectorAll over React-rendered nodes) — brittle, split-ownership, the
   "nothing works" smell. Root-caused to real React handlers (BRAIN_TAB_CHIPS
   .map + onClick/onKeyDown calling askRef.current); imperative wiring and its
   teardown deleted. Input stays uncontrolled so the XSS-escape guard still
   reads the DOM value directly.

2. A signed-in operator still landed on the simulated "Acme Defense" demo with
   their name on top. New ActivationStrip (signed-in only): "Connect your proxy
   to go live", honest state pills, and real next actions (Get your proxy URL →
   Settings, Start your assessment → the 110-control board). The hero pill now
   reads "Sample preview" for signed-in operators vs "Live demo" for anonymous.

The aurora palette and every honesty contract are deliberately unchanged
(founder-locked 2026-07-18; the redesign refines layout + adds the activation
surface within those tokens, it is not a palette swap).

+13 guard assertions in LiveCommandCenter.test.tsx. tsc 0, lint 0, full suite
1479/1479, build 0. Verified on a clean production build: signed-in /console
renders with zero console errors and the SPRS chip returns the operator's own
honest answer.

Docs: docs/DASHBOARD-CONSOLE-REDESIGN-2026-07-22.md
@supabase

supabase Bot commented Jul 22, 2026

Copy link
Copy Markdown

This pull request has been ignored for the connected project qifynzuyrdxmxlumpsrq because there are no changes detected in supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

@vercel

vercel Bot commented Jul 22, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
compliance-firewall-agent Ready Ready Preview, Comment Jul 22, 2026 12:30pm

@thecelestialmismatch
thecelestialmismatch merged commit 6b61443 into main Jul 22, 2026
9 of 10 checks passed
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