# PROGRESS.md This file records current progress for agents. Read it before starting work, then update it after meaningful changes. Completed historical work is archived in `docs/WORKARCHIVE.md`. ## Current Status - Project direction is documented in `PRD.md`, `ARCHITECTURE.md`, `AGENTS.md`, and `docs/KNOWLEDGEBASE.md`. - MinerU 3.1.0 is fixed as the only conversion engine. - The converter currently includes path planning, project-owned records, metadata, direct local MinerU adapter boundary, Obsidian Markdown normalization, local quality checks, report rendering, conversion orchestration, `pdf2md convert`, `pdf2md doctor`, local MathJax render checking, release-gate tests, and opt-in pre-conversion PDF chunking. - `docs/V1IMPLEMENTATIONPLAN.md` defines the v1 implementation sequence. - `docs/Sprints/` contains completed sprint contracts through Sprint 10. - `docs/WORKARCHIVE.md` contains completed sprint history, historical verification results, runtime setup notes, and sample conversion evidence. - `samples/` exists locally as fixture context. - `outputs/` is ignored and contains local generated conversion outputs. ## Environment Notes - OS/workspace: Windows PowerShell in `C:\git\PDFToMD`. - Python target: 3.12. - Local project Python observed: 3.12.13 in `.venv`. - `uv` is installed per-user at `C:\Users\baram\.local\bin`. - Target GPU documented for the original project setup: NVIDIA GTX 1070 Ti 8GB. - Current PC GPU observed by `doctor`: NVIDIA GeForce RTX 4080 SUPER 16GB. - Default conversion device: `cuda:0`. - MinerU execution mode: direct local `mineru` CLI only. - Strict-local allows MinerU 3.1.0's CLI-internal temporary local `mineru-api` when the CLI runs without `--api-url`. - Strict-local prohibits `--api-url`, remote APIs, router mode, HTTP client backends, and remote OpenAI-compatible backends. - Current base `.venv` has project fast-test dependencies from `uv sync`. - Current `pdf2md doctor` status is FAIL because MinerU CLI is not installed on this PC. PyTorch, local MinerU model/cache paths, and local MathJax package setup are also not present yet. ## Recent Completed Work - Archived completed sprint and setup history into `docs/WORKARCHIVE.md`. - Added `docs/WORKARCHIVE.md` references to `AGENTS.md`, `PLAN.md`, `docs/V1IMPLEMENTATIONPLAN.md`, relevant `.codex/agents/*.toml`, `.codex/commands/*.md`, and project skills. - Sprint 10 is implemented with `pypdf>=6.10.2,<7`, `src/pdf2md/pdf_splitter.py`, `--chunk-pages [PAGES]`, chunk-aware conversion orchestration, temporary chunk cleanup, and chunk report context. - `--chunk-pages` is opt-in; when present without a value it uses 20 pages. - `convert_pdf()` returns `BatchConversionResult` when `chunk_pages` is set and keeps returning `ConversionResult` when chunking is unset. - Converted `samples/FourNodeQuadrilateralShellElementMITC4.pdf` with `MINERU_MODEL_SOURCE=local` and default `--gpu cuda:0`; output was written to ignored `outputs/FourNodeQuadrilateralShellElementMITC4/`. - The FourNode sample conversion report status was `success`: 7 pages, 22 assets, 38 inline formulas, 16 display formulas, 0 math render errors, and 0 warnings. - Installed uv `0.11.12` at `C:\Users\baram\.local\bin`, installed uv-managed CPython `3.12.13`, created `.venv`, and ran `uv sync`. - Verified base project environment with `uv run pytest`: 163 passed, 1 skipped. ## In Progress - No active implementation chunk. ## Blockers - Real local MinerU conversion is blocked until MinerU 3.1.0, CUDA-enabled PyTorch, local models/cache, and optional MathJax package setup are installed on this PC. ## Next Actions 1. Install local MinerU 3.1.0 runtime stack on this PC if real conversions are needed. 2. Install optional local MathJax dependencies with `npm install` if formula renderability checks should run. 3. Preserve strict-local runtime behavior: use local model paths, direct CLI execution, and no user-specified API or remote backend.