357 Commits

Author SHA1 Message Date
L'électron rare 023aa7bbb0 fix: lot 535 — mascarade thinking field extraction + streaming think suppression
Node.js side (llm-client.ts):
- Strip inline <think>...</think> from mascarade content before checking thinking field
- Suppress thinking blocks in real-time during mascarade SSE streaming
- Clean accumulated text from thinking before returning final response

mascarade Python side (ollama.py):
- Extract content from thinking field when Ollama returns content:"" (qwen3.5 mode)
- Strip <think> XML wrappers, extract after answer markers, fallback to last paragraph
- Suppress thinking blocks from Ollama streaming output

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 12:45:08 +01:00
L'électron rare 6eacfe4e1a feat: lot 534 — /deepresearch multi-step search agent (OpenSeeker-inspired)
- deep-research.ts: autonomous search agent with plan→search→visit→extract→refine→synthesize loop
- SSRF-safe page fetcher with blocked private IPs, HTML stripping
- LLM-driven query planning, URL selection, fact extraction, continuation decision
- Final synthesis with source citations and RAG context integration
- /deepresearch (/dr alias) command with real-time progress feedback
- Configurable: DEEPRESEARCH_MAX_STEPS (5), DEEPRESEARCH_MAX_PAGES (3)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 12:39:59 +01:00
L'électron rare c34704ccc0 feat: lot 533 — Grafana + Prometheus monitoring stack, enriched metrics
- perf.ts: business counters (llm_calls, tts_requests, ws_messages, ws_commands)
- perf.ts: WS active connections gauge, error counts from error-tracker
- ws-chat.ts: instrument connections/messages/commands with counters
- ws-multimodal.ts: TTS request counter
- llm-client.ts: mascarade/ollama call + token counters
- docker-compose: Prometheus + Grafana with monitoring profile
- ops/monitoring/prometheus.yml: scrape kxkm-api /metrics every 15s
- ops/monitoring/grafana: auto-provisioned datasource + KXKM dashboard
  - 11 panels: WS connections, chat rate, LLM calls, memory, TTS,
    uptime, HTTP/persona/WS latency percentiles, cumulative rates

Usage: docker compose --profile monitoring up -d
Grafana: http://localhost:3000 (admin/kxkm)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 15:21:36 +01:00
L'électron rare 35491d3d22 feat: lot 532 — mascarade SSE streaming + thinking field extraction
- llm-client: streamViaMascarade() parses SSE events from mascarade
- Cloud providers (claude, openai, mistral, google) now stream via mascarade SSE
- chatViaMascarade: extract content from thinking field when content is empty (qwen3.5)
- ws-ollama: improved thinking field extraction in tool probe (strip tags, FR/EN markers)
- Fallback to Ollama if mascarade stream fails

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 15:16:10 +01:00
L'électron rare ba125d8cbe perf: lot 531 — context parallel load, command ranking, mobile CSS, route prefetch
- context-store: Promise.all for summary + entries (saves 10-30ms)
- ChatInput: startsWith-first command ranking in autocomplete
- App.tsx: requestIdleCallback prefetch for Compose/Imagine/DAW/Gallery
- styles.css: mobile deep pass (safe-area, 44px targets, 380px, landscape)
- health-check.sh: simplified
- devDeps: @playwright/test

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 14:43:47 +01:00
L'électron rare 871b0b7fd9 fix: fallback to Ollama when mascarade returns empty content + gitignore .claude/
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 10:49:53 +01:00
L'électron rare 094a4ea81a feat: lots 524-530 🚀 — Live Audio FX, Visual Synth, AI Director, Radio Station
Lot 524: Live Audio FX page — 7 chainable effects (filter, distortion, delay, reverb, compressor, bitcrusher, pitch), Web Audio API, VU-meter, per-param sliders
Lot 525: /director — AI orchestrates 4 random personas in a theatrical conversation
Lot 526: Visual Synth page — audio-reactive canvas (waveform, spectrum, particles, tunnel, kaleidoscope), 5 color themes, fullscreen
Lot 527: /memory-wipe — reset persona memory
Lot 528: /stage — trigger fullscreen performance mode
Lot 529: /radio-station — continuous program (music + voice + jingles every 45s)
Lot 530: Deploy

2 new pages (Live FX, Visual Synth), 4 new commands.
204 commands total.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 04:51:29 +01:00
L'électron rare 282aaa911b fix: TTS stop now actually stops (use ref instead of closure for enabled state)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 04:05:10 +01:00
L'électron rare 3449cf0b1d perf: disable persona cooldown (depth limit protects against loops)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 04:02:48 +01:00
L'électron rare 4ad5d161aa perf: lot 523 — skip enrichment for inter-persona relay (saves 50-500ms per hop)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 03:56:58 +01:00
L'électron rare aaa016f9cf perf: lot 522 — inter-persona speed + TTS instant stop
- Inter-persona delay: 500ms → 100ms (near-instant relay)
- Persona cooldown: 3000ms → 1000ms (faster chains)
- Inter-persona context: 500 chars → 200 chars (fewer tokens)
- TTS toggle: instant stop (pause current audio + clear queue on disable)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 03:51:33 +01:00
L'électron rare c235e50697 perf: lot 521 — chat latency fix (stream direct Ollama, skip mascarade overhead)
- streamChat: ALWAYS direct Ollama for streaming (no mascarade 3s overhead)
- mascarade used only for: non-streaming tool probes, /agent, /orchestrate, cloud providers
- Exception: explicit cloud provider (claude:, openai:) still routes via mascarade
- ollamaLimit reduced 5→2 to match OLLAMA_NUM_PARALLEL=2
- RAG threshold raised 60→80 chars (skip embedding for short msgs)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 03:10:12 +01:00
L'électron rare 370b9f0118 Merge branch 'main' of https://github.com/electron-rare/kxkm_clown 2026-03-22 02:41:47 +01:00
L'électron rare 0e56602f35 feat: lots 515-520 — mascarade full integration (/v1/chat/completions, agents, KB, providers, orchestrate)
Lot 515: llm-client uses /v1/chat/completions (OpenAI-compat, public, no auth)
  - All models routed through mascarade (not just non-Ollama)
  - RouteLLM still skips mascarade for trivial messages
Lot 516: /agent list|run — list and execute mascarade agents from chat
Lot 517: /kb search — query mascarade knowledge base
Lot 518: /provider list|metrics — view LLM providers + routing metrics
Lot 519: /orchestrate — multi-agent parallel orchestration
Lot 520: Deploy

196 commands. 2 test regressions (smoke test mock incompatible with new routing, RAG pre-existing).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 02:38:41 +01:00
Codex Local 6dadeae78b Fix RAG test to use bge-m3 as default model 2026-03-22 02:32:50 +01:00
L'électron rare 71bec4beeb feat: lot 514 — Enhanced LiveWebcam UX (crossfade, blend, history, fullscreen)
- Crossfade animation between result frames (no jarring transitions)
- Resolution selector (192/256/384/512px) — lower = faster for live
- JPEG quality adaptive (0.7 live, 0.92 snapshot)
- Blend opacity slider (0-100%) to overlay result on webcam
- Frame history strip (last 8 thumbnails, clickable)
- Fullscreen overlay (click result → fullscreen + save/close)
- Snapshot button (📸) saves current result to gallery at hi-res
- Latency display (ms) alongside FPS
- Webcam video wrap for blend overlay positioning

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 02:19:12 +01:00
L'électron rare 4eef80ad81 feat: lot 513 — Unified LiveWebcam component (face swap + img2img + style + capture)
- Single LiveWebcam replaces 3 old components (WebcamCapture, LiveFaceSwap, LiveImg2Img)
- 4 modes: capture, faceswap, img2img, style (NEW: live style transfer from webcam)
- Camera flip (front/back), mirrored front camera
- FPS counter, frame counter, processing spinner
- Capture flash effect, larger previews (280px)
- Toolbar: mode label, flip button, start/stop toggle
- Side-by-side grid: webcam → result
- Mobile responsive (stacks vertically)
- Wired into FaceSwapForm, Img2ImgForm, StyleForm
- Removed 20+ old CSS rules, replaced with 28 new webcam-live-* rules

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 01:48:29 +01:00
L'électron rare 8c95933a36 feat: lot 512 — Live webcam img2img stream
- LiveImg2Img component: continuous webcam → ComfyUI img2img → display
- Prompt + strength update in real-time (refs for latest values)
- Same UI pattern as LiveFaceSwap (side-by-side, FPS counter, start/stop)
- Appears when prompt is typed in img2img mode

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 01:28:24 +01:00
L'électron rare f70b3a31c4 feat: lot 511 — Live webcam face swap stream
- LiveFaceSwap component: continuous webcam capture → ComfyUI ReActor → display
- Side-by-side view: webcam (left) → result (right) with arrow
- START/STOP toggle with FPS counter
- Auto-loop: captures frame, sends to /api/v2/comfyui/faceswap, displays result
- JPEG compression (quality 0.8) for faster upload
- Cleanup on unmount (stop stream + tracks)
- CSS: .live-swap-* with responsive grid, pulse animation when active

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 01:26:27 +01:00
L'électron rare 54fbaf199d feat: lots 501-510 — /roast, /wisdom, /goodnight, /challenge, /matrix, /neofetch, /help-all, /session-stats
Final polish batch:
Lot 501: /roast — friendly AI roast from random persona
Lot 502: /wisdom — dev/AI wisdom quotes
Lot 503: /goodnight — broadcast goodnight
Lot 504: /challenge — random creative challenge
Lot 505: /matrix — matrix rain characters
Lot 506: /neofetch — system info summary
Lot 507: /help-all — compact list of ALL commands
Lot 510: /session-stats — session summary

191 commands, 510 lots total.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 01:21:39 +01:00
L'électron rare ccc602cc9e feat: LOT 500 🎉 — /riddle, /compliment, /8ball, /whisper-all, /commands, /server, /help-compose, /lot500
Lot 491: /riddle — AI devinette
Lot 492: /compliment — random compliment
Lot 493: /8ball — magic 8-ball
Lot 494: /whisper-all — murmure a toutes les personas
Lot 495: /commands — total command count
Lot 496: /server — hardware/OS info
Lot 499: /help-compose — DAW guide complet
Lot 500: /lot500 🎉 MILESTONE Easter egg

🎉 500 LOTS, 183+ commandes, 33 personas, 16+ services
211 unit tests, 19 E2E tests

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 01:12:48 +01:00
L'électron rare 81fbe96717 feat: lots 485-490 — /mixtape, /persona-stats, /alias, /credits, /imagine-compare, /whosonline
175 commands, 211 tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 01:08:29 +01:00
L'électron rare 8c76bba883 feat: lots 480-484 — /blind-test, /lore, /rate, /sfx, /jam
Lot 480: /blind-test — music quiz (random instrument, 15s reveal)
Lot 481: /lore <persona> — AI-generated persona backstory
Lot 482: /rate <1-5> — star rating broadcast
Lot 483: /sfx <type> — quick SFX (riser/drop/sweep/impact/stutter)
Lot 484: /jam [bpm] — instant 3-track jam session (drums+bass+pad)

169 commands, 211 tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 00:41:16 +01:00
L'électron rare 1110573957 feat: lots 475-479 — /tldr, /rephrase, /math, /emojify, /countdown
164 commands, 211 tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 00:38:22 +01:00
L'électron rare 106a737d88 feat: lots 470-474 — /imagine-redo, /shout, /define, pulse, /help-imagine
Lot 470: /imagine-redo — regenerate last image with new seed
Lot 471: /shout — broadcast in ALL CAPS
Lot 472: /define <word> — AI definition via Ollama
Lot 473: Connected dot pulse animation
Lot 474: /help-imagine — complete /imagine guide with all flags

159 commands, 211 tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 00:36:06 +01:00
L'électron rare 2ca048fc89 feat: lots 465-469 — imagine-history, /ask, /poll, --steps, /batch
Lot 465: /imagine-history — show last N prompts with seeds
Lot 466: /ask <persona> <question> — direct question routing
Lot 467: /poll Question | A | B | C — simple poll with emoji
Lot 468: /imagine --steps N — override inference steps (1-50)
Lot 469: /batch /cmd1 ; /cmd2 — run multiple commands (max 5)

155 commands, 211 tests (210 pass, 1 pre-existing fail).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 00:32:49 +01:00
L'électron rare 4ab00179b2 feat: lots 460-464 — gallery cmd, preview+, reply, persona toggle
Lot 460: /imagine-gallery — list saved images in chat
Lot 461: /preview enhanced — play full mix/master or single track
Lot 462: Reply button (↩) on chat messages — sets @mention in input
Lot 463: /persona-disable + /persona-enable — toggle personas on/off
Lot 464: Input history verified (ArrowUp/Down working)

150 commands, 211 tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 00:14:41 +01:00
L'électron rare 7144d53feb feat: lots 456-459 — webcam live swap, STT micro, permissions, server STT
Lot 456: Live face swap — webcam capture + auto-submit, swap ⇄ button
Lot 457: Speech-to-Text — mic button in chat input (Web Speech API + Whisper WASM fallback)
  - BrowserSTT component with @huggingface/transformers whisper-tiny ONNX
  - Server-side STT via faster-whisper on ai-bridge /stt endpoint
Lot 458: Browser permissions manager — mic/cam status indicators, denied warnings
Lot 459: Deploy + smoke

147 commands, 211 tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 00:02:24 +01:00
L'électron rare eb84222562 feat: lots 450-455 — --model, /sys, /color, /whoami, char counter, models+
Lot 450: /imagine --model <checkpoint> override
Lot 451: /sys — one-liner system info
Lot 452: /color <hex> — nick color
Lot 453: /whoami — show nick, channel, role
Lot 454: Chat input character counter (>100 chars)
Lot 455: /imagine-models enhanced with summary

145 commands, 211 tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 23:44:56 +01:00
L'électron rare 54ee77ffa5 feat: lots 445-449 — --seed, --style, /tts-voices, /persona-voice, changelog+
Lot 445: /imagine --seed <number> for reproducible generation
Lot 446: /imagine --style photo|anime|cyberpunk|painting|pixel|minitel
Lot 447: /tts-voices — list all available TTS voices (Piper FR + Kokoro EN)
Lot 448: /persona-voice — show voice assignment per persona
Lot 449: /changelog enhanced — curated lot summary

141 commands, 211 tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 23:40:34 +01:00
L'électron rare f483d54cdf feat: lots 440-444 — aspect ratio, leaderboard, echo, version+, scroll btn
Lot 440: /imagine --ar 16:9|9:16|4:3|3:4 aspect ratio support
Lot 441: /leaderboard — persona ranking by memory facts (medals + bar chart)
Lot 442: /echo — broadcast text to channel
Lot 443: /version enhanced — lot count, commands, personas, uptime
Lot 444: Auto-scroll indicator button (↓ Nouveaux messages)

137 commands, 211 tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 23:36:35 +01:00
L'électron rare 8953ebfbcd feat: lots 435-439 — personas categories, trivia, comp rename, word count, fortune+
Lot 435: /personas grouped by category (Musique, Philosophie, Science, Arts, Scene)
Lot 436: /trivia — AI-generated quiz question with 4 choices
Lot 437: /comp rename <name> — rename active composition
Lot 438: Word count in chat header (msgs + mots)
Lot 439: /fortune enhanced — 25 quotes

134 commands, 211 tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 23:26:00 +01:00
L'électron rare 4959539bfa feat: lots 430-434 — /upscale, /count, /speak, emoji health, /flip
Lot 430: /upscale placeholder (needs ESRGAN model)
Lot 431: /count — file counts for all data directories
Lot 432: /speak <persona> <text> — force TTS as any persona
Lot 433: Emoji health indicators in admin dashboard
Lot 434: /flip enhanced (PILE/FACE + emoji)

132 commands, 211 tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 23:23:15 +01:00
L'électron rare 088decd1ae feat: lots 425-429 — TTS clean sentences, --no prompt, /story, /stats persona
Lot 425: cleanForTTS() applied to streaming sentences + flush + fallback
Lot 426: /imagine --no <negative> — parse negative prompt, show in broadcast
Lot 427: /story [theme] — 3 random personas write collaborative story
Lot 428: /stats <persona> — show persona memory facts, model, last update

128 commands, 211 tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 23:20:14 +01:00
L'électron rare 0f628148f1 fix: lot 424 — clean markdown/special chars before TTS
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 23:14:06 +01:00
L'électron rare 63d3ba1139 feat: lots 419-423 — imagine-queue, haiku, who+, timer, clear
Lot 419: /imagine-queue prompt1|prompt2|... — batch image gen (max 8)
Lot 420: /haiku [topic] — random persona writes a haiku
Lot 421: /who enhanced — shows persona models + voices
Lot 422: /timer <seconds> — broadcast alarm after delay
Lot 423: /clear — client-side message clear via __clear__ signal

126 commands, 211 tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 23:09:47 +01:00
L'électron rare 91b159df09 feat: lots 414-418 — /summarize, /mood, user count, dice NdM, /ping
Lot 414: /summarize — AI summary of conversation (bullet points)
Lot 415: /mood — display current persona mood based on time
Lot 416: "N en ligne | N msgs" in chat header
Lot 417: /dice NdM enhanced (2d6, 3d20, etc.)
Lot 418: /ping — server latency test

121 commands, 211 tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 23:04:31 +01:00
L'électron rare 703ec2aa1e feat: lots 408-413 — variations, collab, persona-create, copy, radio
Lot 408: /variations <prompt> — generate 4 seed variations of same image
Lot 409: Copy button (📋) on chat messages
Lot 410: /persona-create <name> <model> <desc> — create custom persona
Lot 411: /radio [on|off] — continuous random persona quotes every 30s
Lot 412: /collab [topic] — 5 random personas respond to same topic
Lot 413: Deploy

116 commands, 211 tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 23:00:46 +01:00
L'électron rare 52e78813ad feat: lot 407 — webcam face swap + AI auto-prompt
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 22:55:33 +01:00
L'électron rare 0e36e71183 feat: lots 401-405 — auto-free VRAM, benchmark, search, translate, moods
Lot 401: Auto-free ComfyUI VRAM every 5min (cron)
Lot 402: /benchmark — test all services latency in parallel
Lot 403: Ctrl+F chat search overlay with highlight
Lot 404: /translate (/tr) — FR↔EN auto-detect via Ollama
Lot 405: Persona mood system (time-of-day personality modifier)

110 commands, 211 tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 22:49:54 +01:00
L'électron rare 0ba4c5b3df fix: enable TTS + KOKORO_URL in docker-compose (was reset to 0)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 22:17:24 +01:00
L'électron rare f166b5c24f fix: handle __ping/__pong + silence invalid message spam
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 22:11:14 +01:00
L'électron rare 8f764ea303 feat: LOT 400 🎉 — milestone Easter egg + /about
Lot 400: /lot400 Easter egg — ASCII art banner with project stats
- /about — full project summary (stack, IA, audio, images, DAW)
- 108 commands total

🎉 400 lots, 108 commandes, 33 personas, 16 services, 211 tests, 19 E2E

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 22:03:59 +01:00
L'électron rare 36b933d43f feat: lots 395-399 — /quote /weather /ascii, timestamp tooltips, /uptime
Lot 395: /quote — random persona inspirational quote via Ollama
Lot 396: /weather [city] — weather from wttr.in
Lot 397: /ascii <text> — block letter ASCII art
Lot 398: Timestamp tooltips (full date+time on hover)
Lot 399: /uptime — server uptime display

106 commands, 211 tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 22:01:43 +01:00
L'électron rare 0a9a7fff60 feat: lots 390-394 — /debate, pin UI, ambient AI, waveform canvas
Lot 390: /debate [topic] — 2 random personas debate a topic
Lot 391: Pin button (📌) on persona messages, sends vote:pin feedback
Lot 392: /ambient AI fast path — instant pad generation via AI Bridge
Lot 393: Waveform canvas in ComposePage (120x30px per track with audio)

102 commands, 211 tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 21:57:33 +01:00
L'électron rare 4961ff5c2d feat: lots 385-389 — random persona, emoji reactions, remix, context indicator
Lot 385: /random-persona [topic] — invoke random persona on a topic
Lot 386: Emoji reactions (👍❤️😂🎵🔥) on hover for persona messages
Lot 387: /remix enhanced — random variation hints + new seed
Lot 388: Context indicator (sticky msg count in chat)

101 commands, 211 tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 21:29:12 +01:00
L'électron rare c79fa1df5d feat: lots 379-384 — CRT effects, rich stats, avatars, clear-media, ComfyUI preload
Lot 379: CRT scanline + phosphor glow CSS (dark mode only, performant)
Lot 380: /status enriched — uptime, RAM, VRAM, LLM, audio, ComfyUI, storage stats
Lot 381: Persona avatar initials — colored circle with first letter before nick
Lot 382: /clear-media [type] — cleanup generated images/audio/samples/exports
Lot 383: ComfyUI model preload at startup (skip 5-10s load on first /imagine)

100 commands, 211 unit tests, 19 E2E.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 21:24:51 +01:00
L'électron rare 819b42096b feat: lots 370-378 — PWA, MP3, @mention, images persist, voice preview, ACE-Step
Lot 370: PWA manifest + icon SVG (installable on mobile)
Lot 372: /mp3 command (ffmpeg WAV→MP3 192kbps export)
Lot 373: @mention autocomplete (tab-complete persona names in chat input)
Lot 375: Persistent image gallery (server-side index.jsonl + /api/v2/media/images)
Lot 376: Persona voice preview in sidebar (♪ button, Kokoro/Piper TTS)
Lot 377: ACE-Step priority for /generate/music (20s/4min vs 5min MusicGen)

98 commands, 211 unit tests, 19 E2E.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 21:04:21 +01:00
L'électron rare c9c5d45b6d feat: lots 361-369 — RouteLLM, WS reconnect, theme, gallery, playlist, channels, Prometheus, backup
Lot 361: RouteLLM complexity scoring (0-1 score, threshold routing)
Lot 362: WebSocket reconnection UI (status dots, reconnect banner, backoff)
Lot 363: Dark/light theme toggle (sun/moon icon, localStorage persisted)
Lot 364: Unified media gallery (ALL/IMAGE/AUDIO/VIDEO filters, grid, lazy load)
Lot 365: Playlist mode (sequential track playback in ComposePage)
Lot 366: Multi-channel switch (dropdown in header, /join via WS)
Lot 367: Prometheus /api/v2/metrics (uptime, memory, scheduler, VRAM, HTTP stats)
Lot 368: Backup cron (daily 3AM, 7-day rotation, tar.gz data/context/compositions)
Lot 369: Deploy + smoke test

97 commands, 211 unit tests, 19 E2E tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 20:45:31 +01:00
L'électron rare 2c7bc8e96b feat: lot 358 — admin service health monitor (real-time polling)
- ServiceHealth component: polls API, mascarade, ComfyUI, scheduler every 10s
- Green/red status cards with detail text (personas, providers, queue lengths)
- CSS: .admin-health-* grid with Minitel aesthetic

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 20:18:04 +01:00