Interface: DockPanelRecord
Defined in: packages/sdk/src/domain-types.ts:151
The persisted identity and restore state of one dock panel — a DockPanelKind panel that declared persistence: "recorded" (RFC 0041).
This is what makes a dock panel first-class the way an editor or a terminal is: it exists as a workspace-scoped record (Workspace.panels), not merely as opaque geometry inside the saved dock layout. The record list is the source of truth for which recorded panels a workspace has; the dock layout keeps only where they sit, and the two are reconciled on restore exactly as editors and terminals already are.
An editor and a terminal are not DockPanelRecords in this release — EditorRecord / TerminalRecord keep their own shape. Folding the three lists into one is deliberately left for a later phase.
Properties
id
id: string;Defined in: packages/sdk/src/domain-types.ts:157
Stable id, unique within the workspace. This is not the transient dock-view panel id — it survives the panel being closed and reopened from its record across a restart.
kindId
kindId: string;Defined in: packages/sdk/src/domain-types.ts:159
The DockPanelKind id this panel is an instance of.
workspaceId
workspaceId: string;Defined in: packages/sdk/src/domain-types.ts:161
The id of the workspace this panel belongs to.
state
state: Readonly<Record<string, unknown>>;Defined in: packages/sdk/src/domain-types.ts:169
The panel kind's own restore state — a serializable bag whose shape is the panel's contract, not the host's (the host never inspects or validates it). The Agent Chat panel keeps { sessionId, profileId, cwd } here (RFC 0042); a panel with nothing to restore leaves it {}. Handed back to the kind's component as its params when the panel is recreated on restore.
createdAt
createdAt: string;Defined in: packages/sdk/src/domain-types.ts:171
ISO-8601 timestamp of when the panel was first opened.
lastActiveAt
lastActiveAt: string;Defined in: packages/sdk/src/domain-types.ts:173
ISO-8601 timestamp of when the panel was last the active tab.