pediatric-ai-scribe-v3/migrations
Daniel ef574eddcb
Some checks failed
Forgejo Docker Build / Build Docker image (push) Blocked by required conditions
Forgejo Docker Build / End-to-end (browser) (push) Blocked by required conditions
Forgejo Docker Build / Root app tests (push) Has been cancelled
feat: a resource is generated as a job, and DeepSeek writes it without thinking
Writing a resource held the request open for as long as it took: a library
search, one or two long model calls, a review, then figures. Measured end to
end that was six minutes on 2026-09-16 (00:40 to 00:46:16, resource 53), and
Firefox abandons a request that has said nothing for five — the browser
reported "NetworkError when attempting to fetch resource" while the server
carried on and saved the deck anyway, so a generation that worked looked
like a failure and left no status line.

The request now records what was asked and answers 202; the work runs on the
server as a job; the page lists what is being written, what landed and what
failed, polls while anything is in flight, and reloads the library when one
lands. Several can run at once, a reload loses nothing, and a boot pass marks
jobs stranded by a restart as failed rather than spinning for ever.

The same generation also ran with DeepSeek's thinking on, which is what made
it take minutes rather than seconds: the 16,000-token write spent the whole
budget reasoning and returned an empty reply (completion_tokens=16000,
reasoning_chars=51573), which fired the automatic retry at four times the
budget, and the 2,000-token reviews of that deck starved the same way four
times over. Thinking is now off for the writing, the review of it and a
revision — DeepSeek's own field, sent by the model wrapper. Other clinical
routes are deliberately untouched and keep the provider default.

The review inherits the writer's rule rather than hard-coding it, so a task
that wants reasoning can still ask. Migration 1781500000000_resource-jobs.js
adds user_resource_jobs; the container entrypoint applies it before the app
starts.
2026-09-16 03:53:57 +02:00
..
1744600000000_example-no-op.js
1744650000000_add-encounter-version.js
1777003849000_add-personal-notes.js
1777090000000_notes-trash.js
1777507197626_add-mermaid-diagrams.js
1777600000000_add-clinical-assistant-chats.js
1777700000000_add-prompt-revisions.js
1777800000000_generated-images.js test: e2e runs against its own throwaway database, not production's 2026-09-13 00:49:25 +02:00
1777900000000_image-context.js
1780000000000_drop-model-classification.js
1780100000000_registration-invites.js
1780200000000_citation-audit.js feat: citation quality tracking, and the SSO settings fit a phone 2026-09-10 23:44:43 +02:00
1780300000000_user-resources.js feat: My Resources — anyone can generate teaching material, privately 2026-09-11 14:50:54 +02:00
1780400000000_my-resources-images.js feat: PubMed search for My Resources, and an image tool that actually fires 2026-09-11 16:47:08 +02:00
1780500000000_resource-images.js feat: decks are built with python-pptx instead of pandoc, and carry their figures 2026-09-11 19:34:26 +02:00
1780600000000_resource-deck.js feat: the model designs the deck instead of writing markdown for a parser to guess at 2026-09-11 19:49:55 +02:00
1780700000000_login-codes.js feat: sign in with a code emailed to you, offered beside the password 2026-09-11 20:12:03 +02:00
1780800000000_retire-learning-hub.js feat: retire Learning Hub 2026-09-12 20:14:20 +02:00
1780900000000_drop-webdav-learning-path.js feat: connect Nextcloud by signing in to Nextcloud 2026-09-12 20:55:00 +02:00
1781000000000_invite-code-recoverable.js wip: invite codes stay copyable 2026-09-12 21:00:22 +02:00
1781100000000_drop-sign-in-codes.js refactor: sign-in codes and registration invitations leave; the SSO has both 2026-09-13 06:11:00 +02:00
1781200000000_resource-theme.js fix: every presentation takes a theme, not only the ones the model designed 2026-09-13 13:32:24 +02:00
1781300000000_resource-shares.js feat: share a resource with people on this site — by email, or with everyone 2026-09-13 15:13:28 +02:00
1781400000000_resource-share-links.js feat: sharing is by link — follow it, accept, and it is in your resources 2026-09-13 15:20:35 +02:00
1781500000000_resource-jobs.js feat: a resource is generated as a job, and DeepSeek writes it without thinking 2026-09-16 03:53:57 +02:00