Commit graph

3 commits

Author SHA1 Message Date
jedarden
d70b4aa36e feat(pdftract-2825c): add comparison mode support to inspector frontend
Phase 7.9.8: Comparison mode UI enhancements

- Added 9th layer toggle (diff overlay) for comparison mode
- Implemented side-by-side document comparison UI
- Added scroll sync between comparison panels
- Added diff overlay rendering (added/removed/changed blocks)
- Updated keyboard shortcuts to support 1-9 (was 1-8)
- Bundle size: 5.63 KB gzipped (still well under 80 KB limit)

Ref: pdftract-2825c

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-27 22:52:15 -04:00
jedarden
8b63217dbf feat(pdftract-260a3): implement legal_filing profile with fixtures and tests
Implements the legal_filing document profile for court filings (motions,
briefs, orders, docket entries) with:

- Profile YAML at profiles/builtin/legal_filing/profile.yaml
  - Fields: case_number, court, parties, filing_date, docket_entries
  - Match predicates for court name, case numbers, party markers
  - Extraction: xy_cut reading order, include_headers_footers=true

- 5 synthetic PDF fixtures at tests/fixtures/profiles/legal_filing/
  - federal_complaint: Federal district court complaint
  - state_motion: State superior court motion to dismiss
  - appellate_brief: Federal appellate brief
  - court_order: Federal district court order
  - docket_sheet: Docket sheet with entries

- 5 expected output JSON files with profile_fields

- Regression tests at crates/pdftract-cli/tests/test_legal_filing.rs
  - 14/14 tests pass
  - Verifies profile schema, fixture structure, match predicates

Acceptance criteria (from bead pdftract-260a3):
-  profiles/builtin/legal_filing.yaml validates
-  5+ public-domain fixtures with expected outputs
-  tests/test_legal_filing.rs passes
-  Per-field accuracy thresholds defined (integration tests pending Phase 7.10)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-27 21:44:49 -04:00
jedarden
299a5fb271 feat(pdftract-2825c): implement inspector frontend bundle with <80KB size limit
Phase 7.9.3: Frontend bundle (HTML + CSS + JS) via include_bytes!

- Created vanilla web app frontend (no framework, no CDN)
  - index.html (1,963 bytes raw)
  - style.css (3,291 bytes raw) with CSS-only layer toggles
  - app.js (5,494 bytes raw) with localStorage and keyboard shortcuts
- Bundle size: 10,748 bytes raw, 3,914 bytes gzipped (well under 80KB limit)
- Features:
  - 8 layer toggles via CSS data attributes
  - localStorage persistence (namespaced "pdftract-inspector-*")
  - Keyboard shortcuts: ArrowLeft/Right, '/', 1-8 for layers
  - URL fragment navigation (#page=N)
  - Search with debouncing
  - Offline-capable (no external dependencies)
- Updated inspect.rs to serve frontend via include_str!
- Added build.rs bundle size check with libflate
- Added libflate as build dependency

Refs: pdftract-2825c

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-27 20:21:08 -04:00