Commit Graph

  • 56d2a9daef Release v1.61.1 main v1.61.1 mARTin-B78 2026-10-11 05:44:24 +0200
  • e999a8f38b fix(voices): keep per-model speaker embeddings with their voice package mARTin-B78 2026-10-11 05:40:45 +0200
  • e52a73c868 fix(tts): custom engine availability follows health, not the library voice list mARTin-B78 2026-10-11 05:18:52 +0200
  • 8c70f06da8 Release v1.61.0 v1.61.0 mARTin-B78 2026-10-11 04:44:31 +0200
  • 0551b6651f feat(voices): redesigned My Voices list, working copy, engine-aware TTS availability mARTin-B78 2026-10-11 04:44:27 +0200
  • b365894e44 fix(sonar): remove duplicate characters in regex classes (javascript:S5869) mARTin-B78 2026-10-06 13:33:25 +0200
  • c16590709b fix(sonar): drop redundant data = null assignment (javascript:S4165) mARTin-B78 2026-10-06 13:31:47 +0200
  • 4ba43f2b75 fix(qa): sonar auto loop rebuilds the bundle after fixer commits mARTin-B78 2026-10-06 13:31:12 +0200
  • 7df275b378 fix(sonar): share status setter between LLM and OCR panels (javascript:S4144) mARTin-B78 2026-10-06 13:11:58 +0200
  • 544db8883c fix(sonar): sort rotated voice list in separate statement (javascript:S4043) mARTin-B78 2026-10-06 13:10:50 +0200
  • 32aac96c9a fix(sonar): remove unused byId map in cast spans (javascript:S4030) mARTin-B78 2026-10-06 13:09:40 +0200
  • 39469ced2b fix(sonar): split mixed-type sort value in perf history (javascript:S3800) mARTin-B78 2026-10-06 13:08:54 +0200
  • bf4a71a61a fix(sonar): stop reassigning loop counter in quote splitter (javascript:S2310) mARTin-B78 2026-10-06 13:00:27 +0200
  • 8d61f22ba4 fix(sonar): merge identical branches in segment merge (javascript:S1871) mARTin-B78 2026-10-06 12:59:44 +0200
  • 4f8a5c6e15 fix(sonar): drop useless assignments (javascript:S1854) mARTin-B78 2026-10-06 12:58:35 +0200
  • 776c5cba4c feat(qa): automatic sonar-fixer loop (file, deliver, verify, repeat) with safety stops mARTin-B78 2026-10-06 12:57:45 +0200
  • 8f856c8f8b fix(sonar): move default out of runPool parameter list (javascript:S1788) mARTin-B78 2026-10-06 12:00:33 +0200
  • e81ebbc45b fix(sonar): extract assignments from expressions (javascript:S1121) mARTin-B78 2026-10-06 11:59:52 +0200
  • bab9b50643 feat(qa): sonar triage --no-webhook (file issues now, deliver them with --drain) mARTin-B78 2026-10-06 11:58:53 +0200
  • 69c33526f4 fix(qa): run the container tests on a writable copy and add node to the test image mARTin-B78 2026-10-06 11:58:13 +0200
  • 456b64f5b7 feat(qa): run python tests in a throwaway container built from the app image mARTin-B78 2026-10-06 11:56:42 +0200
  • 9d93b4fb89 fix(qa): run Python tests with an interpreter that has the project dependencies mARTin-B78 2026-10-06 11:51:33 +0200
  • c0e892aaf8 fix(sonar): use np.nonzero for single-argument np.where (python:S6729) mARTin-B78 2026-10-06 11:41:35 +0200
  • 9a542cd198 fix(sonar): document empty _Sink.flush (python:S1186) mARTin-B78 2026-10-06 11:40:25 +0200
  • 40c3db6831 test(rehearser): pin ACT/SCENE heading forms (digits, roman, words) and the empty-numeral regression mARTin-B78 2026-10-06 11:37:16 +0200
  • ccbd834eea feat(qa): sonar triage --drain with delivery check and one resend mARTin-B78 2026-10-06 11:31:55 +0200
  • 402fd52f40 fix(sonar): drop redundant optional group in audio-link regex (python:S5842) sparky 2026-10-06 11:31:20 +0200
  • 1b3fff1e0d fix(sonar): ACT/SCENE heading regex no longer matches empty numeral (javascript:S5842) mARTin-B78 2026-10-06 11:30:12 +0200
  • dda8ffa133 chore(build): rebuild static bundle after sonar JS fixes mARTin-B78 2026-10-06 05:12:42 +0200
  • 2328852aab feat(qa): refactor lane for cognitive-complexity findings (own webhook, one issue per function) mARTin-B78 2026-10-06 04:19:27 +0200
  • c2048ebc45 docs(qa): sonar-refactorer agent for cognitive-complexity findings mARTin-B78 2026-10-06 04:13:37 +0200
  • ba774f219d fix(sonar): avoid identical assertion operands (python:S5863) mARTin-B78 2026-10-06 04:12:26 +0200
  • 68f0dd824e feat(qa): --exclude-rules for sonar triage mARTin-B78 2026-10-06 04:11:44 +0200
  • 2914f7ebe3 fix(sonar): drop redundant regex alternatives (python:S5855) mARTin-B78 2026-10-06 04:07:57 +0200
  • 2cd14c9ddf fix(sonar): wrap backendVoiceId in arrow for map (javascript:S7727) mARTin-B78 2026-10-06 04:06:35 +0200
  • 9baa8ad5ba docs(qa): sonar-fixer moves finished multica issues to Done mARTin-B78 2026-10-06 04:05:12 +0200
  • 1963cdc0f4 docs(qa): sonar-fixer reports and closes the GitHub issue mARTin-B78 2026-10-06 04:00:06 +0200
  • b60586a559 fix(sonar): compare speed with math.isclose instead of float equality (python:S1244) mARTin-B78 2026-10-06 03:51:32 +0200
  • 11ab1ff677 fix(sonar): use replaceAll string instead of control-char regex (javascript:S6324) mARTin-B78 2026-10-06 03:51:04 +0200
  • 1d65a4df7c fix(sonar): remove unused variables and commented-out code mARTin-B78 2026-10-06 03:42:44 +0200
  • a60b7e555d fix(sonar): add localeCompare compare function to bare sort() calls (javascript:S2871) mARTin-B78 2026-10-06 03:32:10 +0200
  • 9f78a1552f feat(qa): fire a multica webhook autopilot for each sonar GitHub issue mARTin-B78 2026-10-06 03:28:41 +0200
  • 557983d247 feat(qa): file sonar issues most valuable first (bugs before style findings) mARTin-B78 2026-10-06 03:24:36 +0200
  • 220f5fc1ec feat(qa): group sonar issues per rule mARTin-B78 2026-10-06 03:03:23 +0200
  • 98a87077d9 feat(qa): sonar triage loop (dry-run default) and multica agent hookup mARTin-B78 2026-10-06 02:47:21 +0200
  • bae588375f fix(conversation): size metrics charts to the column so text is legible mARTin-B78 2026-10-06 02:14:55 +0200
  • caee289bcc fix(conversation): keep Turn history rows visible in the Latency column mARTin-B78 2026-10-06 02:14:55 +0200
  • a3ba3581fe feat(conversation): red/blue mic button with aria-pressed state mARTin-B78 2026-10-06 02:14:40 +0200
  • 0a30b00d7f refactor(conversation): show metrics in the latency column instead of a second tab mARTin-B78 2026-10-06 01:30:27 +0200
  • e7a25d80ff feat(conversation): metrics view with TTFB charts and token usage mARTin-B78 2026-10-06 00:48:32 +0200
  • 60eb108360 fix(ui): surface silently swallowed save and fetch errors mARTin-B78 2026-10-06 00:44:31 +0200
  • 2479617964 fix: run blocking requests/sleep in async routes via to_thread mARTin-B78 2026-10-06 00:40:34 +0200
  • dea6286775 feat(conversation): pick the LLM endpoint from the configured language models mARTin-B78 2026-10-06 00:33:30 +0200
  • 8ce8e791b2 feat(conversation): thinking on/off switch mARTin-B78 2026-10-06 00:21:11 +0200
  • e8c0df027e test: fail any spec that would write to the live API mARTin-B78 2026-10-04 21:00:25 +0200
  • a2f9c12b2d Release v1.60.0 v1.60.0 mARTin-B78 2026-10-04 20:12:46 +0200
  • 38f88958c6 fix(magazine): mock /api/settings in magazine specs and await lazy module in deep-link spec mARTin-B78 2026-10-04 20:06:52 +0200
  • c7d5134734 chore(qa): isolated per-run python env and optional coverage for sonar mARTin-B78 2026-10-04 19:29:37 +0200
  • aa92ed30b3 refactor(installer): extract run_command helper to cut cognitive complexity mARTin-B78 2026-10-04 19:28:37 +0200
  • 8f226dce99 chore(security): stop tracking two scratch scripts flagged by the secret scan mARTin-B78 2026-10-04 19:03:18 +0200
  • 3317bfd063 test: make spawn helper test independent of leaked tasks mARTin-B78 2026-10-04 19:00:06 +0200
  • 2f4c8529e9 fix(i18n): remove duplicate keys and dead frontend branches mARTin-B78 2026-10-04 18:58:14 +0200
  • 668681dd24 fix(security): private temp dir for docker installer, https for OMDb, md5 non-security flag mARTin-B78 2026-10-04 18:57:34 +0200
  • 4f30ee5c0d fix: keep references to background asyncio tasks mARTin-B78 2026-10-04 18:56:39 +0200
  • 03529a5403 chore(sonar): use the real project key, exclude vendored libs, raise JS analyzer heap mARTin-B78 2026-10-04 18:54:46 +0200
  • b7cfe056a3 fix(voices): rename archetype say helper to avoid global collision mARTin-B78 2026-10-04 18:38:44 +0200
  • 2a06d0a488 fix(export): ship untagged file when provenance tagging fails mARTin-B78 2026-10-04 18:38:42 +0200
  • 1fd79866f8 chore(qa): central npm run qa command with optional SonarQube stage mARTin-B78 2026-10-04 18:36:48 +0200
  • 8fed5eeda8 fix(voices): archetype language filter accepts ISO codes mARTin-B78 2026-10-04 18:29:28 +0200
  • 5dbe8c8998 docs(voices): archetype gallery manual and architecture mARTin-B78 2026-10-04 18:23:44 +0200
  • b33559884c feat(voices): archetype gallery UI mARTin-B78 2026-10-04 18:23:14 +0200
  • 281869709b fix(voices): drop the Source unknown badge from list rows mARTin-B78 2026-10-04 18:22:41 +0200
  • fece9122d1 feat(voices): archetype catalog and API mARTin-B78 2026-10-04 18:10:35 +0200
  • c0a5d54763 fix(voices): robust LibriVox search and expose export_provenance_default mARTin-B78 2026-10-04 18:07:22 +0200
  • 7a86e51faa test(audiobook): cover emotion to instruct path and document audiobook emotions mARTin-B78 2026-10-04 17:56:54 +0200
  • 772c43d7f0 feat(voices): LibriVox and Wikimedia Commons voice sources mARTin-B78 2026-10-04 17:42:36 +0200
  • 9b169037a4 feat(tts): inline tags in generate, audiobook and magazine paths mARTin-B78 2026-10-04 17:35:18 +0200
  • 5a7c73ea42 feat(export): provenance tags and optional disclosure for exported audio mARTin-B78 2026-10-04 17:02:41 +0200
  • 8b51487a64 feat(tts): inline pause, spell and speed tags mARTin-B78 2026-10-04 16:52:23 +0200
  • 91843e95e6 feat(voices): optional vocal isolation for URL imports mARTin-B78 2026-10-04 16:50:14 +0200
  • e0daafd4e1 feat(voices): export and import voice bundles mARTin-B78 2026-10-04 16:42:28 +0200
  • 781bf6e7f2 feat(voices): consent and provenance field per voice mARTin-B78 2026-10-04 16:39:32 +0200
  • b36423457b feat(design): auto-pick the best seed by scored candidates mARTin-B78 2026-10-04 16:37:58 +0200
  • a0cd7b867f feat(voices): show audio problems in the voice library mARTin-B78 2026-10-04 16:35:01 +0200
  • 67537310d0 feat(design): attribute chips for voice-design prompts mARTin-B78 2026-10-04 16:34:06 +0200
  • 19283a53a4 feat(voices): timestamped audio problem flags in voice health mARTin-B78 2026-10-04 16:10:56 +0200
  • 2594a236c4 feat(magazine): journalist/guest voices for c't-style interviews mARTin-B78 2026-10-04 15:25:51 +0200
  • b90c9ce51a chore(release): v1.59.0 v1.59.0 mARTin-B78 2026-10-04 00:41:57 +0200
  • a8177711f4 feat(characters): global cast view in the sidebar and per-book characters inside Studio mARTin-B78 2026-10-03 22:29:42 +0200
  • e1aca0ba34 feat(magazine): exclude entries from the untitled-page cleanup mARTin-B78 2026-10-03 22:05:49 +0200
  • a60a5a92ca chore(release): v1.58.0 v1.58.0 mARTin-B78 2026-10-03 20:21:12 +0200
  • 03ebd9ba35 feat(magazine): show page labels, display titles and merge suggestions mARTin-B78 2026-10-03 19:22:55 +0200
  • 42bb556db9 fix(magazine): approving a review page keeps all blocks of a multi-page article mARTin-B78 2026-10-03 14:48:37 +0200
  • 572fae892d fix(magazine): fit driving-mode text inside the frame and offer less text mARTin-B78 2026-10-03 14:46:31 +0200
  • 48af2b3ccb feat(magazine): detect continuation pages and suggest titles for untitled articles mARTin-B78 2026-10-03 14:36:29 +0200
  • 7eabdf0e43 feat(characters): distinct deterministic face profiles per character mARTin-B78 2026-10-03 14:25:56 +0200
  • 488e57e609 feat(magazine): clearer driving-mode menu with switches and theme selector mARTin-B78 2026-10-03 14:24:05 +0200
  • 1f812d2faf fix(characters): merge profiles only on real names, keep other cast names, reasoning and foreign quotes out of a character mARTin-B78 2026-10-03 14:09:53 +0200
  • 04f791e1f5 feat(characters): translate character info to English before image prompts mARTin-B78 2026-10-03 12:01:42 +0200
  • 4fd21b1d1c fix(characters): base dwarf body lock and species text on the character's own species assertion mARTin-B78 2026-10-03 11:09:19 +0200