fix: 26 kritische + 29 wichtige Sicherheits- und Robustheitsprobleme behoben
- serve.py: URL-Encoding fix, Body-Limit (10MB), Port-Reuse, TOCTOU-Race, Logging
- index.html: XSS in renderTemplates geheilt, Escape-Key für Edit-Modal, Accessibility
- templates.json: Pfade ohne ../, leere Descriptions ergänzt
- validate.py: categories/ entfernt, CLI-Flags umbenannt, zu mutually_exclusive_group
- smoke_test.sh: set -euo pipefail, Port-Validation, Timeout 5s, code-Fallback
- cleanup_server.sh: lsof statt pgrep, Graceful-Term + SIGKILL-Fallback
- agent_verify.sh: set -euo pipefail, ROOT-Pfade, dynamischer Port, grep-Crash fix
- AGENTS.md: history/ entfernt, Pfad-Schema präzisiert
- README.md: categories/ entfernt, Web-Ansicht + API-Endpunkte hinzugefügt
2026-05-03 14:00:55 +02:00
|
|
|
#!/usr/bin/env bash
|
fix: /templates.json-Bug, AGENTS.md neu strukturiert, fehlende Stubs angelegt
- serve.py: /templates.json mappt nun auf web/templates.json (GET + PUT).
Zuvor lieferte der Endpoint 404, weil der Handler nach ROOT/templates.json
suchte, die Datei aber in web/ liegt.
- AGENTS.md als Verhaltensregeln fuer Agenten umgebaut (statt defensive
Selbstbehauptung in Projektdoku). Erfundene/nicht existente Artefakte
aus der Doku entfernt, Commit-Tabelle aktualisiert, Tippfehler und
nicht gerenderter date-Ausdruck korrigiert.
- docs/{GETTING_STARTED,ARCHITECTURE,API_REFERENCE,DEPLOYMENT,DEBUGGING,
SECURITY}.md als Stubs angelegt (waren in docs/INDEX.md verlinkt, aber
inexistent).
- history/CHANGELOG.md als Stub angelegt.
- scripts/cleanup_server.sh angelegt (war in AGENTS.md als 'integriert'
beschrieben, fehlte aber).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 13:01:07 +02:00
|
|
|
set -euo pipefail
|
|
|
|
|
|
fix: 26 kritische + 29 wichtige Sicherheits- und Robustheitsprobleme behoben
- serve.py: URL-Encoding fix, Body-Limit (10MB), Port-Reuse, TOCTOU-Race, Logging
- index.html: XSS in renderTemplates geheilt, Escape-Key für Edit-Modal, Accessibility
- templates.json: Pfade ohne ../, leere Descriptions ergänzt
- validate.py: categories/ entfernt, CLI-Flags umbenannt, zu mutually_exclusive_group
- smoke_test.sh: set -euo pipefail, Port-Validation, Timeout 5s, code-Fallback
- cleanup_server.sh: lsof statt pgrep, Graceful-Term + SIGKILL-Fallback
- agent_verify.sh: set -euo pipefail, ROOT-Pfade, dynamischer Port, grep-Crash fix
- AGENTS.md: history/ entfernt, Pfad-Schema präzisiert
- README.md: categories/ entfernt, Web-Ansicht + API-Endpunkte hinzugefügt
2026-05-03 14:00:55 +02:00
|
|
|
PORT="${1:-8081}"
|
|
|
|
|
|
2026-05-03 19:12:28 +02:00
|
|
|
# Finde Prozesse auf Port
|
|
|
|
|
PIDS=$(lsof -ti ":$PORT" 2>/dev/null || true)
|
fix: 26 kritische + 29 wichtige Sicherheits- und Robustheitsprobleme behoben
- serve.py: URL-Encoding fix, Body-Limit (10MB), Port-Reuse, TOCTOU-Race, Logging
- index.html: XSS in renderTemplates geheilt, Escape-Key für Edit-Modal, Accessibility
- templates.json: Pfade ohne ../, leere Descriptions ergänzt
- validate.py: categories/ entfernt, CLI-Flags umbenannt, zu mutually_exclusive_group
- smoke_test.sh: set -euo pipefail, Port-Validation, Timeout 5s, code-Fallback
- cleanup_server.sh: lsof statt pgrep, Graceful-Term + SIGKILL-Fallback
- agent_verify.sh: set -euo pipefail, ROOT-Pfade, dynamischer Port, grep-Crash fix
- AGENTS.md: history/ entfernt, Pfad-Schema präzisiert
- README.md: categories/ entfernt, Web-Ansicht + API-Endpunkte hinzugefügt
2026-05-03 14:00:55 +02:00
|
|
|
|
2026-05-03 19:12:28 +02:00
|
|
|
if [ -n "$PIDS" ]; then
|
fix: 26 kritische + 29 wichtige Sicherheits- und Robustheitsprobleme behoben
- serve.py: URL-Encoding fix, Body-Limit (10MB), Port-Reuse, TOCTOU-Race, Logging
- index.html: XSS in renderTemplates geheilt, Escape-Key für Edit-Modal, Accessibility
- templates.json: Pfade ohne ../, leere Descriptions ergänzt
- validate.py: categories/ entfernt, CLI-Flags umbenannt, zu mutually_exclusive_group
- smoke_test.sh: set -euo pipefail, Port-Validation, Timeout 5s, code-Fallback
- cleanup_server.sh: lsof statt pgrep, Graceful-Term + SIGKILL-Fallback
- agent_verify.sh: set -euo pipefail, ROOT-Pfade, dynamischer Port, grep-Crash fix
- AGENTS.md: history/ entfernt, Pfad-Schema präzisiert
- README.md: categories/ entfernt, Web-Ansicht + API-Endpunkte hinzugefügt
2026-05-03 14:00:55 +02:00
|
|
|
# Graceful shutdown attempt
|
2026-05-03 19:12:28 +02:00
|
|
|
echo "$PIDS" | while read -r pid; do
|
|
|
|
|
kill -TERM "$pid" 2>/dev/null || true
|
|
|
|
|
done
|
fix: 26 kritische + 29 wichtige Sicherheits- und Robustheitsprobleme behoben
- serve.py: URL-Encoding fix, Body-Limit (10MB), Port-Reuse, TOCTOU-Race, Logging
- index.html: XSS in renderTemplates geheilt, Escape-Key für Edit-Modal, Accessibility
- templates.json: Pfade ohne ../, leere Descriptions ergänzt
- validate.py: categories/ entfernt, CLI-Flags umbenannt, zu mutually_exclusive_group
- smoke_test.sh: set -euo pipefail, Port-Validation, Timeout 5s, code-Fallback
- cleanup_server.sh: lsof statt pgrep, Graceful-Term + SIGKILL-Fallback
- agent_verify.sh: set -euo pipefail, ROOT-Pfade, dynamischer Port, grep-Crash fix
- AGENTS.md: history/ entfernt, Pfad-Schema präzisiert
- README.md: categories/ entfernt, Web-Ansicht + API-Endpunkte hinzugefügt
2026-05-03 14:00:55 +02:00
|
|
|
# Warte bis zu 5 Sekunden
|
|
|
|
|
for i in $(seq 1 10); do
|
2026-05-03 19:12:28 +02:00
|
|
|
STILL_RUNNING=0
|
|
|
|
|
for pid in $PIDS; do
|
|
|
|
|
if kill -0 "$pid" 2>/dev/null; then
|
|
|
|
|
STILL_RUNNING=1
|
|
|
|
|
break
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
if [ "$STILL_RUNNING" = "0" ]; then
|
fix: 26 kritische + 29 wichtige Sicherheits- und Robustheitsprobleme behoben
- serve.py: URL-Encoding fix, Body-Limit (10MB), Port-Reuse, TOCTOU-Race, Logging
- index.html: XSS in renderTemplates geheilt, Escape-Key für Edit-Modal, Accessibility
- templates.json: Pfade ohne ../, leere Descriptions ergänzt
- validate.py: categories/ entfernt, CLI-Flags umbenannt, zu mutually_exclusive_group
- smoke_test.sh: set -euo pipefail, Port-Validation, Timeout 5s, code-Fallback
- cleanup_server.sh: lsof statt pgrep, Graceful-Term + SIGKILL-Fallback
- agent_verify.sh: set -euo pipefail, ROOT-Pfade, dynamischer Port, grep-Crash fix
- AGENTS.md: history/ entfernt, Pfad-Schema präzisiert
- README.md: categories/ entfernt, Web-Ansicht + API-Endpunkte hinzugefügt
2026-05-03 14:00:55 +02:00
|
|
|
break
|
|
|
|
|
fi
|
|
|
|
|
sleep 0.5
|
|
|
|
|
done
|
|
|
|
|
# Force kill if still running
|
2026-05-03 19:12:28 +02:00
|
|
|
for pid in $PIDS; do
|
|
|
|
|
if kill -0 "$pid" 2>/dev/null; then
|
|
|
|
|
kill -9 "$pid" 2>/dev/null || true
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
echo "Prozesse auf port $PORT beendet."
|
fix: /templates.json-Bug, AGENTS.md neu strukturiert, fehlende Stubs angelegt
- serve.py: /templates.json mappt nun auf web/templates.json (GET + PUT).
Zuvor lieferte der Endpoint 404, weil der Handler nach ROOT/templates.json
suchte, die Datei aber in web/ liegt.
- AGENTS.md als Verhaltensregeln fuer Agenten umgebaut (statt defensive
Selbstbehauptung in Projektdoku). Erfundene/nicht existente Artefakte
aus der Doku entfernt, Commit-Tabelle aktualisiert, Tippfehler und
nicht gerenderter date-Ausdruck korrigiert.
- docs/{GETTING_STARTED,ARCHITECTURE,API_REFERENCE,DEPLOYMENT,DEBUGGING,
SECURITY}.md als Stubs angelegt (waren in docs/INDEX.md verlinkt, aber
inexistent).
- history/CHANGELOG.md als Stub angelegt.
- scripts/cleanup_server.sh angelegt (war in AGENTS.md als 'integriert'
beschrieben, fehlte aber).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 13:01:07 +02:00
|
|
|
else
|
2026-05-03 19:12:28 +02:00
|
|
|
echo "Keine laufende Instanz auf port $PORT gefunden."
|
fix: /templates.json-Bug, AGENTS.md neu strukturiert, fehlende Stubs angelegt
- serve.py: /templates.json mappt nun auf web/templates.json (GET + PUT).
Zuvor lieferte der Endpoint 404, weil der Handler nach ROOT/templates.json
suchte, die Datei aber in web/ liegt.
- AGENTS.md als Verhaltensregeln fuer Agenten umgebaut (statt defensive
Selbstbehauptung in Projektdoku). Erfundene/nicht existente Artefakte
aus der Doku entfernt, Commit-Tabelle aktualisiert, Tippfehler und
nicht gerenderter date-Ausdruck korrigiert.
- docs/{GETTING_STARTED,ARCHITECTURE,API_REFERENCE,DEPLOYMENT,DEBUGGING,
SECURITY}.md als Stubs angelegt (waren in docs/INDEX.md verlinkt, aber
inexistent).
- history/CHANGELOG.md als Stub angelegt.
- scripts/cleanup_server.sh angelegt (war in AGENTS.md als 'integriert'
beschrieben, fehlte aber).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 13:01:07 +02:00
|
|
|
fi
|