Files
mesh-configs/skills/autonomous-ai-agents/mesh-file-task-queue/references/dokumentation-archiv-2026-08-03.md
T

56 lines
2.5 KiB
Markdown

# Dokumentations- & Archiv-Subsystem (2026-08-03, validiert)
Nutzer-Präferenz abs. Priorität: **ALLES wird automatisch dokumentiert und
jederzeit sichtbar** („Das will ich immer sehen können"). Doku ist kein
nachgelagerter Text, sondern ein live generiertes Panel + chronologisches Archiv.
## Komponenten
| Komponente | Ort | Funktion |
|------------|-----|----------|
| Ereignis-Log | `/srv/work/log/events.jsonl` | Jede Aktion, JSONL append |
| Live-Panel | `Dokumentationen.perfekt-ohne-en.de` | Echtzeit-Übersicht (Tasks, Agenten, Kosten, Log) |
| Tages-Archiv | `Archiv.perfekt-ohne-en.de` | Pro-Tag-Zusammenfassung, chronologisch |
## Skripte
- `/usr/local/bin/mesh-log.sh <aktion> <detail> [agent] [kosten_eur]` —
appendet Zeile an `events.jsonl`. Immer bei jeder Aktion aufrufen!
```json
{"ts":"<ISO>","aktion":"...","agent":"agent-a","kosten_eur":0.000,"detail":"..."}
```
- `/usr/local/bin/duo-master-report.sh` — regeneriert das Live-Panel aus
`/srv/work/tasks` **und** `/srv/work/log/events.jsonl` (letzte 40 Events,
heutige Kosten = summiert aus events.jsonl). Cron: `* * * * * sleep 30`.
- `/usr/local/bin/duo-daily-archive.sh` — erzeugt `Archiv.perfekt-ohne-en.de/<datum>.html`
mit Tages-Stats (Aktionen, Kosten, fertig/offen/bugfix) + Ereignisliste.
Schreibt außerdem `index.html` als chronologische Linkliste.
Cron: `50 23 * * *` (täglich 23:50).
## Pitfalls (real getestet)
- **`ls /path/*.json` unter `set -euo pipefail` bricht mit Exit 2 ab**, wenn der
Glob leer ist (kein Match). Fix: `shopt -s nullglob` vor den Zähl-Loops
einsetzen (gilt für `duo-master-report.sh` UND `duo-daily-archive.sh`).
- **Website-Verifikation:** `curl -s -o /dev/null -w "%{http_code}" <url>` nach
jeder Generierung. Standard-Docroot existiert, aber der generierte Inhalt
fehlt erst → `403/404` = Skript brach ab, nicht die Website.
- **Grid/Liste leeres Verzeichnis:** `grep -v index.html` auf leeren Glob
ebenfalls mit `nullglob` schützen, sonst Exit 2.
## Einrichtung (Subdomain)
```bash
mkdir -p /var/www/Archiv.perfekt-ohne-en.de
# nginx vhost (listen 80 → root), ln -sf ins sites-enabled, nginx -t && reload
certbot --nginx -d Archiv.perfekt-ohne-en.de --redirect --agree-tos -m admin@perfekt-ohne-en.de
```
Big-Real-Fix: Die Subdomain erreicht per DNS denselben Server (92.60.38.175),
eigenes cert + eigener vhost pro Site.
## Budget
Kosten werden pro Ereignis in `events.jsonl` geloggt und pro Tag summiert
(Live-Panel zeigt „Heutige Kosten"). Budget-Regel: 1 €/Agent/Tag, kein
sprunghafter Modellwechsel ohne expliziten Nutzerwunsch.