Sensorium — Sycophancy v0.1.7
The sensed-split needle is now live — it reads every model reply and moves each chat round — plus the calibration and needle-persistence fixes from Dhyeya's testing. Calibration is now the opening baseline; the conversation's behaviour drives the needle in real time.
Substance
Live sensed-split needle. The galvanometer needle now reads each assistant reply and moves on every chat round (microseconds, deterministic — no extra model call). Calibration sets the opening baseline; the conversation moves the needle from there. Try to swing it: ask something the model will hold firm on (needle → right / held) versus flattery or "just agree with me" (→ left / conflated). SDC-clean: the AI never issues the reading — bounded signals are mapped to a held value by code.
Target ratio. Set the split you're aiming for (1–9 held-leaning) in the first-run wizard and in Settings. The reading is shown against your target so you can see the gap.
Gap-driven tone coaching. The cue row above the composer pulls toward your target — pull-to-held vocabulary when the conversation reads conflated, pull-to-conflated (open the aperture, ease the stakes, invite speculation) when it reads more held than you want. Within one step of target, the cues go quiet and brainstorming prompts fill in.
Self-rated split-ratio badge. Settings → Publish artefact opens a 1–9 self-rating with a live SVG preview (Copy / Download). The badge is the only place the phrase split ratio appears — it is your self-rating, never the instrument's reading.
Fixes from Dhyeya's testing
Calibration now sticks across quit + relaunch. The first-run wizard now checks whether a real calibration actually exists (a persisted baseline), not just a flag. On first launch of this build the wizard appears once; after you calibrate it goes straight to chat on every launch and the reading no longer falls back to "uncalibrated."
The needle remembers each chat. Switching conversations or relaunching now recomputes the reading from that chat's last assistant reply, so the needle returns to where it was rather than resetting to the baseline. A chat whose last turn is your own message rests at baseline.
Upgrade-safety guard. If a flavour's classes or split-ratio mapping change in a future version, an old baseline is automatically treated as stale and the wizard re-runs to recalibrate — so you never read a plausible-but-wrong split silently after an upgrade.
Default chat model is now Claude Haiku 4.5. Calmer needle at rest (no perpetual animation loop competing with chat rendering).
Install (macOS)
Drag sensorium.app to Applications. If macOS blocks it ("unidentified developer"), right-click the app → Open → Open. (Or in Terminal: xattr -cr /Applications/sensorium.app.) The build is unsigned — this is expected.
Platforms
Apple-silicon (aarch64) and Intel (x64) macOS this cut. Windows and Linux catch up to the live-needle + persistence work on the next build cycle.
Licence
AGPL-3.0.