Commit graph

12 commits

Author SHA1 Message Date
5dee5f25e4 feat: Erfolgsmeldung + Auto-Commit nach SHIP
Nach SHIP-Verdikt (sowohl in /optimize als auch /shipit):
- autoCommitIfDirty(): committet uncommitted Änderungen via git add -A + commit,
  falls der LLM keinen abschließenden Commit gemacht hat (Sicherheitsnetz)
- notifyShipSuccess(): zeigt prominente Meldung
  " Fertig! Das Programm ist jetzt produktionsreif und committed."

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 01:36:02 +02:00
e13e9382ff feat: automatische SemVer-Versionierung nach SHIP + /version-Command
Neuer /version-Command und automatischer Trigger nach SHIP-Verdikt in /optimize:
- getCurrentVersion() liest höchsten vX.Y.Z-Tag (git tag -l | sort -V)
- analyzeBumpType() klassifiziert Commits (feat! → major, feat: → minor, fix: → patch)
- detectVersionFile() findet package.json / Cargo.toml / pyproject.toml / VERSION
- applyVersionBump() schreibt Version in Manifest + chore-Commit
- runVersionBump() zeigt ctx.ui.select()-Dialog mit empfohlenem Bump-Typ

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 23:49:53 +02:00
a6f7f968b5 fix: Test-Timeout verhindert hängenden Loop
runTestsParallel() wrappte jede Test-Suite mit 'timeout N bash -c ...'
(Standard: 120s). Exit 124 wird als Timeout erkannt und im Output markiert.

Neues Flag --test-timeout N für Integration-Tests die länger brauchen:
  /optimize "..." --test-timeout 300

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 23:47:06 +02:00
14c47ecd01 fix: sendAndWait-Retry + Judge-Server-Bereitschaftscheck vor Loop
- sendAndWait(): fängt "Agent is already processing" mit exponentiellem
  Backoff ab (5 Versuche: 500ms, 1s, 2s, 4s). Race Condition zwischen
  waitForIdle() und sendUserMessage() wird damit toleriert.
- /optimize: prüft Port 8002 vor dem Loop (20× alle 3s = max. 60s).
  Bei 503 "Loading model" wird gewartet statt sofort zu scheitern.
  Ist der Server nach 60s nicht erreichbar: Abbruch mit Hinweis.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 21:44:37 +02:00
2c07fb9d1c feat: automatische Test-Erkennung + parallele Ausführung in /optimize
Tests werden jetzt von der Extension selbst erkannt und als parallele
CPU-Prozesse gestartet — Judge bekommt den fertigen Output und führt
keine Tests mehr selbst aus.

- detectTestCommands(): erkennt pytest, npm test, cargo, go test, make test
  anhand von Framework-Markern (alle Checks parallel via Promise.all)
- runTestsParallel(): startet alle erkannten Suiten gleichzeitig, kombiniert
  Output mit Status-Header pro Suite (max. 6000 Zeichen gesamt)
- /optimize: Auto-Erkennung läuft einmalig nach Coder-Phase, vor dem Loop
- --test-cmd bleibt als Override für Sonderfälle erhalten
- Fallback: kein Framework erkannt → Judge führt Tests wie bisher selbst aus

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 21:39:21 +02:00
d5a2c10fa6 fix: --test-cmd in finalNotify-Widget ergänzt
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 21:14:01 +02:00
6afcd6a271 feat: --test-cmd für /optimize — Tests laufen in Extension, nicht im Judge
Neues Flag: /optimize <auftrag> --test-cmd "pytest -x"

Die Extension führt den Test-Befehl vor jedem Judge-Call selbst aus (pi.exec).
Judge bekommt den Output fertig übergeben und muss keine Tests mehr starten.
Das entkoppelt Test-Laufzeit vom LLM-Call und spart Judge-Inferenz-Zeit.

- judgeWithTestsPrompt(): wie judgePrompt, aber mit Test-Output im Prompt,
  explizites Verbot weitere Tests zu starten
- runTests(): führt Shell-Befehl aus, kürzt Output auf 6000 Zeichen
- Ohne --test-cmd: bisheriges Verhalten unverändert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 21:10:25 +02:00
0fb0ec9e5d fix: /optimize --continue schreibt Zusatzauftrag in TASK.md
Wenn --continue mit einem Auftragstext kombiniert wird, wurde writeTaskMd()
bisher nicht aufgerufen — der Text wurde ignoriert. Jetzt wird er als
Zusatzauftrag angehängt, bevor die Judge→Fix-Schleife startet.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 21:07:16 +02:00
4a31535b76 feat: /plan, /cancel, /continue, /discard + Context 262144 + KV-Cache q4_0
- Neue Befehle: /plan (Planungsmodus, nur PLAN.md), /cancel (Loop-Abbruch),
  /continue (Resume nach Unterbrechung), /discard (PLAN.md verwerfen)
- contextWindow in models.json und llama.cpp-Servern: 131072 → 262144
- KV-Cache: q8_0 → q4_0 (weniger VRAM, passt zu 262k-Kontext auf 2× 3090)
- parallel: 2 → 1 beim Coder (stabiler bei großem Kontext)
- Optimize-Status mit ASCII-Fortschrittsbalken + Blocker-Preview
- cancelRequested-Flag prüft nach jedem Loop-Schritt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 20:02:20 +02:00
b19c189e2e feat: prominente Abschluss-Notifications + Widget-Update für /optimize und /shipit 2026-05-20 02:08:09 +02:00
7cb299ff66 feat: /optimize --continue überspringt Implementierungsphase 2026-05-20 01:42:26 +02:00
4074e10c1a chore: init pi_coder repository
Pi agent extension, model config, and LLaMA server startup scripts
for the coder/judge workflow (ports 8001/8002).
2026-05-19 18:21:34 +02:00