Daniel
82ed46d01b
Fix Turnstile in the mobile app; drop it from login
...
The Turnstile challenge failed reliably inside the Capacitor WebView,
which blocked login and registration from the Android app.
Three separate causes:
1. Android WebView blocks third-party cookies by default. Turnstile runs
in a cross-origin iframe from challenges.cloudflare.com and needs its
own storage, so the widget never emitted a token. MainActivity now
calls setAcceptThirdPartyCookies on the app's own WebView.
2. The register handler read the Turnstile response with an unscoped
document.querySelector, which matched the *login* widget's input (it
comes first in the DOM). Registration therefore submitted the login
widget's token — single-use with a 5 minute expiry, so any prior login
attempt or slow signup made it fail server-side.
3. The register and forgot-password widgets auto-rendered inside forms
that start at display:none, where Turnstile does not reliably complete
a challenge, and nothing re-rendered them when the form was shown.
Widgets are now rendered explicitly when their form first becomes
visible, and tokens are captured from the render callback instead of
being read back out of the injected input — which makes the unscoped
lookup in (2) structurally impossible. Added error/expired/timeout
callbacks so a widget failure surfaces the Cloudflare error code instead
of failing silently behind a generic toast.
Login is no longer gated at all. It is the path mobile users hit
constantly, and it is already covered by a 10-per-15-min per-IP rate
limit, a constant-time credential check, and TOTP 2FA. Registration and
password reset — the endpoints that actually attract bots — stay gated.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-30 17:22:03 +02:00
Daniel
bee9361c1d
Fix authenticated mobile image downloads
Forgejo Android APK / Build signed APK (push) Successful in 2m39s
2026-06-09 16:02:11 +02:00
Daniel
2ca969e099
Fix generated image mobile downloads
Forgejo Android APK / Build signed APK (push) Successful in 2m21s
2026-06-09 15:20:06 +02:00
Daniel
80139d9a82
Prevent mobile image download preview fallback
Forgejo Android APK / Build signed APK (push) Successful in 1m58s
2026-06-09 03:11:35 +02:00
Daniel
f7cfc6695d
Fix clinical assistant image downloads
Forgejo Android APK / Build signed APK (push) Successful in 2m3s
2026-06-08 22:15:34 +02:00
Daniel
b0e1f4969a
feat: improve clinical assistant prompts
Forgejo Android APK / Build signed APK (push) Successful in 2m15s
2026-06-06 00:01:07 +02:00
Daniel
fb3e4d4135
Update deployment networks
Forgejo Android APK / Build signed APK (push) Waiting to run
2026-05-22 05:59:48 +02:00
Daniel
2cef65fb1f
Fix mobile assistant image downloads
Forgejo Android APK / Build signed APK (push) Has been cancelled
2026-05-13 16:07:41 +02:00
Daniel
629dea808e
Fix assistant cancel button visibility
Forgejo Android APK / Build signed APK (push) Waiting to run
2026-05-12 16:20:10 +02:00
Daniel
8dca18292a
fix assistant cancel hidden state
Forgejo Android APK / Build signed APK (push) Has been cancelled
2026-05-11 18:05:03 +02:00
Daniel
1f5e4aabac
fix assistant cancel visibility
Forgejo Android APK / Build signed APK (push) Has been cancelled
2026-05-11 17:53:54 +02:00
Daniel
97ddd87449
fix mobile assistant table streaming
Forgejo Android APK / Build signed APK (push) Has been cancelled
2026-05-11 16:15:45 +02:00
Daniel
6e8fae72e7
fix mobile image save to photos
Forgejo Android APK / Build signed APK (push) Has been cancelled
2026-05-11 01:28:43 +02:00
Daniel
2c287bd1b3
fix mobile export save actions
Forgejo Android APK / Build signed APK (push) Has been cancelled
2026-05-10 23:56:51 +02:00
Daniel
f871384063
fix mobile assistant export and image actions
Forgejo Android APK / Build signed APK (push) Has been cancelled
2026-05-10 20:28:46 +02:00
Daniel
046b07a84a
fix clinical assistant mobile exports
2026-05-10 17:23:54 +02:00
Daniel
cddc1a4d79
document architecture and harden rendering
2026-05-10 01:07:56 +02:00
Daniel
a176e1b014
protect code blocks during citation repair
2026-05-09 20:54:05 +02:00
Daniel
83d9a77160
fix table source citation links
2026-05-09 20:50:54 +02:00
Daniel
795ad9ffae
harden clinical assistant source handling
2026-05-09 19:59:04 +02:00
Daniel
8d69fe57a5
fix litellm metadata discovery auth
2026-05-09 15:15:47 +02:00
Daniel
90cdf17bd9
fix litellm capability discovery
2026-05-09 15:06:28 +02:00
Daniel
79037fa775
fix litellm tts search fallbacks
2026-05-09 04:50:55 +02:00
Daniel
113f004230
docs refresh current workflows
2026-05-09 00:40:45 +02:00
Daniel
0503a25d0b
fix docs toc fallback and remove redundant iifes
2026-05-08 23:08:47 +02:00
Daniel
e84f19b5cb
fix docs reader anchor navigation
2026-05-08 22:56:03 +02:00
Daniel
493a1d230c
fix docs table of contents scrolling
2026-05-08 22:41:47 +02:00
Daniel
416fff624a
feat: add patient education handouts
2026-05-08 22:26:53 +02:00
Daniel
1cbe248450
feat: add extension import preview
2026-05-08 22:26:53 +02:00
Daniel
4a9a518134
add extension transfer workflow
2026-05-08 20:48:58 +02:00
Daniel
210ec06fe5
remove vendor model references
2026-05-08 19:14:51 +02:00
Daniel
a08524d95f
harden logging and observability
2026-05-08 19:08:19 +02:00
Daniel
467593a109
extract learning hub ai panel controller
2026-05-08 16:54:48 +02:00
Daniel
92351e1ab5
extract learning hub webdav controller
2026-05-08 16:44:02 +02:00
Daniel
dc62cc880d
extract learning hub quiz controller
2026-05-08 16:38:51 +02:00
Daniel
d97d92f8f2
extract learning hub cms controller
2026-05-08 16:23:01 +02:00
Daniel
41598e0fb6
extract learning hub slide controller
2026-05-08 16:04:21 +02:00
Daniel
7858484cb0
refactor learning hub renderers
2026-05-08 15:47:10 +02:00
Daniel
6d13765fc4
improve learning hub generation flow
2026-05-08 09:32:58 +02:00
Daniel
d8e9ba149e
allow bedside respiratory without weight
2026-05-08 09:10:33 +02:00
Daniel
d71482037f
destroy learning hub row editors
2026-05-08 09:05:13 +02:00
Daniel
de3e1c0a15
remove sutures disclaimer copy
2026-05-08 09:05:13 +02:00
Daniel
2fec33dc4d
convert learning hub to module
2026-05-08 09:01:34 +02:00
Daniel
df87d93306
remove legacy well visit schedule data
2026-05-08 08:59:23 +02:00
Daniel
e731780c7b
move pe guide data to json
2026-05-08 08:56:21 +02:00
Daniel
27c3e07d98
fix learning hub model selector
2026-05-08 08:48:02 +02:00
Daniel
9167532a14
use indexed assistant prompt examples
2026-05-08 08:44:34 +02:00
Daniel
db2ecca45d
remove top bar model selector
2026-05-08 08:28:54 +02:00
Daniel
6da5565f89
harden audio backup settings rendering
2026-05-08 08:23:38 +02:00
Daniel
04e736eb2e
convert speech helpers to modules
2026-05-08 08:09:38 +02:00
Daniel
ea52890908
gate browser speech recognition setting
2026-05-08 08:05:23 +02:00
Daniel
9ca5365daf
convert auth helpers to modules
2026-05-08 07:56:41 +02:00
Daniel
bc0b43151d
convert settings helpers to modules
2026-05-08 07:54:08 +02:00
Daniel
b6ebca0e6f
convert admin docs and drug loader to modules
2026-05-08 07:50:26 +02:00
Daniel
03ee07f92f
clarify template-only AI memory context
2026-05-08 07:38:27 +02:00
Daniel
20fc6798a9
remove browser whisper transcription
2026-05-08 07:33:12 +02:00
Daniel
59fa229b59
convert settings loaders to modules
2026-05-08 07:17:29 +02:00
Daniel
38667608b1
convert encounter note entrypoints to modules
2026-05-08 07:15:11 +02:00
Daniel
02f348ddb3
convert clinical note entrypoints to modules
2026-05-08 07:13:08 +02:00
Daniel
ffffe17b30
tighten chart review source coverage
2026-05-08 07:10:00 +02:00
Daniel
d48a19a891
honor admin default model selections
2026-05-08 06:49:50 +02:00
Daniel
c458c4b4ff
convert chart review entrypoint to module
2026-05-08 06:49:46 +02:00
Daniel
e05720083a
test clinical note entrypoints
2026-05-08 06:33:34 +02:00
Daniel
90938f8ec1
fix diagram delete confirmation
2026-05-08 06:28:12 +02:00
Daniel
289b0197e7
remove redundant app wrappers
2026-05-08 06:21:55 +02:00
Daniel
0102c9cbc6
convert admin entrypoint to module
2026-05-08 06:19:51 +02:00
Daniel
d4a3c8fd60
simplify TTS provider handling
2026-05-08 06:00:33 +02:00
Daniel
ca9be8bd85
remove redundant module wrappers
2026-05-08 05:30:32 +02:00
Daniel
34f198edc0
extract well visit schedule data
2026-05-08 05:11:29 +02:00
Daniel
c52f7664b9
deduplicate admin HTML escaping
2026-05-08 04:45:02 +02:00
Daniel
784d1a2e21
consolidate calculator growth helpers
2026-05-08 04:36:39 +02:00
Daniel
9b5f01a19b
extract calculator GCS helper
2026-05-08 04:33:46 +02:00
Daniel
ae0ca83ccb
extract calculator dosing helpers
2026-05-08 04:32:09 +02:00
Daniel
41a05a6b5e
extract calculator BP data
2026-05-08 04:24:18 +02:00
Daniel
b75be521ab
extract calculator growth data
2026-05-08 04:05:51 +02:00
Daniel
d79e578863
extract calculator BMI data
2026-05-08 03:52:08 +02:00
Daniel
903cd7eca8
extract AAP bilirubin threshold data
2026-05-08 03:42:51 +02:00
Daniel
d8b8f9bdcb
extract bilirubin risk zone data
2026-05-08 03:28:52 +02:00
Daniel
f566455108
remove duplicate bedside handlers from calculators
2026-05-08 03:25:30 +02:00
Daniel
6a081bb53b
extract calculator reference data
2026-05-08 03:18:37 +02:00
Daniel
3c4ca84b5f
extract calculator vitals data
2026-05-08 03:06:14 +02:00
Daniel
e4ea553bee
extract calculator shared modules
2026-05-08 02:58:58 +02:00
Daniel
4a14a71151
split notes frontend modules
2026-05-08 02:44:22 +02:00
Daniel
1ed1a37161
convert notes scripts to modules
2026-05-08 01:37:41 +02:00
Daniel
116bd941e1
extract notes api client
2026-05-08 01:31:06 +02:00
Daniel
326fb726a1
split assistant frontend modules
2026-05-08 01:19:12 +02:00
Daniel
f54b293d39
extract assistant frontend api client
2026-05-08 00:58:44 +02:00
Daniel
10f39fc4ff
restore assistant streaming
2026-05-08 00:26:10 +02:00
Daniel
a8f364f177
stabilize assistant and add diagrams
2026-05-08 00:23:00 +02:00
Daniel
49a2bed0d0
fix assistant image follow-up routing
2026-05-07 23:06:13 +02:00
Daniel
569363754f
fix assistant stream truncation handling
2026-05-07 23:02:26 +02:00
Daniel
c8436d5e4c
refactor clinical assistant prompt handling
2026-05-07 22:52:46 +02:00
Daniel
3d7fea8639
fix: simplify assistant lookup wording
2026-05-07 17:44:06 +02:00
Daniel
b9270414b0
feat: stream clinical assistant responses
2026-05-07 17:26:10 +02:00
Daniel
21fb631fb5
feat: improve clinical assistant export and citations
2026-05-07 17:15:26 +02:00
Daniel
fb339325ee
feat: use visual captions in assistant sources
2026-05-07 04:42:32 +02:00
Daniel
b2f3539c5e
feat: diversify assistant starter prompts
2026-05-07 03:19:51 +02:00
Daniel
18109f8bcf
feat: map assistant visual source intent
2026-05-07 03:01:45 +02:00
Daniel
f134d0e80c
feat: improve clinical assistant visual sources
2026-05-07 02:45:17 +02:00
Daniel
e4a95ad72e
refactor: move assistant examples to module
2026-05-06 23:39:41 +02:00