pediatric-ai-scribe-v3/test
Daniel 73ce4049d4
Some checks failed
Forgejo Android APK / Root app tests (push) Successful in 48s
Forgejo Docker Build / Root app tests (push) Successful in 59s
Forgejo Android APK / Build signed APK (push) Successful in 2m6s
Forgejo Docker Build / Build Docker image (push) Successful in 25s
Forgejo Docker Build / Deploy to the host (push) Failing after 0s
feat: decks are built with python-pptx instead of pandoc, and carry their figures
Pandoc's pptx writer was the ceiling on how good a generated deck could be, and
the model on top made no difference to it. It maps markdown onto a handful of
reference layouts with no per-slide layout, no positioning and no control over
how large an image is drawn, which is why every deck came out as bullets on a
template — and why autofit had to be injected into its emitted OOXML by hand
afterwards, because LibreOffice ignores the autofit pandoc leaves off.

scripts/render_pptx.py draws the deck and src/utils/slideSpec.js decides what
each slide is. Markdown stays the stored artifact, so "change slide 4" is still
a text edit and Word export is untouched — pandoc still writes docx, where its
output is good.

What that buys, all of it visible in a rendered deck rather than argued for:

- 16:9, not pandoc's 4:3.
- A pipe table becomes a real table with a header band and banded rows, not
  eight lines of text with pipes in them.
- A list longer than seven items becomes two columns instead of a wall of text.
- Text is measured and sized to fit before the file is written, so nothing
  depends on a renderer honouring autofit.
- Wrapped lines hang under the text instead of running back to the margin,
  which is the clearest single tell that a deck was generated.
- An image is drawn at its own aspect ratio, centred, with a caption.

Figures now reach the deck at all, which they never did. They were queued and
shown on the page, but nothing recorded that they belonged to the resource, so
an export could not include them: user_resources.image_ids holds them, a
modification adds to that list rather than replacing it, and export fetches the
finished ones to a scratch directory. They are spread through the deck rather
than appended, because ending on three unexplained pictures is worse than
showing each near its material, and a References slide stays last.

If the renderer fails for any reason, pandoc still produces a deck — a plainer
deck beats a failed download.

Verified end to end: a seven-slide request with three figures exported as a
13-page deck; the slides were rendered to PDF, rasterised and looked at. All
three formats still download.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dv6sqaY6Vq3ChZHMem3cnU
2026-09-11 19:34:26 +02:00
..
account-boundary.test.js feat: ship reviewed prompt history, conversation limits and account protections 2026-09-07 04:01:01 +02:00
admin-clinical-assistant-wiring.test.js fix: the assistant settings page says what saves what 2026-09-11 04:04:31 +02:00
admin-docs-toc.test.js test docs toc links 2026-05-09 01:33:06 +02:00
assistant-attachment-roundtrip.test.js fix: translated answers keep their source chips; the patient take home can be translated 2026-09-09 18:40:23 +02:00
assistant-autosave.test.js fix: image Done state, chat titles that keep whole words, and readable extension cards 2026-09-10 06:44:22 +02:00
assistant-citation-modal.test.js feat: Open WebUI-style assistant workspace — 3-column layout, markdown/math/code/tables, autosave with images, translation (LibreTranslate+DeepL), citation modal, Learning Hub moved in, handoff removed 2026-09-08 18:52:35 +02:00
assistant-citations.test.js feat: citation quality tracking, and the SSO settings fit a phone 2026-09-10 23:44:43 +02:00
assistant-component-css.test.js refactor: drop the "Saved Chats" header and collapse arrow from the rail 2026-09-10 13:27:29 +02:00
assistant-export-owner.test.js feat: integrate durable image jobs/private assets into current core 2026-09-07 16:53:42 +02:00
assistant-image-attachments.test.js refactor: Google models go through LiteLLM; the Vertex SDK is gone 2026-09-11 13:51:22 +02:00
assistant-image-done.test.js fix: image Done state, chat titles that keep whole words, and readable extension cards 2026-09-10 06:44:22 +02:00
assistant-image-intent.test.js fix: mobile layout regression, workspace menu in the assistant rail, prompt as principles 2026-09-09 22:24:10 +02:00
assistant-math-mhchem.test.js fix: reviewer findings — mhchem macro wrapping, regenerate history dedupe, strict safe image allowlist, stale docs 2026-09-08 19:25:31 +02:00
assistant-message-actions.test.js fix: send button morphs into a clickable STOP icon while working (no more disabled spinner); grouped bottom-left tools; silent-recording message; completed images auto-join the library; transient image-status retries 2026-09-09 04:12:30 +02:00
assistant-mobile.test.js fix: recordings that produced nothing, and the boxes that zoomed on iOS 2026-09-11 00:16:19 +02:00
assistant-saved-tables.test.js feat: saved chats grouped by recency, a visible sidebar toggle, and acknowledgements answered cheaply 2026-09-09 18:59:45 +02:00
assistant-sharing-boundary.test.js feat: integrate durable image jobs/private assets into current core 2026-09-07 16:53:42 +02:00
assistant-sources-cleaning.test.js feat: ship reviewed prompt history, conversation limits and account protections 2026-09-07 04:01:01 +02:00
assistant-translate.test.js fix: translate as HTML so tables and emphasis survive; stop repeat image generation 2026-09-09 18:49:58 +02:00
assistant-user-markdown.test.js feat: Open WebUI-style assistant workspace — 3-column layout, markdown/math/code/tables, autosave with images, translation (LibreTranslate+DeepL), citation modal, Learning Hub moved in, handoff removed 2026-09-08 18:52:35 +02:00
assistant-voice.test.js fix: OWUI-style polish — fullscreen workspace replaces main menu, row-click saved chats (delete stays as hover), markdown-rendered patient handout, admin-only raw transcript, /api TTS URL, scrollable unclipped tables, action buttons hidden in exports, autosave-only copy 2026-09-08 22:41:08 +02:00
assistant-workspace-layout.test.js revert: remove the signed-out assistant preview 2026-09-11 05:09:02 +02:00
backend-hardening.test.js fix: the slide prompt carries the rules the renderer actually enforces 2026-09-11 13:29:12 +02:00
bedside-respiratory-ventilation.test.js allow bedside respiratory without weight 2026-05-08 09:10:33 +02:00
build-id.test.js feat: a deploy you can repeat, and prove afterwards 2026-09-11 00:41:11 +02:00
calc-math.test.js feat: B — extract drug data to public/data/drugs.json (schema v1.0) 2026-04-20 04:23:24 +02:00
calculators-data.test.js consolidate calculator growth helpers 2026-05-08 04:36:39 +02:00
clinical-assistant-prompt-pool.test.js feat: ship reviewed prompt history, conversation limits and account protections 2026-09-07 04:01:01 +02:00
clinical-conversation.test.js refactor: Google models go through LiteLLM; the Vertex SDK is gone 2026-09-11 13:51:22 +02:00
clinical-generation-options.test.js Send reasoning options only to supported model 2026-08-27 21:25:38 +02:00
clinical-mcp-session-lifecycle.test.js refactor: retrieval is text-only; admins can add model ids discovery never returns 2026-09-09 23:35:06 +02:00
clinical-notes-entrypoints.test.js feat: ship reviewed prompt history, conversation limits and account protections 2026-09-07 04:01:01 +02:00
clinical-release-integration.test.js fix: the assistant settings page says what saves what 2026-09-11 04:04:31 +02:00
clinical-retrieval-title.test.js refactor: retrieval is text-only; admins can add model ids discovery never returns 2026-09-09 23:35:06 +02:00
clinical-table-preservation.test.js feat: ship reviewed prompt history, conversation limits and account protections 2026-09-07 04:01:01 +02:00
e2e-harness.test.js test(e2e): repair the harness, taking the browser suite from 96 failures to 11 2026-09-11 18:54:03 +02:00
embeddings-provider.test.js fix litellm metadata model discovery 2026-05-09 04:46:06 +02:00
extension-transfer.test.js feat: ship reviewed prompt history, conversation limits and account protections 2026-09-07 04:01:01 +02:00
frontend-prompt-env.test.js fix: the assistant settings page says what saves what 2026-09-11 04:04:31 +02:00
frontend-rendering-safety.test.js feat: the announcement banner renders Markdown, safely 2026-09-10 19:08:12 +02:00
generated-image-cache.test.js perf: store real image previews in MinIO, generated at creation and on demand 2026-09-10 06:39:30 +02:00
generated-image-storage.test.js feat: integrate durable image jobs/private assets into current core 2026-09-07 16:53:42 +02:00
generated-image-tools.test.js feat: Learning resources can be grounded in the clinical corpus 2026-09-11 14:03:05 +02:00
generated-images-ui.test.js fix: correct a false Settings claim; make every test child's stdout pure TAP 2026-09-10 15:41:44 +02:00
generated-images.integration.js feat: slides are built by pandoc from markdown, with a reference template 2026-09-11 13:25:24 +02:00
learning-hub-ai-category.test.js extract learning hub cms controller 2026-05-08 16:23:01 +02:00
learning-hub-ai-panel-controller.test.js extract learning hub ai panel controller 2026-05-08 16:54:48 +02:00
learning-hub-editor.test.js extract learning hub ai panel controller 2026-05-08 16:54:48 +02:00
learning-hub-manual-category.test.js fix: make manual CMS category creation visible and keyboard-accessible 2026-09-07 01:16:40 +02:00
learning-hub-quiz-controller.test.js extract learning hub quiz controller 2026-05-08 16:38:51 +02:00
learning-hub-webdav-controller.test.js extract learning hub webdav controller 2026-05-08 16:44:02 +02:00
learning-retrieval.test.js feat: the Learning screen can ask for grounding, and says what it got 2026-09-11 14:39:49 +02:00
mcp-shutdown.test.js feat: integrate durable image jobs/private assets into current core 2026-09-07 16:53:42 +02:00
metrics.test.js fix metrics route normalization 2026-05-08 20:22:14 +02:00
model-defaults.test.js feat: ship reviewed prompt history, conversation limits and account protections 2026-09-07 04:01:01 +02:00
module-entrypoints.test.js convert learning hub to module 2026-05-08 09:01:34 +02:00
my-resources.test.js feat: decks are built with python-pptx instead of pandoc, and carry their figures 2026-09-11 19:34:26 +02:00
notes-sanitize.test.js fix diagram delete confirmation 2026-05-08 06:28:12 +02:00
patient-takehome.test.js fix: translate as HTML so tables and emphasis survive; stop repeat image generation 2026-09-09 18:49:58 +02:00
pe-guide-data.test.js move pe guide data to json 2026-05-08 08:56:21 +02:00
policy-flows.test.js fix: metrics are not public, and the workspace launcher renders again 2026-09-11 05:18:02 +02:00
policy-ui.test.js feat: ship reviewed prompt history, conversation limits and account protections 2026-09-07 04:01:01 +02:00
prompt-administration.test.js fix: mobile layout regression, workspace menu in the assistant rail, prompt as principles 2026-09-09 22:24:10 +02:00
release.test.js feat: ship reviewed prompt history, conversation limits and account protections 2026-09-07 04:01:01 +02:00
session-quiz-ed-regressions.test.js fix: correct a false Settings claim; make every test child's stdout pure TAP 2026-09-10 15:41:44 +02:00
slide-spec.test.js feat: decks are built with python-pptx instead of pandoc, and carry their figures 2026-09-11 19:34:26 +02:00
stt-provider.test.js simplify speech and embeddings through litellm 2026-05-09 05:09:02 +02:00
transcription-memory-policy.test.js feat: a retried transcript goes back to the tab the audio came from 2026-09-11 12:39:50 +02:00
tts-provider.test.js Match TTS voices to the selected LiteLLM model 2026-07-30 17:34:34 +02:00
web-search.test.js feat: My Resources says what it is, offers its sources in one place, and Modify gets them too 2026-09-11 18:54:17 +02:00
well-visit-data.test.js remove legacy well visit schedule data 2026-05-08 08:59:23 +02:00