Commit Graph
162 Commits
Author SHA1 Message Date
Alex-GilbertandClaude Opus 4.6 b768e216fc docs: add word frequency filter design
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-23 12:13:16 -06:00
Alex-GilbertandClaude Opus 4.6 f0efd88c27 feat: connect word mode UI controls to solver backend
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-23 11:41:45 -06:00
Alex-GilbertandClaude Opus 4.6 2ca73ec01f feat: wire word mode and ensure_plural to /api/solve endpoint
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-23 11:35:28 -06:00
Alex-GilbertandClaude Opus 4.6 a0586be336 feat: add Word mode option and plural checkbox to UI
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-23 11:31:22 -06:00
Alex-GilbertandClaude Opus 4.6 d04116579b feat: add two-word binary search solver (phase 2 of word mode)
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-23 11:06:10 -06:00
Alex-GilbertandClaude Opus 4.6 6c6a90e796 feat: add single-word noun solver (phase 1 of word mode)
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-23 10:05:52 -06:00
Alex-GilbertandClaude Opus 4.6 f13590f80d feat: add noun/adjective/plural word list loaders
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-23 10:02:11 -06:00
Alex-GilbertandClaude Opus 4.6 9d8a3c9a1f feat: add word list generation script (nouns, adjectives, plurals from WordNet)
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-23 09:51:15 -06:00
Alex-GilbertandClaude Opus 4.6 689609884e docs: add word dictionary mode implementation plan
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-23 09:39:36 -06:00
Alex-GilbertandClaude Opus 4.6 d868ce2de3 docs: add word dictionary solve mode design
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-23 09:36:50 -06:00
Alex-GilbertandClaude Opus 4.6 6e77070538 fix: known_start/end casing for multi-word name width calculation
When known_start was set with capitalized casing, the unknown portion was
forced to all-lowercase, breaking width measurements for multi-word names
(e.g., "hn doe" instead of "hn Doe"). Added _case_unknown_portion helper
that respects word boundaries. Also fixed effective_left/right kerning
context to use correctly cased characters from the display string.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-22 14:44:33 -06:00
Alex-GilbertandClaude Opus 4.6 c915935ee4 fix: defensive CSS hidden rule, cache MediaQueryList, guard setSheetSnap
- Add [hidden] { display: none !important } to prevent CSS specificity overrides
- Cache matchMedia query instead of creating new MediaQueryList per call
- Guard setSheetSnap against being called on desktop

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-21 16:25:46 -06:00
Alex-GilbertandClaude Opus 4.6 9ad2bc150a fix: mobile polish — tap-to-deselect and toast positioning
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-21 16:19:00 -06:00
Alex-GilbertandClaude Opus 4.6 f07a0c9c2c feat: wire sheet snap and tab switching to popover flow
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-21 16:13:15 -06:00
Alex-GilbertandClaude Opus 4.6 bee8a2f514 feat: sheet tab switching and responsive DOM relocation
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-21 16:11:46 -06:00
Alex-GilbertandClaude Opus 4.6 1eaf411847 feat: sheet drag and snap behavior for mobile
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-21 15:55:00 -06:00
Alex-GilbertandClaude Opus 4.6 6075a4f047 feat: mobile CSS for bottom sheet overlay
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-21 15:48:02 -06:00
Alex-GilbertandClaude Opus 4.6 95d909cc98 feat: desktop CSS for bottom-sheet as sidebar
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-21 15:46:47 -06:00
Alex-GilbertandClaude Opus 4.6 6ec5be11d9 refactor: replace left-panel with bottom-sheet container
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-21 15:42:03 -06:00
Alex-GilbertandClaude Opus 4.6 3a590e17c8 docs: add mobile-responsive implementation plan
7-task plan for bottom-sheet responsive redesign covering HTML restructuring,
desktop/mobile CSS, sheet snap behavior, tab switching, and integration.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-21 15:11:32 -06:00
Alex-GilbertandClaude Opus 4.6 534b3fbe33 docs: mobile-responsive redesign using bottom sheet pattern
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-21 15:02:28 -06:00
Alex-GilbertandClaude Opus 4.6 2297bd0aa0 fix: mobile touch-action and delete button visibility
- Add touch-action: none to #right-panel for reliable custom
  touch handling
- Show delete button on mobile (no hover state on touch devices)

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-21 13:29:29 -06:00
Alex-GilbertandClaude Opus 4.6 0de882c575 feat: add single-finger touch pan for mobile
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-21 13:26:02 -06:00
Alex-GilbertandClaude Opus 4.6 553563f871 feat: add mobile tab switching logic
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-21 13:24:57 -06:00
Alex-GilbertandClaude Opus 4.6 16ae903047 feat: add responsive CSS for mobile layout
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-21 13:24:54 -06:00
Alex-GilbertandClaude Opus 4.6 9124348e1c feat: add mobile tab bar markup and DOM refs
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-21 13:23:40 -06:00
Alex-GilbertandClaude Opus 4.6 028cad35fb docs: mobile-friendly implementation plan
5-task plan: HTML tab bar, JS tab switching, responsive CSS,
single-finger touch pan, integration test.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-21 13:22:31 -06:00
Alex-GilbertandClaude Opus 4.6 78788bce17 docs: mobile-friendly frontend design
CSS-responsive approach with tab-based navigation at ≤768px,
full-screen solver modal, and single-finger touch pan.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-21 13:20:51 -06:00
Alex-GilbertandClaude Opus 4.6 33b88f078f feat: manual guess input + continuous text preview rendering
- Replace redaction marker span with editable input for manual guesses
- Typing in the guess field sets r.preview and shows Accept button
- drawRedactionPreview now renders left+guess+right as continuous text
  with natural font kerning (no fixed gap width during preview)
- Active preview: green left, yellow highlighted guess, green right
- Inactive preview: full merged text in yellow

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-20 15:45:28 -06:00
Alex-GilbertandClaude Opus 4.6 a4863350ef fix: remove blue box overlay from approved redactions
Only the merged blue text is drawn — no box overlay needed.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-20 15:35:09 -06:00
Alex-GilbertandClaude Opus 4.6 bff50a1315 fix: drawRedactionApproved draws box overlay + distinct green badge
The approved draw function was only drawing text with no overlay on the
redaction box area, making it look like the redaction disappeared.
Now draws a blue semi-transparent box over the redaction area (like
other states) plus the merged blue text along the line.

Also made the approved CSS badge green (--accent) to distinguish it
from the blue analyzed badge.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-20 15:08:20 -06:00
Alex-GilbertandClaude Opus 4.6 0ffae2aeae feat: blue CSS badge for approved status
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-20 14:49:12 -06:00
Alex-GilbertandClaude Opus 4.6 651b7eee33 feat: popover handles approved redactions with solution pre-populated
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-20 14:49:02 -06:00
Alex-GilbertandClaude Opus 4.6 0873120775 feat: update main.js references from solved to approved status
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-20 14:48:51 -06:00
Alex-GilbertandClaude Opus 4.6 7bc5aa3239 feat: replace drawRedactionSolution with drawRedactionApproved (blue merged text)
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-20 14:48:32 -06:00
Alex-GilbertandClaude Opus 4.6 531693653a feat: acceptSolution produces 'approved' status with merged text
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-20 14:48:05 -06:00
Alex-GilbertandClaude Opus 4.6 9f5ceb38ae fix: remove inline-edit feature and backspace delete keybinding
- Delete inline-edit.js and all references
- Remove backspace/delete key handler for redaction deletion
- Clean up popover.js syncInlineEdit references

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-20 14:46:50 -06:00
Alex-GilbertandClaude Opus 4.6 f1e25f9712 feat: add LLM boundary detection for spot redaction path
analyze_spot_redaction is now async and calls identify_boundary_text()
to use Claude Haiku for clean left/right text extraction instead of
center-point character filtering. Falls back to center-point if LLM
is unavailable.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-20 14:46:45 -06:00
Alex-GilbertandClaude Opus 4.6 163a450720 docs: add redaction approval implementation plan
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-20 14:45:39 -06:00
Alex-GilbertandClaude Opus 4.6 f04bacd961 docs: add redaction approval design
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-20 14:44:32 -06:00
Alex-GilbertandClaude Opus 4.6 e9ec2ff7f3 feat: add inline-edit.js and sync popover with inline inputs
Missed files from the inline text editing task — adds the inline-edit
module and wires up bidirectional sync between popover text bar and
inline canvas inputs.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-20 12:55:25 -06:00
Alex-GilbertandClaude Opus 4.6 3d07faadc8 style: add OCR status indicator and edge case handling
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-20 12:52:14 -06:00
Alex-GilbertandClaude Opus 4.6 43e7f80bbe feat: drag handles for resizing redaction bounding boxes
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-20 12:49:52 -06:00
Alex-GilbertandClaude Opus 4.6 9b9618d9fa feat: spot redactions now created as analyzed with full data
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-20 12:44:35 -06:00
Alex-GilbertandClaude Opus 4.6 7331fc5936 feat: add OCR-on-upload and Detect Redactions button
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-20 12:43:09 -06:00
Alex-GilbertandClaude Opus 4.6 2783ed2615 feat: spot endpoint returns full analysis data
Enrich POST /api/doc/{doc_id}/page/{page}/spot to call
analyze_spot_redaction when OCR data is cached, returning full
analysis JSON (segments, gap, font, line, offsets) alongside the
bounding box. This makes spot redactions first-class, matching the
analysis format returned by get_page_data for auto-detected redactions.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-20 12:42:18 -06:00
Alex-GilbertandClaude Opus 4.6 8857793759 feat: add analyze_spot_redaction for single-box analysis
Add a synchronous function that runs the analysis mini-pipeline on a
single known bounding box using cached OCR data. This enables spot
redaction endpoints to get full analysis (font, left/right context text,
pixel alignment offsets) without needing LLM detection.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-20 12:39:57 -06:00
Alex-GilbertandClaude Opus 4.6 03333e212c feat: wire analyze endpoint to use cached OCR data
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-20 12:38:31 -06:00
Alex-GilbertandClaude Opus 4.6 f24a710b9e feat: allow analyze_page to accept pre-computed OCR lines
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-20 12:36:58 -06:00
Alex-GilbertandClaude Opus 4.6 ced68f2321 feat: add /api/doc/{id}/ocr SSE endpoint for cached OCR
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-20 12:36:46 -06:00