pdftract/notes
jedarden 50946fc98c feat(pdftract-4my): implement serve mode integration for full-render feature
This commit completes Phase 5.2.2 by integrating the pdfium-render path
into serve mode with runtime validation and feature propagation.

Changes:
- Propagate ocr and full-render features from CLI to pdftract-core
- Add full_render parameter to serve mode ExtractParams
- Implement runtime validation in build_options():
  * Returns BadRequest if full_render requested but PDFium unavailable
  * Falls back to direct compositing if feature not compiled
- Update all three serve handlers to handle Result from build_options()

Acceptance Criteria:
 cargo build --features ocr,serve,full-render succeeds
 cargo build --features ocr,serve (no full-render) succeeds
 Runtime fallback: full_render=true with feature absent uses direct path

Notes:
- Binary size CI gate (140 MB) requires separate CI infrastructure
- Soft-mask regression tests require separate fixture work

Refs: pdftract-4my
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23 16:28:08 -04:00
..
bf-1g1fd.md feat(bf-1g1fd): implement CI memory-ceiling gate with cgroup MemoryMax enforcement 2026-05-23 13:22:55 -04:00
bf-2y2rp.md feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
bf-4xk2v.md docs(bf-4xk2v): add verification note and compression bomb fixture 2026-05-23 13:32:19 -04:00
bf-5dnh1.md docs(bf-5dnh1): add verification note 2026-05-23 13:39:35 -04:00
bf-5en1a.md docs(bf-5en1a): add verification note for max_decompress_bytes default 2026-05-22 17:29:02 -04:00
bf-5mry9.md docs(bf-5mry9): add verification note for rayon parallelism capping 2026-05-23 12:03:20 -04:00
bf-21hw8.md test(bf-21hw8): add bounded predictor tests for PNG and TIFF 2026-05-23 13:35:57 -04:00
bf-49wmw.md fix(bf-49wmw): fix PNG-predictor unbounded pre-allocation 2026-05-22 17:26:27 -04:00
pdftract-1bn.md feat(pdftract-1bn): implement cross-compilation build matrix for 5 target triples 2026-05-18 00:06:55 -04:00
pdftract-1eaxm.md test(pdftract-1eaxm): add thread sanitizer results and improve conformance tests 2026-05-23 10:33:51 -04:00
pdftract-1g87.md feat(pdftract-q15sh): implement v1 fingerprint algorithm 2026-05-18 01:02:30 -04:00
pdftract-1lw3.md docs(pdftract-1lw3): add verification note for release cascade workflow 2026-05-20 19:33:35 -04:00
pdftract-1ppvz.md docs(pdftract-1ppvz): add verification note for cargo bloat gate 2026-05-23 11:26:04 -04:00
pdftract-1rami.md feat(pdftract-1rami): implement MCP tool catalog with 10 tools 2026-05-23 02:12:41 -04:00
pdftract-1rljr.md ci(pdftract-1rljr): add cargo-deny quality gate configuration 2026-05-23 11:20:36 -04:00
pdftract-1w5u1.md fix(pdftract-1w5u1): ensure doctor output fits within 80 columns for all modes 2026-05-23 07:24:02 -04:00
pdftract-1wfp.md feat(pdftract-1wfp): implement SHA256SUMS aggregate file generation 2026-05-22 23:57:49 -04:00
pdftract-1wqec.md docs(pdftract-1wqec): verify CI scaffolding acceptance criteria 2026-05-17 07:12:16 -04:00
pdftract-1yad.md fix(pdftract-1yad): enable proptest tests and update verification note 2026-05-18 00:15:00 -04:00
pdftract-1zhu.md docs(pdftract-1zhu): add verification note for /Prev chain handler 2026-05-22 19:15:47 -04:00
pdftract-2a6rk.md fix(pdftract-2a6rk): fix xref.rs u64 literal overflow in proptest 2026-05-22 17:26:27 -04:00
pdftract-2ai37.md docs(pdftract-2ai37): verify MSRV check quality gate already implemented 2026-05-23 11:22:41 -04:00
pdftract-2bpf6.md test(pdftract-2bpf6): add FlateDecode predictor tests and proptests 2026-05-18 01:08:21 -04:00
pdftract-2bsfc.md docs(pdftract-2bsfc): add verification note 2026-05-17 23:57:00 -04:00
pdftract-2gbu9.md feat(pdftract-2gbu9): enhance linearization detection with robust substring matching 2026-05-22 19:15:47 -04:00
pdftract-2hm4.md fix(pdftract-2hm4): fix keyword lexer to use Vec<u8> and improve diagnostics 2026-05-18 02:11:40 -04:00
pdftract-2ka7.md feat(pdftract-2ka7): implement secure password ingress channels 2026-05-18 02:20:02 -04:00
pdftract-2pyln.md docs(pdftract-2pyln): update verification note with bug fix details 2026-05-20 19:09:49 -04:00
pdftract-2rf.md ci(pdftract-2rf): implement quality matrix cargo-bloat gate 2026-05-23 11:33:49 -04:00
pdftract-2t9.md docs(pdftract-2t9): add verification note 2026-05-18 01:22:44 -04:00
pdftract-2w02.md feat(pdftract-2w02): implement MSRV gate with CI check 2026-05-20 19:03:53 -04:00
pdftract-2x7y.md docs(pdftract-2x7y): add verification note for pdftract-github-release 2026-05-20 19:23:39 -04:00
pdftract-2xei.md docs(pdftract-2xei): add verification note for pdftract-docs-build template 2026-05-20 19:24:14 -04:00
pdftract-2xql8.md test(pdftract-2xql8): add bomb protection detection test 2026-05-23 04:57:32 -04:00
pdftract-2zw.md docs(pdftract-2zw): update verification note with 5th test result 2026-05-23 15:04:05 -04:00
pdftract-3cp3a.md docs(pdftract-3cp3a): add verification note for clippy quality gate 2026-05-23 11:05:07 -04:00
pdftract-3gk5.md feat(pdftract-3gk5): implement SLSA Level 3 provenance generation 2026-05-22 23:27:41 -04:00
pdftract-3gq3.md feat(pdftract-1534): complete Tera-template-driven code generator 2026-05-18 01:55:27 -04:00
pdftract-3i1o.md docs(pdftract-3i1o): add verification note for CI observability implementation 2026-05-23 11:50:59 -04:00
pdftract-3nnqy.md feat(pdftract-3nnqy): implement StreamDecoder trait, filter pipeline, and bomb limit 2026-05-18 00:34:28 -04:00
pdftract-3qz.md docs(pdftract-3qz): add verification note for Phase 2.1 Font Type Detection coordinator 2026-05-23 15:25:23 -04:00
pdftract-3uq.md feat(pdftract-3uq): add font type classifier and subset prefix stripper 2026-05-23 13:42:57 -04:00
pdftract-3uu6v.md feat(pdftract-3uu6v): implement LZWDecode with /EarlyChange parameter 2026-05-22 22:38:31 -04:00
pdftract-4b0z.md docs(pdftract-4b0z): add verification note 2026-05-20 19:06:36 -04:00
pdftract-4hn1.md feat(pdftract-4hn1): use Cow<'static, str> for diagnostic messages 2026-05-17 23:23:38 -04:00
pdftract-4iier.md docs(pdftract-4iier): complete per-profile README documentation 2026-05-18 00:32:06 -04:00
pdftract-4my.md feat(pdftract-4my): implement serve mode integration for full-render feature 2026-05-23 16:28:08 -04:00
pdftract-4nj7y.md docs(pdftract-4nj7y): add Phase 0 CI Infrastructure completion verification 2026-05-23 11:56:28 -04:00
pdftract-4q8cq.md feat(pdftract-4q8cq): implement 14 environment checks for pdftract doctor 2026-05-23 07:05:49 -04:00
pdftract-4sky1.md feat(pdftract-4sky1): implement doctor exit code policy 2026-05-23 07:27:09 -04:00
pdftract-4ymy.md docs(pdftract-4ymy): add verification note for indirect object parser 2026-05-18 01:08:39 -04:00
pdftract-5calf.md feat(pdftract-5calf): implement outline traversal with UTF-16BE BOM detection 2026-05-20 18:49:52 -04:00
pdftract-5cqy.md docs(pdftract-5cqy): add xref stream parser verification note 2026-05-22 15:30:02 -04:00
pdftract-5dng.md docs(pdftract-5dng): add verification note for name object lexer 2026-05-18 02:00:14 -04:00
pdftract-5gs4p.md docs(pdftract-5gs4p): add verification note for cargo-audit quality gate 2026-05-23 11:11:57 -04:00
pdftract-5gtcj.md feat(pdftract-bf-2y2rp): implement lazy stream decoding for PDF extraction 2026-05-23 12:30:26 -04:00
pdftract-5l9m.md docs(pdftract-5l9m): add CI validation script and verification note 2026-05-18 01:05:33 -04:00
pdftract-5mhe8.md docs(pdftract-5mhe8): add verification note for Phase 6.9 cache layer coordinator 2026-05-23 06:36:44 -04:00
pdftract-5og4.md feat(pdftract-5og4): add comprehensive proptest for hybrid xref handler 2026-05-22 17:26:27 -04:00
pdftract-5omc.md feat(pdftract-5omc): implement per-language conformance test runner pattern 2026-05-18 01:32:24 -04:00
pdftract-5r253.md docs(pdftract-5r253): update cargo-deny verification note 2026-05-23 10:57:03 -04:00
pdftract-5rl5o.md feat(pdftract-5rl5o): add cbindgen header generation for pdftract.h 2026-05-23 07:31:53 -04:00
pdftract-5rvp9.md docs(pdftract-5rvp9): add verification note for glibc test leg 2026-05-23 11:43:11 -04:00
pdftract-5s84i.md docs(pdftract-5s84i): add Phase 6.7 MCP Server Mode coordinator verification note 2026-05-23 03:09:55 -04:00
pdftract-5sh.md feat(pdftract-5sh): CIDToGIDMap resolver for CIDFontType2 2026-05-23 15:23:27 -04:00
pdftract-5tmcg.md test(pdftract-5tmcg): add cycle detection test for page tree flattener 2026-05-18 00:38:44 -04:00
pdftract-5u8bp.md feat(pdftract-5u8bp): implement SVG clip generator 2026-05-23 03:43:19 -04:00
pdftract-5upi.md docs(pdftract-5upi): update verification note with additional bug fix 2026-05-20 22:05:17 -04:00
pdftract-5x3u.md docs(pdftract-5x3u): add verification note for pdftract-crates-publish 2026-05-20 19:17:44 -04:00
pdftract-5xq16.md docs(pdftract-5xq16): add verification note 2026-05-23 00:01:12 -04:00
pdftract-5ya9x.md test(pdftract-5ya9x): update memory roundtrip test to 10,000 iterations 2026-05-23 08:13:31 -04:00
pdftract-5z5d8.md fix(pdftract-5z5d8): fix provenance validation script 2026-05-17 23:43:37 -04:00
pdftract-5zm86.md feat(pdftract-5zm86): implement Receipt struct + lite-mode serialization 2026-05-23 03:30:24 -04:00
pdftract-6ah.md docs(pdftract-6ah): add verification note 2026-05-23 14:30:59 -04:00
pdftract-6bxw.md docs(pdftract-6bxw): add ObjStm parser verification note 2026-05-22 15:00:32 -04:00
pdftract-7nav.md docs(pdftract-2bsfc): add verification note 2026-05-17 23:57:00 -04:00
pdftract-8eo1.md feat(pdftract-67tm8): implement MCP stdio transport with integration tests 2026-05-23 00:16:42 -04:00
pdftract-8zbd.md docs(pdftract-8zbd): verify CycloneDX SBOM generation implementation 2026-05-22 23:54:18 -04:00
pdftract-15cs8.md docs(pdftract-15cs8): add verification note for Crypt filter implementation 2026-05-20 18:17:34 -04:00
pdftract-15prh.md docs(pdftract-15prh): add verification note for LRU eviction implementation 2026-05-23 05:25:43 -04:00
pdftract-15pz8.md docs(pdftract-15pz8): add verification note for multi-process safe cache operations 2026-05-23 05:32:45 -04:00
pdftract-16wv.md docs(pdftract-16wv): add Apache NOTICE licensing documentation to CONTRIBUTING.md 2026-05-23 10:59:19 -04:00
pdftract-23k1.md docs(pdftract-23k1): add verification note for pdftract-py-ci stub 2026-05-20 18:43:29 -04:00
pdftract-24kut.md feat(pdftract-24kut): enforce MCP transport mutual exclusion at CLI parse 2026-05-23 00:41:47 -04:00
pdftract-30n.md docs(pdftract-30n): add verification note for test-matrix DAG 2026-05-23 11:48:19 -04:00
pdftract-32qkr.md docs(pdftract-dejqs): add verification note for per-page resource inheritance 2026-05-20 22:35:43 -04:00
pdftract-33g.md docs(pdftract-33g): update verification note with micro-benchmark PASS 2026-05-23 14:16:19 -04:00
pdftract-33v.md feat(pdftract-33v): add property tests and nightly fuzz job 2026-05-20 19:18:03 -04:00
pdftract-36wlt.md feat(pdftract-36wlt): implement verify-receipt subcommand + verifier protocol 2026-05-23 04:00:15 -04:00
pdftract-39g4j.md feat(pdftract-39g4j): implement --receipts CLI flag + ExtractionOptions threading 2026-05-23 04:36:27 -04:00
pdftract-46lw.md docs(pdftract-46lw): add forward_scan_xref verification note 2026-05-20 18:52:07 -04:00
pdftract-49f8.md docs(pdftract-49f8): finalize Cargo.lock policy with weekly Renovate schedule 2026-05-20 18:22:03 -04:00
pdftract-58kz.md docs(pdftract-58kz): add verification note 2026-05-20 19:39:55 -04:00
pdftract-59zz.md feat(pdftract-59zz): implement MCP bearer token ingress channels and TH-03 enforcement 2026-05-18 02:47:54 -04:00
pdftract-60h.md docs(pdftract-60h): update verification note with detailed acceptance criteria 2026-05-18 01:27:15 -04:00
pdftract-67tm8.md feat(pdftract-67tm8): implement MCP stdio transport with integration tests 2026-05-23 00:16:42 -04:00
pdftract-68pe.md docs(pdftract-68pe): update verification note with SLSA attestation 2026-05-20 19:35:51 -04:00
pdftract-147a.md docs(pdftract-147a): author SDK contract specification 2026-05-17 23:13:55 -04:00
pdftract-154mz.md feat(pdftract-154mz): fix canonicalization module compilation 2026-05-20 19:24:38 -04:00
pdftract-172kr.md docs(pdftract-172kr): add verification note for filesystem layout 2026-05-23 04:42:00 -04:00
pdftract-220e.md docs(pdftract-220e): add verification note for pdftract-build-binaries template 2026-05-20 19:08:02 -04:00
pdftract-245s.md docs(pdftract-245s): add verification note for pdftract-py-ci WorkflowTemplate 2026-05-20 19:12:56 -04:00
pdftract-279.md feat(pdftract-279): stand up Cargo workspace with three member crates 2026-05-20 18:09:34 -04:00
pdftract-347.md feat(pdftract-347): implement hybrid grid-cell evaluator 2026-05-23 13:49:14 -04:00
pdftract-375xa.md feat(pdftract-375xa): implement cache key construction 2026-05-23 04:50:33 -04:00
pdftract-469s.md feat(pdftract-59zz): implement MCP bearer token ingress channels and TH-03 enforcement 2026-05-18 02:47:54 -04:00
pdftract-1527.md test(pdftract-1527): add shared SDK conformance suite with 32 test cases 2026-05-18 01:17:42 -04:00
pdftract-1534.md feat(pdftract-1534): complete Tera-template-driven code generator 2026-05-18 01:48:27 -04:00
pdftract-6696g.md docs(pdftract-6696g): add verification note for --root path-traversal protection 2026-05-23 02:29:26 -04:00
pdftract-aawrz.md docs(pdftract-aawrz): add LICENSE-MIT and LICENSE-APACHE files 2026-05-23 10:36:28 -04:00
pdftract-byq.md docs(pdftract-byq): add verification note for Phase 5.2.1 direct compositing 2026-05-23 15:48:54 -04:00
pdftract-cv4.md docs(pdftract-cv4): add verification note 2026-05-23 15:17:26 -04:00
pdftract-dejqs.md docs(pdftract-dejqs): update verification note with 2026-05-22 test results 2026-05-22 19:21:39 -04:00
pdftract-g0ro2.md feat(pdftract-g0ro2): implement MCP HTTP+SSE transport with integration tests 2026-05-23 00:35:14 -04:00
pdftract-l993m.md feat(pdftract-l993m): complete per-language Tera template scaffolding 2026-05-18 02:01:46 -04:00
pdftract-q15sh.md feat(pdftract-q15sh): implement v1 fingerprint algorithm 2026-05-18 01:02:30 -04:00
pdftract-uyhq7.md feat(pdftract-uyhq7): scaffold libpdftract cdylib+staticlib crate 2026-05-23 07:29:47 -04:00
pdftract-zltqd.md docs(pdftract-zltqd): add verification note for bearer-token auth 2026-05-23 03:09:55 -04:00