-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprogress.txt
More file actions
41 lines (35 loc) · 1.93 KB
/
Copy pathprogress.txt
File metadata and controls
41 lines (35 loc) · 1.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# Progress Log
## 2026-03-01 00:04 - Initial implementation
- Created combined_app/ with backend (FastAPI) and frontend (HTML/JS)
- Backend: config, database, wiktionary_service, llm_service, main.py with all endpoints
- Frontend: PDF viewer with pdf.js, tooltip, side panel, vocabulary list
- All 50 backend tests passing, all 22 E2E tests passing
## 2026-03-01 00:29 - Text selection fixes
- Replaced custom renderTextLayer with pdf.js built-in
- Added official textLayer CSS (inline, not CDN link which broke layout)
- Added expandToFullWord() for umlaut word reconstruction
- Normalizes combining marks: " ̈a" → "ä" to fix split umlaut words
- Tooltip now shows correct full word (e.g., "abhängiger" not "angiger")
## 2026-03-01 00:49 - Highlight improvements
- Added custom .word-highlight overlay divs
- Using browser selection rects via highlightFromRects()
- Clear highlights on tooltip dismiss
- Fixed duplicate `const range` SyntaxError
## Known issues
- Highlight rects only cover the browser's native selection, not the expanded word
- For umlaut words, highlight covers "angiger" but not "abh" portion
- Dead stub function highlightWordSpans still in code
## 2026-03-01 01:27 - FEAT-001: Sentence selection with LLM translation
- Added POST /api/v1/translate endpoint with TRANSLATE_PROMPT
- Frontend detects single word (Wiktionary) vs multi-word (LLM translate)
- _call_llm now accepts custom system_prompt parameter
- Added translate_sentence() with Groq/Mistral fallback
- Tests: 53 backend, 24 E2E — all passing
- Files: backend/llm_service.py, backend/main.py, frontend/index.html, tests/*, e2e/*
## 2026-03-01 01:27 - FEAT-002: Persistent vocabulary per PDF
- Vocab badge shows count for current PDF on "My Vocabulary" button
- Auto-loads count when PDF opens (updateVocabBadge)
- Filter toggle: "This PDF" / "All PDFs" in vocab panel
- Badge updates on save and delete
- Tests: 53 backend, 24 E2E — all passing
- Files: frontend/index.html