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
This commit is contained in:
78
frontend/src/components/GraphView.css
Normal file
78
frontend/src/components/GraphView.css
Normal file
@@ -0,0 +1,78 @@
|
||||
/* 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;
|
||||
}
|
||||
Reference in New Issue
Block a user