diff --git a/.gitignore b/.gitignore index 3e44073..2beeeeb 100644 --- a/.gitignore +++ b/.gitignore @@ -114,6 +114,11 @@ TODO.txt DONE.md DONE.txt ERLEDIGT.txt +BEFUNDE.md +MARKETING-LOG.txt +TASKPLAN_STATUS_*.md +_after-care/ + # Node / Web / Test Caches node_modules/ diff --git a/BEFUNDE.md b/BEFUNDE.md deleted file mode 100644 index c4849bb..0000000 --- a/BEFUNDE.md +++ /dev/null @@ -1,22 +0,0 @@ -# Offene Befunde — CodeBox - -**Erfasst am:** 2026-08-14 -**Rolle:** MAINTAINER / DEVELOPER (Antigravity Multi-Platform Loop) - ---- - -### Befund 1: Phase 4 Abschluss & Plugin-System (Erledigt) - -- **Fundort:** `features/plugin_manager.py`, `languages/declarative.py`, `ui/plugins_dialog.py`, `ui/shortcuts_dialog.py` -- **Beleg:** - Vollständiges deklaratives JSON/Python-Plugin-System implementiert, dynamische Registry mit Listener-Pattern angebunden, Shortcuts- und Plugins-Dialoge in GUI integriert, 95/95 Tests 100% bestanden (1 übersprungen). -- **Status:** Erledigt und verifiziert. - ---- - -### Befund 2: Instandhaltung Steuerdatei `llms.txt` & Dokumentation (Erledigt) - -- **Fundort:** `llms.txt`, `README.md`, `README_de.md`, `CHANGELOG.md`, `DEVELOPMENT_PLAN.md` -- **Beleg:** - Alle Dokumentationsdateien, Badges und Steuerdateien auf Stand 2026-08-14 synchronisiert. -- **Status:** Erledigt und verifiziert. diff --git a/CHANGELOG.md b/CHANGELOG.md index 7acbd88..ebf7a34 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,11 @@ Alle wesentlichen Änderungen an CodeBox werden hier dokumentiert. ## [Unreleased] +### Repository-Hygiene & interne Dateien [2026-09-28] +- **Interne Dateien geschuetzt (`.gitignore`):** `BEFUNDE.md`, `MARKETING-LOG.txt`, `TASKPLAN_STATUS_*.md` und `_after-care/` in `.gitignore` aufgenommen. +- **Git-Tracking bereinigt:** `BEFUNDE.md` aus dem Git-Tracking entfernt (`git rm --cached`), bleibt lokal erhalten. +- **Vertragstests (`tests/test_metadata.py`):** `test_gitignore_internal_file_hygiene` hinzugefuegt (T-20260926-434768981). + ### Fixed (2026-10-02: Editor-Dateien bei Speicherfehlern erhalten) - Editor-Tabs kodieren UTF-8 vor dem Öffnen der Ausgabe und verwenden QSaveFile ohne direkten Schreib-Fallback. Teilwrites und fehlgeschlagene Commits überschreiben den bisherigen Code nicht. - Ungültiges UTF-8 wird als Speicherfehler gemeldet; geänderte Dokumente und geteilte Ansichten werden erst nach erfolgreichem Commit als unverändert markiert. diff --git a/tests/test_metadata.py b/tests/test_metadata.py index 8127578..2ab3b1e 100644 --- a/tests/test_metadata.py +++ b/tests/test_metadata.py @@ -294,6 +294,13 @@ def test_bundled_plugins_valid_json() -> None: assert isinstance(data["auto_close_pairs"], dict) +def test_gitignore_internal_file_hygiene() -> None: + """Verify internal maintenance files are protected in .gitignore.""" + gitignore = (PROJECT_ROOT / ".gitignore").read_text(encoding="utf-8") + for pattern in ["BEFUNDE.md", "MARKETING-LOG.txt", "TODO.md", "DONE.md", "DECISIONS.md"]: + assert pattern in gitignore, f"{pattern} must be ignored in .gitignore" + + def test_welcome_and_stale_workflow_hardening() -> None: """Verify welcome.yml and stale.yml contain least-privilege permissions, concurrency, and timeouts.""" welcome_path = PROJECT_ROOT / ".github" / "workflows" / "welcome.yml"