28 Commits
Author SHA1 Message Date
Antigravity 8cffae46fa feat(feedback): implement ChipDip-style floating dev feedback & bug report widget with markdown sync 2026-10-08 11:53:18 +03:00
Antigravity dde87e5d6c refactor(stage-4): partition monolithic main.py into modular APIRouters 2026-10-07 14:50:21 +03:00
Antigravity 4e1f809018 refactor(stage-3): add Keep-Alive connection pool for Ollama, implement offline lemma resolution in dictionary 2026-10-07 14:45:05 +03:00
Antigravity 718e9797eb feat(lessons): implement comprehensive lesson configurator, session runner and AI debrief (Beta) 2026-10-07 13:03:16 +03:00
Antigravity 31e105b2c2 feat(tts): multi-voice switcher for EN & RU, Irina default voice, punctuation pause normalization and speed calibration 2026-10-07 12:07:01 +03:00
Antigravity 7893b353aa feat(listening): interactive listening comprehension trainer with neural voiceover and auto-evaluation 2026-10-07 10:57:10 +03:00
Antigravity a6fb4349e9 feat(tts): integrate autonomous Piper neural TTS with zero-latency pre-warming for words and context 2026-10-07 10:40:02 +03:00
Antigravity 915d2784a2 fix(ai): increase timeout to 60s, keep model resident in RAM for 24h, and warm up on startup 2026-10-07 09:57:38 +03:00
Antigravity dee9b8d10b feat(reader): autonomous Wikipedia import and reading with media, tables and settings 2026-10-07 09:47:33 +03:00
Antigravity 532e2ec3b2 fix(ai,reader): robust sentence segmentation without abbreviation cutoffs & context-aware literary translation
- Implement robustSentenceSplit across reader.js and backend (miner.py, cefr.py) to prevent false cutoffs on honorifics (Mr., Mrs., Dr.), single-letter initials (John F. Kennedy), decimals, acronyms (U.S., U.K.), and abbreviations (No. 4, etc.)
- Upgrade translation prompt to professional literary Russian, eliminating literal word-for-word translation and preserving titles/honorifics
- Inject surrounding paragraph context into translation API to avoid out-of-context translations
- Inject offline dictionary hints into LLM prompt for accurate contextual word meaning
- Prefer qwen2.5:3b for higher translation fluency and fidelity
- Purge truncated cache entries from sentence_translations and restore Card 30 (briefcase) with authentic full sentence
- Bump Service Worker cache to notes-v6.0
- Add unit tests for robust sentence splitting, prompt formatting, and translation API
2026-10-06 22:32:36 +03:00
Antigravity 82b7a654ca feat(reader): добавить парсер RFC из RFC Editor и отдельную группу спецификаций на книжной полке
- Реализован парсер RFC в app/reader.py с авто-загрузкой с rfc-editor.org и datatracker.ietf.org
- Очистка пагинации ([Page X], \x0c) и разбиение спецификаций на структурированные главы (TOC, разделы)
- Эндпоинт POST /api/books/fetch-rfc с защитой от дублирования и поддержкой номеров/URL
- Визуальное разделение на книжной полке через hr-разделитель и блок спецификаций IETF & RFC
- Быстрые пресеты стандартов (HTTP/1.1, HTTP/2, TLS 1.3, OAuth 2.0, WebSocket, QUIC, TCP, DNS)
- Интеграция в интерактивную читалку (перевод по клику, авто-захват контекста, SRS карточки)
- Unit-тесты парсера и API (31/31 passed) и обновление Service Worker кэша
2026-10-06 21:46:07 +03:00
Antigravity c9da5bd351 feat: background tasks manager and book sentence mining for CEFR tests 2026-10-06 16:36:39 +03:00
Antigravity a2eb26ced5 feat(cefr): dual mistake ingestion, 1-tap options breakdown, and 260 curated questions 2026-10-06 15:57:07 +03:00
Antigravity 4d58002b48 Implement Task 16: Murphy Grammar Engine & Handwritten Journaling 2026-10-06 15:42:10 +03:00
Antigravity 3fae321322 feat(cefr): CEFR level testing and automated gap ingestion engine (Task 15) 2026-10-06 15:24:33 +03:00
Antigravity 1c3f03a64c feat(reader): multi-word and phrasal verb detector in reader (Task 14) 2026-10-06 15:16:02 +03:00
Antigravity 37a1f1ab35 feat(ai): integrate local Ollama AI for in-context sentence translation and caching (Task 13) 2026-10-06 15:05:24 +03:00
Antigravity 438dfdb055 feat(perf): implement HTTP connection pooling with httpx.AsyncClient singleton and Keep-Alive
- get_http_client: singleton AsyncClient with limits(max_keepalive=10, max_connections=20, keepalive_expiry=60s)
- close_http_client: clean socket pool teardown in FastAPI lifespan shutdown
- refactor dictionary fetchers to reuse pooled client and avoid 5x TLS handshakes per word lookup
- add test_http_connection_pooling (22/22 pytest passed)
2026-10-06 11:34:31 +03:00
Antigravity 6dcfd59f73 feat(reader): add PDF reading support with outline chapters, CLI blocks, and noise filtering (task 7) 2026-10-06 10:16:40 +03:00
Antigravity 99741c386e fix(auth): implement DB-first auth, persistent bearer token, secure cookies, and CLI reset_password script 2026-10-05 15:23:37 +03:00
Antigravity a73bdc29fd feat: prevent duplicate cards, merge contexts, and display star badge when word is in library 2026-10-05 15:15:06 +03:00
Antigravity 25576de87a feat(perf): enable GZipMiddleware reducing static transfer size by 81.7% 2026-10-05 14:10:55 +03:00
Antigravity dae0d525c7 chore: disable legacy audio proxy and hide audio controls 2026-10-05 12:40:58 +03:00
Antigravity d8a2c6e34f feat: implement Stage 5 (Interactive Reader, EPUB/TXT parser, Bookshelf, Click-to-Translate) and Stage 4.3 (Strict CEFR level calculation) 2026-10-05 11:42:13 +03:00
Antigravity c51c505b61 fix(ui,auth): fix login overlay styles, PWA service worker scope, favicon, and update user config to kopri 2026-10-05 11:19:56 +03:00
Antigravity 2294121777 feat(trainer): add GitHub activity heatmap, 4-option quiz mode, active typing, and duplicate checks 2026-09-23 10:02:29 +00:00
Antigravity f8b0cedfc6 fix(audio): support HEAD method on audio proxy route 2026-09-22 13:28:20 +00:00
Antigravity 813d567b0e feat(core): implement secure MVP core with dictionary search, auth, and CRUD 2026-09-22 13:27:11 +00:00