feat: v2.6.0 — Chat UI composer (+ menu, project files, activity panel, permission mode, Stop), git on a workspace's extra folders (#70), long paste as a file (#68), S3 server mode (experimental)
Chat UI: - Each Claude/Codex session keeps its own chat/terminal view; Settings only sets how new sessions open. - Composer + menu: upload, project files and folders (#54, also dragged from the Files/Changes tree), context files, recent uploads, skills, plugins. - Activity side panel (progress, outputs, files read, uploads, memory, skills, connectors) with a file preview; edited-file counts per turn. - Permission-mode chip (Shift+Tab steps, read back from the pane: server/lib/pane-mode.js, GET|POST /api/run/:id/permission-mode). - Stop (Esc) while the main agent works; the status is checked per agent (with session_id /api/agents ignores its status filter) and re-read every 5 s while Stop shows. - Dropped images shown in the conversation (GET /api/run/drop/:name, the requester's own drop dir), full-size viewer. - A plain-text paste over 5,000 characters is attached as pasted-text.txt, so no prompt reaches tmux/argv limits (#68). Changes panel: every /api/lanes/:id/git* route takes ?source=<lane_sources id> (sourceFolder; ENOSOURCE otherwise) and a folder picker switches the whole panel to a workspace's extra folder (#70). Server mode S3 (one Linux user per account) — experimental, verified with fake sudo plus a P6 managed-settings spike on a test account: - member tmux listing runs in the background (cached, 15 s => unknown); - transcript snapshot copy is async, chunked, temp file + rename; - Express Layer patch only on Express 4; - tmux capturePane/sendKey go to the member's own server. Docs: the multi-user design moved in as docs/plans/server-mode/README.md (the AgentHub-Server repo is gone); S3-PLAN P6 result; LANES/API/openapi.
This commit is contained in:
+77
-3
@@ -3,7 +3,7 @@
|
||||
openapi: 3.0.3
|
||||
info:
|
||||
title: Agent Dashboard for Claude Code API
|
||||
version: 2.5.13
|
||||
version: 2.6.0
|
||||
description: HTTP API for real-time Claude Code session monitoring, agent lifecycle tracking, analytics, pricing, hooks ingestion, and workflow intelligence.
|
||||
contact:
|
||||
name: Nguyễn Ngọc Trí Vĩ
|
||||
@@ -504,12 +504,23 @@ components:
|
||||
description: Tool output text when type === tool_result.
|
||||
is_error:
|
||||
type: boolean
|
||||
diff:
|
||||
type: object
|
||||
description: 'On the tool_result of a Write/Edit/MultiEdit: the lines it added and removed (Claude Code''s structuredPatch; every line of a file it created).'
|
||||
properties:
|
||||
added:
|
||||
type: integer
|
||||
removed:
|
||||
type: integer
|
||||
TranscriptMessage:
|
||||
type: object
|
||||
required:
|
||||
- type
|
||||
- content
|
||||
properties:
|
||||
stop_reason:
|
||||
type: string
|
||||
description: 'Assistant lines only: why the model stopped — `end_turn` closes the turn, `tool_use` means a tool call (and more work) follows.'
|
||||
type:
|
||||
type: string
|
||||
enum:
|
||||
@@ -5203,6 +5214,64 @@ paths:
|
||||
error:
|
||||
code: NOT_FOUND
|
||||
message: Session not found
|
||||
/api/sessions/{id}/outline:
|
||||
get:
|
||||
tags:
|
||||
- Sessions
|
||||
summary: Get a session's plan, outputs and what it used
|
||||
description: 'Read off the session''s successful tool calls (PostToolUse events) and its prompts: `progress` is its TaskCreate/TaskUpdate plan (a TodoWrite replaces it wholesale), `outputs` the paths it wrote or edited with Write/Edit/MultiEdit/NotebookEdit, `files` the paths it only read, `uploads` the files attached to its prompts through the composer (`/api/run/drop-*` paths), `memory` the Claude Code memory files (`.claude/**/memory/`) it read or wrote — the path lists newest first, a memory file in `memory` only —, `skills` the skills it invoked and `mcp` the MCP servers it called. Powers the activity panel of a Chat pane shown alone.'
|
||||
operationId: getSessionOutline
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/SessionIdPath'
|
||||
responses:
|
||||
'200':
|
||||
description: The session's outline
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
progress:
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
subject:
|
||||
type: string
|
||||
status:
|
||||
type: string
|
||||
outputs:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
files:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
uploads:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
memory:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
skills:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
mcp:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
'404':
|
||||
description: Session not found
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/ErrorResponse'
|
||||
/api/sessions/{id}/transcripts:
|
||||
get:
|
||||
tags:
|
||||
@@ -11735,7 +11804,7 @@ paths:
|
||||
tags:
|
||||
- Lanes
|
||||
summary: Suggest a commit message for the staged changes
|
||||
description: Runs the user's `claude` CLI (`-p --safe-mode --no-session-persistence --tools "" --model haiku`) on the STAGED diff of the lane's cwd (or `?session=` worktree), sent on stdin with the last ten commit subjects; a `settings.local.json` is never included. Reads only — nothing is staged or committed, no tool runs and no session is saved. Same-origin, since each call spends the user's Claude quota. 400 ENOSTAGED when nothing is staged, 400 ENOTOOL when `claude` is not on PATH, 502 EAI when the CLI fails, answers empty or runs past 120 s.
|
||||
description: Runs the user's `claude` CLI (`-p --safe-mode --no-session-persistence --tools "" --model haiku`) on the STAGED diff of the lane's cwd (or `?session=` worktree, or `?source=` extra folder), sent on stdin with the last ten commit subjects; a `settings.local.json` is never included. Reads only — nothing is staged or committed, no tool runs and no session is saved. Same-origin, since each call spends the user's Claude quota. 400 ENOSTAGED when nothing is staged, 400 ENOTOOL when `claude` is not on PATH, 502 EAI when the CLI fails, answers empty or runs past 120 s.
|
||||
operationId: suggestLaneCommitMessage
|
||||
parameters:
|
||||
- name: id
|
||||
@@ -11748,6 +11817,11 @@ paths:
|
||||
required: false
|
||||
schema:
|
||||
type: string
|
||||
- name: source
|
||||
in: query
|
||||
required: false
|
||||
schema:
|
||||
type: integer
|
||||
responses:
|
||||
'200':
|
||||
description: The suggested message
|
||||
@@ -11765,7 +11839,7 @@ paths:
|
||||
'403':
|
||||
description: Cross-origin request refused
|
||||
'404':
|
||||
description: No such workspace
|
||||
description: No such workspace, or ENOSOURCE
|
||||
'502':
|
||||
description: EAI — the claude CLI failed
|
||||
/api/lanes/{id}/git/{action}:
|
||||
|
||||
Reference in New Issue
Block a user