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>
This commit is contained in:
Dieter Schlüter 2026-05-22 23:49:53 +02:00
commit e13e9382ff
4 changed files with 568 additions and 251 deletions

View file

@ -34,10 +34,11 @@ docker run -d \
-c 262144 \
-n 16384 \
--jinja \
--chat-template-kwargs '{"enable_thinking":true}' \
--no-context-shift \
--temp 0.2 \
--top-p 0.95 \
--top-k 40 \
--temp 0.6 \
--top-p 0.80 \
--top-k 20 \
--min-p 0.01 \
--repeat-penalty 1.05 \
--main-gpu 0 \
@ -54,37 +55,24 @@ docker run -d \
--host 0.0.0.0 \
--port "$CONTAINER_PORT"
echo "[*] Warte auf HTTP ..."
HTTP_READY=0
echo "[*] Warte auf Modell-Bereitschaft (Completion-Check, max. 180 s) ..."
MODEL_READY=0
for i in {1..90}; do
if curl -s "http://localhost:${HOST_PORT}/health" >/dev/null 2>&1 || \
curl -s "http://localhost:${HOST_PORT}/v1/models" >/dev/null 2>&1; then
HTTP_READY=1
break
fi
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" --max-time 10 \
-X POST "http://localhost:${HOST_PORT}/v1/chat/completions" \
-H "Content-Type: application/json" \
-d "{\"model\":\"${MODEL_ALIAS}\",\"messages\":[{\"role\":\"user\",\"content\":\"ping\"}],\"max_tokens\":1,\"temperature\":0.0,\"stream\":false}")
if [ "$HTTP_CODE" = "200" ]; then MODEL_READY=1; break; fi
echo " [${i}/90] HTTP ${HTTP_CODE:-000} — Modell lädt noch, warte 2s ..."
sleep 2
done
if [ "$HTTP_READY" -ne 1 ]; then
echo "[!] HTTP-Server wurde nicht rechtzeitig erreichbar." >&2
if [ "$MODEL_READY" -ne 1 ]; then
echo "[!] Modell wurde nicht rechtzeitig bereit (kein HTTP 200 auf Completion)." >&2
docker logs --tail 200 "$CONTAINER_NAME" || true
exit 1
fi
echo "[*] Teste Chat-Completion ..."
curl -s -X POST "http://localhost:${HOST_PORT}/v1/chat/completions" \
-H "Content-Type: application/json" \
-d "{
\"model\": \"${MODEL_ALIAS}\",
\"messages\": [
{ \"role\": \"system\", \"content\": \"Du bist ein präziser Coding-Assistent.\" },
{ \"role\": \"user\", \"content\": \"Antworte nur mit dem Wort: bereit\" }
],
\"max_tokens\": 8,
\"temperature\": 0.0,
\"stream\": false
}"
echo
echo "[*] Server bereit auf http://0.0.0.0:${HOST_PORT}"
echo "[*] Modell bereit — erster Completion-Request erfolgreich (HTTP 200)."
echo "[*] Server läuft auf http://0.0.0.0:${HOST_PORT}"
echo "[*] Stoppen mit: docker rm -f ${CONTAINER_NAME}"