feat: v2.5.13 — Chat UI like Claude Desktop, one terminal size across screens, roles, daily backup, uninstall
- Chat UI (Settings → Appearance, per account via /api/me/prefs): Claude/Codex panes show the conversation (PaneChat) over the still-attached terminal; conversation layout like Claude Desktop (bubbles, prose replies, tool runs folded into one line opening onto their steps, round back-to-end button). - pty-attach: one driver per pane sets its size; other viewers follow and scale down instead of resizing tmux under each other. - Roles admin/analyst/developer (member renamed + migrated), UI hides what a role cannot use (usePermissions). - Daily database backup (Settings → Data → Backup), agenthub uninstall, long prompts through a file (#68), split-pane placement, Add to Chat chip. Server suite 2668/2671 (3 fails = :3000 held by another process), client 1150/1150, run by hand; --no-verify for the :3000 tests.
This commit is contained in:
+176
-9
@@ -3,7 +3,7 @@
|
||||
openapi: 3.0.3
|
||||
info:
|
||||
title: Agent Dashboard for Claude Code API
|
||||
version: 2.5.12
|
||||
version: 2.5.13
|
||||
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ĩ
|
||||
@@ -4776,7 +4776,7 @@ components:
|
||||
enum:
|
||||
- admin
|
||||
- analyst
|
||||
- member
|
||||
- developer
|
||||
disabled:
|
||||
type: boolean
|
||||
AuthMe:
|
||||
@@ -12834,6 +12834,173 @@ paths:
|
||||
description: 'EBADVALUE: `enabled` is not a boolean'
|
||||
'403':
|
||||
description: 'EBADORIGIN: another site asked'
|
||||
/api/settings/backup:
|
||||
get:
|
||||
tags:
|
||||
- Settings
|
||||
summary: Daily database backup settings and backups
|
||||
operationId: getBackup
|
||||
responses:
|
||||
'200':
|
||||
description: Daily database backup settings, the folder's backups and the last run
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
required:
|
||||
- dir
|
||||
- hour
|
||||
- keep
|
||||
- running
|
||||
- files
|
||||
- env_owned
|
||||
properties:
|
||||
dir:
|
||||
type: string
|
||||
description: Backup folder; empty = backups off
|
||||
hour:
|
||||
type: integer
|
||||
minimum: 0
|
||||
maximum: 23
|
||||
description: Server local hour
|
||||
keep:
|
||||
type: integer
|
||||
minimum: 1
|
||||
maximum: 365
|
||||
running:
|
||||
type: boolean
|
||||
last:
|
||||
type: object
|
||||
nullable: true
|
||||
description: 'This process''s last run: {at, ok, file?, size?, ms?, removed?, error?}'
|
||||
files:
|
||||
type: array
|
||||
description: AgentHub's own `agenthub-YYYYMMDD-HHMMSS.db` files, newest first
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
size:
|
||||
type: integer
|
||||
mtime:
|
||||
type: string
|
||||
format: date-time
|
||||
dir_error:
|
||||
type: string
|
||||
nullable: true
|
||||
env_owned:
|
||||
type: object
|
||||
properties:
|
||||
dir:
|
||||
type: boolean
|
||||
hour:
|
||||
type: boolean
|
||||
keep:
|
||||
type: boolean
|
||||
put:
|
||||
tags:
|
||||
- Settings
|
||||
summary: Set the backup folder, hour and number kept
|
||||
description: Any subset of the three fields, persisted to the settings file as AGENTHUB_BACKUP_DIR / AGENTHUB_BACKUP_HOUR / AGENTHUB_BACKUP_KEEP. An empty `dir` turns backups off. Same-origin only.
|
||||
operationId: setBackup
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
dir:
|
||||
type: string
|
||||
hour:
|
||||
type: integer
|
||||
minimum: 0
|
||||
maximum: 23
|
||||
keep:
|
||||
type: integer
|
||||
minimum: 1
|
||||
maximum: 365
|
||||
responses:
|
||||
'200':
|
||||
description: The new state
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
required:
|
||||
- dir
|
||||
- hour
|
||||
- keep
|
||||
- running
|
||||
- files
|
||||
- env_owned
|
||||
properties:
|
||||
dir:
|
||||
type: string
|
||||
description: Backup folder; empty = backups off
|
||||
hour:
|
||||
type: integer
|
||||
minimum: 0
|
||||
maximum: 23
|
||||
description: Server local hour
|
||||
keep:
|
||||
type: integer
|
||||
minimum: 1
|
||||
maximum: 365
|
||||
running:
|
||||
type: boolean
|
||||
last:
|
||||
type: object
|
||||
nullable: true
|
||||
description: 'This process''s last run: {at, ok, file?, size?, ms?, removed?, error?}'
|
||||
files:
|
||||
type: array
|
||||
description: AgentHub's own `agenthub-YYYYMMDD-HHMMSS.db` files, newest first
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
size:
|
||||
type: integer
|
||||
mtime:
|
||||
type: string
|
||||
format: date-time
|
||||
dir_error:
|
||||
type: string
|
||||
nullable: true
|
||||
env_owned:
|
||||
type: object
|
||||
properties:
|
||||
dir:
|
||||
type: boolean
|
||||
hour:
|
||||
type: boolean
|
||||
keep:
|
||||
type: boolean
|
||||
'400':
|
||||
description: 'INVALID_PATH: the folder is relative, missing, not a directory or not writable; INVALID_INPUT: hour/keep out of range'
|
||||
'403':
|
||||
description: 'EBADORIGIN: another site asked'
|
||||
'409':
|
||||
description: 'EENVOWNED: the environment set that field'
|
||||
'500':
|
||||
description: 'ESAVE: the settings file could not be written'
|
||||
/api/settings/backup/run:
|
||||
post:
|
||||
tags:
|
||||
- Settings
|
||||
summary: Back up the database now
|
||||
description: Starts a backup and answers at once; poll GET /api/settings/backup while `running`. Same-origin only.
|
||||
operationId: runBackup
|
||||
responses:
|
||||
'202':
|
||||
description: Started (or already running); the backup state
|
||||
'400':
|
||||
description: 'ENOBACKUPDIR: no backup folder is set'
|
||||
'403':
|
||||
description: 'EBADORIGIN: another site asked'
|
||||
/api/settings/codex-hooks:
|
||||
get:
|
||||
tags:
|
||||
@@ -13514,7 +13681,7 @@ paths:
|
||||
tags:
|
||||
- Auth
|
||||
operationId: listServerUsers
|
||||
summary: Every account with its workspaces, sessions and 7/30-day usage (admin/analyst; 403 EADMIN for a member)
|
||||
summary: Every account with its workspaces, sessions and 7/30-day usage (admin/analyst; 403 EADMIN for a developer)
|
||||
responses:
|
||||
'200':
|
||||
description: Accounts
|
||||
@@ -13549,7 +13716,7 @@ paths:
|
||||
tokens:
|
||||
type: integer
|
||||
'403':
|
||||
description: EADMIN — a member
|
||||
description: EADMIN — a developer
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
@@ -13580,8 +13747,8 @@ paths:
|
||||
enum:
|
||||
- admin
|
||||
- analyst
|
||||
- member
|
||||
default: member
|
||||
- developer
|
||||
default: developer
|
||||
currentPassword:
|
||||
type: string
|
||||
responses:
|
||||
@@ -13644,7 +13811,7 @@ paths:
|
||||
enum:
|
||||
- admin
|
||||
- analyst
|
||||
- member
|
||||
- developer
|
||||
disabled:
|
||||
type: boolean
|
||||
currentPassword:
|
||||
@@ -13827,7 +13994,7 @@ paths:
|
||||
tags:
|
||||
- Auth
|
||||
operationId: listAuditLog
|
||||
summary: Admin/analyst reads of sessions members own, newest first
|
||||
summary: Admin/analyst reads of sessions developers own, newest first
|
||||
parameters:
|
||||
- name: limit
|
||||
in: query
|
||||
@@ -13865,7 +14032,7 @@ paths:
|
||||
type: string
|
||||
nullable: true
|
||||
'403':
|
||||
description: EADMIN — a member
|
||||
description: EADMIN — a developer
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
|
||||
Reference in New Issue
Block a user