UMBAU v3 P2: Steward — Waechter-Loops als eigener Prozess mc2-steward
Re-Warm, Health-Sentry und Mem0-Dedupe laufen als eigener Dienst
(backend/steward.py, Restart=always) statt im Steuerpult-Lifespan:
MC2-Neustarts nehmen den Waechtern nicht mehr Timing/Flanken-Gedaechtnis,
und der Sentry ueberwacht erstmals MC2 SELBST + mc2-gateway (Telegram
funktioniert auch bei totem Steuerpult; Briefkasten-Abgabe per HTTP via
MC_ANNOUNCE_HTTP, Store bleibt exklusiv beim MC2-Prozess). Warm-Nudge
nach Config-Aenderung via mtime-Watch (5 s) statt In-Process-Signal.
Reiner Konfig-Split: MC2-Unit setzt die drei ENABLED-Schalter auf 0,
Zeilen entfernen = Rollback. reminders_loop bleibt bewusst in MC2
(teilt Datei+CRUD mit /api/reminders, Zwei-Schreiber-Risiko).
Stellt ausserdem den beim Karten-Neuaufbau (ccc9a25) verlorenen
stack-postcheck-Block fuer mc2-gateway wieder her (+ Steward-Check 4c).
Baut auf feature/von-allein-und-gateway-p1 auf; Annahme schliesst P1 ein.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -60,7 +60,8 @@ alles Weitere. Recherche-Verdikte dazu (15.07.): FastAPI bleibt (Litestar erwoge
|
||||
Coder-Modell-Wissen gewinnen), React bleibt (Svelte/Solid schneller, aber irrelevant für
|
||||
1-Nutzer-LAN), SSE ist 2026 der klare Dashboard-Standard (einweg, Auto-Reconnect, ~95 % der Fälle).
|
||||
|
||||
- **P1 · Gateway-Auszug** ✅ GEBAUT (Branch `umbau/p1-gateway-auszug`, wartet auf Klick):
|
||||
- **P1 · Gateway-Auszug** ✅ GEBAUT (Karte `feature/von-allein-und-gateway-p1` @ ccc9a25,
|
||||
wartet auf Klick — Annahme AKTIVIERT Stufe 1):
|
||||
Der /v1-Datenpfad wird eigener Prozess `mc2-gateway.service` (Loopback **:9010**,
|
||||
`Restart=always`, gleicher Router-Code `routers/gateway_proxy.py`, neuer Einstieg
|
||||
`backend/gateway_app.py`). MC2 :9001/v1 wird dünner Roh-Weiterleiter (`MC_V1_UPSTREAM` in der
|
||||
@@ -71,10 +72,23 @@ Coder-Modell-Wissen gewinnen), React bleibt (Svelte/Solid schneller, aber irrele
|
||||
`127.0.0.1:9001/v1` auf `127.0.0.1:9010/v1` um (Backups, `--revert`, bewusst NICHT im
|
||||
deploy.sh — config.yaml ist Zwei-Schreiber-sensibel). Danach überlebt Lucys Hirn + die ganze
|
||||
Nacht-Autonomie jeden MC2-Neustart. Postcheck prüft den Gateway mit (nur wenn Unit enabled).
|
||||
- **P2 · Steward** (Karte, nach P1): die 4 Endlos-Loops (warmer, sentry, reminders, Mem0-dedupe)
|
||||
aus dem Webserver-Lifespan in einen eigenen Mini-Dienst — ein Steuerpult-Neustart darf keinem
|
||||
Wächter Timing/Gedächtnis nehmen. Danach gibt es genau ZWEI Zeitplan-Systeme mit klaren Rollen:
|
||||
systemd-Timer (Box-Pflege) + Hermes-Crons (Agenten-Arbeit).
|
||||
**Nach der Annahme prüfen (Fahrplan):** ① `curl 127.0.0.1:9010/gw/health` (Box) + Dashboard
|
||||
normal; ② self-smoke Check 4 „Repo-Wächter" grün; ③ Bild-Weiche-E2E durch den NEUEN Prozess:
|
||||
Bild an `model:"coder"` → Header `x-mc-route-reason: Bild beschrieben (Vision) -> bleibt beim
|
||||
Coder`; ④ DANN Stufe 2: `bash ~/mission-control-v2/deploy/gateway-cutover.sh` + `hermes doctor`
|
||||
+ Beweis „MC2-Neustart tut Lucy nichts": `systemctl --user restart mission-control-2`, dabei
|
||||
1-Token-Call auf `127.0.0.1:9010/v1` → antwortet weiter. Rückweg: `--revert`.
|
||||
- **P2 · Steward** ✅ GEBAUT (Karte `feature/p2-steward`, baut auf P1-Karte auf — Annahme
|
||||
schließt P1 mit ein; Reihenfolge P1→P2 ist sauberer): Re-Warm-Wächter, Health-Sentry und
|
||||
Mem0-Dedupe laufen als eigener Dienst `mc2-steward.service` (`backend/steward.py`,
|
||||
Restart=always) — unveränderte Loop-Module, reiner Konfig-Split (MC2-Unit setzt die drei
|
||||
ENABLED-Schalter auf 0; Zeilen entfernen = Rollback). Neu dadurch: Sentry überwacht erstmals
|
||||
auch MC2 SELBST + den mc2-gateway (`MC_SENTRY_WATCH_MC2=1`) und meldet ein totes Steuerpult
|
||||
per Telegram (Briefkasten-Abgabe an MC2 läuft per HTTP, `MC_ANNOUNCE_HTTP`); Warm-Nudge nach
|
||||
Config-Änderung kommt aus einem mtime-Watch (5 s) statt In-Process. **Bewusst NICHT bewegt:**
|
||||
reminders_loop (teilt Datei+CRUD mit /api/reminders — Zwei-Schreiber-Risiko) bleibt in MC2.
|
||||
Danach gibt es genau ZWEI Zeitplan-Systeme mit klaren Rollen: systemd-Timer (Box-Pflege) +
|
||||
Hermes-Crons (Agenten-Arbeit) — plus den Steward als dritten, eigenen Wächter-Prozess.
|
||||
- **P3 · Steuerpult-Modernisierung** (Kartenserie, reine UI/API-Arbeit, berührt nach P1 nie mehr
|
||||
den Datenpfad): (a) EIN SSE-Eventstrom `/api/events` ersetzt die 53 `refetchInterval`-Poller in
|
||||
`queries.ts`; (b) TanStack Router → echte URLs (`/modelle/coder`, `/auftrag/t_…`), Deep-Links,
|
||||
|
||||
Reference in New Issue
Block a user