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:
2026-10-08 23:04:57 +07:00
parent a9c71cd905
commit b7f3735b29
147 changed files with 5644 additions and 2561 deletions
-27
View File
@@ -1,45 +1,18 @@
{
"title": "Kanban Board",
"subtitle": "Kanban view of all agents by status",
"subtitleSessions": "Kanban view of all sessions by status",
"viewToggle": {
"agents": "Agents",
"sessions": "Sessions"
},
"noAgents": "No agents tracked yet",
"noAgentsDesc": "Start a Claude Code session with hooks installed to see agents appear here.",
"agentCount": "{{count}} agent tracked",
"agentCount_plural": "{{count}} agents tracked",
"noAgentsInColumn": "No agents",
"noSessions": "No sessions tracked yet",
"noSessionsDesc": "Start a Claude Code session with hooks installed to see sessions appear here.",
"sessionCount": "{{count}} session tracked",
"sessionCount_plural": "{{count}} sessions tracked",
"noSessionsInColumn": "No sessions",
"ran": "ran ",
"running": "running ",
"session": {
"anonymous": "Untitled session",
"agentSummary_one": "{{count}} agent",
"agentSummary_other": "{{count}} agents",
"subagentSummary_one": "{{count}} subagent",
"subagentSummary_other": "{{count}} subagents",
"turnSummary_one": "{{count}} turn",
"turnSummary_other": "{{count}} turns"
},
"tooltip": {
"agent": {
"working": "Agent is actively running a tool call right now.\n\nEntered on PreToolUse or UserPromptSubmit, exits on Stop (turn finished).",
"waiting": "Agent finished its turn and is blocked on the human - either Claude is waiting for the next user message or has prompted for permission to use a tool.\n\nCleared on the next PreToolUse / PostToolUse, or when the session ends.",
"completed": "Agent has fully ended for this session - typically because SessionEnd fired or, for subagents, SubagentStop was processed.\n\nNo further activity will be recorded against this agent.",
"error": "Agent recorded an error and will not continue. For main agents this comes from a Stop with stop_reason=error; for subagents, from a failed run."
},
"session": {
"active": "Session is mid-turn - Claude is currently running and the user isn't blocking anything. Brief by nature: a session moves through Active during tool calls and back to Waiting at end of turn.",
"waiting": "Session is sitting on the user. Either Claude finished its turn (most common) or it has surfaced a permission prompt and is blocked until the human responds.\n\nLook here for sessions you owe a reply to.",
"completed": "Session has fully closed - SessionEnd fired (CLI exited cleanly) or the user explicitly closed it.\n\nAll agents on this session are also completed.",
"error": "Session ended with an error - Claude returned stop_reason=error, an unrecoverable failure occurred, or an upstream API error terminated the run.",
"abandoned": "Session went stale without a clean SessionEnd. Marked abandoned after 5+ minutes of no activity (orphaned by /resume, network drop, or the CLI being killed). Distinct from Completed: we never saw a real exit signal."
}
}
}