Antigravity
c89b0d6238
chore: add deploy_beta and rollback_to_main management scripts
2026-10-07 14:57:19 +03:00
Antigravity
6fb086a878
refactor(stage-5): modularize style.css into domain stylesheets and update service worker precache
2026-10-07 14:52:45 +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
9072fc365a
refactor(stage-2): extract hardcoded curriculum datasets into data/seeds/*.json (-3100 lines)
2026-10-07 14:43:06 +03:00
Antigravity
20eef2c684
refactor(stage-1): eliminate dead parse_text, simplify task progress SQL, remove prompt hacks
2026-10-07 14:39:53 +03:00
Antigravity
6c2d94773c
fix(lesson): import missing shuffleArray, escapeRegex, playAudio, playTextSpeech from ui.js
2026-10-07 13:51:48 +03:00
Antigravity
e0775fd0d4
fix(lesson): support quiz mode and improve responsive layout for mobile and laptop
2026-10-07 13:50:13 +03:00
Antigravity
640da1f27c
fix(frontend): export ui object, harmonize API signatures, and clean view switcher
2026-10-07 13:13:45 +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
52db766b23
fix(dictionary): strip Latin romanization debris from Russian translations and sanitize dictionary cache
2026-10-06 23:08:54 +03:00
Antigravity
e371cdd4e5
fix(reader): prevent false phrasal verb detection for noun collocations and improve literary translation accuracy
2026-10-06 22:58:33 +03:00
Antigravity
63e0c6fc07
fix(ai): enforce zero-relative clause preservation and anti-omission rules in literary prompt
2026-10-06 22:43:55 +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
3098d3016d
fix(cefr): resolve authentic context sentence per term and repair legacy SRS cards
...
- Add resolve_context_sentence_for_term to replace placeholder blanks and lookup authentic sentences from cefr_questions or books
- Fix dual mistake ingestion in process_cefr_answer to assign distinct context to target and chosen distractor
- Provide authentic context_sentence in options_breakdown and pass it via data-context in cefr.js
- Add repair_mismatched_cefr_contexts in database.py to automatically repair cards with placeholder blanks
- Bump Service Worker cache to notes-v5.9
- Add test_cefr_context_resolution_and_repair covering resolution, dual ingestion, manual add, and DB repair
2026-10-06 22:17:51 +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
e73d3470b3
feat(ui): unify header and implement navigation drawer (Task 17)
...
- Redesign top header into clean, uncluttered layout with hamburger drawer trigger, clickable logo, central SRS focus badge, theme toggle and profile avatar
- Implement unified responsive Navigation Drawer for both desktop and mobile with touch swipe-to-dismiss, backdrop blur, keyboard Esc support and background scroll lock
- Streamline mobile bottom tab bar to 4 core actions (Dictionary, SRS, Reader, Menu) with Menu opening the unified drawer
- Synchronize real-time SRS due badges and dictionary word statistics between header, bottom tabs, and drawer
- Eliminate obsolete separate mobile-menu-modal in favor of unified drawer
- Bump Service Worker cache version to notes-v5.7
2026-10-06 21:28:25 +03:00
Antigravity
0ff4465d34
fix(reader): preserve full context sentence with abbreviations (Mr., Mrs., etc.) and log bug fix
2026-10-06 17:03:38 +03:00
Antigravity
6a6b165c7a
docs: update TODO.md with completed background tasks and book mining
2026-10-06 16:36:56 +03:00
Antigravity
c9da5bd351
feat: background tasks manager and book sentence mining for CEFR tests
2026-10-06 16:36:39 +03:00
Antigravity
332286b641
fix(cefr): fix ReferenceError q is not defined in handleOptionTap, bump PWA to v5.4
2026-10-06 16:12:05 +03:00
Antigravity
15d4987977
fix(auth, pwa): restore api.auth.me, bump PWA cache to v5.3, and fix CEFR CSS styling
2026-10-06 16:04:58 +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
a00b330f74
Plan Task 17: Unified Navigation & Header Redesign (Drawer Sidebar)
2026-10-06 15:44:34 +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
0c5951df8d
fix(reader): render full book in continuous mode with smooth chapter jumping and scroll tracking
2026-10-06 14:40:32 +03:00
Antigravity
21d94acf4e
feat: decompose frontend into native ES modules (zero bundlers, zero npm)
2026-10-06 14:27:30 +03:00
Antigravity
869bf23948
docs: finalize prioritized pedagogy roadmap with Two Study Vibes and Cloze Tap
2026-10-06 14:15:35 +03:00
Antigravity
922ab20127
docs(ai): add Stage 7 Murphy Engine and Handwritten Notebook Prompts
2026-10-06 14:01:31 +03:00
Antigravity
1db9356e0c
docs: add Tasks 14 (phrasal verb detector) and 15 (CEFR level tests with auto-ingestion)
2026-10-06 13:54:11 +03:00
Antigravity
5c47bc6eca
docs(ai): specify 100% offline Piper TTS for Stage 3 audio generation
2026-10-06 12:22:39 +03:00
Antigravity
84bbe2031d
docs: add AI_TODO.md with dual-model architecture roadmap
2026-10-06 12:16:25 +03:00
Antigravity
9a5d588125
feat(dict): high-speed offline dictionary with wordforms and zero daemon SQLite mmap
2026-10-06 12:01:08 +03:00
Antigravity
9d4e911bfd
feat: debloat dictionary parsers (remove Datamuse, switch to Wiktionary REST API with English section isolation)
2026-10-06 11:46:51 +03:00
Antigravity
078fa08fbd
feat: optimize SQLite PRAGMAs (WAL, mmap 256MB, cache 32MB, temp_store) and add compound indexes
2026-10-06 11:38:46 +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
c4a6edee37
fix(reader): optimize rendering performance, prevent browser freeze on large technical books
...
- extract_outline_entries: filter PDF bookmarks by depth and major structural headings, avoiding 550 micro-snippets
- renderContinuousBook: load current chapter and seamlessly append next chapters on scroll (virtual continuous) instead of dumping all chapters into DOM synchronously
- renderInteractiveSpans: use native HTML template fragment instead of new DOMParser per paragraph
- event delegation: handle word clicks on readerContentBody instead of adding hundreds of thousands of individual DOM event listeners
- consolidate existing CCNA book in DB into 68 clean chapters
2026-10-06 11:23:21 +03:00
Antigravity
46d6973365
chore(nginx): increase client_max_body_size to 200M and set 300s timeouts
2026-10-06 11:15:54 +03:00
Antigravity
2a84b5bcb0
fix(upload): add client_max_body_size to nginx config and improve upload error messaging
2026-10-06 10:30:49 +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
c38b1dae0a
fix(reader): sticky reader toolbar, compact settings grid, and viewport-aware Aa dropdown
2026-10-06 09:45:00 +03:00
Antigravity
0d05da7b9e
feat(reader): continuous reading mode, seamless infinite scroll, and end-of-chapter nav cards
2026-10-06 09:33:06 +03:00
Antigravity
4d40b13bce
feat(reader): hash router, zero-flicker reload, honest weighted progress, and smart chapter detection
2026-10-06 09:18:57 +03:00
Antigravity
f642a131ad
docs: add comprehensive rework plan for navigation, honest progress and chapter detection to TODO.md
2026-10-05 16:59:25 +03:00
Antigravity
6ee67c0653
feat(reader): remember reading position across refresh, add chapter progress bar, and plan PDF support
2026-10-05 16:51:08 +03:00
Antigravity
fdc11ed9ea
fix(reader): restore font-controls closing brace and fix desktop popup and settings panel styling
2026-10-05 16:25:56 +03:00
Antigravity
84e9be614e
feat(reader): implement full appearance customization panel with themes, fonts, margins, line-height, and localStorage persistence
2026-10-05 16:15:20 +03:00
Antigravity
c0fdcd776b
feat(mobile): implement iOS Safari responsive layout, bottom tab bar, and mobile bottom sheet
2026-10-05 16:08:05 +03:00
Antigravity
d5e9354016
docs(todo): add mobile layout optimization task 4 and move bookmarklet to coming soon
2026-10-05 15:43:05 +03:00
Antigravity
d5071c8ac9
fix(frontend): restore DOMContentLoaded wrapper in app.js and render login overlay by default
2026-10-05 15:28:31 +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
f52820fff6
docs(todo): add task 3 for word deduplication and duplicate prevention
2026-10-05 15:06:30 +03:00
Antigravity
2ba78191df
docs: add BOOKS_SOURCES.md reference guide for free English books
2026-10-05 14:22:24 +03:00
Antigravity
25576de87a
feat(perf): enable GZipMiddleware reducing static transfer size by 81.7%
2026-10-05 14:10:55 +03:00
Antigravity
1ee39d66bd
fix(html): close change-password-modal divs so reader-word-popup is not trapped inside hidden modal
2026-10-05 13:49:43 +03:00
Antigravity
ca70580e62
feat(reader): full Markdown and HTML rendering for GitHub READMEs, tables, images and links
2026-10-05 13:30:00 +03:00
Antigravity
c5e0e2dcfa
fix(reader): mount app volume in docker-compose, move popup to body root and add smooth scroll tracking
2026-10-05 13:02:37 +03:00
Antigravity
cbd65decd5
feat(reader): full markdown rendering, styled code blocks and precise popup positioning
2026-10-05 12:52:59 +03:00
Antigravity
e7586ee1b4
docs(todo): add reader popup positioning bugfix task
2026-10-05 12:44:10 +03:00
Antigravity
92b63abe9b
docs: add sequential TODO backlog with prioritized technical tasks
2026-10-05 12:42:50 +03:00
Antigravity
dae0d525c7
chore: disable legacy audio proxy and hide audio controls
2026-10-05 12:40:58 +03:00
Antigravity
4e52cab88e
fix(reader): fix reader word popup translation key and sanitize token lookup
2026-10-05 11:47:07 +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
d82bb9e8e9
feat(nginx): add reverse proxy configuration for study.qpid.pro
2026-10-05 11:03:50 +03:00
Antigravity
83f19168db
feat(docker): add Dockerfile and docker-compose.yml for containerized deployment
2026-10-05 10:45:49 +03:00
Antigravity
b5025b3966
docs(roadmap): add Stage 5 Interactive Reader with source auto-tagging and tag-scoped SRS tests
2026-09-23 13:32:02 +00:00
Antigravity
8c702dbafa
docs(roadmap): add planned active CEFR vocabulary calculation with retention weighting
2026-09-23 10:55:02 +00:00
Antigravity
a74b0dbf64
fix(ui): restore dictionary card styles and clean up activity heatmap labels
2026-09-23 10:22:15 +00: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
d31c77fdd0
fix(ui): align batch select button and search input in one row
2026-09-23 09:38:41 +00:00
Antigravity
0b7f2a7b4d
docs(todo): add duplicate word prevention and merging requirement
2026-09-23 09:31:38 +00:00
Antigravity
ad6f430d8f
docs(mentor): update learning strategy, smart quiz algorithms, and session context
2026-09-23 05:54:23 +00:00
Antigravity
f8b0cedfc6
fix(audio): support HEAD method on audio proxy route
2026-09-22 13:28:20 +00:00
Antigravity
5fdb55e11a
docs(plan): mark Stage 1 as completed
2026-09-22 13:27:22 +00:00
Antigravity
813d567b0e
feat(core): implement secure MVP core with dictionary search, auth, and CRUD
2026-09-22 13:27:11 +00:00
Antigravity
4dbc53890a
docs(plan): update roadmap with security layer (auth, sessions, rate-limit) and general english scope
2026-09-22 13:09:18 +00:00
Antigravity
4631de5391
docs(init): initialize repository, roadmap plan, and pedagogical guide for network english
2026-09-22 12:51:36 +00:00