v0.7.0 - Analytics Dashboard, Collapsible Sidebar, and Real-time Operational Visibility
LatestSkyflo v0.7.0 introduces a full-featured Analytics Dashboard that gives operators real-time visibility into LLM cost, token consumption, latency, and cache efficiency across all conversations. The Command Center has been redesigned with a collapsible sidebar, real-time conversation title generation, and a comprehensive UI overhaul.
Analytics Dashboard
The new Analytics Dashboard (/analytics) provides a centralized view of operational metrics with time-range filtering and automatic bucket aggregation.
Metrics
- Total cost with per-conversation average and daily cost trend chart
- Token usage breakdown: prompt, completion, cached, and total tokens with stacked area visualization
- Time to First Token (TTFT): average latency with per-bucket area chart
- Total Response Time (TTR): average response duration with per-bucket area chart
- Cache efficiency gauge: prompt cache hit rate as a visual ratio
- Tool approval rate: approval vs. rejection counts across mutating operations
- Conversation count: total conversations within the selected period
Time Range Controls
- Preset ranges: 1h, 6h, 12h, 24h, 7d, 14d, 30d, 90d
- Custom date range picker with calendar UI
- Automatic bucket sizing: 5min to 7-day buckets depending on the selected window
- All timestamps normalized to UTC
Backend
- New
GET /api/v1/analytics/metricsendpoint withlast_n_days,start_date/end_date, andstart_datetime/end_datetimequery parameters MetricsAggregationandDailyMetricsresponse models with typed Pydantic schemas- Aggregation computed from the
Messagetable with fallback tomessages_jsonfor backward compatibility - New
token_usageJSONB column on themessagestable (migration included) for direct per-message metric queries - Token usage is now persisted to both the conversation JSON and the individual
Messagerow in real time
Collapsible Sidebar
The navigation has been restructured from a top navbar with a separate history page into a collapsible sidebar.
- Sidebar contains conversation history with search, settings, integrations, and analytics navigation
- Collapses to icon-only mode to maximize the Command Center workspace
- Conversation history is now inline in the sidebar with search, infinite scroll, and cursor-based pagination
- The standalone
/historypage has been removed - Sidebar state persists across navigation
Conversation Ordering
Conversations are now sorted by updated_at instead of created_at, so active conversations surface to the top. Cursor pagination uses a composite updated_at|id cursor to eliminate duplicate entries across pages.
Real-time Title Generation
Conversation titles now stream to the Command Center in real time via SSE instead of requiring a page refresh.
- New
conversation.title.generatedSSE event delivers the title as soon as generation completes - Title generation is triggered after the SSE subscription is established (via
on_subscribedcallback) to guarantee the client receives the event - The sidebar history updates immediately when a title is generated
MCP Health Endpoints
The MCP server health surface has been split into dedicated liveness and readiness endpoints.
GET /health: Liveness probe. Returns200if the server process is running.GET /health/ready: Readiness probe. Verifies thatkubectl,helm, andkubectl-argo-rolloutsbinaries are available on$PATH. Returns503with a list of missing tools if any are absent.- Kubernetes manifests and Helm chart updated to use the new endpoints
- MCP probe
initialDelaySecondsreduced from 60s to 10s in the Helm chart, reflecting the lighter readiness check
Helm Chart Improvements
- Conditional credentials: The engine Secret template now uses
{{- with }}guards so that empty API key values are omitted entirely instead of being written as empty strings. This prevents environment variable pollution and avoids provider SDK errors from blank keys. - Ingress support: Native Kubernetes Ingress resource with configurable host, paths, TLS, and annotation overrides for cloud load balancer integration.
CI: Kubernetes Manifest Validation
A new deployment-ci.yml workflow validates all Kubernetes manifests on every PR that touches deployment/:
- Kubeconform: Schema validation against upstream Kubernetes OpenAPI specs (skips CRDs)
- Kube-score: Best-practice scoring for security contexts, resource limits, and probe configuration
- Shell variable substitution with deterministic dummy values to render manifests before validation
Bug Fixes
- Queue drain during approval: Queued messages no longer auto-drain while tool approvals are pending. The queue pauses until all pending approvals are resolved.
- Jenkins tool detection: Jenkins tools are now identified by name prefix (
jenkins_*) in addition to tag matching, preventing tools from being hidden when tags are missing. - Jenkins input schema mutation:
_strip_jenkins_input_paramsnow deep-copies the input schema before modifying it, preventing shared-reference side effects across tool calls.
UI Revamp
- Settings: Redesigned profile and team settings with consistent layout and spacing
- Integrations: Updated component structure and visual alignment with the new sidebar navigation
- Login: Refreshed login page styling
- Welcome screen: Updated onboarding copy for the Command Center
Full Changelog: v0.6.1...v0.7.0