From a20d521c546ec1292d6d2417396dbafb15f28f7e Mon Sep 17 00:00:00 2001 From: Lukas Geiger Date: Sat, 26 Sep 2026 14:55:25 +0200 Subject: [PATCH] chore(hygiene): untrack agent-internal BEFUNDE.md/TASKPLAN_STATUS_*.md T-20260926-510472849 (repo hygiene rollout, wave 1). Both classes are agent working notes with no test/doc dependency (verified via repo-wide grep). Untracked (files stay on disk locally, gitignored), nothing was deleted. NOT touched in this pass: MARKETING-LOG.txt (deliberate public artifact per team-lead decision, pending user confirmation) and PORTIERUNGSPLAN.md (GITHUB-POLICY.md SS3 lists it as forbidden, but tests/test_strange_new_worlds_contract.py::test_snw_profiler_01_... reads it directly from the repo root with a host-scoped OneDrive fallback that wouldn't resolve in CI either -- untracking it here would break that test; needs the test's content-source rebuilt first, out of scope for this pass -- flagging, not silently fixing or leaving). Verified: full pytest suite 205 passed. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01PTbvD41MCVmnQWaobvHfCk --- .gitignore | 4 ++ BEFUNDE.md | 23 ---------- ...TUS_2026-09-17_1380-tasksolver-attempt1.md | 42 ------------------- ...TUS_2026-09-17_1380-tasksolver-attempt2.md | 37 ---------------- ...026-09-17_1380-tasksolver-attempt3-SKIP.md | 42 ------------------- 5 files changed, 4 insertions(+), 144 deletions(-) delete mode 100644 BEFUNDE.md delete mode 100644 TASKPLAN_STATUS_2026-09-17_1380-tasksolver-attempt1.md delete mode 100644 TASKPLAN_STATUS_2026-09-17_1380-tasksolver-attempt2.md delete mode 100644 TASKPLAN_STATUS_2026-09-17_1380-tasksolver-attempt3-SKIP.md diff --git a/.gitignore b/.gitignore index 679f5e5..f1ef96a 100644 --- a/.gitignore +++ b/.gitignore @@ -134,3 +134,7 @@ Feature_Analyse_ProFiler.md Konzept_AutoSync_Watchdog.md UI_Konzept_Batch.md docs/superpowers/ +--- +# Interne Agenten-Arbeitsnotizen (GITHUB-POLICY.md SS3, T-20260926-510472849) +BEFUNDE.md +TASKPLAN_STATUS_*.md diff --git a/BEFUNDE.md b/BEFUNDE.md deleted file mode 100644 index 4bd3a2a..0000000 --- a/BEFUNDE.md +++ /dev/null @@ -1,23 +0,0 @@ -# Offene Befunde — ProFiler - -**Erfasst am:** 2026-07-28 -**Rolle:** MAINTAINER (TaskMaster Loop) - ---- - -### Befund 1: Arbeitskopie & Git-Status - -- **Fundort:** Repository `C:\_Local_DEV\repos\ProFiler` (Branch `master`). -- **Beleg:** - `git status` ist 100% sauber (`nothing to commit, working tree clean`). -- **Status:** Keine uncommitteden Dateien oder offenen Branch-Abweichungen. - ---- - -### Befund 2: Testsuiten-Status & Instandhaltung - -- **Fundort:** `tests/` & `llms.txt` -- **Beleg:** - 112 Unit-Tests und 18 Subtests bestanden 100% grün (`python -m pytest -q`). -- **Maßnahme:** - `llms.txt` im MAINTAINER-Lauf vom 2026-07-28 auf `Last-checked: 2026-07-28` aktualisiert. diff --git a/TASKPLAN_STATUS_2026-09-17_1380-tasksolver-attempt1.md b/TASKPLAN_STATUS_2026-09-17_1380-tasksolver-attempt1.md deleted file mode 100644 index 07efa47..0000000 --- a/TASKPLAN_STATUS_2026-09-17_1380-tasksolver-attempt1.md +++ /dev/null @@ -1,42 +0,0 @@ -# TASKPLAN TASKSOLVER – ProFiler Task 1380 - -Datum: 2026-09-17 -Rolle: TASKSOLVER / tasksolver-codex -Projekt: `C:/_Local_DEV/repos/ProFiler` -Task: `[ProFiler] Poppler- und Tesseract-Bündelung für OCR/PDF-Prozesse verifizieren` -Selektor: Exit 0, Deep/Medium, Rechte `read/create/modify` -Versuch: 1 über die laufende TASKSOLVER-Fortsetzung - -## Ergebnis - -Der Versuch ist fehlgeschlagen und bleibt offen. Es gibt keinen belastbaren Nachweis für eine Poppler-/Tesseract-Bündelung im PyInstaller- oder MSIX-Paket. - -- `build_exe.bat` enthält nur `--add-data "%PROJECT_ROOT%\locales;locales"`; es gibt keinen `--add-binary`-Schritt für Poppler oder Tesseract. -- Im Repository fehlen Runtime-Verzeichnisse für `tesseract`, `poppler` oder vergleichbare Vendor-Bundles. -- `C:\_Local_DEV\venvs\profiler_build` und `C:\_Local_DEV\codex_build\profiler` existieren nicht; ein Release-Build ist damit nicht reproduzierbar vorhanden. -- Python-Abhängigkeiten (`pdf2image`, `pytesseract`, `PyMuPDF`, `pypdf`) sind importierbar. -- `pdftoppm.exe` und `pdfinfo.exe` werden nur aus `C:\Users\lukas\AppData\Local\Programs\MiKTeX\miktex\bin\x64` gefunden; das ist kein Projektbundle. -- `tesseract.exe` ist weder im PATH noch in den geprüften lokalen Installationspfaden vorhanden. - -## Tatsächlicher OCR/PDF-Smoke - -Ein synthetisches einseitiges PDF wurde lokal erzeugt. Der PDF-Render mit dem vorhandenen Poppler bestand (`1` Seite). Der anschließende reale Aufruf `PDFUtils.apply_ocr_to_pdf(..., "eng")` scheiterte erwartungsgemäß mit: - -`OCR fehlgeschlagen: tesseract is not installed or it's not in your PATH.` - -Damit ist nur der Poppler-Renderpfad teilweise beobachtet; ein Installations-/Paket-OCR-Smoke ist nicht bestanden. - -## Nebenprüfungen - -- Pytest: `201 passed`. -- Ruff: `All checks passed!`. -- `source_platform_smoke.py`: `6/6 Checks bestanden`. -- `scripts/check_store_readiness.py`: `5/5 Checks OK`; dieser Audit deckt Icons, Metadaten, Listing und Screenshots ab, nicht die externe OCR-Binary-Bündelung. -- Git-Arbeitsbaum vor dem Bericht sauber; `HEAD=origin/master=5016595f6345af29b70a9d4133430aa366d6a4f`. - -## TASKPLAN-Status - -- Keine Binaries erfunden, heruntergeladen oder in das Repository kopiert. -- Kein PyInstaller-/MSIX-Erfolg behauptet. -- Task 1380 bleibt offen. Dies ist Versuch 1; kein Skip und kein Projekt-Cursor-Sprung nach dem ersten Fehlschlag. -- Für einen späteren Versuch benötigt das Projekt freigegebene, lizenzierte Runtime-Verzeichnisse mit `tesseract.exe`, `tessdata` sowie Poppler-Executables/DLLs und einen reproduzierbaren Build-/MSIX-Lauf. diff --git a/TASKPLAN_STATUS_2026-09-17_1380-tasksolver-attempt2.md b/TASKPLAN_STATUS_2026-09-17_1380-tasksolver-attempt2.md deleted file mode 100644 index 8f7802e..0000000 --- a/TASKPLAN_STATUS_2026-09-17_1380-tasksolver-attempt2.md +++ /dev/null @@ -1,37 +0,0 @@ -# TASKPLAN TASKSOLVER – ProFiler Task 1380 - -Datum: 2026-09-17 -Rolle: TASKSOLVER / tasksolver-codex -Projekt: `C:/_Local_DEV/repos/ProFiler` -Task: `[ProFiler] Poppler- und Tesseract-Bündelung für OCR/PDF-Prozesse verifizieren` -Versuch: 2 über die laufende TASKSOLVER-Fortsetzung - -## Fortschritt - -Die fehlende Integrationskante wurde implementiert, ohne Runtime-Binaries zu erfinden oder herunterzuladen: - -- `ocr_runtime.py` löst bei PyInstaller den expliziten Layoutvertrag `runtime/tesseract/` und `runtime/poppler/` auf und konfiguriert `pytesseract` sowie `pdf2image` nur bei vorhandenen Dateien. -- `scripts/write_ocr_bundle_args.py` erzeugt deterministische `--add-binary`-/`--add-data`-Argumente für Executables, DLLs und `tessdata` und verweigert unvollständige Bundles. -- `build_exe.bat` prüft die vier erforderlichen Runtime-Gates vor Venv-Erstellung/PyInstaller und beendet sich fail-closed. -- Vier neue Contract-Tests schützen Auflösung, Bundle-Argumente und den unvollständigen Zustand. - -Commits: - -- `4db39a4` – erster Prüfbericht. -- `9f4ef90` – `build: add fail-closed OCR runtime bundling contract`. - -## Verifikation - -- Pytest: `205 passed`. -- Ruff: `All checks passed!`. -- `git diff --check`: PASS. -- `cmd /c build_exe.bat` aus sauberem Checkout: Exit 1 vor PyInstaller mit: - `OCR-Bundle fehlt: C:\_Local_DEV\repos\ProFiler\runtime\tesseract\tesseract.exe`. -- Kein `runtime/`-Verzeichnis, kein Build-Venv, kein Build-Output und keine OCR-Binary im MSIX-Staging vorhanden. -- `HEAD=9f4ef90a60ebb9442b7c58714e4e7fd6d028d270`; Remote `origin/master=5016595f6345af29b70a9d4133430aa366d6a4f6`. - -## Offen / TASKPLAN - -- Ein echter PyInstaller-/MSIX-Build mit gebündeltem Poppler/Tesseract und ein Installations-OCR-Smoke bleiben unbelegt, weil die freigegebenen lizenzierten Runtime-Dateien fehlen. -- Task 1380 bleibt offen. Dies ist Versuch 2; noch kein Skip und kein Projekt-Cursor-Sprung. -- Nächster sinnvoller Gate: Runtime-Verzeichnis mit `tesseract.exe`, `tessdata`, `pdftoppm.exe`, `pdfinfo.exe` und den zugehörigen DLLs bereitstellen und Lizenz-/Hash-Readback durchführen. diff --git a/TASKPLAN_STATUS_2026-09-17_1380-tasksolver-attempt3-SKIP.md b/TASKPLAN_STATUS_2026-09-17_1380-tasksolver-attempt3-SKIP.md deleted file mode 100644 index f61c598..0000000 --- a/TASKPLAN_STATUS_2026-09-17_1380-tasksolver-attempt3-SKIP.md +++ /dev/null @@ -1,42 +0,0 @@ -# TASKPLAN TASKSOLVER – ProFiler Task 1380 – SKIP - -Datum: 2026-09-17 -Rolle: TASKSOLVER / tasksolver-codex -Projekt: `C:/_Local_DEV/repos/ProFiler` -Task: `[ProFiler] Poppler- und Tesseract-Bündelung für OCR/PDF-Prozesse verifizieren` -Versuch: 3 über die laufende TASKSOLVER-Fortsetzung - -## SKIP-Grund - -`SKIP_MISSING_AUTHORIZED_OCR_RUNTIME`: Die für einen belastbaren PyInstaller-/MSIX-Nachweis erforderlichen freigegebenen, lizenzierten Runtime-Dateien sind nicht erreichbar. Es fehlen: - -- `runtime/tesseract/tesseract.exe` -- `runtime/tesseract/tessdata/` -- `runtime/poppler/pdftoppm.exe` -- `runtime/poppler/pdfinfo.exe` - -Das System stellt nur `pdftoppm.exe`/`pdfinfo.exe` aus einer MiKTeX-Installation bereit; `tesseract.exe` ist nicht vorhanden. Ein Ersatz durch Systemdateien, Download oder erfundene Asset-/Lizenzdaten wäre nicht autorisiert. - -## Was nach drei Versuchen belegt ist - -- Versuch 1: Bestandsprüfung und echter synthetischer PDF-Smoke; Poppler rendert 1 Seite, OCR scheitert wegen fehlendem Tesseract. -- Versuch 2: `ocr_runtime.py`, `scripts/write_ocr_bundle_args.py` und fail-closed Gates in `build_exe.bat` ergänzt; `205/205` Pytests, Ruff und Bundle-Contract-Tests grün. -- Versuch 3: sauberer `cmd /c build_exe.bat`-Aufruf beendet vor PyInstaller mit Exit 1 und meldet das fehlende `tesseract.exe`. -- Store-Readiness `5/5` ist grün, belegt aber keine OCR-Binary-Bündelung. - -Vorberichte: - -- `TASKPLAN_STATUS_2026-09-17_1380-tasksolver-attempt1.md`, SHA-256 `D8B4A634896C6CC0983C6247CED681701AF038111F3E55CC2C4B6BE3347C6D7D`. -- `TASKPLAN_STATUS_2026-09-17_1380-tasksolver-attempt2.md`, SHA-256 `3894202C8F0A2942B3DC0AFDFC15705539BAB2B26E28B249FE9D4F32F85BD9C6`. - -## TASKPLAN-Aktion - -- Task 1380 bleibt absichtlich offen. -- Nach diesem dritten Fehlschlag wird ausschließlich Task 1380 mit `python -m taskplan skip --role tasksolver --task 1380` ans Ende gereiht. -- Der Projektcursor wird dadurch weitergesetzt; es wird kein Erfolg und kein fertiges PyInstaller-/MSIX-Paket behauptet. -- Nächster Gate nach Bereitstellung der Runtime: Lizenz-/Hash-Readback, PyInstaller-Build, Bundle-Inspektion, OCR-Installations-Smoke und erst danach MSIX-/WACK-Prüfung. - -Ausführungsnachweis: - -- `python -m taskplan skip --role tasksolver --task 1380` beendet mit Exit 0 und reiht Task 1380 ans Ende. -- Direkter Taskplan-Readback: `status=open`, `done_at=null`, `assigned_to=""`; der Task bleibt offen.