Annahme-Selbstheilung: Orphan-Branches entlarven, veraltete Branches auto-rebasen
Anlass: feature/cleanse-skill-index — ein Werkstatt-Worker hatte git init statt
Klonen gemacht (Orphan-Commit ohne gemeinsamen Vorfahren, Inhalt: ~/.hermes-Index-
Dateien statt Repo-Dateien). Solche Karten sahen aus wie normale Vorschlaege,
liefen bei Annahme aber IMMER in 'refusing to merge unrelated histories' — und
die Fehlermeldung ('bitte am PC aufloesen') war eine Sackgasse. Das passiert
oefter; darum drei Schichten dagegen:
1) ERKENNEN (Auftragsbuch): neue Karten-Flags 'verwaist' (kein merge-base mit
main -> rote Markierung 'kein gemeinsamer Ursprung', Annehmen-Knopf fehlt,
API+Runner halten zusaetzlich dicht) und 'leer' (Diff gegen main leer ->
'bringt nichts'-Badge). Empfehlung auf der Karte: ablehnen mit Grund,
Idee frisch in die Queue.
2) HEILEN (beide Runner, mc2 + lucy): kollidiert der Merge, weil main weiter-
gelaufen ist, versucht der Runner automatisch einen Rebase des Branches auf
main (isolierter Worktree; Gates laufen danach normal, Merge-Message sagt
'auto-rebased'). Nur wenn auch der Rebase kollidiert, faellt die Karte durch —
mit ehrlicher Meldung statt 'am PC aufloesen'.
3) VERHINDERN (werkstatt-SOUL): voll klonen (nie git init/--depth), Selbstcheck
'git merge-base HEAD origin/main' + fetch/rebase vor JEDEM Push, nie
~/.hermes-Artefakte committen.
Doku: AUFTRAGSBUCH.md + FALLEN.md (Erkennungsmuster: Diff 0 Dateien + behind ~
ganze Historie) + OFFENE-FAEDEN. Geprueft: py_compile gruen, bash -n beide
Runner gruen, tsc+vite build gruen (dist dabei); merge-base-Verhalten am echten
kaputten Branch auf der Box verifiziert.
This commit is contained in:
@@ -53,6 +53,9 @@ bewiesen; ein Eigenbau hätte all das nur nachgebaut.
|
||||
## Was „Annehmen" bei einem Patch macht (deploy/auftrag-annehmen.sh)
|
||||
|
||||
1. Merge des Branches in einem **isolierten Worktree** (Live-Checkout bleibt unberührt).
|
||||
Kollidiert der Merge, weil main weitergelaufen ist, versucht der Runner **automatisch
|
||||
einen Rebase** des Branches auf main (Selbstheilung für veraltete Vorschläge) — erst
|
||||
wenn auch der kollidiert, fällt die Karte mit ehrlicher Meldung durch.
|
||||
2. `py_compile`-Gate über die geänderten Python-Dateien.
|
||||
3. Push nach `main` auf Gitea (mit Retry).
|
||||
4. Deploy (als /tmp-Kopie von deploy.sh — Selbst-Reset-Falle) — die Zentrale
|
||||
@@ -64,6 +67,15 @@ Der Lauf ist eine eigene systemd-Unit (detached) — er überlebt den Neustart d
|
||||
Backends, das ihn gestartet hat. Fortschritt steht live auf der Karte
|
||||
(`/srv/models/mc2-auftragsbuch.json`).
|
||||
|
||||
**Kaputt aufgesetzte Branches** (Worker machte `git init`/Shallow statt zu klonen → kein
|
||||
gemeinsamer Ursprung mit main, „refusing to merge unrelated histories") erkennt das
|
||||
Auftragsbuch an der Quelle: rote Markierung „kein gemeinsamer Ursprung", der
|
||||
Annehmen-Knopf fehlt (Annehmen wäre ein garantierter Fehllauf), API und Runner halten
|
||||
zusätzlich dicht. Ebenso markiert: „Diff leer — bringt nichts" (Branch würde gegenüber
|
||||
main nichts ändern). In beiden Fällen: **ablehnen mit Grund** und die Idee frisch in die
|
||||
Queue geben; die Prävention (voll klonen, merge-base-Selbstcheck, fetch+rebase vor dem
|
||||
Push) steht in der werkstatt-SOUL.
|
||||
|
||||
## Was „Annehmen" bei einer LUCY-Karte macht (deploy/lucy-annahme.sh)
|
||||
|
||||
Lucy (Electron) lebt auf dem Windows-PC; ihr `dist` liegt nicht im Repo — die Box
|
||||
|
||||
@@ -26,6 +26,17 @@ Neue Fallen: hier eintragen, mit Datum und Symptom._
|
||||
CR-Falle (`sed 's/\r$//'`).
|
||||
- **Stale `index.lock`** im Box-Repo nach Deploy-Abbruch: Alter prüfen, dann löschen.
|
||||
- **`hermes` ist über SSH nicht im PATH** → immer `bash -lc 'hermes …'`.
|
||||
- **Werkstatt-Orphan-Branches („refusing to merge unrelated histories"):** macht ein
|
||||
Worker `git init`/Shallow statt voll zu klonen, entsteht ein Branch OHNE gemeinsamen
|
||||
Vorfahren — Erkennungsmuster auf der Karte: **Diff „0 Dateien" + „hinter main" ≈ ganze
|
||||
Historie** (z. B. 386). Merge ist NIE möglich; oft ist der Inhalt obendrein Müll
|
||||
(~/.hermes-Dateien statt Repo-Dateien). Seit 12.07.2026 markiert das Auftragsbuch solche
|
||||
Karten („kein gemeinsamer Ursprung", Annehmen-Knopf weg) → ablehnen mit Grund, Idee neu
|
||||
in die Queue. Prävention steht in der werkstatt-SOUL (voll klonen + merge-base-Selbstcheck).
|
||||
- **Ehrlich-veraltete Branches (echter Merge-Konflikt):** die Annahme versucht seit
|
||||
12.07.2026 automatisch einen Rebase auf main (isolierter Worktree, Gates laufen danach
|
||||
normal). Nur wenn AUCH der Rebase kollidiert, fällt die Karte durch — dann ablehnen und
|
||||
die Idee frisch einqueuen statt „am PC auflösen".
|
||||
|
||||
## Box / systemd / llama-swap
|
||||
|
||||
|
||||
@@ -29,8 +29,13 @@ keine zweite Liste anlegen. Verdikte werden NICHT als „offen" geführt → [VE
|
||||
durch: A4-Turncheck Default AUS (680 Entscheidungen, 79 % der Halte umsonst), dist am PC
|
||||
gebaut. **Erster Live-Lauf fand 2 Runner-Bugs** (Start-Process-Quoting bei Leerzeichen-Pfad,
|
||||
f-String-`\"` auf Python 3.14 → Poll blind; Abschluss manuell nachgezogen, Build war grün) —
|
||||
Fixes + Executor-Fensterblitz-Fix in Karte `wartung/lucy-annahme-fixes`. Details FALLEN.md.
|
||||
**Der nächste Lucy-Auftrag ist der ehrliche Voll-Automatik-Test.**
|
||||
Fixes + Executor-Fensterblitz-Fix in Karte `wartung/lucy-annahme-fixes` (✅ angenommen).
|
||||
Details FALLEN.md. **Der nächste Lucy-Auftrag ist der ehrliche Voll-Automatik-Test.**
|
||||
- **Annahme-Selbstheilung (12.07. abends, nach cleanse-skill-index-Vorfall):** Auftragsbuch
|
||||
erkennt Orphan-Branches („kein gemeinsamer Ursprung", Annehmen-Knopf weg) und leere
|
||||
Diffs; beide Runner rebasen veraltete Branches automatisch, bevor sie aufgeben;
|
||||
werkstatt-SOUL: voll klonen + merge-base-Selbstcheck + fetch/rebase vor Push, nie
|
||||
~/.hermes-Artefakte committen. Karte `wartung/annahme-selbstheilung`.
|
||||
- **S4 „leg los zuendung" ✅ gebaut (12.07.):** Idle-Radar (`deploy/idle-radar-feed.sh`,
|
||||
Hermes-Cron nächtlich 03:45): Journal-Fehlermuster + Traum-Funde → max. 2 belegte rohe
|
||||
Ideen/Nacht ins native Kanban (Ehrlichkeits-Gate prüft Beleg-Zitate mechanisch,
|
||||
|
||||
Reference in New Issue
Block a user