# Python 3.14 Compatibility and Windows Auto-Start **Date:** 2025-12-12 **Project:** lego-instructions-manager **Status:** resolved **Tags:** python-3.14, dependencies, pymupdf, pillow, sqlalchemy, windows, task-scheduler, waitress ## Context After the v1.5.0 initial commit (2025-12-09), installing on the Windows host (`E:\LIM`, Python 3.14) failed: several packages had no 3.14 wheels at the pinned versions and SQLAlchemy raised a `TypingOnly` assertion error at import. Jess also wanted the app to start automatically with Windows. ## Key Decisions - **Raise minimums rather than downgrade Python:** PyMuPDF `>=1.24.0`, Pillow `>=11.0.0`, SQLAlchemy `>=2.0.35` (the `TypingOnly` fix). - **Flexible version ranges instead of exact pins** — fewer breakages on new Python releases; `requirements-flexible.txt` kept alongside `requirements.txt`. - **Task Scheduler + batch file for auto-start** rather than a Windows service — simpler to set up and debug. - **waitress** as the WSGI server on Windows (gunicorn doesn't run on Windows). ## Technical Details - Install path: `E:\LIM`. - Startup: `start_lim.bat`; `setup_startup.bat` registers the scheduled task. - `PYTHON_314_COMPATIBILITY.md` — package/version matrix. ## Code Changes - `requirements.txt` / `requirements-flexible.txt` — updated minimums and ranges. - `start_lim.bat`, `setup_startup.bat`, `STARTUP_README.md` — new. - `PYTHON_314_COMPATIBILITY.md` — new. ## Open Questions / Next Steps - Repo root contains stray files named `0.6.0`, `1.0.0`, `1.2.0`, `1.23.0`, `2.31.0`, `3.0.0`, `3.1.0` — almost certainly created by running `pip install package>=x.y.z` unquoted in cmd, where `>` redirects output to a file. Safe to delete; quote version specifiers in future (`pip install "Pillow>=11.0.0"`). ## Artifacts - `c1d6789` — Fix SQLAlchemy version for Python 3.14 - `9f55b1e` — Update all dependencies for Python 3.14 with flexible version ranges - `0ec5f27` — Add Windows Task Scheduler setup script