Skip to content

buzz-acp-Testsuite ist auf Windows dauerhaft rot (10 Tests, keiner davon echt) #83

Description

@munirad7s

Mission

cargo nextest run -p buzz-acp läuft auf Munirs Windows-Maschine grün — heute fallen 10 Tests, keiner davon wegen eines echten Fehlers. Ein Suite-Lauf, der immer rot ist, beweist nichts mehr.

Money-Link

Führungs-Hebel: Doktrin „kein Merge ohne grünen Beweis" ist wertlos, wenn die Suite dauerhaft rot ist — jeder Agent muss dann von Hand belegen, dass seine Fehler nicht die neuen sind. Das kostet in jedem Rust-Ticket eine Extrarunde git stash + Baseline-Lauf (gemessen in buzz#39: 4 zusätzliche Testläufe).

Kontext

  • Repo/Pfad: C:/Users/rescue/projects/buzz · crates/buzz-acp · Basis: origin/main
  • Ist-Stand (2026-08-01, gemessen): cargo nextest run -p buzz-acp --no-fail-fast666 passed, 10 failed. 9 davon reproduzieren auf dem unveränderten Baseline-Stand, der zehnte ist last-abhängig flaky.
  • Die roten Tests:
    • Fake-Agent-Fixtures: acp_steer_request_omits_expected_run_id_and_carries_session_and_prompt, goose_transport_wins_when_both_run_id_and_capability_present, goose_system_prompt_request_uses_append_contract, session_new_full_includes_system_prompt_when_some, session_new_full_omits_system_prompt_when_none, session_new_full_sends_session_title_in_meta_when_some, session_new_full_omits_meta_when_session_title_none
    • Zeitfenster: keepalive_resets_idle_past_deadline, idle_resets_on_stdout_activity
    • Flaky unter Last: acp_steer_failed_outcome_acks_outcome_rejected (isoliert grün)
  • Die Kernspur: /bin/bash: -c: line 2: syntax error near unexpected token '2' und custom request succeeds: AgentExited — das gespawnte Fake-Agent-Script kommt unter MSYS/Git-Bash zerlegt an. Verdacht: dieselbe Argument-/Quoting-Falle, die schon bei curl und bei gate.sh zugeschlagen hat (.empire/AGENTS.md, Abschnitte buzz#9/buzz#32) — Bodies über stdin statt argv.
  • Nebenbefund: der Lauf legt Dateien mit kaputten Namen im Repo-Root ab (crates/buzz-acp/C:UsersrescueAppDataLocalTemp…json) — ein Testpfad wird nicht als Windows-Pfad behandelt. Die müssen nach dem Lauf verschwinden, sonst committet sie irgendwann jemand mit.
  • Abhängigkeiten: keine
  • Koexistenz: Upstream-Datei — Änderungen klein und additiv halten, Test-Fixtures sind PR-fähig.

Vorflug-Check (nach Claim, vor Arbeit — jeder Punkt muss halten)

  1. git fetch upstream && git merge upstream/main — der Fehler kann upstream schon behoben sein.
  2. Lauf reproduzieren: 10 rote Tests, gleiche Namen. Weniger/andere → Ist-Stand neu beschreiben.
  3. Prüfen, ob dieselben Tests in der Upstream-CI (Linux) grün sind — dann ist es rein plattformspezifisch.
    → Scheitert ein Punkt: NICHT blind bauen — Befund kommentieren, ready zurück oder Blocker-Protokoll.

Auftrag

  1. Root-Cause der Fake-Agent-Fixtures finden (wie wird das Script gebaut, wo zerlegt MSYS es) und so bauen, dass es unter Git Bash und Linux läuft.
  2. Die zwei Zeitfenster-Tests entweder robust machen (großzügigere Fenster / deterministische Uhr) oder unter Windows begründet ignorieren — #[ignore] mit Kommentar ist besser als dauerhaft rot.
  3. Den kaputten Pfad reparieren, der die C:Users…json-Dateien ins Repo legt.
  4. Ergebnis in .empire/AGENTS.md als eigene Sektion: was war es, was jetzt gilt, wie man es misst.

Nicht-Ziele / Guardrails

  • Kein Umbau der Produktionslogik, um Tests grün zu bekommen — nur Fixtures/Testinfrastruktur.
  • Kein pauschales #[ignore] über alle roten Tests: jeder ignorierte Test braucht einen Grund im Kommentar.
  • Buzz-Desktop nicht neu bauen/installieren.

Verifikation (Befehle + erwartete Ausgabe)

# Befehl/Aktion Erwartung
1 cargo nextest run -p buzz-acp --no-fail-fast 0 failed (ignorierte namentlich benannt)
2 zweiter Lauf direkt danach gleiches Ergebnis — kein Flake
3 git status --short nach dem Lauf keine neuen untracked Dateien
4 Rot-Probe: eine Fixture absichtlich kaputt machen genau der zugehörige Test wird rot

Definition of Done

  • Suite grün und wiederholbar, Verifikationstabelle belegt
  • Feat-Branch → PR (--repo munirad7s/buzz --base main --head <branch>) → gemerged
  • Issue mit Ergebnis-Kommentar geschlossen

Folge-Arbeit (Gardener-Kandidaten)

  • Wenn der Fix upstream-tauglich ist: PR an block/buzz (dieselbe Mechanik wie das Upstream-Ticket aus buzz#39).

Rechte

Chrome-MCP, Windows-MCP, Playwright, n8n-MCP, ~/.secrets/** — ohne Rückfrage. Blocker → blocker-mail.sh + Label blocked-munir + weiter.

Format v2 · buzz_empire 2026-08-01 (Gardener aus buzz#39)

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Mittlere Prio

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions