ifedan-ed
b9ceca8f20
v17: Production release with all fixes
...
Build TWA APK / build-apk (push) Has been cancelled
Build & Push Docker Image / build (push) Has been cancelled
Complete Feature Set:
✅ Vertex AI Embeddings - Semantic search for Learning Hub
✅ Voice Preferences - Per-user STT model + TTS voice selection
✅ Browser Whisper - Optional client-side transcription with graceful CDN fallback
✅ TTS Preview - Working for all voices including server default
✅ Audio Backups - Automatic recording backup with 24h retention
✅ S3 Documents - Upload/manage documents (AWS, B2, MinIO)
✅ Learning Hub - AI content generation from PDFs/Nextcloud
Fixed Issues:
- TTS preview button now working (correct event listener)
- Browser Whisper shows clear warning if CDN blocked
- Server default voice preview working
- Graceful fallback to server transcription
- User-friendly error messages throughout
Documentation:
- FEATURES_EXPLAINED.md - Complete feature guide
- BROWSER_WHISPER_TROUBLESHOOTING.md - CDN blocking troubleshooting
- EMBEDDINGS_SETUP.md - Vector search setup guide
Production Ready:
- All features tested
- Clear error handling
- Graceful degradation
- HIPAA-compliant options available
2026-03-31 16:20:41 +00:00
ifedan-ed
0d685070d1
v16: TTS Preview + Browser Whisper fixes with correct CSP
...
Critical fixes from v15:
- TTS Preview: Fixed event listener (tabChanged not tab-loaded)
- Browser Whisper: Fixed CSP to allow CDN loading (unsafe-eval + jsdelivr)
- Worker: Added error handling and logging for importScripts
- Voice Preferences: Multiple init paths with fallbacks
- Debug logging throughout for troubleshooting
Changes:
- server.js: CSP allows unsafe-eval, cdn.jsdelivr.net in connectSrc
- voicePreferences.js: Correct event name, immediate init fallback
- whisperWorker.js: Try-catch on importScripts, better errors
- app.js: Enhanced preload error handling
This version should actually work - previous bugs were:
1. Wrong event name prevented TTS preview init
2. CSP blocked worker CDN loading
2026-03-31 16:04:25 +00:00
ifedan-ed
ee3729eb57
v15: Fix TTS preview + Browser Whisper preload with extensive debugging
...
BREAKING FIXES:
- TTS Preview: Added event.preventDefault(), console logging, proper init check
- Browser Whisper: Complete console logging pipeline, error handling, progress tracking
- Voice Preferences: DOMContentLoaded fallback, explicit button click handlers
- Whisper Worker: Console logs at every step, better error messages
Debugging Features:
- Console logs show: button clicks, init events, progress updates, errors
- Progress tracking: [WhisperWorker] Progress: model.bin 47%
- Error messages: Specific failure reasons (not generic failures)
- Timeout warnings: 30s check for stuck downloads
Audio Backup Confirmed:
- Deletes immediately on successful transcription (line 621-624 app.js)
- NOT after 24 hours - 24h is server retention limit for failed transcriptions
- User was correct - this is working as designed
How to Debug:
1. Open DevTools → Console (F12)
2. Click button
3. Watch for [VoicePrefs] or [BrowserWhisper] logs
4. Check Network tab for actual downloads
5. Report what you see in console
2026-03-31 15:28:38 +00:00
ifedan-ed
9e43e12cfc
Update docker-compose to use v14
2026-03-31 14:21:25 +00:00
ifedan-ed
6b6bf728d5
v13: Increase JSON limit to 10MB, client-side size check for chart review
...
Build TWA APK / build-apk (push) Has been cancelled
Build & Push Docker Image / build (push) Has been cancelled
- Raise express.json limit from 1MB to 10MB — handles large chart reviews
with many notes (50 full clinic notes ≈ 600KB, well within new limit)
- Client-side: warn user if payload >8MB, friendly toast if >30 notes
- Bump to v13.0.0
2026-03-30 22:41:17 +00:00
ifedan-ed
ca645fe941
v12: LiteLLM voice support, Vertex AI, model discovery, APK crash fix
...
Build TWA APK / build-apk (push) Has been cancelled
Build & Push Docker Image / build (push) Has been cancelled
- LiteLLM: chat, TTS (tts-1), STT (whisper-1) via proxy
- Google Vertex AI: direct chat, Gemini STT, Google Cloud TTS
- Admin model management: discover/search/toggle/custom models
- TTS shows actual provider in toast (not hardcoded ElevenLabs)
- APK crash fix: proper PNG splash + mipmap icons
- Server-side audio backups with gzip compression
- Expandable AI correction viewer
- Zero-config browser speech recognition
- Bump to v12.0.0
2026-03-30 15:38:59 +00:00
Daniel Onyejesi
f8d865a0a9
Bump to v10 — new tag forces server to pull updated image
2026-03-29 20:14:36 -04:00
ifedan-ed
1ff0f9760d
v9: APK hardening, service worker caching, admin model validation, Docker v9
...
- APK: Add WAKE_LOCK, BOOT_COMPLETED, ACCESS_NETWORK_STATE permissions
- APK: Disable allowBackup for medical data security
- APK: AudioRecordingService now acquires wake lock, has stop action in notification
- Serve /.well-known/assetlinks.json for TWA domain verification
- Service worker: cache app shell, stale-while-revalidate for assets, network-first for API
- Admin model management: validate model ID format, prevent built-in conflicts, audit toggle actions, prevent disabling all models
- Bump version to v9.0.0, Docker tag to v9
2026-03-28 23:53:39 +00:00
Daniel Onyejesi
8ce40503d8
Fix missing error handling in nextcloud disconnect, update docker-compose to v8
...
- Add try-catch to /nextcloud/disconnect route (was crashing on DB errors)
- Update docker-compose.yml image tag from v7 to v8
- Remove unused SESSION_SECRET from .env.example
2026-03-25 17:53:48 -04:00
Daniel Onyejesi
e0757310c8
v7: fix speech recognition repetition, HTML injection, long-session guard
...
- Fix word repetition: use sessionFinals pattern so each browser SR
session starts fresh; no overlap when recognition auto-restarts
- Fix HTML injection / '>' parse error: escape < > & in live transcript
innerHTML before inserting speech recognition text
- Add 24 MB blob guard: fall back to live SR transcript if audio file
is too large for Whisper API (long sessions)
- Bump version to 7.0.0, update docker-compose image tag to v7
2026-03-25 20:07:10 +00:00
Daniel Onyejesi
4af622913f
v3.1: Add Learning Hub with CMS, quizzes, and 3-role user system
...
- New Learning Hub under Pediatric menu with content feed, category browsing,
search, content viewer, and interactive quizzes (MCQ, true/false)
- Quiz system with per-option wrong-answer explanations and general explanations
- Admin CMS for creating/editing categories, content (articles, pearls, quizzes),
and inline question builder with answer options
- 3-role system: admin (full access), moderator (can manage Learning Hub content),
user (all clinical features + learning hub read access)
- 5 new database tables: learning_categories, learning_content, learning_questions,
learning_options, learning_progress
- User progress tracking with score history per quiz
- Moderators see "Content Manager" tab instead of full Admin panel
2026-03-23 19:32:47 -04:00
Daniel
d2ed08cd46
v3.0: Add multi-provider Bedrock models, newborn milestones, Converse API
...
- Bedrock: Add 14 non-vendor model models (Amazon Nova, Meta Llama 4, DeepSeek R1/V3,
Mistral Large 3, Cohere Command R+, AI21 Jamba) with verified AWS model IDs
- Bedrock: Implement Converse API for non-Anthropic models (unified cross-model API),
keep native Messages API for vendor model models (best performance)
- Milestones: Add Newborn / 1 month developmental milestones (Gross Motor, Fine Motor,
Language, Social/Emotional, Cognitive) — previously started at 2 months
- Bump version to 3.0.0, docker-compose tag to v3.0
2026-03-23 22:13:19 +01:00
Daniel Onyejesi
38d07ff37f
Feat: v2.7 — sidebar UX, well visit subtabs, larger boxes, sick visit reorder
...
- Remove duplicate milestones sidebar button; well visit button now works correctly
- Move Sick Visit sidebar entry to just below Well Visit (before Vaccine/Catch-Up)
- Sick Visit remains its own standalone tab (not a subtab)
- Well Visit subtabs: By Visit Age | Milestones | SSHADESS (12+) | Visit Note
- Dramatically larger transcript boxes (min-height 240px, max-height 600px)
- Dramatically larger note output boxes (min-height 480px) — beautiful scrollable
- Collapsible desktop sidebar with localStorage persistence
- Update README with full feature list
- Bump docker-compose to v2.7
2026-03-22 19:14:41 -04:00
Daniel Onyejesi
78730a669f
Bump image to v2.6
2026-03-22 19:00:29 -04:00
Daniel Onyejesi
2e4d0f1f6e
Bump image to v2.5
2026-03-22 18:52:35 -04:00
Daniel Onyejesi
bfa832713d
Bump docker-compose image to v2.4
2026-03-22 18:34:07 -04:00
Daniel Onyejesi
9544d43b16
Chore: bump production docker image to v2.3
2026-03-22 17:18:06 -04:00
Daniel Onyejesi
075353886e
Chore: bump production image tag to v2.2
2026-03-22 16:57:08 -04:00
Daniel Onyejesi
d4759fcf58
Chore: bump production image tag to v2.1
2026-03-22 16:44:27 -04:00
Daniel Onyejesi
cd73bec5f8
Feat: add stethoscope+pencil favicon in SVG, ICO, and PNG sizes
2026-03-22 14:09:18 -04:00
Daniel Onyejesi
93338567e8
Feat: restore ElevenLabs Adam voice for read aloud with browser TTS fallback; add client-side error logging
2026-03-22 12:27:17 -04:00
Daniel Onyejesi
e74c0ccb0c
Fix: clear password fields after autofill delay and add autocomplete=off on login form
2026-03-22 12:18:29 -04:00
Daniel Onyejesi
39a1affcbc
Fix: clear password fields, remove has-session class, and reset hash on logout
2026-03-22 12:13:41 -04:00
Daniel Onyejesi
a2481a0ea7
Fix: service worker only intercepts same-origin requests, preventing CDN fetch errors
2026-03-22 00:41:24 -04:00
Daniel Onyejesi
12189a0101
Fix: eliminate auth screen flash by hiding it synchronously in <head> before render
2026-03-22 00:36:20 -04:00
Daniel Onyejesi
393cb3f1e0
Fix: hide auth screen immediately on load if token exists, preventing login flash
2026-03-22 00:31:49 -04:00
Daniel Onyejesi
0c2d3398e0
Feat: persist active tab in URL hash across page refreshes
2026-03-22 00:26:13 -04:00
Daniel Onyejesi
9b1766837d
Bump image tag to v1.2 in docker-compose.yml
2026-03-22 00:16:51 -04:00
Daniel Onyejesi
383fa2b149
Fix: remove build context from docker-compose so production always pulls from Docker Hub
2026-03-22 00:02:52 -04:00
Daniel Onyejesi
f64e84fa1e
Fix: use versioned Docker tag v1.1 instead of latest
...
Prevents Docker from skipping pulls when tag name hasn't changed.
2026-03-21 23:59:10 -04:00
ifedan-ed
ac8e7bb890
v3.0.0: Auth, admin panel, security fixes, per-tab model selector
...
- Add authMiddleware to all AI/transcribe routes (were unauthenticated)
- Add full admin panel: user management, registration toggle, stats
- Fix XSS in email verification (escape user.name in HTML)
- Fix missing APP_URL fallback in password reset email
- Add per-tab model selector (respects OpenRouter/Bedrock/Azure lists)
- Fix transcribeAudio to send Authorization header
- Fix labs input: textarea instead of single-line input
- Add structured logging: audit_log, api_log, access_log tables
- Add admin CLI (admin-cli.js) for Docker exec management
- Fix duplicate var duration declaration in ai.js catch block
- Fix RETURNING check case-sensitivity in database.js
2026-03-21 19:25:51 -04:00
ifedan-ed
565bec9ca8
v2.0.0: Pediatric AI Scribe
...
Features:
- Live encounter recording → HPI (outpatient/inpatient)
- Voice dictation → HPI / SOAP note
- Hospital course generator (prose/day-by-day/organ system/psych)
- Chart review / precharting (outpatient/subspecialty/ED)
- SOAP note generator (full/subjective only)
- Developmental milestones (AAP/Nelson) with narrative + 3-sentence summary
- AI refine & shorten for all outputs
- Ask AI what's missing (clarification)
- Authentication (email/password, email verification, 2FA)
- Nextcloud integration with auto date folders
- PWA support (installable on phone)
- 18+ AI models via OpenRouter
- HIPAA compliance guidance
- Docker support
2026-03-21 16:55:50 -04:00