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
+43
View File
@@ -0,0 +1,43 @@
{
"title": "Sessions",
"searchPlaceholder": "Search sessions...",
"filterAll": "All",
"filterActive": "Active",
"filterWaiting": "Waiting",
"filterCompleted": "Completed",
"filterError": "Error",
"filterAbandoned": "Abandoned",
"sessionCount": "{{count}} session recorded",
"sessionCount_plural": "{{count}} sessions recorded",
"noSessions": "No sessions found",
"noSessionsDesc": "Try adjusting your search or filters.",
"noSessionsHint": "Start a Claude Code session with hooks installed to begin tracking.",
"tableSession": "Session",
"tableStatus": "Status",
"tableLastActive": "Last Active",
"tableDuration": "Duration",
"tableAgents": "Agents",
"tableCost": "Cost",
"tableDirectory": "Directory",
"defaultName": "Session ",
"detail": {
"waitingBanner": {
"title": "Waiting for your input",
"generic": "Claude Code is paused in this session until you respond in the terminal."
},
"failedLoad": "Failed to load session",
"loading": "Loading session...",
"notFound": "Session not found",
"backToSessions": "Back to Sessions",
"agents": "Agents",
"noAgents": "No agents recorded.",
"unparented": "Unparented Subagents",
"costBreakdown": "Cost Breakdown",
"eventTimeline": "Event Timeline",
"noEvents": "No events recorded.",
"conversation": "Conversation",
"timeline": "Timeline ({{shown}}/{{total}})",
"transcriptNotFound": "Conversation transcript not found for this agent. The transcript file may be missing or not yet linked."
},
"remoteSourceBadgeTitle": "Collected from a remote machine"
}