Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,22 @@ TESTERGEBNISSE.txt
BUGREPORT.md
DIAGNOSE_REPORT.md
LOCK*.txt
BEFUNDE.md
# Diese vier sind hier noch getrackt: MARKETING-LOG.txt, STORE_CONTRACT.md und
# RUNTIME_DAILY_CARE.md sind in pyproject.toml/llms.txt/README verlinkt und
# durch tests/test_metadata.py, tests/test_store_contract.py bzw.
# tests/test_softwarecenter_sync.py als Konsistenzvertrag verankert; _WARTUNG/
# ist Fixture fuer tests/test_store_contract.py. Aus dem Tracking nehmen
# erfordert zuerst diese Referenzen aufzuloesen (T-20260926-510472849, offene
# Entscheidung -- nicht Teil dieser Bereinigung). Das Muster steht trotzdem
# hier, damit KEIN NEUES Repo diese Namen unbedacht wieder committet.
*MARKETING-LOG.txt
*STATUS-LOG.txt
*_DAILY_CARE.md
TASKPLAN_STATUS_*.md
STORE_CONTRACT.md
_WARTUNG/
_STAGING/

# ---- Persoenliche / Sensible Daten ----
_USER/
Expand Down
49 changes: 0 additions & 49 deletions BEFUNDE.md

This file was deleted.

4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.

## [Unreleased] - 2026-09-23 (Pfad A: Technical Hygiene, CI Lifecycle & Lock Defense)

### Fixed (Repo Hygiene, T-20260926-510472849)
- Untracked two agent-internal files that a public repo should not publish: `STORE_CONTRACT.md` (internal Store release/versioning bookkeeping) and `_WARTUNG/msix_staging/` (staged MSIX build output). Both stay on disk locally (gitignored), nothing was deleted. `MARKETING-LOG.txt` was considered but is a deliberate public artifact here (`pyproject.toml` project.url, a dedicated test) and stays tracked.
- Rebuilt the parts of the public contract that referenced them: `PRODUCT_BOUNDARIES.md` and `scripts/verify_product_boundaries.py` now cite `STORE_LISTING.md`/`WINDOWS_STORE_PREP.md` only; `tests/test_store_contract.py` checks the same version-consistency invariant against `store_package.json`/`pyproject.toml`/`SoftwareCenter.py`/`STORE_LISTING.md` instead of the untracked files.

### Hygiene & Governance
- Linter Zero-Tolerance: Resolved 7 ruff lint diagnostics (unused imports and import sorting in `SoftwareCenter.py` and `tests/test_ui_accessibility.py`); verified 100% clean across all rule-sets.
- Open-Source Attribution: Created canonical root `NOTICE` attribution file (Lukas Geiger, file-bricks, open-bricks umbrella).
Expand Down
8 changes: 5 additions & 3 deletions PRODUCT_BOUNDARIES.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,11 @@ identity, or release artifact.
| Store metadata | `store_package.json` | `store_package_launchboards.json` |
| Local release artifact | versioned SoftwareCenter path | `releases/v1.0.0/LaunchBoards-1.0.0-win64.exe` |

`STORE_CONTRACT.md`, `STORE_LISTING.md`, and `WINDOWS_STORE_PREP.md` remain the
canonical SoftwareCenter Store contract and contain no LaunchBoards identity or
artifact. LaunchBoards metadata is intentionally separate and does not alter
`STORE_LISTING.md` and `WINDOWS_STORE_PREP.md` remain the canonical, public
SoftwareCenter Store contract and contain no LaunchBoards identity or
artifact (the former `STORE_CONTRACT.md` covered the same invariant but was
agent-internal release bookkeeping, untracked per T-20260926-510472849).
LaunchBoards metadata is intentionally separate and does not alter
SoftwareCenter release hashes.

## Reproducible verification
Expand Down
53 changes: 0 additions & 53 deletions STORE_CONTRACT.md

This file was deleted.

52 changes: 0 additions & 52 deletions _WARTUNG/msix_staging/AppxManifest.xml

This file was deleted.

Binary file removed _WARTUNG/msix_staging/icons/Square150x150Logo.png
Binary file not shown.
Binary file removed _WARTUNG/msix_staging/icons/Square310x310Logo.png
Binary file not shown.
Binary file removed _WARTUNG/msix_staging/icons/Square44x44Logo.png
Binary file not shown.
Binary file removed _WARTUNG/msix_staging/icons/Wide310x150Logo.png
Binary file not shown.
2 changes: 1 addition & 1 deletion scripts/verify_product_boundaries.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ def verify_static_contract() -> dict[str, str]:
build_script = (ROOT / "build_exe_launchboards.bat").read_text(encoding="utf-8")
software_store_docs = "\n".join(
(ROOT / name).read_text(encoding="utf-8")
for name in ("STORE_CONTRACT.md", "STORE_LISTING.md", "WINDOWS_STORE_PREP.md")
for name in ("STORE_LISTING.md", "WINDOWS_STORE_PREP.md")
)

assert sc.PROFILE_SOFTWARECENTER.name == "SoftwareCenter"
Expand Down
18 changes: 7 additions & 11 deletions tests/test_store_contract.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
"""Regression contract for versioned SoftwareCenter Store metadata."""
"""Regression contract for versioned SoftwareCenter Store metadata.

STORE_CONTRACT.md and _WARTUNG/msix_staging/ (staged MSIX build output) were
untracked as agent-internal / build-artifact material (T-20260926-510472849,
GITHUB-POLICY.md SS3). This contract now checks only files that stay public:
store_package.json, pyproject.toml, SoftwareCenter.py, and STORE_LISTING.md.
"""

import json
import re
Expand All @@ -24,7 +30,6 @@ def _project_version() -> str:
def test_store_package_is_the_documented_canonical_contract():
package = json.loads((ROOT / "store_package.json").read_text(encoding="utf-8"))
listing = (ROOT / "STORE_LISTING.md").read_text(encoding="utf-8")
contract = (ROOT / "STORE_CONTRACT.md").read_text(encoding="utf-8")

assert package["app_name"] == "SoftwareCenter"
assert package["publisher"] == "CN=52596601-BAB4-4F3F-B182-E8F3F273B202"
Expand All @@ -38,8 +43,6 @@ def test_store_package_is_the_documented_canonical_contract():
assert package["support_url"].endswith("/issues")

assert "### Category\nUtilities & Tools" in listing
assert "`store_package.json` ist die kanonische" in contract
assert "`runFullTrust`" in contract


def test_version_is_identical_in_every_store_relevant_source():
Expand All @@ -54,12 +57,5 @@ def test_version_is_identical_in_every_store_relevant_source():
assert runtime == project, f"SoftwareCenter.py {runtime} != pyproject.toml {project}"
assert package["version"] == four_part

manifest = (ROOT / "_WARTUNG" / "msix_staging" / "AppxManifest.xml").read_text(
encoding="utf-8-sig"
)
assert f'Version="{four_part}"' in manifest

contract = (ROOT / "STORE_CONTRACT.md").read_text(encoding="utf-8")
listing = (ROOT / "STORE_LISTING.md").read_text(encoding="utf-8")
assert f"`{four_part}`" in contract
assert f"| Version | {four_part} |" in listing
Loading