refactor!: rebrand CCAM to AgentHub
Clean break, no compatibility alias. Renames the product name, the CLI binary (`ccam` -> `agenthub`), the env var prefix (`CCAM_` -> `AGENTHUB_`), the Prometheus metric namespace (`ccam_*` -> `agenthub_*`), the tmux session prefix (`ccam-lane-<id>` -> `agenthub-lane-<id>`), the per-repo runtime profile directory (`.ccam/profile` -> `.agenthub/profile`), the lanes state root (`~/.claude/ccam-lanes` -> `~/.claude/agenthub-lanes`), the bundled plugins (`plugins/ccam*` -> `plugins/agenthub*`) and their slash commands (`/ccam-doctor` -> `/agenthub-doctor`, `/ccam:*` -> `/agenthub:*`). Because there is no alias, an existing install has to be updated by hand: rename its `.ccam/profile` directory and any `CCAM_*` variables, and reinstall the plugin under its new name. Two other name families are deliberately left alone here, since they are not just strings: the `Claude-Code-Monitor` repository/marketplace name, and the `agent-dashboard` npm package plus its `~/.claude/agent-dashboard` runtime directory, which holds the live database and needs a migration rather than a rename. Verified: server 1406/1406, client 459/459, `grep -i ccam` clean across tracked files, `openapi.yaml` regenerated (95 paths, unchanged count).
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
---
|
||||
description: >
|
||||
Render an ordered timeline of one Claude Code session's events (every event type)
|
||||
with per-event durations and tool names, reconstructed from Agent Monitor data.
|
||||
Pairs PreToolUse with PostToolUse to compute tool durations and surfaces gaps,
|
||||
errors, and compaction points. Use when reconstructing what happened in a session
|
||||
step by step.
|
||||
---
|
||||
|
||||
# Session Timeline
|
||||
|
||||
Reconstruct the chronological event timeline of a single Claude Code session.
|
||||
|
||||
## Input
|
||||
|
||||
The user provides: **$ARGUMENTS**
|
||||
|
||||
- A **session ID** to time-line, or
|
||||
- "latest" / "last" for the most recent session.
|
||||
|
||||
## Data Sources
|
||||
|
||||
| Endpoint | Returns |
|
||||
|----------|---------|
|
||||
| `GET /api/sessions/:id` | session header: status, model, cwd, started_at, ended_at, cost, metadata (thinking_blocks, turn_count, total_turn_duration_ms) — and nested events |
|
||||
| `GET /api/events?session_id=X` | the full event stream: event_type (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, Notification, Compaction, APIError, TurnDuration), tool_name, summary, data, timestamp |
|
||||
|
||||
## Report Sections
|
||||
|
||||
### 1. Resolve & header
|
||||
If "latest", `GET /api/sessions?limit=1` to get the id, then `GET /api/sessions/:id`.
|
||||
Print a one-line header: id, status, model, cwd basename, started_at → ended_at,
|
||||
turn_count, total_turn_duration_ms, cost.
|
||||
|
||||
### 2. Build the ordered timeline
|
||||
`GET /api/events?session_id=X`. Sort strictly by `timestamp`. For each event emit a
|
||||
row with: relative offset from `started_at` (e.g. `+00:03.412`), event_type,
|
||||
tool_name (when present), and a one-line `summary`.
|
||||
|
||||
### 3. Compute durations
|
||||
Pair each `PreToolUse` with its matching `PostToolUse` (same tool_name, next
|
||||
occurrence) and show the tool's wall-clock duration. For `TurnDuration` events use
|
||||
the recorded duration directly. Flag any `PreToolUse` with no matching `PostToolUse`
|
||||
as **unclosed**.
|
||||
|
||||
### 4. Annotate notable points
|
||||
Mark `APIError` (❌), `Compaction` (⚠️ context compressed), `SubagentStop`
|
||||
(subagent finished), `Notification` (ℹ️), and any timeline gap > 30s between
|
||||
consecutive events as an idle window.
|
||||
|
||||
### 5. Tallies
|
||||
Event count by type, total tool time vs. session wall time, and the longest single
|
||||
tool call.
|
||||
|
||||
## Output
|
||||
|
||||
A Markdown table — `offset | event_type | tool_name | duration | summary` — in
|
||||
strict timestamp order, preceded by the header line and followed by the tallies.
|
||||
Durations in ms or `mm:ss.mmm`; currency as USD to 4 decimal places. Never invent a
|
||||
duration when a PostToolUse is missing — label it `unclosed`. If the dashboard is
|
||||
unreachable, tell the user to start it with `npm start` from the repo root.
|
||||
Reference in New Issue
Block a user