Files
qtalker---/frontend/src/components/GraphView.css
Indiana c372427ced feat: matrix/graph data views, wire-generated anomalies, http cookie fix
- auth: session cookie Secure only over https — plain-http LAN access was
  silently dropping the cookie, killing WS auth ('connection unstable')
- wire ghost: server-side spike detection on jitter baseline (3σ + 2.5×mean,
  20KB/s floor, 20s throttle) — wire anomalies now flood every session with
  zero hardware, pushed to clients as {type:'anomaly'} frames
- telemetry cadence 3-5s for live graphs; ambient whispers unchanged
- frontend: MATRIX view (data-rain interleaved with live utterances/anomaly/
  telemetry strings), GRAPHS view (scrolling jitter/variance/dns lines +
  anomaly markers + counters), BOARD/MATRIX/GRAPHS switcher
- connection banner: 'connecting' is now neutral 'tuning the veil…', only
  unstable/closed warns
- db: recreated quantumancy(+_test) as UTF8 (was SQL_ASCII — crashed on
  non-ASCII spirit text); README quickstart updated
- i18n: seance.views.* EN/ES
2026-07-21 00:02:41 +00:00

79 lines
1.6 KiB
CSS

/* GraphView — scrolling wire-flood time-series for the séance board area.
Tokens: bg #07070d · panel rgba(16,16,26,0.85) · phosphor #7cffb2 ·
violet #b26bff · radio orange #ff9d4a · mono 'IBM Plex Mono'. */
.graph-view {
position: relative;
width: 100%;
height: 100%;
min-height: 0;
display: flex;
flex-direction: column;
background: rgba(16, 16, 26, 0.85);
border: 1px solid rgba(124, 255, 178, 0.18);
border-radius: 6px;
overflow: hidden;
filter: drop-shadow(0 0 18px rgba(7, 7, 13, 0.9));
}
.graph-counters {
display: flex;
gap: 1.4rem;
align-items: center;
padding: 8px 14px;
border-bottom: 1px solid rgba(124, 255, 178, 0.12);
font-family: 'IBM Plex Mono', ui-monospace, Menlo, monospace;
flex-shrink: 0;
}
.graph-counter {
display: flex;
align-items: baseline;
gap: 0.5rem;
white-space: nowrap;
}
.counter-key {
font-size: 0.62rem;
letter-spacing: 0.18em;
color: rgba(211, 233, 219, 0.5);
}
.counter-val {
font-size: 0.85rem;
color: #7cffb2;
text-shadow: 0 0 10px rgba(124, 255, 178, 0.55);
}
.counter-entity {
color: #b26bff;
text-shadow: 0 0 10px rgba(178, 107, 255, 0.55);
}
.graph-canvas-wrap {
position: relative;
flex: 1 1 auto;
min-height: 0;
}
.graph-canvas-wrap canvas {
position: absolute;
inset: 0;
cursor: crosshair;
}
.graph-listening {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
margin: 0;
color: #b26bff;
font-family: 'IBM Plex Mono', ui-monospace, Menlo, monospace;
font-size: 0.78rem;
letter-spacing: 0.22em;
text-transform: uppercase;
text-shadow: 0 0 12px rgba(178, 107, 255, 0.7);
pointer-events: none;
}