freezmo/components
Martin Dvorak 4372423167 Bring-your-own keys for cloud providers (OpenAI-compatible)
Settings -> Providers takes keys for OpenAI, Anthropic (their official
OpenAI-compatibility layer), DeepSeek, Groq, OpenRouter and any custom
OpenAI-compatible endpoint. One adapter (lib/openai-compat) covers
listing, streaming chat, JSON generation and vision, and every model
flow can run on a provider: the chat picker lists each enabled
provider's models (labelled, remembered), and a "Study generation"
choice moves decks, homework, grading and attachment transcription onto
a provider model.

Keys stay in this browser exactly like the Ollama one
(freezmo.providers.v1): never stored server-side, never in a backup or
the sync payload, forwarded only with the request that needs them. The
provider test asserts the key reaches the provider while the routing
header stays on the app side.

New suite tests/providers-test.mjs (13 checks) stubs both protocols:
model listing, chat streaming, study generation and the Settings flow.
Privacy policy updated (en+cs). Contrast 0 findings, axe clean, mobile
126/126, chat 102/102, wizard 95/95, bubbles 34/34, regression 44/44,
i18n 13/13, native 33/33. Version 0.4.7, SW -> freezmo-v72.
2026-10-14 06:29:39 +00:00
..
activities Fix the clipped answer field + the doubled AI note; ordering only where it fits 2026-10-13 07:27:39 +00:00
chat Bring-your-own keys for cloud providers (OpenAI-compatible) 2026-10-14 06:29:39 +00:00
exam Report question: skip a broken card and tell the server 2026-10-12 07:12:55 +00:00
homework Design pass (all themes + chat UI), model picker, reduce-motion toggle 2026-10-14 05:06:02 +00:00
AiDisclaimer.tsx Design pass (all themes + chat UI), model picker, reduce-motion toggle 2026-10-14 05:06:02 +00:00
ApiKeyGate.tsx New Aero background (Gemini-made), old credit removed 2026-10-13 08:10:05 +00:00
AppHeader.tsx One-pill study chrome, toggling chat pickers, readable homework steps 2026-10-12 14:21:11 +00:00
CookieConsent.tsx Aero goes underwater with rising bubbles; floating cookie notice; Czech title 2026-10-13 05:46:53 +00:00
DataSection.tsx Accessibility pass, report control for homework exercises, clearer rail actions 2026-10-12 21:15:56 +00:00
DeckCard.tsx Design pass (all themes + chat UI), model picker, reduce-motion toggle 2026-10-14 05:06:02 +00:00
FolderBar.tsx Mobile UI pass: sheet swipe, ice-scene layering, contrast, touch targets 2026-10-08 17:37:51 +00:00
HomeworkCard.tsx Accessibility pass, report control for homework exercises, clearer rail actions 2026-10-12 21:15:56 +00:00
IceBackdrop.tsx More shinier bubbles; the chat's top edge fades instead of clipping 2026-10-13 13:19:12 +00:00
icons.tsx Design pass (all themes + chat UI), model picker, reduce-motion toggle 2026-10-14 05:06:02 +00:00
InstallSheet.tsx Frutiger Aero theme, pixel-measured contrast fixes, sheet surfaces 2026-10-12 22:10:16 +00:00
LearningSection.tsx Accessibility pass, report control for homework exercises, clearer rail actions 2026-10-12 21:15:56 +00:00
LegalPage.tsx Privacy policy, terms of service, cookie policy + a cookie notice 2026-10-12 21:26:55 +00:00
LibraryScreen.tsx Design pass (all themes + chat UI), model picker, reduce-motion toggle 2026-10-14 05:06:02 +00:00
LinkLoadingScreen.tsx Link loading overlay escapes the glass card (portal to body) 2026-10-12 19:04:38 +00:00
LoadingState.tsx One loading screen everywhere (the deck wizard's) 2026-10-12 18:43:53 +00:00
ModelErrorActions.tsx Phase 1: backup, encrypted sync and monthly-usage handling 2026-10-10 13:43:42 +00:00
MotionPreference.tsx Design pass (all themes + chat UI), model picker, reduce-motion toggle 2026-10-14 05:06:02 +00:00
OfflineBanner.tsx Native-feel pass: PWA integration, system back, offline, haptics, undo 2026-10-10 12:16:03 +00:00
ProvidersSection.tsx Bring-your-own keys for cloud providers (OpenAI-compatible) 2026-10-14 06:29:39 +00:00
ReportQuestionButton.tsx Accessibility pass, report control for homework exercises, clearer rail actions 2026-10-12 21:15:56 +00:00
ResultsScreen.tsx Chat mode, phase 1: grounded streaming chat over your notes 2026-10-11 18:32:11 +00:00
ReviewClient.tsx Accessibility pass, report control for homework exercises, clearer rail actions 2026-10-12 21:15:56 +00:00
RouteLoading.tsx One loading screen everywhere (the deck wizard's) 2026-10-12 18:43:53 +00:00
RouteTransition.tsx Animation pass: one shared motion language for phones 2026-10-10 11:01:29 +00:00
SegmentedPill.tsx Animation pass: one shared motion language for phones 2026-10-10 11:01:29 +00:00
ServiceWorkerRegistrar.tsx Infra: split dev and production (releases, services, deploy script) 2026-10-11 19:25:29 +00:00
SessionFeed.tsx Fix the clipped answer field + the doubled AI note; ordering only where it fits 2026-10-13 07:27:39 +00:00
SettingsDialog.tsx Bring-your-own keys for cloud providers (OpenAI-compatible) 2026-10-14 06:29:39 +00:00
ShareChooser.tsx Phase 1: backup, encrypted sync and monthly-usage handling 2026-10-10 13:43:42 +00:00
Sidebar.tsx Design pass (all themes + chat UI), model picker, reduce-motion toggle 2026-10-14 05:06:02 +00:00
StatsScreen.tsx Phase 2: learning engine — history, SRS review, mistakes, stats, exam, reminders 2026-10-10 14:15:21 +00:00
StudyFeed.tsx Fix the clipped answer field + the doubled AI note; ordering only where it fits 2026-10-13 07:27:39 +00:00
SyncSection.tsx Phase 1: backup, encrypted sync and monthly-usage handling 2026-10-10 13:43:42 +00:00
TabBar.tsx Chat layout: history in the main sidebar, consistent header, cleaner icon 2026-10-11 20:11:11 +00:00
ThemeSection.tsx New Aero background (Gemini-made), old credit removed 2026-10-13 08:10:05 +00:00
ThemeToggle.tsx New Aero background (Gemini-made), old credit removed 2026-10-13 08:10:05 +00:00
Toaster.tsx Native-feel pass: PWA integration, system back, offline, haptics, undo 2026-10-10 12:16:03 +00:00
ui.tsx Design pass (all themes + chat UI), model picker, reduce-motion toggle 2026-10-14 05:06:02 +00:00
UploadScreen.tsx Design pass (all themes + chat UI), model picker, reduce-motion toggle 2026-10-14 05:06:02 +00:00
WizardActionBar.tsx Wizard polish: step headlines, gated Next, real summary, portal action bar 2026-10-10 11:35:45 +00:00
WizardModeSwitch.tsx Lock the wizard mode switch while a run is generating 2026-10-10 17:47:05 +00:00