fix: record the model the bundled transcriber reports, and three harness fixes from the v4.2.0 validation #510
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/508-506-usage-model-and-harness"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #508. Refs #506 (items 1, 2 and 5; items 3 and 4 stay open).
Four independent fixes from the first live validation of v4.2.0, one commit each.
session_usage.asr_modelwas empty on every self-hosted run. The bundled adapter takes no model parameter, so the only source was the configured string, which is blank by default. The server names its model in/healthon both API versions and discovery was already parsing that body, soAsrCapabilitiesnow carries it andresolve_asr_identityfalls back configured → requested id → reported model →None. No new request on the hot path:process_audiore-resolves identity right after the vocabulary step has probed (cached per endpoint) and before transcription. A test pins that a populated model onlocal_whisperstill yields no dollar figure. Admin → AI Usage shows the model beside the transcription time.ic_onlydrops theooc/metaregisters, and four of the 54 marker occurrences are spoken only there, so a flawlessic_onlytranscript could not score above 50/54.score_markersnow filters expected occurrences by the assembly's registers the wayscore_werdoes and reports the excluded occurrences.fullis unchanged at 54. Recorded calibration numbers are annotated with bounds rather than restated, since re-measuring needs the GPU box.GAP_NO_VOCABULARYlow → medium, with the consequence copy rewritten around what the GM loses and the measured 10–25 point proper-noun effect from #355.seed_dbnow seeds verified links, so the attendance path is reachable through the harness. Proven against a real database: seeded →{'spoke': 4, 'in_channel_silent': 2, 'unmatched': 1}(Corvin is the deliberately unlinked guest); nullingverified_atreproduces the old all-unmatched result exactly.--verifychecks the links too.Backend suite 2323 passed / 13 skipped, frontend 505 passed, ruff and eslint clean. No migration, no contract change.
🤖 Generated with Claude Code
`attendance_service._resolve_discord_ids_to_members` requires `verified_at IS NOT NULL` on purpose — an unclaimed link must never drive attendance — and `seed_db` created its links without it. So the harness seeded five members the attendance path then treated as strangers: a live run returned `{'spoke': 0, 'in_channel_silent': 0, 'unmatched': 5}` whatever the pipeline did, and the uncaptured-member check (#114), one of the things this fixture exists to exercise, was unreachable through it. Seeded with a fixed timestamp rather than `now()`, in keeping with the file's uuid5 ids: two seeds of the same fixture should differ in nothing a query can see. `--print-sql` renders it too, so the two descriptions of what seeding does still agree. `--verify` grew a second, cheap check — every seeded link exists and is verified — and prints what a live run's attendance proposals should then say. Confirmed against a real database: 4 spoke (GM, Ilsa, Rook, Petra), 2 in_channel_silent (Dunmar's dropped silent track and Marn's presence-only membership), 1 unmatched (Corvin, the deliberately unlinked guest), 0 auto-applied on the default `propose` mode. Nulling `verified_at` on the same rows reproduces the old all-strangers result exactly, which is the evidence that this was the cause and not a symptom. The README's live-run section carries the same table, because the half that needs a processed session cannot be checked by `--verify`. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>