Tab adornments (CenterDock)
Ephemeral chrome on editor and terminal tabs — leading identity icons, trailing Phosphor indicators, and host-owned Activity. Uses the adorn metaphor (set / clear / flash / bind), not register*. See ADR 0029 and ADR 0030.
There is no ctx.tabs bag and no shared API with future side-panel tab chrome (RFC 0022).
Surfaces
| Service | Target id |
|---|---|
ctx.editors | Editor tab id |
ctx.terminals | Terminal session id |
Both expose the same verbs via TabAdornmentMethods.
Leading icon (ReactNode)
ctx.editors.setIcon(editorId, { id: "acme.logo", icon: <Logo /> });
ctx.editors.clearIcon(editorId, "acme.logo");
ctx.subscriptions.push(
ctx.editors.bindIcon({
id: "acme.logo",
provide: (editorId) =>
acmeStore.hasLogo(editorId) ? { icon: <Logo /> } : null,
}),
);Trailing indicator (static Phosphor)
You pick a PhosphorIconName (+ optional filled / chip / color). For busy/ready/warn/error chrome use Activity instead.
ctx.terminals.setIndicator(terminalId, {
id: "acme.flag",
icon: "Flag",
chip: true,
color: "warn",
});
ctx.terminals.clearIndicator(terminalId, "acme.flag");Activity (host-owned)
Pick an Activity — "working" | "ready" | "warn" | "error". The host owns glyph, color, and motion (same dots as workspace status rows; tabs use a slightly larger size). Do not pass icon or color.
ctx.subscriptions.push(
ctx.terminals.bindActivity({
id: "acme.busy",
provide: (terminalId) =>
acmeStore.isBusy(terminalId)
? { activity: "working", tooltip: "Working" }
: null,
}),
);
ctx.editors.flashActivity(editorId, {
activity: "error",
durationMs: 800,
});
// After mutating store read by binders:
ctx.terminals.invalidateTabAdornments();Use the SDK ActivityGlyph in your own panels when you want the same glyph (Design System page).
Deprecated shims
ctx.terminals.registerTabDecoration / invalidateTabDecorations / subscribeTabDecorations / getTabDecoration remain as thin deprecated wrappers over bindIndicator / invalidateTabAdornments for extensions that shipped against the older terminal-only API.
Types
TabIconAdornment · TabIndicatorAdornment · TabActivityAdornment · TabIconBinder · TabIndicatorBinder · TabActivityBinder · TabAdornmentColor · Activity
See also
- Activity —
ActivityGlyphin panel content registerToolbarItem— active toggle in the breadcrumb bar.ctx.workspacesstatus / badges — adorn verbs; status rows useactivity.- ADR 0029 · ADR 0030