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
+153
View File
@@ -0,0 +1,153 @@
{
"actions": {
"newRun": "New run",
"send": "Send",
"sending": "Sending…",
"start": "Run",
"starting": "Starting…",
"stop": "Stop",
"stopping": "Stopping…",
"viewSession": "View session"
},
"autocomplete": {
"fileHint": "Type @ to reference a file",
"groupBuiltin": "Built-in (CLI only - won't run from here)",
"groupFiles": "Files in cwd",
"groupProject": "Project commands",
"groupUser": "User commands",
"noMatches": "No matches",
"slashHint": "Type / for slash commands"
},
"binary": {
"found": "Using {{path}}",
"missing": "The `claude` CLI isn't on your PATH. Install Claude Code or set PATH so the dashboard can spawn it."
},
"concurrency": {
"active_one": "{{count}} run already in flight",
"active_other": "{{count}} runs already in flight",
"atCap": "Concurrency cap reached ({{max}}). Stop one of the running runs to start a new one.",
"viewActive": "View active runs"
},
"empty": {
"body": "Type a prompt and click Run. Output streams here as the model thinks, calls tools, and answers.",
"title": "Nothing yet"
},
"errors": {
"attachFailed": "Couldn't attach to run: {{message}}",
"cwdRequired": "Working directory required to start a run",
"killFailed": "Couldn't stop: {{message}}",
"laneCreateFailed": "Failed to create lane: {{message}}",
"noLaneSelected": "No lane selected or could not create one",
"noRunIdReturned": "No run_id returned from lane start",
"runStartedButNotAttached": "Run is live but couldn't attach to console: {{message}}",
"sendFailed": "Couldn't send: {{message}}",
"startFailed": "Couldn't start run: {{message}}"
},
"events": {
"claude": "Claude",
"collapse": "Collapse",
"expand": "Expand",
"system": "System",
"thinking": "Thinking",
"tool": "Tool",
"toolResult": "Tool result",
"you": "You"
},
"fields": {
"cwd": "Working directory",
"cwdGroups": {
"dashboard": "Dashboard server",
"home": "Home",
"recent": "Recent - used by Claude Code"
},
"cwdHint": "Absolute path. Defaults to the dashboard's own cwd.",
"cwdNoMatches": "No matches. Type an absolute path to use it directly.",
"cwdPlaceholder": "Type to search or paste an absolute path…",
"effort": "Thinking effort",
"model": "Model",
"modelCustom": "Custom…",
"modelCustomPlaceholder": "model id (e.g. claude-opus-4-7-20260101)",
"modelInheritLabel": "Inherit from settings",
"permissionAcceptEdits": "acceptEdits (recommended)",
"permissionBypass": "bypassPermissions (DANGER - allows everything without asking)",
"permissionDefault": "default (interactive prompts - sessions may hang headlessly)",
"permissionMode": "Permission mode",
"permissionPlan": "plan (read-only planning)",
"prompt": "Prompt",
"promptPlaceholder": "Ask Claude anything…"
},
"footer": {
"cost": "Cost",
"duration": "Duration",
"exitCode": "Exit code",
"sessionId": "Session ID",
"turns": "Turns"
},
"hint": {
"headlessExplain": "Headless mode is best for scripted tasks where you know exactly what you want. The session can't ask follow-up questions and will hang on permission prompts unless you stay in acceptEdits.",
"permissionWarning": "bypassPermissions allows ALL tool invocations without confirming. Only use for trusted prompts.",
"shortcut": "Cmd+Enter / Ctrl+Enter to send"
},
"limitations": {
"dismiss": "Got it"
},
"mode": {
"conversation": "Conversation",
"conversationHint": "Multi-turn - keep typing follow-ups while the agent works.",
"headless": "One-shot",
"headlessHint": "Single prompt, single response. Stdin closes after spawn.",
"label": "Mode"
},
"resume": {
"clear": "Clear selection",
"freshHint": "Start a fresh Claude Code session.",
"freshOption": "New session",
"label": "Source session",
"noSessions": "No sessions found.",
"originalCwd": "Original cwd",
"pickSession": "Pick a session…",
"preview": "Last activity",
"resumeHint": "Pick a session from your history and continue the conversation. Cwd is locked to the original.",
"resumeOption": "Resume existing session",
"search": "Search by ID, cwd, or status…",
"selectedBadge": "Resuming"
},
"runs": {
"allSessionsLink": "See all Claude Code sessions →",
"attached": "Attached to existing run",
"scopeNote": "Only shows runs you started from this dashboard.",
"started": "Started {{when}}",
"switcher": "Active runs",
"switcherEmpty": "No active runs",
"viewActive": "View active run",
"viewActive_other": "{{count}} active runs",
"viewLabel": "View"
},
"status": {
"abandoned": "Abandoned",
"completed": "Completed",
"error": "Error",
"idle": "Idle",
"killed": "Killed",
"running": "Running",
"spawning": "Spawning…"
},
"statusHeader": {
"cwd": "Cwd",
"duration": "Elapsed",
"effort": "Effort",
"envelopes": "Events",
"model": "Model",
"permissionMode": "Mode",
"session": "Session"
},
"subtitle": "Spin up a Claude Code session right inside the dashboard. Live streaming output, multi-turn conversation, and the same hooks-driven analytics as your terminal sessions.",
"title": "Run Claude",
"tokens": {
"cacheRead": "Cache hit",
"cost": "Cost",
"input": "Input",
"label": "Context",
"output": "Output"
}
}