zozul-cli 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -42,13 +42,16 @@ open http://localhost:7890/dashboard
42
42
 
43
43
  `http://localhost:7890/dashboard`
44
44
 
45
- - **Stats bar** sessions, user prompts, interruptions, tokens, and cost at a glance
46
- - **Token usage chart** — daily input/output/cache token trends with time range controls
47
- - **Cost chart** — daily spend
48
- - **Tool usage** — which tools Claude uses most
49
- - **Model breakdown** — cost and tokens per model
50
- - **Sessions table** — paginated (Load More), filterable; click any session for the full conversation with per-turn token counts, expandable tool call inputs/outputs
51
- - **Auto-refresh** — dashboard polls every 10s automatically; click the Auto button to refresh immediately
45
+ Four views, all with time window filtering (7d / 30d / All):
46
+
47
+ - **Summary** — total cost, sessions, and tasks at a glance; 30-day cost chart; cost breakdown by project
48
+ - **Tasks** — groups turns by tag combination (e.g. `[API] [Backend] [DB]`), shows process time, cost, and human interventions per group; click to drill into individual turns
49
+ - **Tags** — per-tag stats with drill-down into paginated turns and per-prompt cost
50
+ - **Sessions** — sortable, filterable, paginated session table; click any session for the full conversation with per-turn token counts and expandable tool call inputs/outputs
51
+
52
+ The dashboard auto-detects whether a remote backend is available (via health check) and falls back to the local API transparently. A badge in the header shows "Remote" or "Local".
53
+
54
+ Auto-refresh polls every 10s on the active view.
52
55
 
53
56
  ## Commands
54
57
 
@@ -590,6 +590,7 @@
590
590
  let dataSource = 'local';
591
591
  let autoRefreshTimer = null;
592
592
  let currentView = 'summary';
593
+ let currentTimeWindow = '7d';
593
594
  let previousView = 'tasks';
594
595
  let allTaskGroups = [];
595
596
  let allTagStats = [];
@@ -844,7 +845,7 @@ async function loadSummary() {
844
845
  const [stats, tasks, costSeries, sessionsResp] = await Promise.all([
845
846
  fetchJson('/api/stats'),
846
847
  fetchJson('/api/tasks'),
847
- fetchJson('/api/metrics/cost?range=30d'),
848
+ fetchJson('/api/metrics/cost?range=' + (currentTimeWindow === 'all' ? '90d' : currentTimeWindow) + '&step=1d'),
848
849
  fetchJson('/api/sessions?limit=500&offset=0'),
849
850
  ]);
850
851
  renderSummaryStats({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zozul-cli",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Observability for Claude Code — track token usage, costs, turns, and conversation history",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -590,6 +590,7 @@
590
590
  let dataSource = 'local';
591
591
  let autoRefreshTimer = null;
592
592
  let currentView = 'summary';
593
+ let currentTimeWindow = '7d';
593
594
  let previousView = 'tasks';
594
595
  let allTaskGroups = [];
595
596
  let allTagStats = [];
@@ -844,7 +845,7 @@ async function loadSummary() {
844
845
  const [stats, tasks, costSeries, sessionsResp] = await Promise.all([
845
846
  fetchJson('/api/stats'),
846
847
  fetchJson('/api/tasks'),
847
- fetchJson('/api/metrics/cost?range=30d'),
848
+ fetchJson('/api/metrics/cost?range=' + (currentTimeWindow === 'all' ? '90d' : currentTimeWindow) + '&step=1d'),
848
849
  fetchJson('/api/sessions?limit=500&offset=0'),
849
850
  ]);
850
851
  renderSummaryStats({