T-MMZK-context-dock-never-renders-in-agent-pants
State: planning/draft · Impact: medium · Complexity: large
ShellContextDock — the frame’s tabbed aux panel, with badges and a
capability-resolved tab per subject — never renders in agent-pants. Every
page registers its own single aux panel, which wins by the frame’s own
documented precedence rule. No product actually feeds the dock’s panel
capability, so the whole system is dead code today. Someone has to decide
whether agent-pants should adopt it or whether the dock should be retired.
| Location | Role today |
|---|---|
packages/ts/app-frame/app/layouts/default.vue:157-169 | Documents the precedence: a page’s own <PaneContent region="aux"> wins outright over <ShellContextDock>, which fills the region only when no page claims it |
packages/ts/app-frame/app/components/ShellContextDock.vue | Renders resolve(subject, 'panel'): tabs, badges, a per-subject remembered tab |
solutions/determined/experiences/agent-pants/app/pages/apps/agent-pants/index.vue, notes/[...path].vue, plugins/[...path].vue | Each registers its own <PaneContent region="aux" title="Details">, so the dock never gets the region |
packages/ts/app-frame/app/composables/useCapabilities.ts | Defines the panel capability the dock resolves; no experience registers one today, in agent-pants or elsewhere |
Proposed
Section titled “Proposed”One of two outcomes, decided and recorded, not left implicit:
- Adopt: agent-pants’ aux content (Related tree, publish preview,
harness gaps) moves behind the
panelcapability soShellContextDockrenders it, tabbed and badged like the frame intends; or - Retire: the dock’s precedence comment in
default.vueis rewritten to say plainly that a page’s own aux panel is the normal case and the dock is for a consumer that wants tabs, since none does today — and, if no consumer is expected soon,ShellContextDockand thepanelcapability are removed rather than kept as unused surface.
Approach
Section titled “Approach”- Check whether any other product (workbench, polish) has plans to
register a
panelcapability. If one does, adoption is the answer; if none do and none are planned, retirement is. - If adopting: convert agent-pants’ three aux panels to
panelcapability providers, one per subject (home, note, plugin), and drop their<PaneContent region="aux">registrations. - If retiring: remove
ShellContextDock, thepanelcapability, and the dead precedence branch indefault.vue; keep the page-registered aux panel as the only path. - Either way, update
default.vue’s comment so it describes what actually happens, not an aspirational default no consumer exercises.
| Area | Note |
|---|---|
packages/ts/app-frame/app/layouts/default.vue | Precedence comment matches the decided outcome |
packages/ts/app-frame/app/components/ShellContextDock.vue | Kept and fed, or removed |
packages/ts/app-frame/app/composables/useCapabilities.ts | panel capability kept and used, or removed |
solutions/determined/experiences/agent-pants/app/pages/apps/agent-pants/index.vue | Aux content moves behind panel, or left as-is |
solutions/determined/experiences/agent-pants/app/pages/apps/agent-pants/notes/[...path].vue | Same |
solutions/determined/experiences/agent-pants/app/pages/apps/agent-pants/plugins/[...path].vue | Same |
Acceptance criteria
Section titled “Acceptance criteria”- AC-1: The decision (adopt or retire) is recorded in this task’s body before implementation starts.
- AC-2: After the change,
default.vue’s aux-precedence comment matches what the code actually does. - AC-3: If adopted, agent-pants’ three pages show a tabbed,
badged dock; if retired,
ShellContextDockand thepanelcapability no longer exist as unused code.
Out of scope
Section titled “Out of scope”- Redesigning the dock’s tab or badge UI. This task decides ownership, not the dock’s visual design.
Dependencies
Section titled “Dependencies”- none
Discovery context
Section titled “Discovery context”Found by the agent-pants bug survey, N-5LD4-bug-sweep-2026-09-12-agent-pants (row AP-54).