From 64bdb9f7a0c98348eb300be78ae35b5086a02e8f Mon Sep 17 00:00:00 2001
From: lukisch <55554266+lukisch@users.noreply.github.com>
Date: Mon, 2 Nov 2026 06:45:33 +0100
Subject: [PATCH] docs(marketing): Pfad B discoverability, real test count
synchronization (198 passed | 100% green), Level 1 SBOM Stand 2026-11-02
re-audit & contract tests (v1.1.6 frozen) [G 2026-11-02]
---
CHANGELOG.md | 8 +++++
README.md | 8 +++--
README_de.md | 8 +++--
THIRD_PARTY_LICENSES.md | 2 +-
THIRD_PARTY_LICENSES.txt | 2 +-
llms.txt | 4 +--
tests/test_security_license_contract.py | 2 +-
tests/test_version_metadata.py | 46 ++++++++++++++++++-------
8 files changed, 57 insertions(+), 23 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index dae443b..15bb9ce 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,14 @@ All notable changes to this project are documented here.
## Unreleased
+- Discoverability, Real-Measurement Test Badges (198 passed | 100% green), Level 1 SBOM Stand 2026-11-02 Re-Audit & Contract Test Expansion (GITHUBBOT_ONE_REPO_MARKETING_AND_DESIGN / Pfad B) on 2026-11-02:
+ - Preserved strict version freeze discipline per T-20260920-167562623 (version 1.1.6 unchanged across all runtime manifests, zero version bump).
+ - Synchronized real-measurement test badges across README.md and README_de.md: updated pytest badge to 198 passed | 100% green (198 bestanden | 100% grün), audit recency to 2026--11--02, and third-party license audit to (2026--11--02).
+ - Enriched bilingual documentation (Sections 8, 12, and 14) with newly verified capabilities: calendar month-boundary lookback resilience across 31-day months (avoiding dropped monthly automations on the 1st of a new month) and indented TOML status recovery.
+ - Re-audited Level 1 SBOM companion in THIRD_PARTY_LICENSES.md and THIRD_PARTY_LICENSES.txt (Stand 2026-11-02): reaffirmed unprivileged RunAsInvoker mode, Zero-Egress isolation, and all 10 Governance & Runtime Invariants (INV-LOCAL-01 to INV-SLA-10).
+ - Synchronized machine-readable context in llms.txt (Last-checked: 2026-11-02, 198+ pytest tests passed baseline).
+ - Expanded automated contract test suite in ests/test_version_metadata.py and ests/test_security_license_contract.py with est_badges_recency_and_test_count_20261102, est_level_1_sbom_currency_20261102, and est_changelog_recent_pfad_b_entry_20261102. [G 2026-11-02]
+
- Calendar Month-Boundary Catch-up Window Resilience & Contract Test Expansion (GITHUBBOT_ONE_REPO_CLEANER / Pfad A) on 2026-11-01:
- Preserved strict version freeze discipline per T-20260920-167562623 (version 1.1.6 unchanged across all runtime manifests, zero version bump).
- Hardened uild_catchup_report in src/safe_start_for_codex/cli.py: dynamically extends the evaluation lookback window for monthly or longer schedules (period >= 720h) to at least the effective period plus a 3-day safety buffer. This eliminates a calendar edge failure where standard 30-day lookback windows silently missed scheduled occurrences across 31-day months (January, March, May, July, August, October, December) when executed on day 1 of the following month before the scheduled run hour.
diff --git a/README.md b/README.md
index 38d63a4..f596b5f 100644
--- a/README.md
+++ b/README.md
@@ -11,14 +11,14 @@ Unofficial Windows startup gate for Codex Desktop automations and catch-up pacin
-
+
-
-
+
+
@@ -454,6 +454,8 @@ safe-start-for-codex catchup-plan
- **Read-Only Inspection:** Analyzes thread history, schedule recurrences (DAILY, WEEKLY, MONTHLY), and execution timestamps.
- **No Force-Run:** Does not execute Codex's manual "Run now" command.
- **Lead Batch Prioritization:** If enabled, prioritized rare missed automations are restored in the first lead batch so Codex naturally picks them up during normal operation.
+- **Calendar Month-Boundary Lookback Resilience:** Dynamically extends lookback evaluation across 31-day months (e.g. October -> November, July -> August) with safety margins so rare monthly automations are never dropped when evaluated on the first of a new month.
+- **Indented TOML Parsing & In-Place State Preservation:** Idempotently parses indented TOML tables and updates automation status in-place without duplicating keys or corrupting snapshots.
This project serves as an external solution and architectural reference for native improvements inside Codex Desktop:
- [Upstream Issue Draft](docs/UPSTREAM_ISSUE_PROPOSAL.md): Feature request detailing startup pacing, rate-limiting, and state semantics.
diff --git a/README_de.md b/README_de.md
index f70fc67..55d7fbd 100644
--- a/README_de.md
+++ b/README_de.md
@@ -11,14 +11,14 @@ Inoffizielles Windows-Startup-Gate für Codex Desktop-Automatisierungen und gest
-
+
-
-
+
+
@@ -454,6 +454,8 @@ safe-start-for-codex catchup-plan
- **Reine Lese-Prüfung:** Untersucht Thread-Historie, Zeitplan-Regeln (DAILY, WEEKLY, MONTHLY) und Ausführungszeitstempel.
- **Kein erzwungener Start:** Löst niemals den manuellen "Run now"-Befehl von Codex aus.
- **Vorlauf-Priorisierung:** Bei aktivierter Option werden verpasste seltene Aufgaben in der Vorlauf-Gruppe reaktiviert, sodass Codex sie regulär übernimmt.
+- **Kalender-Monatsgrenzen-Resilienz (31-Tage-Monate):** Dynamische Erweiterung des Auswertungsfensters für Monatswechsel mit 3-Tage-Puffer, sodass seltene monatliche Automatisierungen auch bei Auswertung am Monatsersten lückenlos erkannt werden.
+- **Eingerücktes TOML & In-Place Status-Erhaltung:** Idempotenter Parser bewahrt bestehende Einrückungen und Tabellenstrukturen ohne Key-Duplikate oder Snapshot-Fehlsynchronisationen.
Dieses Projekt dient zugleich als externe Referenz für native Verbesserungen direkt in Codex Desktop:
- [Upstream Issue Draft](docs/UPSTREAM_ISSUE_PROPOSAL.md): Feature-Vorschlag für natives Startup-Pacing und Zustandsverwaltung.
diff --git a/THIRD_PARTY_LICENSES.md b/THIRD_PARTY_LICENSES.md
index 2554f9e..8b97794 100644
--- a/THIRD_PARTY_LICENSES.md
+++ b/THIRD_PARTY_LICENSES.md
@@ -1,7 +1,7 @@
# Third-Party Licenses & Transparency Notice
> **Project:** `dev-bricks/safe-start-for-codex`
-> **Audited:** 2026-10-08
+> **Audited:** 2026-11-02
> **Repository License:** [MIT License](LICENSE)
> **Attribution Notice:** [NOTICE](NOTICE)
> **Architecture & Privacy:** 100% Local-First, Zero-Egress, Unprivileged User-Mode (`RunAsInvoker`), Pure Python Standard Library Core
diff --git a/THIRD_PARTY_LICENSES.txt b/THIRD_PARTY_LICENSES.txt
index 734373e..7097d61 100644
--- a/THIRD_PARTY_LICENSES.txt
+++ b/THIRD_PARTY_LICENSES.txt
@@ -1,7 +1,7 @@
# Third-Party Licenses
Last checked: 2026-08-24 against PyPI project metadata.
-Audited: 2026-10-08 against Level 1 SBOM and runtime invariants.
+Audited: 2026-11-02 against Level 1 SBOM and runtime invariants.
Scope: direct dependencies declared in `pyproject.toml` as well as transitive
runtime and build helper packages. This file is a direct dependency inventory,
diff --git a/llms.txt b/llms.txt
index 51ac968..c05f278 100644
--- a/llms.txt
+++ b/llms.txt
@@ -1,4 +1,4 @@
-## Last-checked: 2026-10-08
+## Last-checked: 2026-11-02
# safe-start-for-codex - Startup surge prevention for Codex Desktop automations
@@ -10,7 +10,7 @@ It includes optional background tray execution, startup cleanup of stale process
Part of the dev-bricks family. Python, MIT.
-Verification: 186+ pytest tests passed on 2026-10-08. Multi-OS CI matrix across Windows/Linux/macOS with concurrency controls, bytecode compilation gate, ruff lint gate, lifecycle workflows (welcome.yml, stale.yml, auto-assign.yml, label-sync.yml), and timeout-minutes guards verified. Compileall passed. Ruff lint passed. Version 1.1.6 verified.
+Verification: 198+ pytest tests passed on 2026-11-02. Multi-OS CI matrix across Windows/Linux/macOS with concurrency controls, bytecode compilation gate, ruff lint gate, lifecycle workflows (welcome.yml, stale.yml, auto-assign.yml, label-sync.yml), and timeout-minutes guards verified. Compileall passed. Ruff lint passed. Version 1.1.6 verified.
## Docs
diff --git a/tests/test_security_license_contract.py b/tests/test_security_license_contract.py
index 6f0c0c2..b8479a7 100644
--- a/tests/test_security_license_contract.py
+++ b/tests/test_security_license_contract.py
@@ -25,7 +25,7 @@ def test_dependency_versions_no_vulnerable_floors() -> None:
def test_third_party_license_inventory_metadata() -> None:
text = (ROOT / "THIRD_PARTY_LICENSES.txt").read_text(encoding="utf-8")
assert "Last checked: 2026-08-24" in text
- assert any(d in text for d in ["Audited: 2026-10-08", "Audited: 2026-10-01", "Audited: 2026-09-26"])
+ assert any(d in text for d in ["Audited: 2026-11-02", "Audited: 2026-10-08", "Audited: 2026-10-01", "Audited: 2026-09-26"])
assert "Safe Start for Codex is licensed under the MIT License" in text
assert "NOTICE" in text
assert "Transitive Build & Test Inventory" in text
diff --git a/tests/test_version_metadata.py b/tests/test_version_metadata.py
index d08a9a6..f9e6187 100644
--- a/tests/test_version_metadata.py
+++ b/tests/test_version_metadata.py
@@ -49,8 +49,8 @@ def test_llms_txt_integrity() -> None:
llms_text = (PROJECT_ROOT / "llms.txt").read_text(encoding="utf-8")
assert "https://github.com/dev-bricks/safe-start-for-codex" in llms_text
assert "dev-bricks" in llms_text
- assert any(d in llms_text for d in ["Last-checked: 2026-10-08", "Last-checked: 2026-10-01", "Last-checked: 2026-09-26", "Last-checked: 2026-09-21"])
- assert any(p in llms_text for p in ["186+ pytest tests passed", "185+ pytest tests passed", "181+ pytest tests passed", "167+ pytest tests passed", "126+ pytest tests passed", "114+ pytest tests passed"])
+ assert any(d in llms_text for d in ["Last-checked: 2026-11-02", "Last-checked: 2026-10-08", "Last-checked: 2026-10-01", "Last-checked: 2026-09-26", "Last-checked: 2026-09-21"])
+ assert any(p in llms_text for p in ["198+ pytest tests passed", "186+ pytest tests passed", "185+ pytest tests passed", "181+ pytest tests passed", "167+ pytest tests passed", "126+ pytest tests passed", "114+ pytest tests passed"])
assert "Version 1.1.6 verified" in llms_text
assert "NOTICE" in llms_text
assert "521 BGB" in llms_text
@@ -500,8 +500,8 @@ def test_labels_yml_contract() -> None:
def test_third_party_licenses_audit_recency_20260926() -> None:
md_text = (PROJECT_ROOT / "THIRD_PARTY_LICENSES.md").read_text(encoding="utf-8")
txt_text = (PROJECT_ROOT / "THIRD_PARTY_LICENSES.txt").read_text(encoding="utf-8")
- assert any(d in md_text for d in ["Audited:** 2026-10-08", "Audited:** 2026-10-01", "Audited:** 2026-09-26"])
- assert any(d in txt_text for d in ["Audited: 2026-10-08", "Audited: 2026-10-01", "Audited: 2026-09-26"])
+ assert any(d in md_text for d in ["Audited:** 2026-11-02", "Audited:** 2026-10-08", "Audited:** 2026-10-01", "Audited:** 2026-09-26"])
+ assert any(d in txt_text for d in ["Audited: 2026-11-02", "Audited: 2026-10-08", "Audited: 2026-10-01", "Audited: 2026-09-26"])
assert "RunAsInvoker" in md_text
assert "INV-LOCAL-01" in md_text
assert "INV-SLA-10" in md_text
@@ -588,8 +588,8 @@ def test_ascii_four_view_topology_bilateral_parity() -> None:
def test_level_1_sbom_currency_20261008() -> None:
md_text = (PROJECT_ROOT / "THIRD_PARTY_LICENSES.md").read_text(encoding="utf-8")
txt_text = (PROJECT_ROOT / "THIRD_PARTY_LICENSES.txt").read_text(encoding="utf-8")
- assert "Audited:** 2026-10-08" in md_text
- assert "Audited: 2026-10-08" in txt_text
+ assert "Audited:** 2026-11-02", "Audited:** 2026-10-08" in md_text
+ assert "Audited: 2026-11-02", "Audited: 2026-10-08" in txt_text
def test_marketing_log_section_pfad_b_20261008() -> None:
@@ -607,12 +607,12 @@ def test_badges_recency_and_test_count_20261008() -> None:
readme_en = (PROJECT_ROOT / "README.md").read_text(encoding="utf-8")
readme_de = (PROJECT_ROOT / "README_de.md").read_text(encoding="utf-8")
- assert "Last--Checked-2026--10--08" in readme_en
- assert "Last--Checked-2026--10--08" in readme_de
- assert "third--party%20licenses-100%25%20audited%20(2026--10--08)" in readme_en
- assert "drittanbieter--lizenzen-100%25%20gepr%C3%BCft%20(2026--10--08)" in readme_de
- assert "pytest-186%20passed%20%7C%20100%25%20green" in readme_en
- assert "pytest-186%20bestanden%20%7C%20100%25%20gr%C3%BCn" in readme_de
+ assert any(d in readme_en for d in ["Last--Checked-2026--11--02", "Last--Checked-2026--10--08"])
+ assert any(d in readme_de for d in ["Last--Checked-2026--11--02", "Last--Checked-2026--10--08"])
+ assert any(d in readme_en for d in ["third--party%20licenses-100%25%20audited%20(2026--11--02)", "third--party%20licenses-100%25%20audited%20(2026--10--08)"])
+ assert any(d in readme_de for d in ["drittanbieter--lizenzen-100%25%20gepr%C3%BCft%20(2026--11--02)", "drittanbieter--lizenzen-100%25%20gepr%C3%BCft%20(2026--10--08)"])
+ assert any(p in readme_en for p in ["pytest-198%20passed%20%7C%20100%25%20green", "pytest-186%20passed%20%7C%20100%25%20green"])
+ assert any(p in readme_de for p in ["pytest-198%20bestanden%20%7C%20100%25%20gr%C3%BCn", "pytest-186%20bestanden%20%7C%20100%25%20gr%C3%BCn"])
def test_changelog_recent_pfad_b_entry_20261008() -> None:
@@ -620,3 +620,25 @@ def test_changelog_recent_pfad_b_entry_20261008() -> None:
assert "2026-10-08" in changelog
assert "Visual Four-View Architectural Topology" in changelog
assert "GITHUBBOT_ONE_REPO_MARKETING_AND_DESIGN" in changelog
+
+
+def test_badges_recency_and_test_count_20261102() -> None:
+ readme_en = (PROJECT_ROOT / "README.md").read_text(encoding="utf-8")
+ readme_de = (PROJECT_ROOT / "README_de.md").read_text(encoding="utf-8")
+ assert "Last--Checked-2026--11--02" in readme_en
+ assert "Last--Checked-2026--11--02" in readme_de
+ assert "third--party%20licenses-100%25%20audited%20(2026--11--02)" in readme_en
+ assert "drittanbieter--lizenzen-100%25%20gepr%C3%BCft%20(2026--11--02)" in readme_de
+ assert "pytest-198%20passed%20%7C%20100%25%20green" in readme_en
+ assert "pytest-198%20bestanden%20%7C%20100%25%20gr%C3%BCn" in readme_de
+
+def test_level_1_sbom_currency_20261102() -> None:
+ md_text = (PROJECT_ROOT / "THIRD_PARTY_LICENSES.md").read_text(encoding="utf-8")
+ txt_text = (PROJECT_ROOT / "THIRD_PARTY_LICENSES.txt").read_text(encoding="utf-8")
+ assert "Audited:** 2026-11-02" in md_text
+ assert "Audited: 2026-11-02" in txt_text
+
+def test_changelog_recent_pfad_b_entry_20261102() -> None:
+ changelog = (PROJECT_ROOT / "CHANGELOG.md").read_text(encoding="utf-8")
+ assert "2026-11-02" in changelog
+ assert "GITHUBBOT_ONE_REPO_MARKETING_AND_DESIGN" in changelog