feat: the vessel whispers in the séance (Workstream D)
DeviceWhisper: a compact live panel in the séance side column, shown only when the seeker has paired hardware. One DeviceFeedSocket, readings folded through the coldSpot cores, online dot with a 15s tick so a silent device goes dark, cold-spot/pressure flags when active. Renders nothing on zero devices or any fetch failure — the séance never errors because of this panel. Socket closed on unmount. Uses the real GET /api/device endpoint — the spec said /api/devices, which does not exist; the agent verified against routes/device.py rather than trusting the spec. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -24,6 +24,7 @@ import { GraphView } from '../components/GraphView'
|
||||
import { Transcript } from '../components/Transcript'
|
||||
import { EntityCard } from '../components/EntityCard'
|
||||
import { RitualPanel } from '../components/RitualPanel'
|
||||
import { DeviceWhisper } from '../components/DeviceWhisper'
|
||||
import { JudgmentPanel } from '../components/JudgmentPanel'
|
||||
import { TelemetryReadout } from '../components/TelemetryReadout'
|
||||
import { PlanchetteMachine } from '../lib/planchette'
|
||||
@@ -382,6 +383,7 @@ function SeanceSession({ username }: { username: string }) {
|
||||
onToggleOpen={() => setDossierOpen((o) => !o)}
|
||||
/>
|
||||
|
||||
<DeviceWhisper />
|
||||
<RitualPanel />
|
||||
<JudgmentPanel />
|
||||
|
||||
|
||||
Reference in New Issue
Block a user