docs: Entscheid 6 — Faehigkeiten statt Modus-Name, und ein Setup das fragt
Ampel / ampel (push) Failing after 54s
Ampel / ampel (push) Failing after 54s
Beide Befunde des Commanders vom 28.08.2026 festgehalten, mitsamt der Begruendung, warum ein 'if (windows)' an dreissig Stellen die falsche Reparatur gewesen waere: Die Oberflaeche haette weiterhin nichts ueber ihren Betrieb gewusst, nur eine zweite Sorte Vermutung gehabt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
a4a045f303
commit
b47d21510d
@@ -1362,8 +1362,62 @@ Black-Box-Trennung aus `KONZEPT.md` § 6. Beides bleibt gültig.
|
|||||||
`vendor/`-Ordner für MakeMKV auf der VM. Ein Binärblob in git wäre bei jedem
|
`vendor/`-Ordner für MakeMKV auf der VM. Ein Binärblob in git wäre bei jedem
|
||||||
Klon dabei und bei jedem Update ein zweites Mal.
|
Klon dabei und bei jedem Update ein zweites Mal.
|
||||||
|
|
||||||
|
|
||||||
|
### Entscheid 6 — Die Oberfläche kennt ihren Betrieb, und das Setup fragt
|
||||||
|
|
||||||
|
Zwei Befunde des Commanders am 28.08.2026, beide am selben Punkt:
|
||||||
|
|
||||||
|
> „Du hast ja quasi nur rippy genommen und die docker installation für Windows
|
||||||
|
> gebaut. […] Das gilt für die ganze standalone version für Windows, auch für
|
||||||
|
> die settings und die Anleitung usw."
|
||||||
|
|
||||||
|
> „Dann hätte ich beim ‚Setup' auch erwartet das nen echtes setup passiert —
|
||||||
|
> wo will ich das hinspeichern, nen pre requirement check usw. Da kommt
|
||||||
|
> garnichts Rippy geht einfach auf."
|
||||||
|
|
||||||
|
#### 6a — Fähigkeiten statt Modus-Name
|
||||||
|
|
||||||
|
Im Windows-Fenster stand `Worker erreichbar: 0 von 1`, `Container-Platte:
|
||||||
|
unbekannt` und `Prüfen: docker compose ps`. Kein Satz davon ergibt dort einen
|
||||||
|
Sinn.
|
||||||
|
|
||||||
|
Die naheliegende Reparatur wäre ein `if (windows)` an dreißig Stellen gewesen
|
||||||
|
— dieselbe Falle noch einmal, nur mit einer zweiten Sorte Vermutung. Es
|
||||||
|
fehlte etwas anderes: **Das UI hat nie erfahren, worauf es läuft.**
|
||||||
|
|
||||||
|
`GET /betrieb` meldet deshalb **Fähigkeiten**, keinen Namen:
|
||||||
|
|
||||||
|
externe_worker Gibt es andere Maschinen, die Jobs übernehmen?
|
||||||
|
freigaben_einhaengen Kann Rippy Netzwerk-Freigaben selbst einhängen?
|
||||||
|
container_pfade Sind Pfade wie /app/media überhaupt gemeint?
|
||||||
|
werkzeuge_verwalten Kann Rippy MakeMKV/HandBrake selbst beschaffen?
|
||||||
|
|
||||||
|
Ein Modus-Name würde das UI zwingen, aus einem Namen auf Verhalten zu
|
||||||
|
schließen — und das bricht beim nächsten Betriebsfall: Ein Docker-All-in-One
|
||||||
|
hat Container-Pfade, aber keinen zweiten Worker.
|
||||||
|
|
||||||
|
#### 6b — Ein Setup, das prüft und fragt
|
||||||
|
|
||||||
|
Acht Voraussetzungs-Prüfungen, zwei Ordner-Wahlen (Programm **und** Ablage),
|
||||||
|
Port, drei Schalter. Drei Regeln:
|
||||||
|
|
||||||
|
1. **Nur ein Fehler blockiert.** Eine Warnung, die den Knopf sperrt, ist eine
|
||||||
|
Bevormundung; ein Fehler, der nur warnt, ist eine Falle. Kein optisches
|
||||||
|
Laufwerk ist eine Warnung — eine reine Komprimier-Maschine ist ein
|
||||||
|
vorgesehener Betriebsfall.
|
||||||
|
2. **Jeder Befund sagt, was zu tun ist.** Ein Test hält das für jede Prüfung
|
||||||
|
fest.
|
||||||
|
3. **Die Prüfungen kennen kein Fenster.** Sie stehen in `einrichtung.py` und
|
||||||
|
sind vollständig ohne WebView2 prüfbar; im Fenstermodul steht nur Aufbau
|
||||||
|
und Brücke.
|
||||||
|
|
||||||
|
WebView2 statt Win32-Dialog: Es ist wegen Entscheid 4 ohnehin da — der
|
||||||
|
Assistent kostet **null zusätzliche Bytes**. Die Seite lädt nichts aus dem
|
||||||
|
Netz; sie muss auf einem Rechner ohne Internet aufgehen.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
### Was jetzt noch fehlt, bevor gebaut wird
|
### Was jetzt noch fehlt, bevor gebaut wird
|
||||||
|
|
||||||
- **`KONZEPT.md` § 10 fortschreiben** — Entscheid 2 widerspricht dem Eintrag vom
|
- **`KONZEPT.md` § 10 fortschreiben** — Entscheid 2 widerspricht dem Eintrag vom
|
||||||
|
|||||||
@@ -639,6 +639,14 @@ Medien.
|
|||||||
- [x] Symbol mit allen Größen, die Windows holt (16/32/48/256) — vorher steckte
|
- [x] Symbol mit allen Größen, die Windows holt (16/32/48/256) — vorher steckte
|
||||||
nur 256×256 in der `.ico`, und Desktop, Startmenü und Taskleiste zeigten
|
nur 256×256 in der `.ico`, und Desktop, Startmenü und Taskleiste zeigten
|
||||||
ein leeres Blatt
|
ein leeres Blatt
|
||||||
|
- [x] **Ein echtes Setup** (`einrichtung.py`, `setup_fenster.py`): acht
|
||||||
|
Voraussetzungs-Prüfungen, Zielordner UND Ablage zur Wahl, Port,
|
||||||
|
Autostart/Verknüpfungen/Werkzeuge als Schalter. Vorher installierte der
|
||||||
|
Doppelklick stillschweigend und öffnete das Fenster.
|
||||||
|
- [x] **Die Oberfläche kennt ihren Betrieb** (`betrieb.py`, `GET /betrieb`,
|
||||||
|
`useBetrieb.tsx`): keine Worker-Zähler, keine Container-Platte, kein
|
||||||
|
`docker compose ps` mehr im Windows-Client — und der Docker-Betrieb
|
||||||
|
behält alles.
|
||||||
- [ ] Standby blocken via `SetThreadExecutionState`, ohne `ES_DISPLAY_REQUIRED`
|
- [ ] Standby blocken via `SetThreadExecutionState`, ohne `ES_DISPLAY_REQUIRED`
|
||||||
— **offen**
|
— **offen**
|
||||||
- **Fertig, wenn:** auf einem frischen Win-11-Rechner gilt: Installer →
|
- **Fertig, wenn:** auf einem frischen Win-11-Rechner gilt: Installer →
|
||||||
|
|||||||
Reference in New Issue
Block a user