Repository navigation
Releases
Releases · map-blasterson/ghcp-mon
ghcp-mon v0.0.9
- TUI ( ghcp-mon attach )
• New src/tui/ module (68 source files): event-driven tokio::select! loop, per-column Scenario trait architecture, async SWR query cache, WS reconnect with backoff, and TOML workspace persistence.
• Scenarios: Live Sessions, Spans explorer, Chat Detail (DELTA/FULL diffing), Tool Detail (inline unified diff for the edit / create tools), File Touches.
• Widgets: context-growth bars (3× vertical resolution via sextants), searchable text blocks, markdown/syntax rendering, keymap & log overlays, status dot.
• Keyboard-driven: column add/remove/move/resize, Tab focus cycling, five-layer key-dispatch precedence. Mouse capture was removed in favor of a pure-keyboard model.
-
GenAI error.type capture & presentation
• Normalizer captures error.type from chat spans into the store; REST API exposes it on serialized spans.
• New SpanError component — span-detail error block + span-tree error indicator. -
Copilot 1.0.60 compatibility
• Reads renamed underscored token keys ( cache_read / reasoning ) for context snapshots. -
Build / docs
• Rust toolchain bumped 1.86 → 1.88 (Containerfile + BUILDING.md).
• Requirements vault: new frontend/tui/ subtree (12 HLR, 93 LLR, 68 impl stubs) plus error.type/token-key updates.
ghcp-mon v0.0.8
- New
ghcp-mon export <session>subcommand — writes a session's spans as replay-compatible JSON lines to-o <path>or stdout; pipe straight intoghcp-mon replay. Includes span events, ordered by start time, metrics/logs excluded. Missing sessions fail fast without touching the output file. - Context Growth Widget: cache-read tokens shown as a green segment at the base of every chat bar (root and sub-agent), with the tooltip disclosing cache vs. fresh input.
- Live span ingest now smoothed over a 2s window (newest-first, capped at 60 reveals/sec, parent-before-child preserved) so batch arrivals visually convey ingestion rate instead of popping in all at once.
- Diff-stat badges on span rows for
edit/create/apply_patch— red-Nremoved, green+Madded. - Inline
descriptionlabel on tool span rows — surfaces the model-supplied intent (e.g. forbash/taskcalls) without chip chrome. - Tool Detail: hero panel surfaces the key function argument (
command→query→description, first match wins) in a high-contrast block above args/result. - Tool Detail: metadata panel is now a collapsible
<details>, closed by default, keeping args/result and the hero panel above the fold. - Vendor-aware session rows —
local_name, theautobadge, and thebranchchip now render only whenservice_name === "github-copilot"; sessions from other OTLP producers fall back to vendor-agnostic fields. - Normalization picks up Copilot turn identifiers (
github.copilot.interaction_id/turn_idonchat_turns) and classifiesexternal_tool*spans as a distinctExternalToolkind, routing them to theexternal_tool_callstable.
Follow mode, expand/collapse all, filtering, style tweaks.
Features
- Follow mode now tracks sub-agent spans correctly (end-time-based).
- Explicit follow toggle checkbox in the Spans header.
- Collapse-all / expand-all buttons.
- Selecting an agent span routes ChatDetail to its most recent chat.
- Kind filter visibly dims non-matching rows.
- Spans header redesigned as a two-row grid layout.
- Context limit line labeled and thickened for clarity.
Fixes
- Kind filter was visually broken (.dim class didn't cascade through child elements).
- Default column title corrected from "Traces" to "Spans".
Span search, span collapse, target badges, other improvements.
Features
- Full-text search across spans within a session.
- Parent spans are now collapsible.
- Context Growth Widget ↔ Spans Interaction
- Contextual target badges on span rows:
- Arrow key navigation through span rows.
Fixes
- Windows backslash paths handled correctly (only treated as separator with drive-letter prefix)
- Powershell recognized as a shell tool.
- Columns clamped to natural width
Frontend Features
Context Growth Widget
- includes sub-agents in the chart with a distinct input color and corrected scale/tint
- restyled header (limit legend dropped); 1px plot top border with tint extending to it; larger inter-bar gap
Spans column
- removed inline SpanInspector panel — column is now list/tree only (use ToolDetail / ChatDetail siblings for details)
- green skill chip for skill tool calls
- err chip styled with red border and diagonal stripes
- dropdown shows friendly session names; session change now propagates to sibling columns
ChatDetail
- preserves newlines in message bodies
- omits absent attribute subtrees
- ? / / hover search added to text blocks across ChatDetail and ToolDetail
Misc
- Repo / docs
- frontend requirements graph refreshed
- backend (src/) and frontend (web/) memory-bank docs added; db-schema.md added
v0.0.4 - Improved ergonomics and added context input diff.
- New "Chat detail" widget (formerly Input Breakdown). Restructured into separate input/output roots and gained a DELTA / FULL toggle. DELTA mode (default) diffs system_instructions
word-by-word and the tool definitions name-keyed against the previous chat span in the session, so each turn shows only what actually changed; first-turn falls back to FULL with no
badges. The scenario, file (ChatDetail.tsx), and persisted key were renamed (input_breakdown → chat_detail) with a v0→v1 zustand migration so existing workspaces keep loading. - Tool → chat cross-selection. Picking an execute_tool span in the Spans column now auto-selects the chat sibling that immediately follows it and forwards the originating call_id to
every Chat detail column, which expands the ancestor chain and renders a yellow arrow beside the matching tool message. - Span-tree ordering fix. Children and roots are now sorted by COALESCE(end_unix_ns, start_unix_ns), so completed spans show in completion order while in-progress spans still float
to the top. Affects /api/traces/:id, get_session_span_tree, get_trace, and get_span. - Multiline tool responses render with real line breaks instead of escaped \n.
- OpenTelemetry GenAI semconv pinned in-tree (reference/semconv-gen-ai/) at upstream ce75bbe for offline schema lookups.
v0.0.3
Initial Release
- A few days of testing on Linux with GitHub Copilot CLI 1.0.40-3.
- Minimal testing on Windows, seems to work.
- OSX build is untested.