Open
Conversation
- Add PDF processing via PyMuPDF with metadata extraction - Add PDF.js-based viewer with HiDPI rendering, zoom, fit-width/fit-page, and ToC sidebar populated from PDF outline - Add AI chat sidebar component (OpenAI/Anthropic/custom provider support) with server-side proxy to avoid CORS issues - Redesign EPUB reader with dark toolbar header, zoom controls, fit-width/fit-page, toggleable/resizable ToC sidebar, and proper content margins - Fix EPUB internal link navigation by intercepting content links and routing through spineMap lookup - Move book storage to books/ subdirectory for cleaner repo structure - Add server shutdown endpoint and stop_server.py utility - Add new dependencies: pymupdf, httpx, openai, anthropic - Update README with PDF usage instructions and new directory layout
…tely working yet.
- Save sidebar width to localStorage on mouseup after drag resize - Save collapsed/expanded state to localStorage on toggle click - Restore both width and collapsed state on page load - Applies to both epub and PDF readers (shared component)
- Add integration test suite with dynamic EPUB/PDF generation - Refactor reader.html and pdf_reader.html to use JSON data injection for stability - Implement persistent chat history backend and frontend logic - Add dual-page view toggle and logic to PDF reader - Fix PDF Table of Contents link resolution - Add partial support for custom LLM provider in server
- Update PDF reader to only capture ArrowLeft/Right when viewer is focused - Add autofocus to PDF wrapper for immediate keyboard usability - Preserve ArrowUp/Down default scrolling behavior
… visibility Backend: annotations.py (models + persistence), server.py CRUD for highlights/notes/chat. Frontend: right_sidebar.html (Annotations + Chat), refactored chat_component. Readers: annotation + selection in reader.html (EPUB) and pdf_reader.html (PDF); Ask AI from selection. Fixes: PDF highlight scaling with zoom (canvas-based coords, highlight-layer sized in JS, renderHighlights in requestAnimationFrame); per-page annotations list (dual-page aware); updateAnnotationContent/reloadAnnotations, edit/delete, go-to-highlight. EPUB multi-node and normalized-whitespace quote matching; per-section list; reloadAnnotations, data-id edit/delete, activateHighlight loads chapter. Sidebar: reloadAnnotations after delete/save; edit/delete via listeners (no inline user text). Tests: test_annotations.py, test_ui_regression.py (API + UI/regression).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
feat: Unified annotation system and sidebar; fix PDF/EPUB scaling and visibility