feat(usage): open the TokenTracker dashboard from the usage monitor
The modal deliberately shows only a slice of the analytics; this hands off to TokenTracker's own local dashboard for the rest. The worker starts `tokentracker serve` on demand and returns the URL, the UI opens the browser. Three things the spawn has to get right: port 7680 is not free on Windows (Delivery Optimization holds [::]:7680) and serve does not fall back, so we scan 7680-7689 with a dual-stack bind probe; --no-open because the CLI would open the browser before the server answers; and the child is a cmd.exe shim, so shutdown kills the process tree. --no-sync keeps our no-cloud-sync rule.
This commit is contained in:
@@ -535,6 +535,8 @@
|
||||
"analyticsStampFormat": "Auswertung: Stand {0}",
|
||||
"analyticsNever": "Auswertung noch nicht geladen",
|
||||
"analyticsRefresh": "Auswertung aktualisieren",
|
||||
"openDashboard": "TokenTracker-Dashboard öffnen",
|
||||
"openDashboardTip": "Startet das lokale TokenTracker-Dashboard (nur localhost, kein Cloud-Sync) und öffnet es im Browser. Der erste Start dauert ein paar Sekunden.",
|
||||
"analyticsTotalsFormat": "{0} Tokens · {1} $",
|
||||
"ttMissingTitle": "Die Token-Auswertung braucht TokenTracker",
|
||||
"ttMissingBody": "TokenTracker (MIT) liest deine lokalen Claude-Transkripte und sieht keine Prompts. ClaudeDo ruft nur den lokalen Export auf — kein `init`, keine Hooks, kein Cloud-Sync.",
|
||||
@@ -750,7 +752,9 @@
|
||||
"thresholdSaveFailed": "Grenze konnte nicht gespeichert werden: {0}",
|
||||
"installStarted": "TokenTracker wird installiert — der Fortschritt läuft in der Log-Leiste.",
|
||||
"installFailed": "TokenTracker konnte nicht installiert werden: {0}",
|
||||
"analyticsRefreshFailed": "Die Auswertung konnte nicht aktualisiert werden: {0}"
|
||||
"analyticsRefreshFailed": "Die Auswertung konnte nicht aktualisiert werden: {0}",
|
||||
"dashboardFailed": "Das TokenTracker-Dashboard konnte nicht geöffnet werden: {0}",
|
||||
"dashboardUnavailable": "der lokale Dashboard-Server ist nicht gestartet"
|
||||
},
|
||||
"filesTab": { "workerOffline": "Worker offline.", "noneBundled": "Keine Standard-Agenten mitgeliefert.", "allPresent": "Alle Standard-Agenten bereits vorhanden.", "restored": "{0} Standard-Agent(en) wiederhergestellt.", "restoreFailed": "Wiederherstellung fehlgeschlagen: {0}", "resetToDefault": "Auf den mitgelieferten Standard zurückgesetzt." },
|
||||
"sessionSkillsTab": { "installed": "Installiert: {0}", "installFailed": "Installation fehlgeschlagen: {0}", "updated": "Aktualisiert.", "updateFailed": "Aktualisierung fehlgeschlagen: {0}", "removed": "Entfernt.", "removeFailed": "Entfernen fehlgeschlagen: {0}" },
|
||||
|
||||
Reference in New Issue
Block a user