Files
bullpen/docs
marfrit 214e2688c0 docs/ARCHITECTURE.md — das Entwurfsmanifest kommt ins Repo, Fassung 3
Fassung 2 entstand am 2026-08-07 als Entwurf VOR dem Bau und lag danach
nur in einem Sitzungsverzeichnis. Dieselbe Krankheit, gegen die das
Dokument antritt: die stehende Rolle von @deus lag genauso nur in einem
Container und war nach dem Neubau weg. Wenn ein Dokument den Betrieb
bestimmt, gehoert es versioniert - sonst ueberlebt es den naechsten
Neubau nicht, und der Neubau ist der Moment, in dem man es braucht.

Fassung 3 trennt sauber, was Fassung 2 vermischte: was ENTWORFEN war,
was GEBAUT wurde, und was die Messung danach KORRIGIERT hat. Alle Zahlen
sind nachgemessen, nicht uebernommen.

WAS DER BAU SCHULDIG BLIEB (neu, und der eigentliche Grund fuer diesen
Commit):

* Der Erbauer existiert nicht. roster.yaml und secrets.example fehlen,
  deploy/bullpen-up ist noch der alte Einzel-Container-Starter. Die neun
  Container sind von Hand angelegt, und sie laufen aus /opt/bullpen-src,
  einem git-Checkout - `dpkg -l bullpen` ist in jedem leer. Die stehende
  Anweisung war, die laufende Instanz AUS DEM PAKET zu bauen. Das war
  Fables Blocker Nummer eins an Fassung 1 und ist wieder offen.
* Die Speicherdeckel summieren sich auf 10752 MiB in einem Eltern mit
  4096 MiB: Ueberbuchung 2,62. Genau der Zustand, den die
  Zulassungssteuerung verhindern sollte ("OOM ist kein Scheduler") - und
  die Sperre gibt es nicht. Was den Deckel heute haelt, ist Glueck.
* room.jsonl hat keine Sicherung, obwohl das Dokument ihn selbst "den
  einzigen unersetzlichen Zustand" nennt.
* Neun Kinder sind die Decke; ein zehnter scheitert an newuidmap trotz
  idmap.size=1e9.

KORREKTUREN, die die Messung erzwungen hat:

* @deus ist kein Lurker - der Lurker kennt nur claude und opencode, kein
  pi. Kein Rueckschritt (der alte deus hatte auch keinen Wecker), aber es
  heisst: wenn sich die Gesellschaft verklemmt, weckt ihn niemand.
* deus haelt keine Schluessel, also baut er den Sandkasten nicht mehr -
  `grind` IST der Sandkasten.
* TRUST ist eine Architektur-Invariante. Fehlt ein Nick, verschwindet
  seine Nachricht geraeuschlos: ok:true beim Absender, verworfen beim
  Empfaenger. Nachzusehen ist beim EMPFAENGER.
* Raum und Rolle duerfen auf demselben Rechner liegen (LMCP_HOST).
* Der Grinder-Ausgang ist GEFILTERT, nicht gesperrt - "kein Ausgang"
  baut einen toten Container, die Schleife braucht Proxy und Raum.
* bullseyes Denk-Anzeige ist ueber Containergrenzen tot: sie liest
  DATEIEN, die im Nachbarcontainer liegen, und der except schluckt es.
2026-08-08 11:37:06 +02:00
..