Skip to content

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.

LocationRole today
packages/ts/app-frame/app/layouts/default.vue:157-169Documents 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.vueRenders 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].vueEach registers its own <PaneContent region="aux" title="Details">, so the dock never gets the region
packages/ts/app-frame/app/composables/useCapabilities.tsDefines the panel capability the dock resolves; no experience registers one today, in agent-pants or elsewhere

One of two outcomes, decided and recorded, not left implicit:

  • Adopt: agent-pants’ aux content (Related tree, publish preview, harness gaps) moves behind the panel capability so ShellContextDock renders it, tabbed and badged like the frame intends; or
  • Retire: the dock’s precedence comment in default.vue is 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, ShellContextDock and the panel capability are removed rather than kept as unused surface.
  1. Check whether any other product (workbench, polish) has plans to register a panel capability. If one does, adoption is the answer; if none do and none are planned, retirement is.
  2. If adopting: convert agent-pants’ three aux panels to panel capability providers, one per subject (home, note, plugin), and drop their <PaneContent region="aux"> registrations.
  3. If retiring: remove ShellContextDock, the panel capability, and the dead precedence branch in default.vue; keep the page-registered aux panel as the only path.
  4. Either way, update default.vue’s comment so it describes what actually happens, not an aspirational default no consumer exercises.
AreaNote
packages/ts/app-frame/app/layouts/default.vuePrecedence comment matches the decided outcome
packages/ts/app-frame/app/components/ShellContextDock.vueKept and fed, or removed
packages/ts/app-frame/app/composables/useCapabilities.tspanel capability kept and used, or removed
solutions/determined/experiences/agent-pants/app/pages/apps/agent-pants/index.vueAux content moves behind panel, or left as-is
solutions/determined/experiences/agent-pants/app/pages/apps/agent-pants/notes/[...path].vueSame
solutions/determined/experiences/agent-pants/app/pages/apps/agent-pants/plugins/[...path].vueSame
  • 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, ShellContextDock and the panel capability no longer exist as unused code.
  • Redesigning the dock’s tab or badge UI. This task decides ownership, not the dock’s visual design.
  • none

Found by the agent-pants bug survey, N-5LD4-bug-sweep-2026-09-12-agent-pants (row AP-54).


← Back to Tasks