Indiana
58c30b7273
feat: possession presentation layer — glitchy text + degraded audio
...
First sub-project of the "make contact feel real" arc (spec:
docs/superpowers/specs/2026-07-23-possession-presentation-design.md).
Direct Contact replies now feel like a spirit fighting through static to
hold the channel rather than a plain chat bubble:
- backend/app/possession.py: compute_stability(rarity, magnitude, rng) —
a 0.05-0.98 score per reply (rarer entity + stronger triggering anomaly =
cleaner signal), rng injectable for a later quantum-RNG source.
- ws.py sends stability on reply_start; audio synthesis for that reply gets
noise/bitcrush scaled by instability (1 - stability) via a new
instability param on synthesize_spirit_voice — effects.py itself is
untouched, only the params fed into it.
- frontend/src/lib/possession.ts: renderPossessedText — pure, deterministic
(tick-seeded, no Math.random) text corruption with self-correcting
glitch bursts, wired into Transcript.tsx's streaming reply display.
Stored transcript/reply text is unaffected — this is presentation only.
78/78 backend, 137/137 frontend tests passing.
2026-07-23 05:48:02 +00:00
Indiana
761d6171b5
fix: actually strip stale SESSION_SECRET mentions from README
...
The gap-g-readme merge commit (57a8914 ) staged this fix but never
re-staged it after editing, so the merge landed with the pre-fix content —
the working tree had the correction but git didn't. No functional change,
just closing the gap between what was intended and what was committed.
2026-07-23 03:32:21 +00:00
Indiana
b56f5b8108
Merge gap-e-sdr-tests: SpectrumAnomalyDetector unit test coverage
2026-07-23 00:33:28 +00:00
Indiana
9c34fdc67f
Merge gap-f-i18n-ci: run i18n coverage check via npm pretest
2026-07-23 00:33:28 +00:00
Indiana
2b83c7cb7d
test: add coverage for SpectrumAnomalyDetector
...
Pure rolling-floor/spike-detection logic in sdr.ts had zero tests,
unlike its EVP/EMF detector siblings. No production code changed.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_013PphXq1s43DNRj1uWKGXof
2026-07-21 03:45:52 +00:00
Indiana
f0ee7dbdab
refactor: use TelemetryReadout and EntityCard components
...
Both were built and tested but never wired in — SeancePage.tsx was
reimplementing the same markup inline. Removes the duplication.
2026-07-21 03:45:11 +00:00
Indiana
34314c324d
chore: enforce i18n key coverage via npm test
...
coverage-check.mjs existed but nothing ran it automatically.
Wired in as a pretest hook so a coverage regression now fails
the test run instead of silently passing.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_013PphXq1s43DNRj1uWKGXof
2026-07-21 03:42:44 +00:00
Indiana
0756e677b9
Add EMF field mode, Armory shop/waitlist, and ambient haunting layer
...
Three self-contained features, verified complete and cross-wired
end-to-end (audited: backend 54/54 tests, frontend 110/110 tests,
tsc --noEmit clean, i18n coverage script clean):
- EMF mode: DeviceMotion/DeviceOrientation-based field-meter sensing,
a fifth séance channel alongside Wire/EVP/Radio/Ouija, with its own
fragment prompt persona and full frontend gauge UI.
- Armory (shop/waitlist): pre-order capture page for the future
Ultimate Quantum Box hardware line, rate-limited public endpoint,
explicitly no payment collection.
- Haunting layer: ambient possession effects (dread-bed audio, title
glitching, idle-paced whispers/manifests), respects
prefers-reduced-motion, mounted once at the app root.
Plus WebUSB robustness fixes in lib/sdr.ts (Terratec vendor ID,
explicit selectConfiguration, isSecureContext gate).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_013PphXq1s43DNRj1uWKGXof
2026-07-21 02:28:14 +00:00
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
Indiana
6edbbbbc2a
feat: complete Quantumancy web app — full frontend + docs
...
Frontend (React 18 + TS + Vite):
- Landing: glitching hero, live /api/stats veil ticker, mode cards, featured spirits
- Séance: three.js shader ghost (hue/form per entity, mood + audio-reactive),
Ouija planchette board spelling utterances, transcript with TTS replay,
entity dossier, direct contact streaming, passive/active listening
- Modes: Wire Ghost telemetry panel, EVP mic anomaly detection, WebUSB
RTL-SDR sweep + waterfall (hardware pass pending), Ouija/Direct Contact
- Codex: public registry + entity dossiers, rarity tiers, i18n EN/ES complete
- State: VeilSocket (reconnect/backoff), seance reducer, auth context
- 72 vitest tests green; served by FastAPI at :7777
Docs: README + as-built plans 3-7
2026-07-20 21:11:49 +00:00
Indiana
6bcdf83c4d
feat: scaffold React frontend with login/register UI
2026-07-20 17:42:44 +00:00