pediatric-ai-scribe-v3/e2e
Daniel f3c3f47d99
Some checks failed
Forgejo Android APK / Root app tests (push) Successful in 47s
Forgejo Docker Build / Root app tests (push) Successful in 49s
Forgejo Android APK / Build signed APK (push) Successful in 2m5s
Forgejo Docker Build / Build Docker image (push) Successful in 10s
Forgejo Docker Build / Deploy to the host (push) Failing after 2s
fix: voice mode reads the answer that just arrived, and reads what the page shows
Two bugs, one cause each.

It read the previous answer. setBusy(false) is what announces
assistant-answer-done, and it ran before lastAnswer was assigned — so every
listener was handed the answer before last. It now fires after the answer exists
both in that variable and on the page. A test asserts the order, because the
order is the whole bug.

And it read the markdown. The better answer than unpicking the markup is not to
have any: the rendered bubble is already the answer with its headings, emphasis
and tables resolved, so voice mode reads that. It cannot drift from what the
reader is looking at, and it needs no rules about what "##" sounds like. Read
from a clone, with the parts that are not the answer removed — the action
buttons, the sources list, the follow-up suggestions, code blocks and tables —
so the page itself is untouched. A bubble still thinking is never read.

speakableText() stays as the fallback for when the bubble cannot be found, since
raw markdown read aloud is worse than silence.

Separately: e2e/seed.js hashed with bcrypt directly, so seeded accounts did not
exercise the argon2id path production writes. It uses the app's own hasher now.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dv6sqaY6Vq3ChZHMem3cnU
2026-09-11 21:10:50 +02:00
..
tests test(e2e): repair the harness, taking the browser suite from 96 failures to 11 2026-09-11 18:54:03 +02:00
fixtures.js test(e2e): repair the harness, taking the browser suite from 96 failures to 11 2026-09-11 18:54:03 +02:00
package-lock.json feat: A1+A2 — Playwright smoke suite + index.html mtime-based caching 2026-04-20 03:51:22 +02:00
package.json feat: A1+A2 — Playwright smoke suite + index.html mtime-based caching 2026-04-20 03:51:22 +02:00
playwright.config.js test(e2e): repair the harness, taking the browser suite from 96 failures to 11 2026-09-11 18:54:03 +02:00
seed.js fix: voice mode reads the answer that just arrived, and reads what the page shows 2026-09-11 21:10:50 +02:00