📝 ISE_Checkpoint.md

ISE Project — Checkpoint

Paste this whole file into a fresh chat to resume. It reflects state as of the end of the PDF-indexing/search work session (PDFIndexer.py two-engine union + resume/locking, PDFsearch.py filename/topic search, orphan_check.py, cron cleanup). Older ISE post-search work (search.py/IndexBuilder.py/ RankingEngine.py) is included for completeness but was not touched this session — treat those as stable/working unless told otherwise.

Environment: live box is CentOS 6.10, Python 3.6.3, 2GB RAM. This OS's age is the root cause of most dependency fights below — expect the same pattern (no wheel, needs Rust, needs Python 3.8+) with any new tool.


File / component table

File Location Status Use it?
PDFIndexer.py /var/www/html/The_ISE_Project/ Rebuilt this session: two-engine (PyMuPDF+pypdf) union extraction, --fast mode, checkpointing, resume-by-default, --start-at, single-instance file lock Yes — current, deployed, working
PDFsearch.py /var/www/html/The_ISE_Project/ Rebuilt this session: adds filename/topic search merged with content search, live progress Yes — current, deployed, working
orphan_check.py /var/www/html/The_ISE_Project/ New this session. Weekly cron job, avatar-excluded, diffs against orphan_state.json Yes — deployed, in crontab
word_index_pdf.json / pdf_store.json ISE_Data/ Rebuilt from scratch with the new two-engine extractor; 497/676 PDFs indexed, 179 skipped (genuinely image-only, confirmed) Yes — current on disk
orphan_state.json ISE_Data/ State file for orphan_check.py, auto-managed Don't touch by hand
all_orphans.py /var/www/html/The_ISE_Project/ Old one-off diagnostic (no avatar filter, no diffing) No — superseded by orphan_check.py, removed from crontab, left on disk unused
search.py, IndexBuilder.py, IndexLookup.py, Tokeniser.py, RankingEngine.py, ResultFormatter.py, ise_trace.py /var/www/html/The_ISE_Project/ Older ISE post-search engine (ISE 5.1). Not touched this session. Yes — assumed stable; re-verify only if something seems broken
qf_search_bridge.php, qf_PDFsearch_bridge.php SMF theme/Sources PHP bridges wiring the dropdown search-engine options to the Python scripts Yes — working as of ISE 5.1
Search.php, index_template.php (SMF core, patched) SMF Dropdown values 'ISE' / 'ISEpdf' wired in Yes — working
pdfplumber tried, rejected Needs Rust to build cryptography from source on this box; no working path found No
pypdfium2 tried, rejected No compatible wheel at any version for this platform No
tesseract 3.04 (EPEL) / ocrmypdf 12.7.2 tried, parked ocrmypdf requires tesseract ≥4.0 (dead end); tesseract 3.04 direct-CLI use never actually tested Parked — user said "I don't need OCR", not pursuing

Verified facts — don't re-check


Open items (decisions, not blockers)


Next actual action

None queued — user explicitly paused ISE work this session ("no more ISE!"). When resumed, the next actual action is: replicate the PDFIndexer.py/PDFsearch.py two-engine-union + locking/resume work on the dev box, using this session's saved transcript as the reference.