Skip to content
Merged
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
1 change: 1 addition & 0 deletions docs/accessibility/maintenance-tui.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ WCAG 2.2 Level AA is applied where its criteria fit a terminal interface.*
| Zeit | Keine zeitbegrenzte Auswahl; Prozessabbruch bleibt kontrolliert |
| Sprache | Deutsch zuerst, Englisch danach, CEFR B2; TUI und Dry-run werden beim ersten Auftreten erklärt |
| Kopierbarkeit | Status, Exitcode, Berichtspfad, Logpfad und nächste Aktion bleiben Text |
| Löschbestätigung | `Safe`, `Deep`, `None` bleiben als Text sichtbar; ein Deep-Update fragt separat mit Standard Nein |

## Textmodell / Text Model

Expand Down
7 changes: 5 additions & 2 deletions docs/architecture/maintenance-tui.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ logic out of Bash, PowerShell, or the shared Python contract core.*
| Bash-/PowerShell-Wrapper | Terminal erkennen, UI auswählen, Cache sicher bereitstellen | Keine zweite Engine nach Prozessstart |
| .NET-10-TUI | Auswahl, Erklärung, Bestätigung, typisierte Argumente, Live-Anzeige | Keine Git-, Paket-, Sync- oder Providerlogik |
| Plain-Assistent | Lineare Auswahl bei fehlender TUI-Fähigkeit | Dieselben Kombinationen und Standardwerte |
| Wartungs-Engine | Freshness, Barrieren, Registry, Propagation, Presets, Toolchain | Keine UI-Abhängigkeit |
| Wartungs-Engine | Freshness, Barrieren, Registry, Propagation, Presets, Toolchain, Storage | Keine UI-Abhängigkeit |
| JSONL-Ereignisse | Advisory Live-Status mit Run-ID und Sequenz | Kein Ersatz für Bericht oder Exitcode |
| Atomarer Bericht | Kanonischer, finalisierter Laufnachweis am vorgebundenen Run-Pfad | Muss mit Prozess und einem vorhandenen Abschlussereignis übereinstimmen |
| Inhaltsadressierter Cache | Exakten lokalen TUI-Build wiederverwenden | Keine fremde Plattform, Teilpublikation oder Binärdatei in Git |
Expand All @@ -30,6 +30,7 @@ Aufruf / invocation
-> genau eine validierte Auswahl
-> erklärender, nicht ausgeführter Befehlsstring
-> Standard-Nein-Bestätigung für Update
-> bei Deep-Update eigene Standard-Nein-Bestätigung
-> genau ein interner Headless-Prozess
-> advisory JSONL-Live-Status
-> vorgebundenen Bericht + optionales Abschlussereignis + Prozess-Exit abgleichen
Expand Down Expand Up @@ -57,7 +58,9 @@ UI never invents a completion percentage.*
kanonisch; es gibt keine Suche nach der neuesten Berichtsdatei.
5. **Cache:** Quellhash, Plattform, Metadaten und vollständige atomare
Publikation müssen gemeinsam stimmen.
6. **Autorität:** Die UI-Bestätigung erlaubt genau einen lokalen
6. **Storage:** `Safe`, `Deep` oder `None` wird typisiert weitergereicht.
Nur `Deep` im Update-Modus besitzt eine zusätzliche Bestätigungsgrenze.
7. **Autorität:** Die UI-Bestätigung erlaubt genau einen lokalen
Engine-Prozess. Sie erlaubt keine Zielrepository- oder Adminaktion.

## Abbruch und Abschluss / Interruption and Completion
Expand Down
25 changes: 21 additions & 4 deletions docs/man/maintain-agentic-workspace.1.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ Die TUI zeigt die typisierte Auswahl und den entsprechenden Shell-Befehl,
bevor sie genau einen Engine-Prozess startet. Eine echte Mutation benötigt
eine Bestätigung mit Standard `Nein`. Die Oberfläche erteilt keine
Repository-, Provider-, Secret- oder Administratorrechte.
Das Storage-Profil ist sichtbar `Safe` vorausgewählt. `Deep` benötigt bei
einem echten Lauf eine eigene zweite Bestätigung.

*With no options, a fully interactive terminal first opens the maintenance
TUI with Dry-run selected. Redirected input or output preserves the previous
Expand Down Expand Up @@ -64,7 +66,11 @@ Nach dem Engine-Start gilt folgende Reihenfolge:
erfordert einen eigenen Branch beziehungsweise PR.
9. Homebrew/apt oder WinGet, Required-CLI-Tools, VS-Code-Extensions und
Required-Agenten-CLIs werden gepflegt.
10. Repository-Paritaet und Wartungspaket werden abschliessend erneut geprueft.
10. Lokales Modell-Routing wird schreibfrei geprüft.
11. Die Storage-Stufe inventarisiert und bereinigt nach dem gewählten Profil
verifizierte Level-2-Buildausgaben, Caches und ausschließlich dangling
Container-Images. `Safe` ist Standard; `scripts-only` verwendet `None`.
12. Repository-Paritaet und Wartungspaket werden abschliessend erneut geprueft.

*Control evidence is created first. The Remote Freshness Barrier then attempts
bounded fetches for Level 0 and every active Git target before any domain
Expand Down Expand Up @@ -140,7 +146,9 @@ Pro Home-Verzeichnis verhindert ein Lock parallele Wartungslaeufe. Pro Lauf
entstehen ein vollstaendiges lokales Log unter `~/.home-baseline/logs/` und ein
JSON-Bericht unter `~/.home-baseline/reports/`. Beide verwenden dieselbe Run-ID.
Der Toolchain-Kindprozess liefert seine geordneten Einzelresultate an denselben
Bericht. Normaler Abschluss, ein spaeter Fehler sowie `INT`/`TERM` ersetzen
Bericht. Die Storage-Stufe bettet ihren privaten atomaren Detailbericht mit
Profil, Pressure Mode, Kandidaten, Bytes, Non-MSL-Begründungen und Warnungen
ebenfalls ein. Normaler Abschluss, ein spaeter Fehler sowie `INT`/`TERM` ersetzen
einen Zwischenstatus genau einmal atomar. Terminal, Log, Reportstatus,
letzte Stufe und Prozess-Exitcode bleiben dadurch konsistent. Eigene reparierte
Dirty-Zwischenstaende werden nur mit
Expand Down Expand Up @@ -176,6 +184,8 @@ after-hashes; unknown or partial changes block.*
| `--repair-drift` | `-RepairDrift` | Wartungspaket lokal reparieren; nie committen/pushen / Repair package locally; never commit/push |
| `--include-optional` | `-IncludeOptional` | Auch optionale Maschinenpakete installieren / Install optional machine packages too |
| `--allow-admin-prompts` | `-AllowAdminPrompts` | Administratorabfragen nur fuer diesen Lauf erlauben / Allow administrator prompts for this run only |
| `--cleanup-profile safe\|deep\|none` | `-CleanupProfile Safe\|Deep\|None` | Storage-Profil; Standard Safe / Storage profile; default Safe |
| `--confirm-deep-cleanup` | `-ConfirmDeepCleanup` | Echten Deep-Lauf zusätzlich bestätigen / Confirm an update Deep run separately |
| `--manifest PATH` | `-ManifestPath PATH` | Alternatives Fleet-Manifest / Alternative fleet manifest |
| `--home-dir PATH` | `-HomeDir PATH` | Alternatives Home fuer Tests/Profile / Alternative home for tests/profiles |
| — | `-GitRetryAttempts N` | Begrenzte Versuche nur fuer transiente Git-Netzwerkfehler / Bounded attempts for transient Git network failures only |
Expand All @@ -184,7 +194,9 @@ after-hashes; unknown or partial changes block.*

`--check-only` / `-CheckOnly` und Vorschau sind gegenseitig exklusiv.
Drift-Reparatur ist nur in einem echten Lauf erlaubt. Optionale Pakete sind im
`scripts-only`-Modus nicht anwendbar. Administratorinteraktion ist
`scripts-only`-Modus nicht anwendbar; dieser Modus erzwingt Storage-Profil
`None`. Ein echter Deep-Lauf erfordert eine eigene Bestätigung.
Administratorinteraktion ist
standardmaessig gesperrt. Die Freigabe gilt nur fuer den aktuellen Prozess und
speichert keine Zugangsdaten.

Expand Down Expand Up @@ -280,6 +292,8 @@ bash scripts/maintain-agentic-workspace.sh --tui
bash scripts/maintain-agentic-workspace.sh --plain-ui
bash scripts/maintain-agentic-workspace.sh --check-only
bash scripts/maintain-agentic-workspace.sh --dry-run
bash scripts/maintain-agentic-workspace.sh --dry-run --cleanup-profile safe
bash scripts/maintain-agentic-workspace.sh --cleanup-profile deep --confirm-deep-cleanup
bash scripts/maintain-agentic-workspace.sh --manifest /tmp/fleet.json --home-dir /tmp/test-home --dry-run
bash scripts/maintain-agentic-workspace.sh
bash scripts/maintain-agentic-workspace.sh --scripts-only --repair-drift
Expand All @@ -290,6 +304,8 @@ pwsh -NoProfile -File scripts/maintain-agentic-workspace.ps1 -Tui
pwsh -NoProfile -File scripts/maintain-agentic-workspace.ps1 -PlainUi
pwsh -NoProfile -File scripts/maintain-agentic-workspace.ps1 -CheckOnly
pwsh -NoProfile -File scripts/maintain-agentic-workspace.ps1 -WhatIf
pwsh -NoProfile -File scripts/maintain-agentic-workspace.ps1 -WhatIf -CleanupProfile Safe
pwsh -NoProfile -File scripts/maintain-agentic-workspace.ps1 -CleanupProfile Deep -ConfirmDeepCleanup
pwsh -NoProfile -File scripts/maintain-agentic-workspace.ps1 -WhatIf -GitRetryAttempts 3 -GitTimeoutSeconds 300 -WinGetTimeoutSeconds 1800
pwsh -NoProfile -File scripts/maintain-agentic-workspace.ps1 -ManifestPath C:\Temp\fleet.json -HomeDir C:\Temp\TestHome -WhatIf
pwsh -NoProfile -File scripts/maintain-agentic-workspace.ps1
Expand All @@ -298,6 +314,7 @@ pwsh -NoProfile -File scripts/maintain-agentic-workspace.ps1 -ScriptsOnly -Repai

## SEE ALSO

`maintain-agentic-brew-apps(1)`, `maintain-agentic-winget-apps(1)`,
`maintain-workspace-storage(1)`, `maintain-agentic-brew-apps(1)`,
`maintain-agentic-winget-apps(1)`,
`propagate-agentic-toolchain-maintenance(1)`, `register-level2-repository(1)`,
`sync-home(1)`
119 changes: 119 additions & 0 deletions docs/man/maintain-workspace-storage.1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
# maintain-workspace-storage(1)

## NAME

`maintain-workspace-storage` - inventarisiert und bereinigt verifizierte
Workspace-Buildausgaben und Caches / inventories and reclaims verified
workspace build outputs and caches

## SYNOPSIS

```bash
bash scripts/maintain-workspace-storage.sh [OPTIONEN]
```

```powershell
pwsh -NoProfile -File scripts/maintain-workspace-storage.ps1 [OPTIONEN]
```

## DESCRIPTION

Das Skript verarbeitet ausschließlich aktive Level-2-Repositories aus dem
lokalen Register. Ein Repo-Kandidat muss im Repo liegen, darf kein Symlink
sein und muss von Git als ignoriert und nicht getrackt nachgewiesen werden.
Das Standardprofil `safe` berücksichtigt sieben Tage Aufbewahrung. Sind
weniger als 15 Prozent des Dateisystems frei, wird Pressure Mode aktiviert und
sichere Kandidaten dürfen unabhängig vom Alter bereinigt werden.

*The script processes only active Level-2 repositories from the local
registry. Every repository candidate must remain inside its repository, must
not be a symlink, and must be proven ignored and untracked by Git. The default
`safe` profile keeps outputs for seven days. Below 15 percent free filesystem
space, pressure mode makes safe candidates eligible regardless of age.*

Das Profil `deep` nimmt zusätzlich wiederherstellbare Dependency-Caches auf
und erfordert in einem echten Lauf `--confirm-deep-cleanup` beziehungsweise
`-ConfirmDeepCleanup`. `none` ist ein explizites No-op-Profil. `check-only`
inventarisiert, Dry-run/WhatIf zeigt den Plan und nur ein bestätigter echter
Lauf führt Providerbefehle oder Löschungen aus.

Providerwarnungen werden im privaten, atomaren JSON-Bericht festgehalten und
haben Exitcode `0`. Aufruf-, Policy-, Pfad- und Betriebsfehler haben Exitcode
`2`. Der Bericht liegt standardmäßig unter
`~/.home-baseline/reports/workspace-storage-<RUN-ID>.json` und erhält nur
Benutzerzugriff.

## NON-MSL ADAPTERS

`C64Projects/cc65` verwendet absichtlich C89 und 6502-Assembly für 8-Bit-
Kompatibilität. Safe führt nur vorab geprüfte native `make ... clean`-Gruppen
für Hostwerkzeuge, Laufzeitbibliotheken, generierte Dokumentation und
Regression-Arbeitsverzeichnisse aus. Sample- und Targettest-Nachweise wie
Disk-Images, Zielbinärdateien, Maps, Labels und Debuglisten bleiben erhalten.
`make zap` wird nie verwendet; Root-`make clean` gehört nur zu `deep`. Weicht
dessen Vorschau von den deklarierten Pfaden ab, protokolliert Deep die
Scope-Warnung und fällt auf die einzeln geprüften Safe-Gruppen zurück.

*`make zap` is never used, and root `make clean` belongs to `deep` only. If its
preview exceeds the declared paths, Deep records the scope warning and falls
back to the individually proven Safe groups.*

`CLionProjects/tvision` bleibt wegen Quell-/ABI-Kompatibilität C++14. Ein
CMake-Buildverzeichnis wird nur akzeptiert, wenn sein `CMakeCache.txt` auf
eine Repo-interne Quelle mit getrackter `CMakeLists.txt` zeigt. Verschachtelte
`_deps`-Builds werden dedupliziert. Der echte Lauf verwendet zunächst
`cmake --build <DIR> --target clean` und entfernt danach den verifizierten
Buildbaum.

*The curated non-MSL adapters preserve each repository's constitutional
justification and compensating controls. Unknown non-MSL repositories are
reported but never handled by generic deletion rules.*

## CACHE AND CONTAINER BOUNDARIES

- npm: `verify` normal, `clean --force` nur in Pressure Mode oder `deep`.
- NuGet: HTTP-, Plugin- und Temp-Caches in Safe; Global Packages nur `deep`.
- Go: Build-/Testcache in Pressure Mode, Module Cache nur `deep`.
- Homebrew: nativer `brew cleanup`, in Pressure Mode/Deep mit `--prune=all`.
- Container: ausschließlich dangling images; keine Volumes, kein `--all`, kein
`system prune`.
- Podman auf macOS: Socket wird pro Lauf aus `podman machine inspect`
ermittelt und als existierender Unix-Socket verifiziert. TCP-Fallbacks und
gespeicherte Hostpfade sind unzulässig.

Cargo-, Maven-, Gradle- und Swift-Dependency-Stores bleiben in Version 1
unberührt.

## OPTIONS

| Bash | PowerShell | Wirkung / Effect |
|---|---|---|
| `--check-only` | `-CheckOnly` | Nur inventarisieren / Inventory only |
| `--dry-run` | `-WhatIf` | Bereinigungsplan zeigen / Preview cleanup plan |
| `--profile safe\|deep\|none` | `-CleanupProfile Safe\|Deep\|None` | Profil wählen / Select profile |
| `--confirm-deep-cleanup` | `-ConfirmDeepCleanup` | Echten Deep-Lauf bestätigen / Confirm update Deep run |
| `--home-dir PATH` | `-HomeDir PATH` | Alternatives Home / Alternative home |
| `--registry PATH` | `-RegistryPath PATH` | Alternatives Register / Alternative registry |
| `--policy PATH` | `-PolicyPath PATH` | Alternative Policy / Alternative policy |
| `--result-file PATH` | `-ResultFile PATH` | Privater Bericht / Private report |
| `--run-id UUID` | `-RunId UUID` | Laufkorrelation / Run correlation |

## EXAMPLES

```bash
bash scripts/maintain-workspace-storage.sh --check-only
bash scripts/maintain-workspace-storage.sh --dry-run --profile safe
bash scripts/maintain-workspace-storage.sh --profile deep --confirm-deep-cleanup
```

```powershell
pwsh -NoProfile -File scripts/maintain-workspace-storage.ps1 -CheckOnly
pwsh -NoProfile -File scripts/maintain-workspace-storage.ps1 -WhatIf -CleanupProfile Safe
pwsh -NoProfile -File scripts/maintain-workspace-storage.ps1 -CleanupProfile Deep -ConfirmDeepCleanup
```

## SEE ALSO

`maintain-agentic-workspace(1)`,
`scripts/config/workspace-storage-maintenance.json`,
`docs/maintenance/README.md`
Loading
Loading