Regenerated cli-reference.md with updated autogen comment pointing to
the correct xtask manifest path. The clap-markdown generator already
adds the '# CLI Reference' header, so removed the duplicate.
Closes pdftract-1j0f8.
The gen-cli-reference binary was accumulating extra blank lines after
the <!-- AUTOGEN END --> marker on each regeneration because it
preserved all content after the marker (including leading whitespace)
and then added its own newlines.
Fix: Trim leading whitespace from hand-curated content before appending.
Also regenerated cli-reference.md to remove accumulated blank lines.
Closes pdftract-1j0f8
- Regenerated CLI reference using the CLI crate binary (gen-cli-reference)
- Updated all subcommands to use clap-markdown auto-generation format
- Preserved hand-curated content after AUTOGEN END marker
- CI gate verifies docs stay in sync with CLI changes
Acceptance criteria verified:
- cli-reference.md covers all subcommands (extract, classify, profiles, serve, mcp, inspect, grep, cache, doctor, verify-receipt, hash, validate, conformance)
- Auto-gen compiles and runs: cargo run --bin gen-cli-reference
- CI gate in pdftract-ci.yaml checks for stale docs
- mdBook builds without errors
The indent trigger was using .abs() which fired on both increased indent
(non-indented → indented) AND decreased indent (indented → non-indented).
This caused drop-cap style paragraphs (indented first line, flush-left
continuation) to incorrectly split into two blocks.
Per plan Phase 4.4 heuristic #2, indent change should only trigger when the
current line is MORE indented (to the right, larger x0) than the block
average - i.e., a new paragraph starting after non-indented text. It should
NOT trigger for decreased indent (first line indented, rest flush-left).
Fix: Remove .abs() and only check if line_x0 - block_avg_x0 > threshold.
Tests:
- test_indented_first_line_new_block: PASS (non-indented → indented splits)
- test_indented_first_line_of_paragraph_not_split: PASS (drop cap stays together)
- All 179 line module tests: PASS
Fix two compilation errors at lines 584 and 658 where code was calling
.code on &String diagnostics. Replaced d.code.to_string() with direct
Vec<String> clone since diagnostics is already Vec<String>.
Accepts criteria:
- cargo check -p pdftract-cli emits no 'no field code' errors
- serve.rs compiles cleanly
- Add worked example to Glyph struct showing all 11 fields
- Add worked example to Span struct showing all 10 fields
- Examples use rust,no_run for internal dependencies
- cargo doc passes with docs.rs feature set
- Verification note added at notes/pdftract-3eohy.md
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Update setupTooltips to display data-bbox, data-block-ref, data-mcid, and data-reading-idx
- These attributes are already emitted by spans.rs but weren't being shown in tooltip
- Tooltip now shows complete span information on hover
References pdftract-3mdb7 acceptance criteria:
- Tooltip shows the data-* attrs as formatted rows
Bead-Id: pdftract-145s8