| 01:30-02:00 |
Rollback-Host, Deploy --commit, Importpruefung vor dem Umschalten, config_hash_env |
f36009b |
| 01:22-02:00 |
Evaluator: Suite im eigenen Worktree des bewerteten Commits (Fehler: Regression wurde APPROVED, weil die Suite im geteilten Worktree lief) |
2da19e7 |
| 02:17-02:44 |
Deploy 2 (8d50784): Deploy-Schranke 3278 Tests, 0 Fehlschlaege, 14 uebersprungen; core-Grundlinie; Identitaet vollstaendig |
nachweise/deploy_8d50784.log |
| 02:55 |
Probation-Watcher auf dem Server-Host installiert (Crontab alle 5 Minuten, Sicherung der alten Crontab), Trockenlauf unter Cron-Umgebung rc=0 |
/opt/lenny/v01b/si/crontab.vor_watcher.20261003T025518Z |
| 03:00 |
DATA_GAP/RULE_GAP fertig (Server, Controller, Evaluator): 10 Server-Tests, 23 Controller-Tests, 9 Daten-Tests; Fehler gefunden und behoben: Regelanlage war nicht idempotent |
b5794fe |
| 03:00 |
R1 (CODE_GAP SIR-20261002T214311Z-0001) auf den Stand 8d50784 rebasiert, Versuch 1 (regression.json) gebaut und zur Bewertung auf dem Server-Sandkasten gestartet |
|
| 03:19 |
Commit fa79891 (Veto-Beweis, RULE-Probe, Lauf-Export, E2E-Kandidat unbelegte_antwort fuer K-13/K-14); Deploy 3 (fa79891) gestartet: Deploy-Schranke laeuft |
nachweise/deploy_<commit>.log |
| 03:20 |
R1 Versuch 1 (regression.json, Kandidat f47ef1f) auf dem Server-Sandkasten bewertet: REJECT - G2 nicht gruen (test_selfimprove_probe_bestand::test_woerter_zaehlen faellt, dazu zwei Selbstbezugs-Tests der Drills); Produktion unveraendert (G23). Dauer 24 Minuten (Suite 18 Minuten) |
nachweise/bewertung_SIR-20261002T214311Z-0001_CAND-f47ef1f8cbcd.json |
| 03:22-03:40 |
DATA_GAP-Fehlersuche gegen den Server-Sandkasten (Kopie der Produktionsdaten): Zielfix FAIL->PASS, G6, G8, G9 gruen - aber G7/G19 rot: der globale Stabilitaets-Pass (run_stability_pass) rechnet alle 22.666 Fragmente neu und aenderte drei unbeteiligte Antworten (Hund, Waerme, Hund-Tier). Messung: der Kandidat mit Belegsatz antwortet auch OHNE den Pass ("Vertrieb ist eine Betriebliche Funktion. Herkunft: Kandidat"), unbeteiligte Antworten bleiben gleich. Behoben: Stapel ohne globalen Pass, Server prueft es bindend (si_daten) |
bcd4bd5 |
| 03:30 |
Gefundener Fehler im Drill-Test: wird ein Drill-Kandidat selbst bewertet, liefert sein Rezept keine Aenderung mehr - die Selbstbezugs-Tests schlugen im Kandidaten-Worktree fehl und haetten die Produktionsfehler-Drill (Versuch 2) zu Unrecht abgelehnt |
bcd4bd5 |
| 03:36 |
Gefundener Fehler im Detektor: ein nach einem Rollback erneut erkanntes Problem bekam immer Versuch 1 ohne Befund; der Server verlangt die naechste Nummer und den Befund (Abschnitt 13) - der Lauf blieb in reproducing haengen ("change_spec.versuch ist 1, erwartet 2"). Behoben, zwei Tests (schlugen vorher fehl) |
fb846c5 |
| 03:45 |
Befund: I-004 (Befoerderungsquelle) und I-005 (Draht-Verlauf) standen in der Produktion auf aus - G10 und G3 waeren nicht erzwungen. 1.198 von 1.282 befoerderten Fragmenten ohne Quelle (Altbestand, 0 neue seit 02.10. 17:25). Eingeschaltet im Compose |
48f3b04 |
| 03:46 |
Deploy 3 (48f3b04) gestartet (nach drei Neustarts der Schranke, jeweils wegen eines Fundes oben) |
nachweise/deploy_48f3b04.log |
| 03:46-04:10 |
Deploy 3 (48f3b04) abgeschlossen: Deploy-Schranke tests 3.315 bestanden, 0 Fehlschlaege (668 s), core-Grundlinie 2.081 gehalten; Identitaet vollstaendig; im Betrieb u. a. DATA/RULE-Endpunkte, korrigierter Detektor, Befoerderungsquelle (I-004) und Draht-Verlauf (I-005) |
nachweise/deploy_48f3b04.log, nachweise/produktion_48f3b04_nach_deploy3.json |
| 04:00 |
G3 (Verdrahtungsbericht der Produktion nach Deploy 3, lesend): 84 Draehte - 16 gelaufen, 33 'wartet' (nur bei Ereignis), 35 aus, 0 stumm; Verlauf ueber Neustarts aktiv |
|
| 03:5x |
RULE_GAP-Bewertung gegen den Server-Sandkasten: APPROVE (Zielfix FAIL->PASS; 9 Wirkungsmeldungen tragen die Regel, Antwort gekennzeichnet kreativ; G1 G4 G5 G6 G7 G8 G9 G13 G16 G18 G19 G20 G24 G25 gruen). DATA_GAP: Zielfix FAIL->PASS, G6 G7 G8 G18 G19 gruen; nur die G9-Nachpruefung scheiterte an einem Hickser (docker exec), behoben und mit Tests abgesichert |
nachweise/rule_gap_sandbox_bewertung_vorlauf.log |
| 04:10 |
Messung: der GLOBALE Stabilitaets-Pass aendert auch in EINER Instanz unbeteiligte Antworten (Frage 'Nenne ein Beispiel fuer Waerme': Antwort-Hash vorher/nachher verschieden) - die Entscheidung "Stapel ohne globalen Pass" ist damit belegt |
|
| 06:24 |
Rollback-Probe auf dem Produktionshost (Identitaetsrollback, Vorversion = laufende Version): alle 9 Schritte gruen (compose, image_id.env, Host-Dateien, Abbild-Tag, compose up --no-build, health, Identitaet, Abbild, Admin-Ereignisse 8/0 unveraendert) |
nachweise/rollback_probe_identitaet.json |
| 06:28 |
Veto-Beweis (Admin-Veto gegen einen laufenden Lauf, im Sandkasten): 21 von 21 Pruefungen gruen - Veto haelt den Lauf an, der Dienstzugang kann es nicht aufheben, der Lauf geht nicht weiter, Audit-Kette bleibt gueltig |
nachweise/veto_beweis_467b844.json |
| 06:30-06:46 |
Admin-Beweis (E-07 bis E-10), erste Laeufe in der Sandbox: Befund - eine gesperrte Relation, ein gesperrter Zweig und ein gesperrtes Fragment blieben in Teilen der Antwortwege wirksam (Definition/Kategorie lasen ihre Kanten am Sperrfilter vorbei: ask_lenny-Faktenkette, gewichteter Speicher, Ableitung, FragmentStore-Lesezugriffe der Erkenner). Behoben in drei Stufen: Faktenkette (6d30b49), gewichteter Speicher und Ableitung (33c3c59), FragmentStore + Leser (21e639a); gespeichert bleibt alles, nichts wird geloescht (G15) |
nachweise/admin_beweis_467b844.json, nachweise/admin_beweis_33c3c59.json (Stand VOR der letzten Stufe) |
| 06:48 |
R1 Versuch 2 (Drill produktionsfehler, Kandidat d0cfeceaf9fa: behebt den Defekt, aber nur ausserhalb der Produktion) bewertet: REJECT - G2: ein Test der core-Grundlinie (test_activation_signal::...reach_zero_active, haengt an der Wanduhr) fiel einmalig; Versuch 2 verbraucht (Grenze 3). Behoben: das Gate wiederholt einen gefallenen Test einmal im selben Baum; besteht er, steht er als flackernd im Ergebnis, faellt er wieder, bleibt er ein Fehlschlag (mehr als 20 gefallene = Bruch, keine Wiederholung) |
nachweise/bewertung_SIR-20261002T214311Z-0001_CAND-d0cfeceaf9fa.json, 21e639a |
| 07:07 |
Commit 21e639a: Fix der Lesezugriffe, zwei weitere CODE-Proben (probe_kuerzung, probe_vokale: je ein eigener absichtlicher Defekt in core/selfimprove_probe.py, Bestandstests defektneutral), Gate-Wiederholung |
21e639a |
| 07:15 |
Drill-Rezepte von Ganzdatei-Inhalt auf Ersetzungen umgestellt (sonst haetten sie die neuen Probe-Funktionen aus der Datei entfernt und die Probleme B und C ungewollt veraendert); Drill-Test prueft, dass B und C offen bleiben |
|
| 07:20-07:28 |
Admin-Beweis, zweiter bis vierter Lauf (frische Sandkaesten auf 21e639a, a6fc902, 29d98c0): Fragmentblock sofort gruen; Relations-/Zweigblock noch an drei Stellen wirkungslos: (1) stabile Kandidatenantwort, offene Praedikate und Zweckantwort durchliefen frag.relations ohne Pruefung (die Pfadmatrix ordnete nur DATEIEN ein - jetzt prueft ein Lint-Test jede einzelne Schleife), (2) die JSONL-Speicher (abgeleitet, verdichtet, gewichtet) kannten nur Fragment-Kennungen - der abgeleitete Pfad Hund-Tier-Lebewesen stand trotz Zweigsperre, (3) die gewichtete Textroute zieht ihre Bedeutung aus dem TEXT eines Retrieval-Fragments und pruefte keine Sperre. Behoben (a6fc902, 29d98c0). Vierter Lauf: alle 34 Pruefungen gruen - E-07, E-07b, E-08, E-09, E-10, K-20, K-21 und die Realdaten (Zweigblock Hund - Tier in vier Antwortformen) |
nachweise/admin_beweis_21e639a.json (rot), admin_beweis_a6fc902.json (rot, nur Realdaten), admin_beweis_29d98c0.json (gruen) |
| 07:30 |
claude -p (unbeaufsichtigter Headless-Lauf der Coding-KI) auf dieser Maschine nicht verwendbar: "Failed to authenticate: OAuth session expired and could not be refreshed" (ohne Anmeldung der CLI; der Dispatcher meldet es als AgentFehler). Die Coding-KI laeuft deshalb als Subagent der Sitzung im bereinigten Workspace; ihr Transkript wird gegen die Allowlist geprueft (Abweichung K-05, siehe Bericht) |
ops/selfimprove/agent.py |
| 07:40-08:02 |
Deploy 4 (2c9dce8): Deploy-Schranke tests 3.378 bestanden, 0 Fehlschlaege (981 s), core-Grundlinie 2.081 gehalten, flackernd leer; Identitaet vollstaendig. Im Betrieb: Admin-Sperre in allen Antwortwegen, Probe-Invarianten probe_kuerzung/probe_vokale, Gate-Wiederholung. Der Detektor der Produktion legt die beiden neuen CODE-Laeufe selbst an (SIR-20261003T080247Z-0003 probe_kuerzung, -0004 probe_vokale; beide classified -> reproducing -> specified -> queued in derselben Sekunde) |
nachweise/deploy_2c9dce8.log, nachweise/produktion_2c9dce8_nach_deploy4.json |
| 08:04-08:31 |
CONFIG_GAP-Lauf SIR-20261002T214311Z-0002, Versuch 1 (Sicherheitsgrad per Compose-Zeile, Kandidat 566b04d): auf 2c9dce8 rebasiert, gebaut, in der Server-Sandbox bewertet: REJECT - G19 (213 von 323 Antworten 'unerwartet': der Replay-Vergleich kannte den erwarteten Absatz nur am Textende, der Antwortweg setzt ihn vor die Herkunfts-Fusszeile) und G2 (die Konfigurations-Tests des Controllers wandten die Aenderung auf die Compose-Datei an und schlugen an der eigenen Aenderung des Kandidaten fehl). Beides Fehler des WERKZEUGS, nicht der Aenderung; alle uebrigen Gates gruen (G1, G4, G5, G13 inkl. Wirkungspruefung, G16, G18, G23 bis G28) |
nachweise/bewertung_SIR-20261002T214311Z-0002_CAND-566b04d5bb4f.json |
| 08:35 |
Behoben (ee97f87): _nur_anhang kennt den Absatz vor der Fusszeile und verlangt den Rest Zeichen fuer Zeichen gleich (7 Tests), der erlaubte Absatz ist enger gefasst; die Konfigurations-Tests nehmen einen Schalter, der im Compose noch auf 0 steht. Die Basis eines Kandidaten ist der Produktionsstand - das Test-Fix musste deshalb erst in die Produktion (Deploy 5) |
ee97f87 |
| 08:37-09:01 |
Deploy 5 (ee97f87): tests 3.389 bestanden, 0 Fehlschlaege (906 s), core-Grundlinie 2.081 gehalten, flackernd leer |
nachweise/deploy_ee97f87.log |
| 08:42 |
K-02 gegen die Produktion (unknown_probe): drei Probleme ohne belegbare Klasse bzw. mit unzulaessigem Anlass - der Server verweigert reproducing (HTTP 409 uebergang_unzulaessig: "UNKNOWN loest keine Reproduktion und keine Aenderung aus"), beide Laeufe enden unresolved ohne change_spec/Kandidat/Deploy-Artefakt; der dritte Anlass (Modellmeinung) scheitert schon am problem_record (Abschnitt 9) |
nachweise/k02_unknown_probe.json |
| 09:02 |
CONFIG-Lauf Versuch 2 (Befund des Vorversuchs im Change-Spec, CH-c51822b62689, Kandidat a1c0286): gebaut und zur Bewertung gestartet |
|
| 09:24 |
CONFIG-Lauf Versuch 2 (a1c0286): APPROVE - alle 14 geforderten Gates gruen; Zielfix FAIL -> PASS (probe_sicherheitsgrad); Replay: 213 Antwortaenderungen, alle als erwarteter Sicherheitsgrad-Absatz erkannt, 0 unerwartet; G27 p95 964 -> 976 ms |
nachweise/bewertung_SIR-20261002T214311Z-0002_CAND-a1c028645605.json |
| 09:25 |
Der erste Deploy ueber den Controller scheitert nach 20 s (rc 127): bash loest unter Windows aus einem Python-Prozess auf die WSL-Bash in System32 auf und bekam den Skriptpfad mit Rueckwaertsschraegstrichen. Die Produktion wurde nie umgeschaltet; der Controller fuehrte - wie vorgesehen - den idempotenten Host-Rollback aus (Identitaet unveraendert, ee97f87 gesund) und setzte den Lauf auf rolled_back (Versuche verbraucht: 2 von 3). Behoben: git_bash() (Git-Bash, nie System32) und msys_pfad(), 4 Tests; der Aufruf wurde mit einem ungueltigen Commit bis zum Staging-Schritt erprobt |
nachweise/cfg_deploy_rc127.log, deployer.py |
| 09:28-10:18 |
CONFIG_GAP-Lauf SIR-20261003T092831Z-0007 (Versuch 3) bis accepted: der Detektor legt den Lauf neu an (Befund des rc-127-Rollbacks im Change-Spec), Kandidat 82c36dd gebaut und bewertet (APPROVE, 14 Gates gruen, Zielfix FAIL -> PASS), dann autonomer Deploy ueber den Controller: Rollback-Ziel, deploy.sh (Schranke tests 3.389 + core 2.081, 1.399 s), Health, Smoke, Hard Security Checks, Zielschalter wirkt in der Produktion -> accepted (kein Code-Deploy, keine Probation, Abschnitt 25). Produktion: 82c36dd, Antworten tragen "Sicherheit dieser Antwort: Stufe N von 7" |
nachweise/lauf_SIR-20261003T092831Z-0007.json, nachweise/bewertung_SIR-20261003T092831Z-0007_CAND-82c36ddbf4d5.json, nachweise/deploy_82c36dd_SIR-20261003T092831Z-0007.log |
| 10:19-11:23 |
DATA_GAP-Lauf SIR-20261003T101911Z-0008: der Controller liest das Luecken-Protokoll der Produktion und nimmt die haeufigste Definitionsfrage, die einen STRENGEN Wikipedia-Beleg bekommt (vier haeufigere Begriffe werden mit Grund uebersprungen: zweimal Begriffsklaerungsseite, einmal 404, einmal Weiterleitung); Kandidat = Belegsatz-Stapel fuer "Determinismus" (ist_ein Auffassung, candidate_only, ohne globalen Stabilitaets-Pass), Bewertung in der Server-Sandbox APPROVE (G6, G7, G8, G9 Rueckweg, G13, G18, G19, G20 gruen) |
nachweise/bewertung_SIR-20261003T101911Z-0008_CAND-5cf46933bb57.json |
| 11:22 |
DATA-Lauf accepted: Stapel in der Produktion angewandt (Aenderungssatz CS-20261003T112235Z-c23dd80d), Wirkung belegt: "Was ist Determinismus?" -> "Determinismus ist eine Auffassung." (Herkunft Kandidat) - vorher eine Absage |
nachweise/lauf_SIR-20261003T101911Z-0008.json |
| 11:30 |
Fund in den ersten Live-Antworten: Der Sicherheitsgrad stand an falscher Basis. "Was ist Determinismus?" (ein raw-Fragment mit externem Beleg, richtig: Stufe 4) trug "Stufe 6 (gepruefte Wahrheit)" - die Stufe kam aus zwei unbeteiligten befoerderten Fragmenten des Retrievals; "Was ist ein Hund?" (70 Fragmente, 68 ueber Stabilitaet, richtig: Stufe 3) trug Stufe 2. Die Gates sehen so etwas nicht (sie messen Antworten und Gold, nicht die Richtigkeit des Etiketts); der Kanal 118 hatte dasselbe Problem fuer das Herkunftsfeld schon geloest ("ein zu starkes Etikett ist schlimmer als gar keins"). Behoben: die Stufe folgt der Basis, die der antwortende Weg meldet (router_basis), eine unvollstaendige Meldung gibt keine Stufe; 12 Tests, darunter ein Chat-Test, der den Produktionsfall nachstellt (ohne Meldung Stufe 7, mit Meldung Stufe 4 und passende Herkunftszeile) |
b35e850, Deploy 6 |
| 11:38-12:24 |
Deploy 6 von der Deploy-Schranke angehalten (tests 3.408 bestanden, 1 Fehlschlag, kein Deploy): tests/test_kette_ohne_verlust vergleicht den Antworttext Zeichen fuer Zeichen und nimmt die Schalter wie deployt aus der Compose-Datei (OfflineLenny) - mit LENNY_ENABLE_SICHERHEITSGRAD=1 steht jetzt der Sicherheitsgrad-Absatz davor. Test schaltet ihn fuer seine Probe aus. Dazu: Absage und Rueckfrage tragen keine Stufe (Produktion: "Das ist mir nicht belegt ..." trug "Stufe 2 (schwach gestuetzt)"). Deploy 7 (ba83df9): tests 3.411 bestanden, 0 Fehlschlaege (969 s), core 2.081 gehalten. In der Produktion geprueft: Determinismus Stufe 4, Hund Stufe 3 (70 Fragmente), Absage ohne Stufe |
nachweise/deploy_fb09da5_gate_rot.log, nachweise/deploy_ba83df9.log |
| 12:25-12:41 |
RULE_GAP-Lauf SIR-20261003T122504Z-0009 bis accepted: Regelkandidat (requires zwei Signale, concludes eine Hypothese) in der Probe-Domaene si-probe, Bewertung in der Server-Sandbox APPROVE (Zielfix FAIL -> PASS, 9 Wirkungsmeldungen tragen die Regel, Antwort herkunft: kreativ, G1 G4 G5 G6 G7 G8 G9 G13 G16 G18 G19 G20 gruen), Anwendung in der Produktion als Aenderungssatz CS-20261003T124046Z-3180eb01, Schattenlauf belegt (1 Eintrag, Antwort byte-gleich) |
nachweise/lauf_SIR-20261003T122504Z-0009.json, nachweise/bewertung_SIR-20261003T122504Z-0009_CAND-5740848cf6c4.json |
| 12:45-13:03 |
Drill auf Problem A, Versuch 3 (Rezept produktionsfehler, Kandidat a933563): in der Server-Sandbox REJECT nur durch G27: p95 965 -> 1.311 ms (Grenze 1.206 ms) - bei einem Kandidaten, der nur ein Modul aendert, das kein Antwortweg ruft; wenige Minuten vorher waren 964 -> 976 und 969 -> 961 ms gemessen worden. Messrauschen, aber der dritte und LETZTE Bauversuch des Problems war damit verbraucht: SIR-...-0001 endet unresolved (Abschnitt 13: der Fall bleibt erhalten). Behoben: G27 bestaetigt eine Ueberschreitung durch eine zweite Messung und nimmt je Instanz den besseren p95 (die Grenze +25 % bleibt; eine echte Verschlechterung steht in beiden Messungen), 5 Tests |
nachweise/bewertung_SIR-20261002T214311Z-0001_CAND-a933563527b9.json, nachweise/lauf_SIR-20261002T214311Z-0001.json |
| 13:10 |
Fund beim Vorbereiten des Ersatz-Drills: tests/test_si_drills.py pruefte, dass kuerze und zaehle_vokale ihren DEFEKT behalten (Wert 9, Wert 0) - nach der Behebung von Problem B oder C haette die Suite jeden solchen Kandidaten abgelehnt (selbstbezuegliche Pruefung wie beim Konfigurations-Test). Jetzt wird mit dem Stand selbst verglichen; ein Rezept, das nicht mehr passt, ueberspringt sich. Neues Rezept produktionsfehler_vokale (Problem C: nur ausserhalb der Produktion richtig) |
7 Tests, Deploy 8 |
| 13:33 |
Deploy 8 (a68c194): tests 3.418 bestanden, 0 Fehlschlaege (984 s), core 2.081 gehalten |
nachweise/deploy_a68c194.log |
| 13:33-14:21 |
Drill auf Problem C (probe_vokale, SIR-20261003T080247Z-0004) - produktiver Hard-Fail, automatischer Rollback: Rezept produktionsfehler_vokale (zaehle_vokale ist nur ausserhalb der Produktion richtig), Bewertung in der Server-Sandbox APPROVE (alle Gates gruen), autonomer Deploy (Rollback-Ziel rb-a68c1948179d-20261003t135433z, Schranke + Health + Smoke + Security gruen, Probation 24 h ab 14:16:20Z). Der Host-Watcher (Cron, ohne Controller) findet im ersten Durchgang um 14:20:40Z den Hard-Fail "Gold-Hard-Fail: die Reproduktion 'probe_vokale' besteht in der Produktion nicht (Zielfix unwirksam)" und rollt zurueck: compose, image_id.env, Host-Dateien, Abbild-Tag, compose up --no-build, Health, Identitaet = Vorversion, Abbild = Vorversion, Admin-Ereignisse nicht verloren (8 Sperr-Ereignisse, 0 Kreis-Ereignisse vorher wie nachher) - alle 9 Schritte gruen; Lauf rolled_back, Produktion wieder a68c194 |
nachweise/lauf_SIR-20261003T080247Z-0004.json, nachweise/bewertung_SIR-20261003T080247Z-0004_CAND-869c7c19de5c.json, nachweise/deploy_869c7c1_SIR-20261003T080247Z-0004.log |
| 14:22-14:31 |
Echte Coding-KI an Problem B (probe_kuerzung, SIR-20261003T080247Z-0003): rebasiert auf a68c194, Workspace cand_ce849983a11c8 (isolierter Worktree), Prompt aus dem versiegelten Change-Spec (SHA-256 571d0ce3...). Die Coding-KI (Claude Sonnet 5.5 als Subagent der Sitzung - claude -p ist nicht angemeldet) reproduzierte die Invariante, schrieb den Regressionstest (8 Faelle, 6 davon vor dem Fix rot), behob kuerze mit drei Zeilen und legte EINEN Commit ab (26bd02c). Transkript-Pruefung: 38 Werkzeugaufrufe, 0 Verstoesse (Bash nur python -m pytest, python core/si_invariants.py, git -C <workspace> ...; alle Pfade im Workspace; kein Netzwerk, kein Server, keine Schluessel) |
nachweise/lauf_SIR-20261003T080247Z-0003.json (build_log mit allen Aufrufen) |
| 14:31-14:51 |
Bewertung des Kandidaten CAND-26bd02c935eb in der Server-Sandbox: APPROVE, alle 14 geforderten Gates gruen, Zielfix FAIL -> PASS |
nachweise/bewertung_SIR-20261003T080247Z-0003_CAND-26bd02c935eb.json |
| 14:52-15:15 |
Autonomer Deploy und Start der 24-h-Probation (Rollback-Ziel rb-a68c1948179d-20261003t145223z, Schranke + Health + Smoke + Security gruen): Probation 2026-10-03T15:14:46Z bis 2026-10-04T15:14:46Z; der Host-Watcher beobachtet. Waehrend dieser Zeit: kein weiterer Neustart-Deploy der Produktion |
nachweise/deploy_26bd02c_SIR-20261003T080247Z-0003.log |
| 14:20-15:15 |
Nach dem Rollback von Problem C legt der Detektor der Produktion das Problem selbst neu an (14:20:59Z, SIR-20261003T142059Z-0010, Change-Spec CH-b3f39fe20055 mit dem Befund des Rollbacks, Abschnitt 13): es wartet in queued, weil hoechstens ein CODE-Kandidat aktiv sein darf (Probation von Lauf 0003); am 03.10. 15:14:32Z haengt der Detektor neue Evidenz an den offenen Lauf |
nachweise/produktion_20261003_probation_start.json |
| 15:18-15:25 |
Admin- und Veto-Beweis auf dem Produktionsstand 26bd02c (frische Sandkaesten): Admin-Beweis 33 von 33, Veto-Beweis 22 von 22 Pruefungen gruen. Die Realdaten-Pruefung (Zweigblock Hund - Tier) wurde uebersprungen: die Definition nennt "Tier" im heutigen Datenstand nicht mehr, die Pruefung verlangte alle vier Antwortformen |
nachweise/admin_beweis_26bd02c.json, nachweise/veto_beweis_26bd02c.json |
| 15:28 |
Fund der vollstaendigen Evaluator-E2E (acht Kandidaten): unbelegte_antwort wurde zu Recht abgelehnt (G19: 8 unerwartete Antworten, Absagequote -39,6 pp), aber G18 blieb gruen - die Annahme des Tests (K-13: neue falsche Goldfaelle) stimmte nicht: der Patch ersetzte nur EINE der beiden Absageformulierungen (api_server: Replay-Fragen; ask_lenny: die zwoelf Fantasiewoerter des Hard-Golds). Die Pruefung hat richtig gehandelt, der Test war zu schwach |
nachweise/phase6_evaluator_e2e_final.json (erster Lauf) |
| 15:34-15:52 |
Der Kandidat ersetzt jetzt beide Formulierungen: REJECT mit G5, G18 und G19 rot (12 neue falsche Hard-Gold-Faelle, 25 neue Antworten auf Unbekanntes, Absagequote -56,66 pp). Vollstaendiger Lauf ohne Abbruch: 8 von 8 Tests gruen (gut APPROVE; ohne Zielfix G24, Regression G2, Gate-Abschwaechung G25/G26, Tenant-Leck G1, Admin-Lock G13/G16, stille Sperre G13, unbelegte Antworten G5/G18/G19 je REJECT), 966 s |
nachweise/phase6_evaluator_e2e_final.json |
| 15:44 |
Autopilot (python -m selfimprove.autopilot, Commit 13df383): ein Durchgang fuehrt jeden offenen Lauf mit den Controller-Schritten weiter und wartet bei Modus, Veto, Parallelitaet und nicht angemeldeter Coding-KI. Erster Durchgang gegen die Produktion, rein lesend: Lauf 0003 probation -> wartet (Host-Watcher), Lauf 0010 queued -> wartet (ein anderer CODE-Kandidat aktiv); 19 Tests |
tests/test_si_autopilot.py, docs/SELBSTVERBESSERUNG_BETRIEB.md Abschnitt 4 |
| 15:45 |
G10 gemessen (read-only): 1.282 befoerderte Fragmente, seit dem Quellen-Schalter (02.10. 21:44 UTC) 0 Befoerderungen; 1.198 Altbefoerderungen ohne Quelle bleiben unveraendert |
nachweise/produktion_20261003_probation_start.json |
| 15:56 |
Admin-Beweis wiederholt auf 26bd02c mit gehaerteter Realdaten-Pruefung (die Formen, in denen die Instanz die Kante vorher ausspricht; mindestens drei): 34 von 34 gruen, einschliesslich Zweigblock Hund - Tier an der Produktionsdaten-Kopie (Ja/Nein, Kategorie, abgeleiteter Pfad) |
nachweise/admin_beweis_26bd02c.json |
| 15:57-16:05 |
Fund beim Durchgehen von Abschnitt 25: der Watcher prueft die Tenant-Isolation nicht (Pflichtpunkt der Beobachtung; "Tenant-Leck" ist ein Sofort-Rollback-Grund). Ergaenzt: stuendliche Probe in der Produktion - das Dienstkonto selfimprove haelt EINE Angabe in seinem persoenlichen Gedaechtnis, der Zugang traverse fragt viermal ueber Chat und Stream danach, ohne Anmeldung gibt es keinen Zugang; Positivkontrolle beim Eigentuemer; hart ist allein ein Fremdtreffer, ein Aufbaufehler nur weich; ein Fehler in der Probe verhindert weder die uebrigen Pruefungen noch einen Rollback. 10 neue Tests (33 im Watcher). Von Hand einmal durchgespielt (die Angabe in das Gedaechtnis des Dienstkontos geschrieben), auf dem Host trocken gelaufen (Python 3.10), dann um 16:04 UTC atomar ersetzt (Sicherung watcher.py.vor_tenant.20261003T160407Z): erster Tick 16:05:01Z tenant_isolation: ok, Kontrolle ja, 9 Faelle, 0 Lecks. Die Probation von Lauf 0003 lief davor 10 Beobachtungen ohne diese Probe |
07b3028, ops/selfimprove/watcher.py |
| 16:45:01-16:45:19 |
Lauf 0003: Rollback durch den Host-Watcher - ein FEHLALARM. Der Watcher (Tick 16:45:01) meldete "Schema nicht konsistent: Objekt(e) verschwunden in lenny_fragments.db: lai2_format_role_delete_guard, lai2_format_role_update_guard" und rollte den Kandidaten nach 90 Minuten Probation zurueck (9 Schritte gruen, Produktion wieder auf a68c194, Admin-Ereignisse 8/0, Lauf rolled_back). Ursache: core/fragment_store.install_brain_guards legt beim Oeffnen der Datenbank Trigger per DROP und CREATE neu an; der Cron think_pass.sh (Host 45 */3, 18:45 MESZ) startete zur selben Minute wie der Watcher und oeffnete die Datenbank in diesem Augenblick (docker events: exec thinking_pass.py 16:45:01). Die Trigger standen eine Minute spaeter alle wieder da. Mit dem Kandidaten hatte das nichts zu tun (geaendert: eine Zeile in kuerze, ein Modul, das kein Antwortweg ruft) |
nachweise/lauf_SIR-20261003T080247Z-0003.json, Watcher-Zustand des Rollback-Ziels rb-a68c1948179d-20261003t145223z |
| 16:45:38 |
Der Detektor legt das Problem B selbst neu an (19 Sekunden nach dem Rollback): Lauf SIR-20261003T164538Z-0011, Versuch 2, Change-Spec CH-c7a9816f4cc6 mit dem Rollback-Grund als Befund (Abschnitt 13) |
nachweise/lauf_SIR-20261003T164538Z-0011.json |
| 16:46-16:50 |
Ursachenanalyse (read-only) und Behebung im Watcher: ein Befund, den eine Wartung kurz erzeugen kann, gilt erst nach drei Wiederholungen im Abstand von 20 s als hart; ein Lesefehler der Datenbank ist weich ("nicht pruefbar" ist nicht "verletzt"); eine Goldfrage ohne HTTP-200-Antwort ist keine Absage (wiederholen, sonst Durchgang nicht auswertbar, weich) - der Gold-Smoke haette einen Aussetzer der API als "war richtig, ist jetzt unknown" gewertet. 5 neue Tests (38 im Watcher). Auf dem Host trocken geprueft und um 16:49:48 UTC atomar ersetzt (Sicherung watcher.py.vor_fehlalarm.20261003T164948Z) |
d2c914c, ops/selfimprove/watcher.py |
| 16:50-16:59 |
Lauf 0011, Versuch 2 (Coding-KI als Subagent): build_failed. Die Coding-KI loeste das Problem (Commit c21dfc5, 7 Regressionstests), benutzte aber zweimal echo - ausserhalb der Allowlist. Das Transkript-Audit (50 Aufrufe) meldete 2 Verstoesse; der Kreis lehnte den Kandidaten ab, der Versuch ist verbraucht (2 von 3). Die Pruefung der Coding-KI wirkt - auch gegen harmlose Abweichungen |
nachweise/lauf_SIR-20261003T164538Z-0011.json (build_log) |
| 16:59-17:10 |
Lauf 0011, Versuch 3: neuer Change-Spec CH-2cfcb6fcf7b4 mit dem Befund des vorigen ("kein echo"); die Coding-KI (66 Aufrufe, 0 Verstoesse) behebt kuerze mit einer Zeile (Commit d93a06c, 9 Regressionstests, 8 davon vor dem Fix rot), Kandidat CAND-d93a06c1a757 candidate_ready 17:10:36 |
nachweise/lauf_SIR-20261003T164538Z-0011.json |
| 17:10:45-17:32:03 |
Lauf 0011, Bewertung des Kandidaten d93a06c: REJECT durch G19 - alle anderen Gates gruen (G2: 3.427 Tests, 0 Fehlschlaege), aber eine unerwartete Aenderung im Replay: "Nenne ein Beispiel fuer Waerme" lieferte in der Basis "Frost, Temperatur, Thermodynamik", im Kandidaten "Temperatur, Thermodynamik". Ursache ein Messartefakt: jede Sandbox-Instanz kopierte die Produktionsdatenbank zu ihrem eigenen Startzeitpunkt, ein Cron der Produktion (brain_pop, think_pass, open_predicates) aenderte die Daten dazwischen. Der Kandidat (eine Zeile in einem Modul, das kein Antwortweg ruft) kann die Antwort nicht aendern. Der dritte und letzte Versuch war verbraucht |
nachweise/bewertung_SIR-20261003T164538Z-0011_CAND-d93a06c1a757.json |
| 17:35:32 |
Lauf 0011 -> unresolved (3 Bauversuche verbraucht, Abschnitt 13): Versuch 1 war Lauf 0003 (vom Watcher-Fehlalarm zurueckgerollt), Versuch 2 an der Allowlist gescheitert, Versuch 3 am Messartefakt der Bewertung. Der Fall bleibt erhalten und darf mit neuer Evidenz wieder geoeffnet werden |
nachweise/lauf_SIR-20261003T164538Z-0011.json |
| 17:35-17:47 |
Evaluator behoben (1ad991b): ein Datensnapshot je Bewertung, den Basis und Kandidat gemeinsam benutzen (Abschnitt 15.1: "ein konsistenter Snapshot vor Testbeginn"), danach entfernt, auch bei einer gescheiterten Bewertung; 7 neue Tests, 114 Tests der Controller-, Evaluator- und Autopilot-Dateien gruen. Lauf 0010 (Problem C, 2. Versuch): rebasiert (Basis aktuell), die Coding-KI (58 Aufrufe, 0 Verstoesse) behebt zaehle_vokale (Commit fee644a, 9 Regressionstests, 8 davon vorher rot), candidate_ready 17:46:42; Bewertung mit gemeinsamem Snapshot ab 17:47:01 |
nachweise/lauf_SIR-20261003T142059Z-0010.json |
| 17:47:01-18:07:50 |
Lauf 0010: Bewertung des Kandidaten fee644a mit dem gemeinsamen Snapshot: APPROVE - alle 14 geforderten Gates gruen, Zielfix FAIL -> PASS (probe_vokale: vorher ist 3, soll 5, nachher ok). Replay 323 Fragen, Absagequote 45,82 % in Basis und Kandidat (Delta 0,0 pp, gleicher Replay-Hash), Hard-Gold 26 Faelle ohne neue falsche Antwort, p95 1.402 -> 947 ms, Speicher-Peak 272,7 -> 280,6 MB (+2,9 %, Grenze +25 %), tests/ 3.422 bestanden, 0 Fehlschlaege, core-Grundlinie 2.081 gehalten, G23 Produktion unveraendert |
nachweise/bewertung_SIR-20261003T142059Z-0010_CAND-fee644a20ae0.json |
| 18:09:05-18:31:27 |
Lauf 0010: autonomer Deploy ohne Bediener-Freigabe (Controller deploye, Modus deploy): Rollback-Ziel rb-a68c1948179d-20261003t180905z (Commit a68c194, Abbild a38dba19cbc6) 18:09:05, Deploy-Schranke gruen (tests/ 3.422 bestanden, 967 s; core-Grundlinie 2.081, 246 s), Importpruefung des neuen Abbilds, Container 18:30:51, Health, Smoke und Hard Security Checks gruen, Identitaet fee644a20ae0 (Abbild sha256:b2e5c102e866) - deploy.sh rc 0 nach 1.309 s, danach Probation von 24 h ab 18:31:27 (bis 04.10. 18:31:27 UTC) |
nachweise/deploy_fee644a_SIR-20261003T142059Z-0010.log, nachweise/lauf_SIR-20261003T142059Z-0010.json |
| 18:10:13 |
Waehrend der Schranke (vor dem Umschalten des Containers) den Watcher um einen Absturzschutz erweitert und atomar ersetzt (Trockenlauf auf dem Host, sha 0c35ee3db9ab6f2e, Sicherung watcher.py.vor_schutz.20261003T181016Z): eine Ausnahme in einer Pruefung (Integritaet, Zielfix, Gold-Smoke, Ausnahmen) oder bei einer Marke verhindert die uebrigen Pruefungen nicht mehr - sie wird als weicher Hinweis fehler (<Typ>: ...) gefuehrt, ein echter Hard-Fail loest weiter den Rollback aus; 2 neue Tests (40 im Watcher). Committet erst nach dem Deploy (keine Commits waehrend deploy.sh) |
371a286, tests/test_si_watcher.py |