wip: pane/session + tab-bar checkpoint
Second checkpoint of in-flight work (sessions route, api types, ChatTabBar, PaneHeaderActions, Workspace, useWorkspacePanes) so the Orchestrator branch can rebase onto current main before merge.
This commit is contained in:
@@ -392,6 +392,11 @@ export type WorkspacePaneKind =
|
||||
| 'markdown_artifact'
|
||||
| 'html_artifact';
|
||||
|
||||
// Mixed tabs: a pane can hold tabs of different kinds (a BooChat tab next to a
|
||||
// BooCode tab next to a Terminal tab). Each tab carries its own kind; the active
|
||||
// tab's kind drives what the pane renders. `tabKinds` is parallel to `chatIds`.
|
||||
export type WorkspaceTabKind = 'chat' | 'coder' | 'terminal';
|
||||
|
||||
// v1.14.x: per-pane artifact payloads. Optional + namespaced so older saved
|
||||
// pane rows (without these fields) deserialize unchanged.
|
||||
// v1.14.x: pane state is a reference only — the pane component fetches the
|
||||
@@ -413,9 +418,17 @@ export interface HtmlArtifactState {
|
||||
|
||||
export interface WorkspacePane {
|
||||
id: string;
|
||||
// For a tabbed pane (chat/coder/terminal) this mirrors the ACTIVE tab's kind,
|
||||
// so the existing render-by-pane.kind path renders the active tab. Special
|
||||
// panes (empty/settings/artifact) keep their own kind.
|
||||
kind: WorkspacePaneKind;
|
||||
chatId?: string;
|
||||
// Tab ids. For chat/coder tabs this is the chats-row id; for terminal tabs
|
||||
// it's a generated id used to key the tmux session. Parallel to tabKinds.
|
||||
chatIds: string[];
|
||||
// Per-tab kind, parallel to chatIds. Optional for legacy rows (back-filled on
|
||||
// load from pane.kind via normalizePaneKind).
|
||||
tabKinds?: WorkspaceTabKind[];
|
||||
activeChatIdx: number;
|
||||
// v1.14.x: populated only when kind === 'markdown_artifact' / 'html_artifact'.
|
||||
markdown_artifact_state?: MarkdownArtifactState;
|
||||
@@ -428,6 +441,7 @@ export interface WorkspacePane {
|
||||
export interface ClosedPaneEntry {
|
||||
kind: WorkspacePane['kind'];
|
||||
chatIds: string[];
|
||||
tabKinds?: WorkspaceTabKind[];
|
||||
activeChatIdx: number;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user