c0e892aaf8
fix(sonar): use np.nonzero for single-argument np.where (python:S6729)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 11:41:35 +02:00
9a542cd198
fix(sonar): document empty _Sink.flush (python:S1186)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 11:40:25 +02:00
40c3db6831
test(rehearser): pin ACT/SCENE heading forms (digits, roman, words) and the empty-numeral regression
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 11:37:16 +02:00
ccbd834eea
feat(qa): sonar triage --drain with delivery check and one resend
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 11:31:55 +02:00
sparky
402fd52f40
fix(sonar): drop redundant optional group in audio-link regex (python:S5842)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 11:31:20 +02:00
1b3fff1e0d
fix(sonar): ACT/SCENE heading regex no longer matches empty numeral (javascript:S5842)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 11:30:12 +02:00
dda8ffa133
chore(build): rebuild static bundle after sonar JS fixes
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 05:12:42 +02:00
2328852aab
feat(qa): refactor lane for cognitive-complexity findings (own webhook, one issue per function)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 04:19:27 +02:00
c2048ebc45
docs(qa): sonar-refactorer agent for cognitive-complexity findings
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 04:13:37 +02:00
ba774f219d
fix(sonar): avoid identical assertion operands (python:S5863)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 04:12:26 +02:00
68f0dd824e
feat(qa): --exclude-rules for sonar triage
...
Also suppress groups whose keys sit in closed fixed-local issues (Sonar is not re-scanned between batches).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 04:11:44 +02:00
2914f7ebe3
fix(sonar): drop redundant regex alternatives (python:S5855)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 04:07:57 +02:00
2cd14c9ddf
fix(sonar): wrap backendVoiceId in arrow for map (javascript:S7727)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 04:06:35 +02:00
9baa8ad5ba
docs(qa): sonar-fixer moves finished multica issues to Done
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 04:05:12 +02:00
1963cdc0f4
docs(qa): sonar-fixer reports and closes the GitHub issue
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 04:00:06 +02:00
b60586a559
fix(sonar): compare speed with math.isclose instead of float equality (python:S1244)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 03:51:32 +02:00
11ab1ff677
fix(sonar): use replaceAll string instead of control-char regex (javascript:S6324)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 03:51:04 +02:00
1d65a4df7c
fix(sonar): remove unused variables and commented-out code
...
Removes 43 small Sonar findings (unused locals, dead helpers, a misread comment); behaviour unchanged. CHANGELOG entry was already swept into 9f78a15 .
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 03:42:44 +02:00
a60b7e555d
fix(sonar): add localeCompare compare function to bare sort() calls (javascript:S2871)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 03:32:10 +02:00
9f78a1552f
feat(qa): fire a multica webhook autopilot for each sonar GitHub issue
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 03:28:41 +02:00
557983d247
feat(qa): file sonar issues most valuable first (bugs before style findings)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 03:24:36 +02:00
220f5fc1ec
feat(qa): group sonar issues per rule
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 03:03:23 +02:00
98a87077d9
feat(qa): sonar triage loop (dry-run default) and multica agent hookup
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 02:47:21 +02:00
bae588375f
fix(conversation): size metrics charts to the column so text is legible
...
Charts use the rendered width as viewBox (re-rendered on resize), 11px text,
two x ticks, larger dot for single points. Includes docs/changelog for the
mic colours, Turn history fix and chart size.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 02:14:55 +02:00
caee289bcc
fix(conversation): keep Turn history rows visible in the Latency column
...
The rows were added to the DOM but the overflow:auto list was shrunk to zero
height by the flex column panel once the charts filled it. Adds tests for
#n + time rows, error rows and stats arriving after done.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 02:14:55 +02:00
a3ba3581fe
feat(conversation): red/blue mic button with aria-pressed state
...
Red while the mic is hot (live or recording), blue when off; label toggles
Stop/Start microphone (DE+EN); pulse only without reduced motion; reset to
blue when microphone access fails.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 02:14:49 +02:00
0a30b00d7f
refactor(conversation): show metrics in the latency column instead of a second tab
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 01:30:27 +02:00
e7a25d80ff
feat(conversation): metrics view with TTFB charts and token usage
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 00:48:32 +02:00
60eb108360
fix(ui): surface silently swallowed save and fetch errors
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 00:44:31 +02:00
2479617964
fix: run blocking requests/sleep in async routes via to_thread
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 00:40:34 +02:00
dea6286775
feat(conversation): pick the LLM endpoint from the configured language models
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 00:33:30 +02:00
8ce8e791b2
feat(conversation): thinking on/off switch
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 00:21:11 +02:00
e8c0df027e
test: fail any spec that would write to the live API
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 21:00:25 +02:00
a2f9c12b2d
Release v1.60.0
Test and SonarQube / quality (push) Has been cancelled
2026-10-04 20:12:46 +02:00
38f88958c6
fix(magazine): mock /api/settings in magazine specs and await lazy module in deep-link spec
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 20:06:52 +02:00
c7d5134734
chore(qa): isolated per-run python env and optional coverage for sonar
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 19:29:37 +02:00
aa92ed30b3
refactor(installer): extract run_command helper to cut cognitive complexity
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 19:28:37 +02:00
8f226dce99
chore(security): stop tracking two scratch scripts flagged by the secret scan
...
Files stay on disk. Keys they may hold are still in git history: rotate them.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 19:03:18 +02:00
3317bfd063
test: make spawn helper test independent of leaked tasks
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 19:00:06 +02:00
2f4c8529e9
fix(i18n): remove duplicate keys and dead frontend branches
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 18:58:14 +02:00
668681dd24
fix(security): private temp dir for docker installer, https for OMDb, md5 non-security flag
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 18:57:34 +02:00
4f30ee5c0d
fix: keep references to background asyncio tasks
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 18:57:20 +02:00
03529a5403
chore(sonar): use the real project key, exclude vendored libs, raise JS analyzer heap
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 18:54:46 +02:00
b7cfe056a3
fix(voices): rename archetype say helper to avoid global collision
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 18:38:44 +02:00
2a06d0a488
fix(export): ship untagged file when provenance tagging fails
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 18:38:42 +02:00
1fd79866f8
chore(qa): central npm run qa command with optional SonarQube stage
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 18:36:48 +02:00
8fed5eeda8
fix(voices): archetype language filter accepts ISO codes
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 18:29:28 +02:00
5dbe8c8998
docs(voices): archetype gallery manual and architecture
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 18:23:44 +02:00
b33559884c
feat(voices): archetype gallery UI
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 18:23:14 +02:00
281869709b
fix(voices): drop the Source unknown badge from list rows
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-04 18:22:41 +02:00