Commit graph

44 commits

Author SHA1 Message Date
04f013e92a fix: /optimize-Befehl auf englische Originalwitze umstellen
Übersetzte deutsche Witze funktionieren nicht — explizit englische
Originalwitze anfordern, damit der nächste Demo-Lauf direkt passt.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 23:14:27 +02:00
1479959cae chore: html-joke-ticker in Ausgangszustand zurücksetzen + Protokoll eintragen
- jokes.html: Skelett wiederhergestellt (kein JS, kein CSS)
- README.md: Aktueller-Stand-Abschnitt auf Startzustand korrigiert
- PROTOKOLL.md: Demo-Ergebnisse vom Fr 29. Mai eingetragen
  (inkl. Hinweis auf Witz-Sprache und /patch-History-Bug)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 23:11:28 +02:00
8f410ec8e7 docs: /patch-Befehl um grüne Button-Farbe ergänzen
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 23:05:02 +02:00
9b0a31b2af fix: Vorheriger-Witz-Button funktioniert jetzt korrekt
Fehler: nextJoke() schrieb currentIndex in History bevor showJoke()
ihn aktualisierte — Mapping war eins daneben. prevJoke() poppte
doppelt ohne konsistenten Stand.

Fix: positionsbasiertes History-Array mit historyPos-Zeiger.
nextJoke() hängt neuen Index an und setzt historyPos vor.
prevJoke() dekrementiert historyPos und liest den korrekten Eintrag.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 22:59:56 +02:00
56f7b9e03f fix: Witze durch englische Originalwitze ersetzen
Übersetzte Witze funktionieren nicht — 25 englische Originalwitze eingefügt.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 22:34:27 +02:00
8561c1a092 docs: html-joke-ticker um Tailwind-Redesign-Demo erweitern
/optimize --no-tests für Tailwind Play CDN + responsives Card-Layout
als zweite Folge-Demo nach dem /patch-Schritt.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 22:00:26 +02:00
cd7bf38dfa feat: zwei neue Demo-Examples hinzufügen (bash-sysreport, html-joke-ticker)
bash-sysreport: /coder von Null — kein Startcode, demonstriert Neuerstellung
html-joke-ticker: /optimize --no-tests für Frontend-Arbeit + /patch

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 21:56:12 +02:00
1c773029b5 refactor: install.sh → install_servers_and_pi_coder_extension.sh umbenennen
Klarerer Name verhindert Verwechslung mit generischen install-Skripten.
Alle Referenzen in README.md und BEDIENUNGSANLEITUNG.md aktualisiert.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 21:32:03 +02:00
cac359b45f chore: CLAUDE.md aus Repo entfernen und in .gitignore aufnehmen
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 21:27:40 +02:00
3f688a72fb docs: Repo-URL, Dateientabelle und git-init-Branch aktualisieren
- README.md: git clone URL auf Forgejo-Repo gesetzt
- README.md: test-utils.ts, run-tests.sh und examples/ in Dateientabelle ergänzt
- examples/README.md: git init -b main statt git init (verhindert master-Branch)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 21:26:02 +02:00
e31b514533 chore: merge Forgejo initial commit, behalte lokale README.md
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 21:23:18 +02:00
bf4fe492f7 Initial commit 2026-05-29 21:18:18 +02:00
433d3970fb chore: PROTOKOLL.md-Dateien auf leere Templates zurücksetzen
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 21:06:07 +02:00
a86d8b39ad fix: restore-all.sh bewahrt PROTOKOLL.md standardmäßig
Neues Flag --reset-protokoll für expliziten Reset auf leere Templates.
Ohne Flag bleiben ausgefüllte Protokolle erhalten.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 20:53:01 +02:00
c6f2f1f8e0 docs: Demo-Protokolle ausgefüllt (automatisierter Lauf Fr 29. Mai 2026)
python-calculator: PASS, 1:15 min, 1 Runde
c-linkedlist:      /quick_check 0:21 + /fix 0:50 + /patch 0:31
rust-wordcount:    PASS WITH CONCERNS, 1:40 min, 1 Runde + /version v0.2.0
go-fibonacci:      PASS + SHIP, ca. 3 min gesamt

Hinweise: --interactive nicht mit --print kombinierbar;
/version benötigt interaktiven UI-Dialog.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 20:48:25 +02:00
0956f3f569 chore: Examples finalisieren — Benchmark, .gitignore, TASK.md-Cleanup
- fib_bench_test.go: von pi-coder erzeugter Benchmark übernommen
- .gitignore in python-calculator und rust-wordcount: verhindert
  Commit von Build-Artefakten in Demo-Sub-Repos
- TASK.md zu globalem .gitignore hinzugefügt (pi-coder-Laufzeitartefakt)
- restore-all.sh: bereinigt jetzt auch TASK.md-Dateien

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 20:26:44 +02:00
f5d2a5d66e fix: go-fibonacci ./... → . und Memoization-Aufgabe auf Single-Threaded einschränken
./... schlägt bei Single-Package-Modulen ohne Unterverzeichnisse fehl.
Mutex-Hinweis verhindert Deadlock durch rekursive Lock-Acquisition.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 20:24:00 +02:00
64c2b7f0fd feat: Demo-Examples (Python/Rust/Go/C) mit Protokoll-Templates und Restore-Skript
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 19:06:36 +02:00
fb4e96919a test: Unit-Tests auf 97 erweitern (toolExecutionLabel, getLastAssistantText, SemVer, Flags, ShipVerdict)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 19:06:29 +02:00
7b13c4996d test: Unit-Tests für normalizeForComparison, parseVerdict, parseBlockers
28 Tests für die drei reinen Hilfsfunktionen aus pi-coder-judge-extension.ts.
run-tests.sh führt test-utils.ts ohne ts-node aus (sed-basiertes TS→JS-Stripping).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 18:14:03 +02:00
cba70b67a1 docs: neue Flags, Quick-Judge und parallele Server-Checks dokumentiert
- --no-tests und --approve-concerns in Syntax, Beschreibungen und Beispielen
- Quick-Check für Runde 1 im Ablaufbeispiel erklärt
- --continue: Hinweis auf parallele Server-Bereitschaftsprüfung
- Abschnitt 11 (Anwendungsfälle): neue Beispiele für --no-tests / --approve-concerns
- CLAUDE.md: currentModelKey-Cache, normalizeForComparison, quickJudgePrompt dokumentiert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 18:08:00 +02:00
482d98fb63 perf: Quick-Judge Runde 1, switchModel-Cache, Blocker-Normalisierung + weitere TAT-Optimierungen
A) quickJudgePrompt()/quickJudgeWithTestsPrompt(): Runde 1 ohne --continue nutzt einen
   kompakten Prompt ohne TASK.md — spart 15-30% Inference-Zeit bei direktem PASS
B) switchModel()-Caching via currentModelKey: Überspringt setModel() wenn Modell
   bereits korrekt gesetzt ist; currentModelKey wird im finally-Block resettet
C) normalizeForComparison() für Loop-Detection: Whitespace/Satzzeichen-Normalisierung
   verhindert False-Negatives bei minimalen Formulierungsunterschieden im Judge-Output
D) Parallele Server-Bereitschaftsprüfung im --continue-Modus via Promise.all:
   Spart bis zu 3 min bei Kaltstart beider Server
E) --no-tests Flag: überspringt detectTestCommands() und autoTestCmds-Befüllung
F) --approve-concerns Flag: behandelt "PASS WITH CONCERNS" wie "PASS" (kein ShipIt-Call)
H) sendAndWait() settle-Delay 400ms → 150ms: ~1-2 s weniger Wartezeit pro Durchlauf

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 18:03:56 +02:00
11ac46e565 feat: --interactive-Checkpoint, direktes SHIP bei PASS, default rounds 2
- /optimize --interactive pausiert nach erstem PASS; /continue setzt fort,
  /continue "Zusatz" hängt weiteren Auftrag an und wiederholt den Judge-Loop
- Klares PASS → direkt SHIP ohne zweiten ShipIt-Inference-Call (1-3 min gespart)
- PASS WITH CONCERNS → ShipIt-Runde weiterhin als finale Abwägung
- Default --rounds 3→2 (~30 % schnellere Durchläufe für typische Tasks)
- /continue-Command erkennt interactivePauseActive und leitet Signal weiter
- Alle drei Interactive-Zustandsvariablen werden im finally-Block resettet
- Dokumentation (README, BEDIENUNGSANLEITUNG, CLAUDE.md) vollständig aktualisiert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-29 17:51:54 +02:00
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
8aadb317e5 docs: /version, Live-Status, korrekte Serverparameter in Doku
- README: /version, /plan, /continue, /cancel in Kommando-Tabelle ergänzt
- README: --test-cmd/--test-timeout für /optimize dokumentiert
- README: Live-Aktivitätsstatus-Tabelle mit Beispielen
- README: Serverparameter korrigiert: -c 262144, -n 16384, --cache-type q4_0
- README: VRAM-Tabelle auf q4_0-Basis aktualisiert (256K-Zeile ergänzt)
- BEDIENUNGSANLEITUNG: neuer Abschnitt 9 "Versionsverwaltung: /version"
- BEDIENUNGSANLEITUNG: Dialog-Beispiele + Manifest-Update-Logik erklärt
- BEDIENUNGSANLEITUNG: Live-Status-Hinweis in /optimize-Ablauf integriert
- BEDIENUNGSANLEITUNG: Versionsbeispiel in Typische Anwendungsfälle

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 00:23:23 +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
8bdf73b4ce docs: CLAUDE.md — Architektur, Deploy-Workflow, GPU-Setup
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 20:03:34 +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
aa00a8282e fix: Judge contextWindow in models.json auf 131072 korrigiert 2026-05-20 01:27:52 +02:00
1da712f0b8 fix: Judge-Kontext auf 131072 erhöht (war 65536, zu klein bei langen Optimize-Runden) 2026-05-20 01:20:07 +02:00
120f223c9b docs: umfassende README + BEDIENUNGSANLEITUNG mit llama.cpp-Parametern und Beispielen 2026-05-19 21:22:02 +02:00
8dddd0eabd docs: start-servers.sh in README ergänzt 2026-05-19 19:11:15 +02:00
da961e65f6 feat: start-servers.sh startet Coder und Judge parallel 2026-05-19 19:05:29 +02:00
59b16059cc feat: stop-servers.sh, status.sh, README.md 2026-05-19 18:57:31 +02:00
6c128f5cf6 fix: install.sh kopiert statt Symlinks zu setzen 2026-05-19 18:51:07 +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