Skip to content

Latest commit

 

History

History
289 lines (236 loc) · 40.3 KB

CHANGELOG.md

File metadata and controls

289 lines (236 loc) · 40.3 KB

Changelog

All notable changes to this project are documented here.

Unreleased

  • CLI Snapshot Lifecycle, Status Restoration, TOML Parsing & Backup Resilience (SOFTWARE_BUGSEARCH Bugsweep) on 2026-10-18:

    • Hardened command_restore_latest in src/safe_start_for_codex/cli.py: after restoring automation TOML files to active state, latest.json is updated atomically with phase: "restored", released_ids populated, and items marked status: original, tool_paused: False, and released: True, eliminating state desynchronization between disk automations and the snapshot/dashboard; records an audit log to events.jsonl and evaluates set_status() return value to ensure clean idempotence.
    • Hardened quoted_value and int_value in src/safe_start_for_codex/cli.py: regex pattern now permits leading whitespace (^\s*), properly parsing indented TOML configurations under table headers.
    • Hardened set_status in src/safe_start_for_codex/cli.py: preserves existing indentation and updates status and updated_at in-place on indented TOML files, preventing duplicate key declarations.
    • Hardened command_status in src/safe_start_for_codex/cli.py: validates collection types for tool_paused_ids and released_ids to prevent TypeError: object of type 'int' has no len() crashes on corrupted snapshots.
    • Hardened command_backup in src/safe_start_for_codex/cli.py: handles consecutive same-second backup invocations by generating collision-resistant numeric suffixes (_1, _2), and cleans up partial directories on OSError failures.
    • Hardened _matches_frequency_day in src/safe_start_for_codex/cli.py: resolves negative BYMONTHDAY values (e.g. -1 for the last day of a month) for frequency == "YEARLY" based on days_in_month, enabling yearly recurrences on negative monthdays.
    • Hardened get_dashboard_data and queue table rendering in src/safe_start_for_codex/dashboard.py: accurately computes still_gated count via set differences len(tool_paused_set - released_set) avoiding underflows from duplicate or foreign released IDs, and renders status badges dynamically in renderQueueTable.
    • Added hermetic regression test suite in tests/test_bugsweep_cli_restore_and_resilience_20261018.py (7 tests, full suite 193/193 passed 100% green). [G 2026-10-18]
  • Visual Four-View Architectural Topology, Level 1 SBOM Stand 2026-10-08 Re-Audit, Discoverability Badges & Contract Test Suite (GITHUBBOT_ONE_REPO_MARKETING_AND_DESIGN / Pfad B) on 2026-10-08:

    • Preserved strict version freeze discipline per T-20260920-167562623 (version 1.1.6 unchanged across all runtime manifests, zero version bump).
    • Deployed standardized ASCII Four-View Architectural Topology in Section 2 of README.md and README_de.md ([VIEW 1: CLI, TRAY INTERFACES & AUTOMATION SCANNER ANATOMY], [VIEW 2: SNAPSHOT STAGING & STAGGERED GATING PIPELINE], [VIEW 3: PROCESS SUPERVISION, ZOMBIE DEFENSE & CATCH-UP PLANNER], [VIEW 4: RUNASINVOKER NON-ELEVATION, ZERO-EGRESS & AUDIT INTEGRITY]; German: [SICHT 1]..[SICHT 4]) maintaining 100% bilateral parity and anchor preservation for all 18 quick-navigation points (sec-01 to sec-18).
    • Conducted Level 1 SBOM companion re-audit Stand 2026-10-08 in THIRD_PARTY_LICENSES.txt and THIRD_PARTY_LICENSES.md: confirmed unprivileged RunAsInvoker user-mode non-elevation (INV-SEC-02), Zero-Egress isolation (INV-LOCAL-01), Zero-Copyleft isolation, German statutory disclaimer (§ 521 BGB Gefälligkeitsrecht) and 48h Security Response SLA (INV-SLA-10).
    • Synchronized documentation, discovery, and test recency: updated Shields.io badges in README.md and README_de.md (pytest-186 passed | 100% green, Last--Checked-2026--10--08 / Geprüft-2026--10--08, third--party licenses-100% audited (2026-10-08)); updated llms.txt with Stand 2026-10-08, 186+ passing tests baseline, and ASCII Four-View Topology; logged Pfad B review in MARKETING-LOG.txt Section 8 with 3 concrete non-automated discoverability recommendations (PowerShell Argument Completer, Terminalizer GIF/SVG asset, and WinGet manifest).
    • Expanded automated contract test suite in tests/test_version_metadata.py: added test_ascii_four_view_topology_bilateral_parity, test_level_1_sbom_currency_20261008, test_marketing_log_section_pfad_b_20261008, and test_badges_recency_and_test_count_20261008 (full test suite expanded to 186 tests, 100% passing). [G 2026-10-08]
  • Web-Dashboard HTTP/API Resilience, Malformed Snapshot/Config Protection & Zombie-Killer Process Verification (SOFTWARE_BUGSEARCH Bugsweep) on 2026-10-03:

    • Hardened get_dashboard_data in src/safe_start_for_codex/dashboard.py against None/malformed snapshot items, catch-up candidate lists, and missing eligible ID arrays, preventing unhandled TypeError exceptions.
    • Wrapped read_gate_config() in get_dashboard_data with resilient (SystemExit, Exception) error handling, preventing corrupted or invalid safe-start-gate.json configuration files from triggering fatal SystemExit aborts in the long-running web dashboard server.
    • Fixed RFC 9110 method parity between do_HEAD and do_GET in DashboardRequestHandler: ensured unknown endpoints return HTTP 404 consistently instead of falsely returning HTTP 200 on HEAD.
    • Added URL path normalization and trailing-slash tolerance across dashboard endpoints (/api/status/, /api/queue/, /api/automations/, /api/catchup/, /api/config/).
    • Decoupled DashboardRequestHandler from rigid server class assumptions: safely accesses state_dir_path via getattr, preventing AttributeError when run within standard http.server instances, and protected socket responses against abrupt client disconnection errors.
    • Hardened src/safe_start_for_codex/zombie_killer_integration.py: _read_watch_pid_file now enforces dictionary structure on JSON payloads, preventing AttributeError on non-dict inputs; _verify_watch_process validates positive PIDs (pid > 0), guarding against built-in ValueError crashes from psutil.Process; build_zombie_killer_status safely coerces numeric audit log fields (_safe_float, _safe_int) avoiding TypeError and ValueError on malformed cycle entries.
    • Added hermetic regression test suite in tests/test_bugsweep_dashboard_and_zombie_killer_resilience_20261003.py (10 tests, 181/181 tests passing 100% green). [G 2026-10-03]
  • Bilingual Contributing Guidelines, Level 1 SBOM Re-Audit, Multi-Host Lock Defense, PEP 621 Metadata & Contract Test Expansion (GITHUBBOT_ONE_REPO_CLEANER / Pfad A) on 2026-10-01:

    • Preserved strict version freeze discipline per T-20260920-167562623 (version 1.1.6 unchanged across all runtime manifests).
    • Deployed comprehensive bilingual CONTRIBUTING.md guidelines (EN/DE) detailing all 10 Governance and Runtime Invariants (INV-LOCAL-01 through INV-SLA-10), unprivileged RunAsInvoker mode (INV-SEC-02), Plan D Local Development Workflow (C:\_Local_DEV\repos\safe-start-for-codex), quality gates, and 48h Security Response SLA.
    • Hardened multi-host cloud-sync and lock defense in .gitignore: added LOCK.dev.*, LOCK.antigravity.*, LOCK.bugsearch.*, TASKPLAN_*.md, *-IDEAPAD-GEI*, *-IDEAPAD-GEI.*, and ehthumbs.db.
    • Conducted Level 1 SBOM companion re-audit Stand 2026-10-01 in THIRD_PARTY_LICENSES.txt and THIRD_PARTY_LICENSES.md: confirmed unprivileged RunAsInvoker user-mode non-elevation, Zero-Egress isolation, zero copyleft constraints, and full compliance with all 10 Governance and Runtime Invariants (INV-LOCAL-01 through INV-SLA-10).
    • Standardized PEP 621 project URLs under [project.urls] in pyproject.toml: registered Contributing, Plain-Text License, Plain-Text Licenses, and Level 1 SBOM.
    • Synchronized documentation and context parity: updated Last--Checked-2026--10--01 audit badge in README.md and README_de.md (all 18 quick-navigation bilateral dual anchors and dual mermaid diagrams intact); updated llms.txt discovery index and test suite counts (167+ tests); documented Pfad A audit in MARKETING-LOG.txt.
    • Expanded automated contract test suite in tests/test_version_metadata.py: added contract tests for bilingual CONTRIBUTING.md parity, 10 invariants, PEP 621 URLs, hardened .gitignore patterns, and 2026-10-01 Level 1 SBOM audit recency. [G 2026-10-01]
  • Lightweight Local Web Dashboard & Real-Time Gating Visualizer (SOFTWARE_ENTWICKLUNG) on 2026-09-30:

    • Implemented standalone local web dashboard module src/safe_start_for_codex/dashboard.py without external dependencies (pure Python standard library http.server, urllib.parse, json).
    • Added real-time visualization of Safe Start gating state, live phase tracking, KPI summary metrics (total, active, paused, tool-paused, released), staged release queue progress bar, and overdue catch-up candidates.
    • Implemented secure, localhost-bound REST API endpoints: /api/status, /api/queue, /api/automations, /api/catchup, and /api/config with strict HTTP security headers (nosniff, DENY, Cache-Control, and Content-Security-Policy).
    • Registered CLI subcommand safe-start-for-codex dashboard with --host, --port (default: 8765), and --open-browser flags.
    • Added comprehensive test suite in tests/test_dashboard.py verifying state reading, snapshot corruption tolerance, zero-egress frontend isolation, live HTTP endpoints, HEAD method support, 404 handling, and CLI parser registration (6 tests, 167/167 tests passing 100% green). [G 2026-09-30]
  • RRULE Monthly/Yearly BYDAY Positional Ordinals & TOML Parsing/Update Resilience (SOFTWARE_BUGSEARCH Bugsweep) on 2026-09-28:

    • Fixed functional flaw in _matches_frequency_day: Monthly recurrence schedules utilizing BYDAY (e.g. BYDAY=1MO, BYDAY=-1FR, BYDAY=MO) without explicit BYMONTHDAY were erroneously defaulting to start.day as the required day-of-month, preventing execution except on rare months where the target weekday coincided with the event's creation day.
    • Implemented _parse_byday_token and _resolve_monthly_byday supporting RFC 5545 ordinal prefixes (+1, +2, -1, -2, etc.) and resolving exact calendar days within any month/year for both MONTHLY and YEARLY recurrence rules.
    • Hardened quoted_value, int_value, and set_status in src/safe_start_for_codex/cli.py against single-quoted strings (status = 'ACTIVE') and trailing inline comments (# ...), preventing load_automations from skipping active automations and preventing set_status from corrupting automation.toml with duplicate status keys.
    • Added hermetic regression test suite in tests/test_bugsweep_rrule_monthly_byday_and_toml_resilience_20260928.py (6 tests, 135/135 tests passing 100% green). [G 2026-09-28]
  • Repository Hygiene, CI Lifecycle Workflows, Lock Defense, PEP 621 Metadata & Contract Test Expansion (GITHUBBOT_ONE_REPO_CLEANER / Pfad A) on 2026-09-26:

    • Preserved strict version freeze discipline per T-20260920-167562623 (version 1.1.6 unchanged across all runtime manifests).
    • Deployed full CI/CD lifecycle workflow provisioning & hardening: added .github/workflows/auto-assign.yml (timeout-minutes: 5, concurrency cancel-in-progress: true, least-privilege issues: write, pull-requests: write, actions/github-script@v7) and .github/workflows/label-sync.yml (timeout-minutes: 5, concurrency cancel-in-progress: true, least-privilege issues: write, EndBug/label-sync@v2); added canonical .github/labels.yml with 11 standard governance labels per GOVERNANCE.md §4.2.
    • Hardened .gitignore with multi-host cloud-sync patterns (*-MacBook*, *-IDEAPAD*, *_WORKSTATION*, *_WORKSTATION-LG*, *-WORKSTATION-LG.*), canonical locks (LOCK.user.*, LOCK.until.*, LOCK.condition.*, .automation-lock), test/coverage cache boundaries (.pytest_temp/, .pytest_tmp*/, .tox/), and OS/editor artifacts (Desktop.ini, *.swo).
    • Standardized PEP 621 metadata in pyproject.toml: included THIRD_PARTY_LICENSES.txt in license-files alongside LICENSE, NOTICE, and THIRD_PARTY_LICENSES.md; hardened [tool.pytest.ini_options] with extended norecursedirs protecting against cache contamination.
    • Conducted Level 1 SBOM re-audit in THIRD_PARTY_LICENSES.md and THIRD_PARTY_LICENSES.txt (Stand 2026-09-26): confirmed unprivileged RunAsInvoker user-mode non-elevation, Zero-Egress isolation, zero copyleft constraints, and compliance with all 10 Governance and Runtime Invariants (INV-LOCAL-01 through INV-SLA-10).
    • Synchronized documentation parity: updated Last-Checked audit badge to 2026-09-26 in README.md and README_de.md (all 18 quick-navigation bilateral dual anchors and dual mermaid diagrams intact); updated llms.txt discovery index and test suite counts.
    • Expanded automated contract test suite in tests/test_version_metadata.py and tests/test_security_license_contract.py verifying auto-assign and label-sync workflow attributes, labels.yml standard labels, expanded gitignore patterns, PEP 621 license files, and Level 1 SBOM recency. [G 2026-09-26]
  • RRULE Whitespace & Case Resilience and Negative Monthday Recurrence Support (SOFTWARE_BUGSEARCH Bugsweep) on 2026-09-23:

    • Hardened parse_rrule against leading/trailing whitespace and spaces surrounding delimiters (;, =), ensuring RRULE properties like INTERVAL and recurrence values are reliably parsed into integers instead of silently defaulting.
    • Added case-insensitive handling for rrule: prefix with optional whitespace in parse_rrule.
    • Added RFC 5545 negative BYMONTHDAY support (-1, -2, etc.) in _matches_frequency_day for monthly recurrence calculations, accurately calculating dates relative to the end of the month (e.g. Sept 30, Oct 31, Feb 28/29).
    • Added regression unit tests in tests/test_cli.py covering whitespace/case resilience in parse_rrule and negative BYMONTHDAY resolution in rrule_next_after (126/126 tests passing 100% green). [G 2026-09-23]
  • Synthetic Codex Automation Collection Integration & Stress Testing Suite (SOFTWARE_ENTWICKLUNG) on 2026-09-22:

    • Added dedicated integration test suite in tests/test_synthetic_collections.py verifying Safe Start for Codex gating behavior on large, heterogeneous automation collections (124/124 tests passing).
    • Validated loading, metadata fidelity, and unique path resolution for 55 multi-frequency synthetic automations across all 6 RRULE intervals (MINUTELY, HOURLY, DAILY, WEEKLY, MONTHLY, YEARLY) with mixed lifecycle statuses (ACTIVE, PAUSED, DISABLED).
    • Verified batch queue splitting (split_release_queue) and pacing dynamics on 38 active jobs, ensuring deterministic partitioning into future-safe and fallback queues based on lead intervals.
    • Implemented end-to-end SafeStartGate lifecycle simulation verifying atomic pause snapshotting, staged release, and selective restoration preserving pre-existing PAUSED and DISABLED states (INV-RESTORE-04, INV-FILE-03).
    • Added integration tests for SQLite-based catch-up report generation (build_catchup_report), validating overdue detection for rare tasks (>24h period) and per-start limits without triggering external execution (INV-CATCH-05, INV-LOCAL-01).
    • Hardened resilience and fail-closed safety (INV-FAIL-08) against malformed, unparseable, and empty RRULE strings as well as international Unicode folder names and German umlauts.
    • Initialized project-level AUFGABEN.txt and completed open roadmap item in MARKETING-LOG.txt. [G 2026-09-22]
  • Discoverability, 18-Point Bilingual Dual-Anchor Navigation, Level 1 SBOM Invariant Matrix & Contract Parity (GITHUBBOT_ONE_REPO_MARKETING_AND_DESIGN / Pfad B) on 2026-09-21:

    • Saturated GitHub topics to 20/20 maximum: automation, codex, openai, startup, windows, safe-start, codex-cli, developer-tools, system-tray, desktop-app, dev-bricks, open-bricks, local-first, zero-egress, offline-first, process-hygiene, python, process-supervision, scheduler, rate-limiting.
    • Added canonical root NOTICE attribution file (Lukas Geiger, dev-bricks, open-bricks) referenced across pyproject.toml, THIRD_PARTY_LICENSES.md, THIRD_PARTY_LICENSES.txt, and documentation badges.
    • Standardized PEP 621 metadata in pyproject.toml with license-files = ["LICENSE", "NOTICE", "THIRD_PARTY_LICENSES.md"], full 20-topic keywords array, and canonical Notice URL in [project.urls].
    • Upgraded documentation across README.md and README_de.md to standardized 18-point quick navigation with 100% bidirectional reciprocal dual HTML anchors (<a id="sec-01"></a><a id="..."></a><a id="..."></a>).
    • Added Section 6: 10-Dimension 5-Way Comparative Matrix evaluating Safe Start for Codex against native Codex, Windows Task Scheduler, custom scripts, and heavy enterprise APMs across all 10 governance invariants (INV-LOCAL-01 to INV-SLA-10).
    • Formalized 4 target personas [PERSONA-01] through [PERSONA-04] and curated bilingual search queries in Section 5.
    • Added Section 18: Statutory Notice (§ 521 BGB Gefälligkeitsrecht) clarifying free open-source liability limitations, fair-use trademark disclaimer for OpenAI/Codex, and binding 48-hour response SLA / 5-business-day triage commitment.
    • Enriched THIRD_PARTY_LICENSES.md with Level 1 SBOM audit recency (2026-09-21) and Section 6 Invariant Cross-Reference Matrix mapping INV-LOCAL-01..INV-SLA-10 to enforcing modules and contract test suites.
    • Synchronized llms.txt discovery index and Shields.io badge row with Attribution NOTICE, Level 1 SBOM audit date, and 18-point dual-anchor navigation parity.
    • Enriched local MARKETING-LOG.txt with Stand 2026-09-21 marketing and design audit entry. [G 2026-09-21]

[1.1.6] - 2026-09-16

  • Process Discovery, Zombie Detection & Companion Path Resolution Parity (SOFTWARE_BUGSEARCH Bugsweep) on 2026-09-19:

    • Fixed false-negative process matching in matches_codex_executable when desktop Codex command lines are quoted (e.g. "<path>\Codex.exe" --type=renderer), ensuring sandboxed child processes (renderers, GPU, utilities) with restricted tokens and empty ExecutablePath are properly recognized.
    • Prevented false-positive zombie detection in cleanup_start_blockers that misclassified live Codex user sessions older than 120 seconds as zombies without active renderers and terminated running instances.
    • Normalized path separators in is_companion_orphan so that Node.js / npm companion processes reporting forward slashes (/npm/node_modules/@openai/codex) are accurately detected.
    • Added dedicated regression unit tests in tests/test_cli.py covering quoted executable matching, active session preservation with sandboxed renderers, and companion orphan slash normalization (109/109 pytest tests passing 100% green). [G 2026-09-19]
  • Technical Hygiene, CI Workflow Hardening, Pytest Guardrails, Multi-Host Sync Defense & Contract Parity (GITHUBBOT_ONE_REPO_CLEANER / Pfad A) on 2026-09-16:

    • Bumped version to 1.1.6 across pyproject.toml, src/safe_start_for_codex/__init__.py, README.md, README_de.md, RELEASES.md, MARKETING-LOG.txt, and llms.txt.
    • Hardened GitHub Actions CI workflows: added timeout-minutes: 15 to .github/workflows/ci.yml and .github/workflows/source-platform-smoke.yml; deployed automated .github/workflows/stale.yml (cron 30 1 * * *, actions/stale@v9, timeout-minutes: 10, cancel-in-progress: true, least-privilege issues: write, pull-requests: write) and .github/workflows/welcome.yml (actions/first-interaction@v3, timeout-minutes: 5, cancel-in-progress: true, least-privilege issues: write, pull-requests: write).
    • Hardened .gitignore with comprehensive multi-host conflict patterns (*conflicted copy*, * (Kopie)*, * (Copy)*, *-ASUS*, *-LAPTOP*, *-Mac Studio*), multi-agent lock protection (!package-lock.json), and build/testing cache boundaries (.hypothesis/, .turbo/, .nyc_output/, *.orig, *.rej).
    • Standardized pytest configuration guardrails in pyproject.toml with minversion = "7.0" and norecursedirs = [".git", ".pytest_cache", "__pycache__", "build", "dist"].
    • Re-audited THIRD_PARTY_LICENSES.md (Stand 2026-09-16, version 1.1.6) with zero runtime dependencies, RunAsInvoker unprivileged execution, zero copyleft, and full 10 governance invariant compliance (INV-LOCAL-01 to INV-SLA-10).
    • Expanded automated contract test suite in tests/test_version_metadata.py and tests/test_security_license_contract.py with contract tests for CI workflow timeouts, stale/welcome automation, multi-host gitignore defense, and pytest configuration guardrails. [G 2026-09-16]

[1.1.5] - 2026-09-11

  • Discoverability, 15-Point Quick Navigation, Third-Party License Inventory, Invariant Matrix & Contract Parity (GITHUBBOT_ONE_REPO_MARKETING_AND_DESIGN / Pfad B) on 2026-09-11:
    • Upgraded to standardized 15-point Quick Navigation (🧭 Quick Navigation / 🧭 Schnellnavigation) across README.md and README_de.md with 100% bidirectional anchor parity (#13-third-party-licenses--transparency / #13-drittanbieter-lizenzen--transparenz, #14-marketing--target-personas / #14-marketing--zielgruppen, #15-development-security--license / #15-entwicklung-sicherheit--lizenz).
    • Added dedicated THIRD_PARTY_LICENSES.md inventory detailing 100% permissive open-source license status across core, optional, development, and build dependencies with zero copyleft restrictions.
    • Codified 10 canonical Governance & Runtime Invariants (INV-LOCAL-01 through INV-SLA-10) across documentation, local marketing logs, and automated contract tests.
    • Enriched MARKETING-LOG.txt with 4 comprehensive target personas (Codex Desktop power users, autonomous multi-agent swarm operators, DevOps/SREs, enterprise compliance auditors), bilingual search queries, a 5-way competitive differentiation matrix, and sibling tool mapping.
    • Extended PEP 621 project URLs in pyproject.toml with "Third-Party Licenses", "Marketing Log", and "LLM Ready".
    • Bumped version to 1.1.5 across pyproject.toml, src/safe_start_for_codex/__init__.py, README.md, README_de.md, RELEASES.md, MARKETING-LOG.txt, and llms.txt.
    • Added modern Shields.io badges for Security SLA (48h/5d triage), Third-Party Licenses (100% audited), and Marketing Log (active).
    • Synchronized llms.txt discovery index with updated version (1.1.5), verification date (2026-09-11), and documentation pointers.
    • Expanded automated contract test suite with contract tests for 15-point navigation, invariant IDs, PEP 621 extended URLs, third-party license audit files, and marketing log structure. [G 2026-09-11]
  • Catchup State Analysis & Thread Title/Name Resolution Parity (SOFTWARE_BUGSEARCH Bugsweep) on 2026-09-14:
    • Fixed false-negative thread run detection in read_observed_runs_from_state by supporting the name column as fallback when title is empty or omitted in Codex Desktop's state_5.sqlite.
    • Allowed SQLite threads tables exposing either title or name (or both) alongside thread ID and timestamp columns, recovering over 340+ previously missed automation runs on production systems.
    • Prevented erroneous missed=True flags in build_catchup_report caused by undetected recent thread runs, eliminating unintended startup catch-up releases for already active automations.
    • Added dedicated regression unit tests in tests/test_cli.py covering title-to-name fallback and name-only SQLite schema compatibility (104/104 pytest tests passing 100% green). [G 2026-09-14]
  • SafeStartGate Restore Lifecycle, Snapshot Integrity & Tray Status Synchronization (SOFTWARE_BUGSEARCH Bugsweep) on 2026-09-13:
    • Fixed false-positive release messaging in SafeStartGate.status_text(), ensuring that restored or aborted gates explicitly report "Original automation state restored..." instead of claiming all automations have been released.
    • Guarded SafeStartGate.restore() to prevent overwriting "finished" execution snapshots when the gate has already completed its scheduled releases normally.
    • Synchronized Windows taskbar notification tooltip in command_tray upon user restore, during setup, and upon background updater termination.
    • Added robust type validation in command_status and command_restore_latest against non-dict JSON payloads, preventing unhandled AttributeError crashes.
    • Expanded regression test suite in tests/test_cli.py to 102 passing tests (100% green). [G 2026-09-13]

[1.1.4] - 2026-09-10

  • Technical Hygiene, CI Compilation Gate, Standardized Pytest Flags & Contract Suite (GITHUBBOT_ONE_REPO_CLEANER / Pfad A) on 2026-09-10:

    • Bumped version to 1.1.4 across pyproject.toml, src/safe_start_for_codex/__init__.py, README.md, README_de.md, RELEASES.md, MARKETING-LOG.txt, and llms.txt.
    • Comprehensive .gitignore hardening against multi-host sync conflicts (*-conflict-*, *.sync-conflict-*, *.conflict, *-CONFLIT-*, *.sync-temp-*, *-ASUS-GEI.*, *-WORKSTATION-LG.*, *-WORKSTATION.*, * (kopie)*, * (copy)*), multi-agent locks (LOCK, LOCK.*, *.lock, LOCK*.txt, LOCK.permissions.json, uv.lock), coverage/packaging caches (coverage/, htmlcov/, .coverage, .coverage.*, wheelhouse/, .wheel-smoke/), and temporary editor files (*.tmp, *.bak, *.swp, *~, *.log).
    • Standardized pytest execution options in pyproject.toml with addopts = "-ra -v".
    • Hardened GitHub Actions CI workflows (.github/workflows/ci.yml and .github/workflows/source-platform-smoke.yml) with automated bytecode compilation check (python -m compileall -q src tests) and standardized pytest execution (pytest -ra -v).
    • Expanded automated contract test suite in tests/test_version_metadata.py with 4 new contract tests (test_gitignore_hygiene_patterns, test_pytest_configuration_and_flags, test_ci_workflow_pytest_flags, test_changelog_recent_pfad_a_entry) to 91 passing tests (100% green).
    • Synchronized llms.txt verification timestamp (2026-09-10), version (1.1.4), and test suite count. [G 2026-09-10]
  • Hardened startup cleanup lockfile supervision in cleanup_start_blockers:

    • Resolved false negative in dry-run mode (--dry-run) where stale lockfiles were not reported when zombie main processes were present.
    • Guarded lockfile unlinking during active cleanup runs to prevent deleting the lockfile when any Codex main process failed to terminate, preventing multi-instance concurrency collisions and data corruption.
    • Accurately flagged CleanupResult.stale_lockfile when all detected main processes are stale zombies.
    • Added dedicated regression tests for dry-run reporting, successful unlinking, and failure preservation (87/87 pytest tests passing 100% green). [G 2026-09-09]
  • Hardened SafeStartGate Lifecycle & Recurrence Pacing Engine (SOFTWARE_BUGSEARCH Bugsweep) on 2026-09-11:

    • Made SafeStartGate.release_item, SafeStartGate.restore, and SafeStartGate.pause_active resilient against missing or moved automation files and transient OSError file mutations, preventing premature termination of the staggered release loop and avoiding permanent PAUSED deadlocks on remaining automations.
    • Enforced allowed_days (e.g. BYDAY=MO,TU,WE,TH,FR) in rrule_occurrences_between for HOURLY recurrences, preventing false weekend occurrences in catch-up report generation and incorrect early release queue prioritization.
    • Validated standard FREQ recurrence tokens in rrule_next_after, returning None for invalid or unknown recurrence rules and routing malformed tasks to safe fallback rather than synthesizing erroneous future execution timestamps.
    • Reused unified path resolution helper resolve_automation_path across SafeStartGate methods and command_restore_latest.
    • Added dedicated regression test suite in tests/test_cli.py covering missing file handling, partial failure recovery, RRULE token validation, and weekday-filtered hourly intervals (96/96 pytest tests passing 100% green). [G 2026-09-11]
  • Discoverability, Visual Architecture, Governance Matrix & Contract Tests (GITHUBBOT_ONE_REPO_MARKETING_AND_DESIGN / Pfad B) on 2026-09-08:

    • Implemented standardized 14-point Quick Navigation (🧭 Quick Navigation / 🧭 Schnellnavigation) across README.md and README_de.md with explicit functional anchor links and bilingual language switchers.
    • Added dual interactive Mermaid diagrams: System Architecture flowchart (graph TB) covering Control Interfaces, Gating Core, and Codex Target Environment, and an Execution Lifecycle sequence diagram (sequenceDiagram) detailing startup gating, atomic snapshot backups, zombie process supervision, and staggered background releases.
    • Formulated 10 Core Governance & Runtime Invariants Matrix (Local-First & Zero Egress, Non-Elevation, Snapshot-Before-Mutation, Selective Restoration Guard, Conservative Catch-Up Policy, Targeted Process Supervision, Atomic TOML Serialization, Fail-Closed Diagnostics, Dual-Platform Architecture, Ecosystem Parity).
    • Expanded Sibling Tools & Ecosystem Cross-Integration Matrix across 12 companion projects (dev-bricks, ellmos-ai, and open-bricks).
    • Hardened GitHub Actions CI (.github/workflows/ci.yml) with automated pip caching (cache: 'pip').
    • Strengthened bilingual SECURITY.md with precise 48h acknowledgment and 5-business-day triage SLA commitments.
    • Expanded automated contract test suite in tests/test_version_metadata.py with tests for 14-point navigation anchors, dual Mermaid diagrams, governance invariants table, ecosystem cross-links, and security SLA commitments (84/84 pytest tests passing 100% green).
    • Synchronized Shields.io badges, llms.txt, and local MARKETING-LOG.txt. [G 2026-09-08]
  • Technical Hygiene, Multi-OS CI Matrix & Contract Test Suite (GITHUBBOT_ONE_REPO_CLEANER / Pfad A) on 2026-08-24:

    • Hardened GitHub Actions CI workflows (.github/workflows/ci.yml and .github/workflows/source-platform-smoke.yml) with concurrency groups (cancel-in-progress: true), multi-version Python matrix testing (Python 3.11, 3.12, 3.13), and automated ruff check . linting gate before test execution.
    • Expanded pyproject.toml with PEP 621 classifiers (Environment :: Console, Environment :: MacOS X, Environment :: X11 Applications, Operating System :: OS Independent, Operating System :: POSIX :: Linux, Operating System :: MacOS, Programming Language :: Python :: 3.13, Topic :: Desktop Environment), dev dependencies (ruff>=0.5.0), and full [project.urls] (Bug Tracker, Parent Organization, Umbrella Ecosystem).
    • Enriched bilingual SECURITY.md with Supported Versions table (1.1.x) and full official security contacts (security@ellmos.ai, security@open-bricks.org, support@lukasgeiger.com, lukas@open-bricks.org).
    • Refreshed direct dependency license inventory THIRD_PARTY_LICENSES.txt with 2026-08-24 verification timestamp and ruff license metadata.
    • Expanded automated contract test suite in tests/test_security_license_contract.py, tests/test_third_party_licenses.py, and tests/test_version_metadata.py with CI concurrency, ruff lint gate, CLI parser subcommand registry, and README/README_de bilingual section parity validation (79/79 pytest tests passing 100% green).
    • Synchronized Shields.io test badges and llms.txt verification timestamp (2026-08-24). [G 2026-08-24]
  • Technical Hygiene, Security & License Audit (SOFTWARE_SECURITY_LICENSE_AUDIT) on 2026-08-23:

    • Hardened dependency floors in pyproject.toml (pytest>=9.1.1 to prevent GHSA-6w46-j5rx-g56g / CVE-2025-7117, pystray>=0.19.5) and expanded project URLs (Documentation, Repository, Changelog, Security).
    • Enriched bilingual SECURITY.md with official reporting guidelines, direct security contacts (security@ellmos.ai, support@lukasgeiger.com), local-first & zero-egress architecture guarantees, unprivileged user-mode execution, and non-destructive atomic file safeguards.
    • Updated THIRD_PARTY_LICENSES.txt with refreshed inventory timestamp (2026-08-23), hardened dependency constraints, and full transitive build/test package inventory (altgraph, pyinstaller-hooks-contrib, pluggy, iniconfig, packaging, colorama).
    • Strengthened .gitignore with sync conflict patterns (*-WORKSTATION-LG*, *.conflict, *.sync-conflict-*) and removed stale OneDrive conflict files.
    • Added comprehensive security & license contract test suite tests/test_security_license_contract.py verifying dependency vulnerability floors, license metadata, bilingual security policy, repo hygiene, PEP 621 URLs/classifiers, and zero plaintext secrets or hardcoded user paths (76/76 pytest tests passing 100% green). [G 2026-08-23]
  • Fixed rrule_next_after and _matches_frequency_day for FREQ=DAILY and FREQ=WEEKLY with INTERVAL > 1: DAILY and WEEKLY recurrences are now properly evaluated with day-by-day frequency matching and Monday-aligned calendar weeks rather than skipping interval checks in the cursor loop or misaligning mid-week anchor intervals.

  • Hardened command_restore_latest to evaluate automation original_status case-insensitively (supporting lowercase "active" TOML status) and added fallback path resolution via automations_dir().

  • Added regression tests for DAILY/WEEKLY intervals, calendar week alignment, and case-insensitive restore handling (70/70 pytest tests passing). [G 2026-08-21]

  • Fixed recurrence calculation in rrule_next_after for FREQ=MONTHLY and FREQ=YEARLY so explicit BYMONTHDAY / BYMONTH rules and dtstart anchors are respected instead of incorrectly matching tomorrow or aborting at a 14-day limit.

  • Handled missing automations directory in command_backup with a clear error message instead of raising unhandled FileNotFoundError.

  • Windows Store installations now classify both the ChatGPT.exe host and child codex.exe app-server as one Codex process family. Startup cleanup no longer proposes terminating the live Store app-server after the zombie age threshold when a renderer is active.

  • Source Platform Smoke now installs the tray extra on Linux and macOS. The tray test mocks pystray but draws the fallback icon for real, so Pillow has to be present; without it command_tray returned 1 and the workflow had been red on every push since 2026-08-01.

  • Kept status readable when a historical Safe Start snapshot exists but the configured Codex home has no automations directory yet: the command now prints the snapshot plus a clear unavailable-state message and exits with code 1 instead of propagating SystemExit.

Documentation & Hygiene

  • Discoverability, README-Design, Badges & Metadata Parity Check (Pfad B) on 2026-08-16: synchronized testsuite badge to 66 passed (55 unit/regression/metadata + 11 platform smoke), added version and ecosystem (dev-bricks, open-bricks) badges, added interactive bilingual Mermaid system architecture diagrams, expanded sibling tools ecosystem cross-references (CareCenter-for-Codex, CodeBox, companion-for-agy, automation-master, WikiStub-Seed, MethodenAnalyser), implemented automated metadata & manifest parity test suite (tests/test_version_metadata.py), added ruff configuration in pyproject.toml, and refreshed llms.txt verification timestamps and test counts. [G 2026-08-16]
  • Technical Hygiene & Maintenance Check (Pfad A) on 2026-08-14: configured pytest discovery for cross-platform smoke tests in pyproject.toml (58/58 passed), resolved ruff unused import diagnostics, added sys.path fallback for standalone smoke test script execution, and refreshed README/README_de/llms.txt verification status and timestamps. [G 2026-08-14]
  • SOFTWARE GITHUB check on 2026-08-12: stopped tracking internal maintainer artefacts (BEFUNDE.md, TASKPLAN_STATUS_*.md), hardened .gitignore for local verification files, and refreshed README/README_de/llms.txt plus the Plan-D/release pointer documents after a clean verification run.
  • SOFTWARE GITHUB check on 2026-08-07: fast-forwarded the verified local Plan-D clone to origin/main, refreshed README/README_de/llms.txt verification timestamps and pytest badge counts (45 unit tests, 11 source platform smoke tests), and updated PLAN_D_POINTER.md plus RELEASES.md to the current HEAD/tag-readback state.
  • Technical Hygiene & Maintenance Check (Pfad A) on 2026-08-04: refreshed llms.txt and README timestamps (2026-08-04), verified full unit test suite (44 passed) and source-platform smoke test suite (11 passed, total 55/55 passed 100% green), verified compileall. [G 2026-08-04]
  • Maintainer verification on 2026-08-01 passed the full suite (44 tests), the separate source-platform smoke suite (11 tests), and compileall; refreshed verification dates in the README files and llms.txt, and advanced the Plan-D pointer to the current synchronized main HEAD. No code or release artifact was changed.
  • Refreshed llms.txt header (Last-checked: 2026-07-30), added open-bricks ecosystem badges to README.md and README_de.md, and verified 44 passing pytest tests. [G 2026-07-30]
  • Conducted Path B Discoverability & SEO audit, added ecosystem cross-links (CareCenter-for-Codex, CodeBox, companion-for-agy, ellmos-filecommander-mcp) and verification timestamps to README.md and README_de.md.
  • Refreshed llms.txt header (Last-checked: 2026-07-26) and verified 44 passing pytest test suite execution.
  • Added Mermaid system flow diagrams to README.md and README_de.md.
  • Added Shields.io status badges and AI/LLM integration callouts (> [!NOTE]) to README.md and README_de.md.

Security

  • Raised the optional tray dependency floor for Pillow to >=12.2.0 after OSV reported advisories for the previous >=10.0 lower bound.

Documentation

  • Technical hygiene audit: verified test suite (36/36 passed), updated llms.txt Last-checked timestamp to 2026-07-25, tracked PLAN_D_POINTER.md asset inventory documentation.
  • Added THIRD_PARTY_LICENSES.txt for direct build, tray, and development dependency license metadata.
  • Documented visible tray failure reporting and ignored local project lock files.
  • Added README/README_de discovery context for exact dev-bricks/safe-start-for-codex search phrases and Codex Desktop startup-gate disambiguation.
  • Added workflow badges and refreshed llms.txt with Last-checked, audience, search phrases, and source-platform smoke context.
  • Standardized llms.txt: moved Last-checked to ## Last-checked: header at line 1 (llms.txt format convention).
  • Added docs/superpowers/ to .gitignore (Claude Code plugin artifacts).

Fixed

  • Use the existing atomic JSON writer for config-init and catch-up plan state files, so interrupted writes do not leave partial local Safe Start state.
  • Made tray worker SystemExit failures visible through the Safe Start event log and notifications instead of letting the background thread die silently.
  • Made the windowed tray EXE leave startup-error logs under C:\_Local_DEV\codex-safe-start\logs instead of failing silently.
  • Updated build_exe.bat to install and bundle PyStray/Pillow tray dependencies explicitly.
  • Made tray status text clearer when nothing is currently gated or when all gated automations have already been released, so users do not see confusing 0/0 progress wording.

[1.1.3] - 2026-06-10

Added

  • Cross-platform smoke tests (tests/source_platform_smoke.py) for rrule, config, TOML, and catchup logic on macOS and Linux.
  • GitHub Actions workflow source-platform-smoke.yml running on ubuntu-latest and macos-latest.
  • PORTIERUNGSPLAN.md documenting the Windows-first platform boundary.

Fixed

  • Fixed direct execution of tray_app.py so the windowed EXE entrypoint can import the package CLI without a parent package context.

[1.1.2] - 2026-06-05

Fixed

  • Isolated the Windows EXE build from inherited PYTHONPATH entries and bundled the Safe Start icon.

[1.1.1] - 2026-06-05

Fixed

  • Added a windowed tray entrypoint and reproducible build_exe.bat for the desktop shortcut EXE.

[1.1.0] - 2026-06-04

Added

  • config.json support with config-init and config-show commands.
  • Configurable startup release count, release interval, startup delay, launch, cleanup, and catch-up settings.
  • Read-only catchup-plan command for rare schedules that appear to have missed a due run.
  • Optional catch-up prioritization during Safe Start runs, without triggering Codex Desktop's manual "Run now" action.

[1.0.0] - 2026-06-04

Added

  • Initial public source release.
  • Windows startup gate for local Codex Desktop automations.
  • Dry-run, status, backup, restore, foreground, and tray commands.
  • Upstream issue draft and solution concept.
  • Test coverage for TOML status changes and recurrence queue behavior.