Commit Graph

696 Commits

Author SHA1 Message Date
b365894e44 fix(sonar): remove duplicate characters in regex classes (javascript:S5869)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 13:33:25 +02:00
c16590709b fix(sonar): drop redundant data = null assignment (javascript:S4165)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 13:31:47 +02:00
4ba43f2b75 fix(qa): sonar auto loop rebuilds the bundle after fixer commits
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 13:31:12 +02:00
7df275b378 fix(sonar): share status setter between LLM and OCR panels (javascript:S4144)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 13:11:58 +02:00
544db8883c fix(sonar): sort rotated voice list in separate statement (javascript:S4043)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 13:10:50 +02:00
32aac96c9a fix(sonar): remove unused byId map in cast spans (javascript:S4030)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 13:09:40 +02:00
39469ced2b fix(sonar): split mixed-type sort value in perf history (javascript:S3800)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 13:08:54 +02:00
bf4a71a61a fix(sonar): stop reassigning loop counter in quote splitter (javascript:S2310)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 13:00:27 +02:00
8d61f22ba4 fix(sonar): merge identical branches in segment merge (javascript:S1871)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 12:59:44 +02:00
4f8a5c6e15 fix(sonar): drop useless assignments (javascript:S1854)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 12:58:35 +02:00
776c5cba4c feat(qa): automatic sonar-fixer loop (file, deliver, verify, repeat) with safety stops
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 12:57:45 +02:00
8f856c8f8b fix(sonar): move default out of runPool parameter list (javascript:S1788)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 12:00:33 +02:00
e81ebbc45b fix(sonar): extract assignments from expressions (javascript:S1121)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 11:59:52 +02:00
bab9b50643 feat(qa): sonar triage --no-webhook (file issues now, deliver them with --drain)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 11:58:53 +02:00
69c33526f4 fix(qa): run the container tests on a writable copy and add node to the test image
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 11:58:13 +02:00
456b64f5b7 feat(qa): run python tests in a throwaway container built from the app image
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 11:56:42 +02:00
9d93b4fb89 fix(qa): run Python tests with an interpreter that has the project dependencies
Agents see /usr/bin/python3 first, which has no fastapi.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 11:51:33 +02:00
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