pediatric-ai-scribe-v3/docs
Daniel 9df2230479 refactor: rebuild the admin settings page around what each card does
The page had grown by accretion: model discovery scattered across five
cards with a search box each, one Save writing eight keys from the
bottom of a card that also held a second Save for something else, and a
banner apologising that a button "applies only the settings above it".

Now it reads in groups — Accounts, Models, Assistant & prompts, Site —
and every card is a <details> that folds, so Save & Close means
something. The rule is that each card saves exactly what it shows,
which is what removed the need for the banner.

Models is one workflow in three steps. Discover & test has a single
search box and a kind switch (chat / image / speech / transcription /
embedding); the five discovery calls are unchanged, the switch only
decides which one answers. Roster is what has been added, including the
image roster, which had no visible list before. Availability is the
chat model, the two allowed lists, the per-workflow image settings and
the slide reviewer, under one Save.

Splitting the eight-key save follows from that rule: Save & Close writes
the five retrieval and citation keys; Save availability writes the chat
model, both allowed lists, the reviewer and the three image-settings
PUTs. No route, request shape or setting key changed.

Switching kind clears the results first — a row button would otherwise
add an image model to the chat roster.

The kind switch dispatches its event through document.defaultView's
CustomEvent. jsdom refuses one built from another realm, and the
existing announceModelsChanged() has exactly that bug: its event is
built from the Node global, dispatchEvent refuses it, and a try/catch
swallows the error — so models-changed propagation has only ever been
source-grepped, never actually tested. Left alone here to keep this
change to one subject.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dv6sqaY6Vq3ChZHMem3cnU
2026-09-12 21:42:27 +02:00
..
logic feat: retire Learning Hub 2026-09-12 20:14:20 +02:00
ai-providers.md docs: merge the duplicate pairs and correct them against the running app 2026-09-12 04:57:35 +02:00
api-reference.md docs: merge the duplicate pairs and correct them against the running app 2026-09-12 04:57:35 +02:00
architecture.md docs: merge the duplicate pairs and correct them against the running app 2026-09-12 04:57:35 +02:00
authentication.md feat: connect Nextcloud by signing in to Nextcloud 2026-09-12 20:55:00 +02:00
clinical-assistant.md refactor: rebuild the admin settings page around what each card does 2026-09-12 21:42:27 +02:00
configuration.md docs: merge the duplicate pairs and correct them against the running app 2026-09-12 04:57:35 +02:00
database.md feat: retire Learning Hub 2026-09-12 20:14:20 +02:00
deployment.md docs: deploy.sh is the deploy path, and it was documented nowhere 2026-09-12 06:04:13 +02:00
developer-guide.md docs: deploy.sh is the deploy path, and it was documented nowhere 2026-09-12 06:04:13 +02:00
embeddings-setup.md simplify speech and embeddings through litellm 2026-05-09 05:09:02 +02:00
features-explained.md feat: connect Nextcloud by signing in to Nextcloud 2026-09-12 20:55:00 +02:00
global-prompt-administration.md fix: reviewer findings — mhchem macro wrapping, regenerate history dedupe, strict safe image allowlist, stale docs 2026-09-08 19:25:31 +02:00
improvements.md docs: merge the duplicate pairs and correct them against the running app 2026-09-12 04:57:35 +02:00
migrations.md
mobile-build.md ci: route Android APK through Forgejo releases 2026-05-11 04:21:15 +02:00
module-conventions.md docs: merge the duplicate pairs and correct them against the running app 2026-09-12 04:57:35 +02:00
my-resources.md refactor: rebuild the admin settings page around what each card does 2026-09-12 21:42:27 +02:00
openid-setup.md
ops-docs-ped-ai-and-milvus.md docs: Ops Docs page on how Ped-AI and the two Milvus servers work 2026-09-10 18:37:41 +02:00
retrieval-tuning.md docs: My Resources, sign-in codes, invitations, and what the image carries 2026-09-11 20:49:10 +02:00
scaling.md docs: merge the duplicate pairs and correct them against the running app 2026-09-12 04:57:35 +02:00
speech.md docs: merge the duplicate pairs and correct them against the running app 2026-09-12 04:57:35 +02:00