Commit graph

1 commit

Author SHA1 Message Date
jedarden
8abf01cea3 feat(pdftract-4q8cq): implement 14 environment checks for pdftract doctor
Implement all 14 environment checks for the `pdftract doctor` subcommand.
Each check returns a CheckResult with status (OK/WARN/FAIL/NotApplicable)
and a human-readable detail message.

Checks implemented:
- pdftract binary (version, git SHA, compiled features)
- tesseract install (version check: >=5 OK, ==4 WARN, <=3 FAIL)
- tesseract languages (eng + requested langs present)
- leptonica install (>=1.79 OK, older WARN, not found FAIL)
- libtiff (pkg-config check with ldconfig fallback)
- libopenjp2 (pkg-config check with ldconfig fallback)
- pdfium native lib (version >=6555 OK, older WARN, not found FAIL)
- network reachability (HEAD example.com with 5s timeout)
- cache directory (writable, free space >=1 GiB, layout version)
- profile search path (YAML parse, PROFILE_SECRETS_FORBIDDEN detection)
- ulimit -n (>=1024 OK, 512-1024 WARN, <512 FAIL)
- available RAM (>=256 MiB OK, 128-256 WARN, <128 FAIL)
- system locale (UTF-8 OK, non-UTF-8 WARN, unset FAIL)
- temp dir writable (writable + free space >=100 MiB)

Core module with Check trait, CheckResult, CheckStatus, DoctorCtx,
DoctorFeatures, and panic-safe run_check_safe wrapper.

Build script injects GIT_SHA and COMPILED_FEATURES at compile time.

All checks feature-gated appropriately (ocr, full-render, remote, profiles).

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-05-23 06:47:07 -04:00