feat(workspace): the console tab bar is the session view's only header

The status/name/back-arrow row is gone; Tools sits at the tab bar's right
end and the pipeline/feature pickers show only with a template.
LaneConsolePane is reduced to the terminal (no title, no Active runs, no
New run): RunHistory.tsx, api.run.history and the page's active-sessions
poll are removed.
This commit is contained in:
2026-10-03 12:13:11 +07:00
parent 4df944c6aa
commit b7efba8747
17 changed files with 177 additions and 1941 deletions
-5
View File
@@ -226,14 +226,10 @@
"runtime.steppedAsideTitle": "Stepped aside from {{expected}}, which was already in use",
"runtime.stop": "■ down",
"runtime.toggleTitle": "Boot or stop this workspace's own application stack (separate from its Claude run)",
"splitView.emptyPane": "No workspace selected for this pane.",
"splitView.paneLaneLabel": "Pane workspace selector",
"splitView.pickLane": "Pick a workspace",
"status.failed": "failed",
"status.idle": "idle",
"status.provisioning": "provisioning",
"status.running": "running",
"statusDead": "DEAD",
"title": "Workspaces",
"tooltipStart": "Spawn a conversation-mode run with no initial prompt; driven from CLI or via message",
"worktrees.heading_one": "{{count}} worktree",
@@ -388,7 +384,6 @@
"home.remove": "Remove",
"home.missing": "missing",
"home.unsupported": "{{tool}} cannot take instructions, context files or extra folders: they are kept, but its sessions start without them.",
"home.back": "Back to the workspace home",
"home.close": "Close",
"tabs.label": "Session tabs",
"tabs.new": "New tab",
+2 -36
View File
@@ -1,15 +1,13 @@
{
"emptyPane": "No session in this pane. Start one from the workspace's prompt box.",
"actions": {
"newRun": "New run",
"newSession": "New session",
"send": "Send",
"sending": "Sending…",
"start": "Run",
"starting": "Starting…",
"stop": "Stop",
"stopping": "Stopping…",
"viewSession": "View session"
"stopping": "Stopping…"
},
"autocomplete": {
"fileHint": "Type @ to reference a file",
@@ -36,15 +34,11 @@
},
"errors": {
"attachFailed": "Couldn't attach to run: {{message}}",
"attachedToLiveInstead": "This workspace's previous session is still running, so nothing new could start — attached to it instead. Kill it from Active runs to start fresh.",
"cwdRequired": "Working directory required to start a run",
"killFailed": "Couldn't stop: {{message}}",
"laneCreateFailed": "Failed to create workspace: {{message}}",
"noLaneSelected": "No workspace selected or could not create one",
"noRunIdReturned": "No run_id returned from workspace start",
"runStartedButNotAttached": "Run is live but couldn't attach to console: {{message}}",
"sendFailed": "Couldn't send: {{message}}",
"startFailed": "Couldn't start run: {{message}}"
"sendFailed": "Couldn't send: {{message}}"
},
"events": {
"claude": "Claude",
@@ -110,9 +104,6 @@
"sandboxWarning": "Codex will run commands with no sandbox.",
"shortcut": "Enter to send · Shift+Enter for newline"
},
"limitations": {
"dismiss": "Got it"
},
"mode": {
"conversation": "Conversation",
"conversationHint": "Multi-turn - keep typing follow-ups while the agent works.",
@@ -131,32 +122,9 @@
"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",
"externalBadge": "external",
"externalHint": "Started outside the dashboard, so there is no terminal to attach to. Resume opens a new tmux-backed `claude --resume` of this session in its folder.",
"scopeNote": "Runs started from this dashboard, plus Claude Code sessions running outside it.",
"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",
@@ -166,8 +134,6 @@
"permissionMode": "Mode",
"session": "Session"
},
"subtitle": "Streamed output, multi-turn, same hooks and analytics as your terminal.",
"title": "Run {{tool}}",
"tokens": {
"cacheRead": "Cache hit",
"cost": "Cost",
-5
View File
@@ -226,14 +226,10 @@
"runtime.steppedAsideTitle": "Đã lùi khỏi {{expected}} vì cổng đó đang bận",
"runtime.stop": "■ dừng",
"runtime.toggleTitle": "Chạy hoặc dừng stack ứng dụng của workspace này (khác với phiên Claude của nó)",
"splitView.emptyPane": "Chưa chọn workspace cho ô này.",
"splitView.paneLaneLabel": "Bộ chọn workspace cho ô",
"splitView.pickLane": "Chọn workspace",
"status.failed": "thất bại",
"status.idle": "rảnh",
"status.provisioning": "đang khởi tạo",
"status.running": "đang chạy",
"statusDead": "ĐÃ CHẾT",
"title": "Workspace",
"tooltipStart": "Tạo một lần chạy ở chế độ hội thoại mà không có lời nhắc ban đầu; được điều khiển từ CLI hoặc qua tin nhắn",
"worktrees.heading_one": "{{count}} worktree",
@@ -388,7 +384,6 @@
"home.remove": "Gỡ",
"home.missing": "không còn",
"home.unsupported": "{{tool}} không nhận được hướng dẫn, file ngữ cảnh hay thư mục bổ sung: chúng vẫn được giữ, nhưng session của nó khởi động mà không có chúng.",
"home.back": "Quay lại trang workspace",
"home.close": "Đóng",
"tabs.label": "Các tab phiên",
"tabs.new": "Tab mới",
+2 -36
View File
@@ -1,15 +1,13 @@
{
"emptyPane": "Pane này chưa có phiên nào. Hãy tạo phiên từ ô prompt của workspace.",
"actions": {
"newRun": "Lượt chạy mới",
"newSession": "Phiên mới",
"send": "Gửi",
"sending": "Đang gửi…",
"start": "Chạy",
"starting": "Đang khởi động…",
"stop": "Dừng",
"stopping": "Đang dừng…",
"viewSession": "Xem phiên"
"stopping": "Đang dừng…"
},
"autocomplete": {
"fileHint": "Gõ @ để tham chiếu file",
@@ -35,15 +33,11 @@
},
"errors": {
"attachFailed": "Không gắn được vào run: {{message}}",
"attachedToLiveInstead": "Phiên trước của workspace này vẫn đang chạy nên không thể bắt đầu phiên mới — đã gắn vào phiên đang chạy thay vào đó. Bấm Kill trong Active runs để bắt đầu lại từ đầu.",
"cwdRequired": "Cần thư mục làm việc để bắt đầu run",
"killFailed": "Không dừng được: {{message}}",
"laneCreateFailed": "Không thể tạo workspace: {{message}}",
"noLaneSelected": "Chưa chọn workspace hoặc không thể tạo workspace",
"noRunIdReturned": "Không trả về ID run từ khởi động workspace",
"runStartedButNotAttached": "Run đã khởi động nhưng không thể gắn vào bảng điều khiển: {{message}}",
"sendFailed": "Không gửi được: {{message}}",
"startFailed": "Không khởi động được: {{message}}"
"sendFailed": "Không gửi được: {{message}}"
},
"events": {
"claude": "Claude",
@@ -109,9 +103,6 @@
"sandboxWarning": "Codex sẽ chạy lệnh mà không có sandbox.",
"shortcut": "Enter để gửi · Shift+Enter xuống dòng"
},
"limitations": {
"dismiss": "Đã rõ"
},
"mode": {
"conversation": "Hội thoại",
"conversationHint": "Đa lượt - tiếp tục gõ trong khi agent xử lý.",
@@ -130,32 +121,9 @@
"pickSession": "Chọn phiên…",
"preview": "Hoạt động gần nhất",
"resumeHint": "Chọn một phiên từ lịch sử để tiếp tục. cwd được khoá theo phiên gốc.",
"resumeOption": "Tiếp tục phiên đã có",
"search": "Tìm theo ID, cwd hoặc status…",
"selectedBadge": "Đang tiếp tục"
},
"runs": {
"allSessionsLink": "Xem tất cả phiên Claude Code →",
"attached": "Đã gắn vào run đang chạy",
"externalBadge": "ngoài dashboard",
"externalHint": "Phiên này khởi chạy ngoài dashboard nên không có terminal để attach. Resume sẽ mở một `claude --resume` mới trong tmux tại đúng thư mục đó.",
"scopeNote": "Các run khởi chạy từ dashboard này, cùng những phiên Claude Code đang chạy bên ngoài.",
"started": "Bắt đầu lúc {{when}}",
"switcher": "Run đang chạy",
"switcherEmpty": "Không có run đang chạy",
"viewActive": "Xem run đang chạy",
"viewActive_other": "{{count}} run đang chạy",
"viewLabel": "Xem"
},
"status": {
"abandoned": "Bị bỏ",
"completed": "Hoàn tất",
"error": "Lỗi",
"idle": "Rảnh",
"killed": "Đã dừng",
"running": "Đang chạy",
"spawning": "Khởi động…"
},
"statusHeader": {
"cwd": "Cwd",
"duration": "Đã chạy",
@@ -165,8 +133,6 @@
"permissionMode": "Mode",
"session": "Session"
},
"subtitle": "Stream trực tiếp, hội thoại đa lượt, cùng hooks và analytics như ở terminal.",
"title": "Chạy {{tool}}",
"tokens": {
"cacheRead": "Cache hit",
"cost": "Chi phí",