claude-codeopenclaw
Token-Meter erfasst jetzt die Radar-Lane, Gate-Kalibrierung korrigiert
added
- Neue Lib `scripts/lib/xai-radar-usage.mjs`, gebaut analog zu `xai-gate-usage.mjs`. Zählt die x_search-Läufe von `finx-x-radar-grok.mjs` an den geschriebenen Ergebnisdateien in `twitter-data/x-radar/grok-*.json` — Tag aus `generated_at`, Fallback Dateiname, dann mtime. Das funktioniert rückwirkend über die gesamte Historie, ohne das Radar-Script anzufassen.
- `openclaw-token-meter.mjs` zeigt die Radar-Lane jetzt neben Gate und Vision, dazu eine Zeile `x_search gesamt` als Summe beider Lanes. Die durable JSONL-Zeile bekommt `radar`, `radarToday`, `radarAvg7CostUsd`, `radarUsdPerCall`, `xsearchCostUsd` und `xsearchMonCostEst`.
fixed
- **Gate-Kalibrierung korrigiert: $0.245 → $0.163 pro erfolgreichem Call.** Der ursprüngliche Divisor war falsch. Aus dem Konsolen-Abgleich vom 19.06. ($1.95 Tagestotal − $0.48 Vision = $1.47) wurde durch 6 Gate-Calls geteilt. Übersehen wurde, dass am selben Tag auch der Radar dreimal lief — belegt durch `grok-2026-06-19-{06,12,18}.json` — und über denselben Hermes-x_search-Pfad auf dieselbe Rechnung ging. Korrekt ist $1.47 / (6 + 3) = ~$0.163.
- Ohne diese Korrektur hätte das Hinzufügen der Radar-Lane die xAI-Kosten um rund 50 % überschätzt, weil die Radar-Calls dann doppelt eingepreist gewesen wären.
- Der Kalibrier-Hinweis im Report sagt jetzt explizit, dass durch *Gate + Radar* zu teilen ist, nicht nur durch die Gate-Calls.
- **Vision-Wächter nachgezogen.** Das Soft-Limit stand auf $0.10/Tag und lag damit unter *jedem* der 46 gemessenen Tageswerte — der Alarm feuerte an 39 von 39 rückrechenbaren Tagen und war als Signal wertlos. Neu $0.75/Tag, hergeleitet aus der Ist-Verteilung 12.06.–31.07.: Median $0.378, p90 $0.430, p95 $0.434, Max $0.479, keine Nulltage. Das sind ~57 % Luft über dem bisherigen Maximum, also Platz für mehr Ticker im Portfolio, und entspricht ~$22/Monat statt der aktuellen ~$10.50. Spike-Floor von $0.15 auf $0.30 angehoben, Spike-Multiplikator bleibt bei 2,5×.
- Arbeitsteilung der beiden Wächter jetzt im Code dokumentiert: Der relative Spike-Alarm fängt den plötzlichen Ausreißer und wandert mit dem Normalniveau mit; das absolute Limit ist der Backstop für den Fall, dass das Normalniveau selbst schleicht — dann schlägt der relative Wächter nämlich nie an.
- Rückrechnung über 39 Tage: alte Schwelle 39 Alarme, neue Schwelle 0. Ein 3×-Normaltag ($1.02) löst beide Wächter aus, ein 2×-Tag ($0.68) noch keinen.
zahlen nach dem umbau (17.05.–31.07.)
geprüft
- `w3yh.xyz/scripts/sync-token-meter.mjs` liest aus der JSONL nur `cost` und `gateCalls`. Beide sind unverändert, die Website-Zahlen ändern sich durch den Umbau nicht.
- Dry-Run des Meters läuft sauber durch, `node --check` ohne Befund. Cron unverändert .
offen
- Die Radar-Lane zählt Dateien, kein append-only Log. Wird `twitter-data/x-radar/` irgendwann aufgeräumt, verschwindet die Historie mit. Bei einem Archiv-Job also entweder die Zählung vorher einfrieren oder den Radar ein eigenes Usage-JSONL schreiben lassen.
- Fehlläufe des Radars (16 im Log, HTTP 403 permission-denied) werden nicht gezählt. Für die Kosten ist das korrekt — gescheiterte x_search-Versuche zeigt die Konsole mit $0 — als Betriebssignal fehlen sie aber.