feat: Claude Code Monitor — lanes, pipelines and a merged workspace

Internal SmartGift build of a Claude Code monitoring dashboard.

Lanes: a durable unit of parallel agent work, one per working directory,
tracked across session restarts. Managed lanes are git worktrees the
dashboard provisions and can reset or remove behind a three-check destroy
guard and a counted preflight; adopted lanes are directories you already
own and are never destroyable.

Pipelines: a lane moves through pipeline stages. A stage the agent declares
with evidence renders green; a stage inferred from the tool-event stream
renders dashed amber and never counts as done. Detection is forward-only
within a 30-minute window, and never writes the declared stage.

Workspace: one page at /run with a lane grid, the selected lane's pipeline,
and a full Claude console behind a disclosure.
This commit is contained in:
2026-07-29 17:07:45 +07:00
commit 57dc91585d
783 changed files with 221743 additions and 0 deletions
@@ -0,0 +1,51 @@
# ─────────────────────────────────────────────────────────────────────────────
# Grafana datasource provisioning for Claude Code Agent Monitor
# ─────────────────────────────────────────────────────────────────────────────
apiVersion: 1
# Prevent users from deleting provisioned data sources in the UI
deleteDatasources:
- name: Prometheus
orgId: 1
datasources:
# ── Primary Prometheus datasource ─────────────────────────────────────────
- name: Prometheus
type: prometheus
uid: prometheus
access: proxy
url: http://prometheus-server:9090
isDefault: true
editable: false
jsonData:
# Scrape interval matches prometheus.yaml global setting
timeInterval: "15s"
# Query timeout
queryTimeout: "30s"
# HTTP method for queries
httpMethod: POST
# Manage alerts via Prometheus
manageAlerts: true
# Alerting rule settings
prometheusType: Prometheus
prometheusVersion: ">=2.45.0"
# Incremental querying for better performance
incrementalQuerying: true
incrementalQueryOverlapWindow: "10m"
# Exemplar trace support (uncomment if using tracing)
# exemplarTraceIdDestinations:
# - name: traceId
# datasourceUid: tempo
version: 1
# ── Alertmanager datasource ───────────────────────────────────────────────
- name: Alertmanager
type: alertmanager
uid: alertmanager
access: proxy
url: http://alertmanager:9093
editable: false
jsonData:
implementation: prometheus
handleGrafanaManagedAlerts: false
version: 1