Image models - The Clinical Assistant "Image models" list waited on an old #assistant-image-model dropdown that no longer exists, so discovery never reached it and only four hard-coded fallbacks appeared — with no way to add any of the gateway's 50 image models. - Image Generation search rows now have + Add / Added. Added models are saved as clinical_assistant.image_model_roster (validated server-side: up to 100 ids) and appear in the Clinical Assistant list at once; ticking one there offers it to users. Anything already allowed or configured stays listed. Unsaved ticks survive an add. - The roster notification is guarded, so it can never fail the settings load. Phone top bar - The page is drawn under the status bar (viewport-fit=cover) and its theme colour was the removed header's blue, so on an iPhone content showed scrolling at the top of the screen. The row is now a real fixed element that extends behind the status bar (env(safe-area-inset-top), 0 in a normal tab), the menu button, sources pill and drawers clear it, and the theme colour is white. Verified in Chromium: + Add -> saved roster -> listed unticked; tick kept; remove works. Top bar is the only thing in the top 48px on all 22 pages; phone menu positions unchanged. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W4rptBNvn6RYieQw54GXNS
44 lines
1 KiB
JSON
44 lines
1 KiB
JSON
{
|
|
"name": "Pediatric Clinical Tools",
|
|
"short_name": "PedTools",
|
|
"description": "AI-powered pediatric clinical documentation",
|
|
"start_url": "/",
|
|
"display": "standalone",
|
|
"background_color": "#ffffff",
|
|
"theme_color": "#ffffff",
|
|
"orientation": "any",
|
|
"categories": ["medical", "productivity"],
|
|
"prefer_related_applications": false,
|
|
"icons": [
|
|
{
|
|
"src": "/icons/icon-192.png",
|
|
"sizes": "192x192",
|
|
"type": "image/png"
|
|
},
|
|
{
|
|
"src": "/icons/icon-512.png",
|
|
"sizes": "512x512",
|
|
"type": "image/png"
|
|
},
|
|
{
|
|
"src": "/icons/icon-512.png",
|
|
"sizes": "512x512",
|
|
"type": "image/png",
|
|
"purpose": "maskable"
|
|
}
|
|
],
|
|
"shortcuts": [
|
|
{
|
|
"name": "New Encounter",
|
|
"short_name": "Encounter",
|
|
"url": "/?tab=encounter",
|
|
"icons": [{ "src": "/icons/icon-192.png", "sizes": "192x192" }]
|
|
},
|
|
{
|
|
"name": "SOAP Note",
|
|
"short_name": "SOAP",
|
|
"url": "/?tab=soap",
|
|
"icons": [{ "src": "/icons/icon-192.png", "sizes": "192x192" }]
|
|
}
|
|
]
|
|
}
|