[BUG] VS Code extension: mod Pane never draws, but $.ui.open resolves { isPlaced: true }
Status Open
Reported on v2.1.296
Maintainer reply None cached
Activity 0 comments · opened Oct 12, 2026
Environment
- Claude Code 2.1.296, VS Code extension anthropic.claude-code-2.1.296-win32-x64
- Windows 11 Pro 10.0.26200
- Mod loaded from the session mods folder with hot reloading enabled
What happens
A mod that opens a Pane gets { isPlaced: true } from $.ui.open in a VS Code session, but nothing is drawn in the Claude panel. The mod's ui.render hook for { component: 'Pane', requestId } is never called on any surface.
The types say Pane is "Raised on every surface", and RenderSurface includes vscode, so a mod author expects it to draw.
Repro
import type { Register } from 'claude-code'
export const register: Register = on => {
on('classic.UserPromptSubmit', async ($, e, next) => {
const r = await next(e)
const opened = await $.ui.open({ id: 'probe', title: 'Probe' })
return { ...r, sessionTitle: `placed=${opened.isPlaced}` }
})
on('ui.render', { component: 'Pane', requestId: 'probe' }, async ($, e) => {
const { Text } = $.ui.resolve(e)
return <Text>drawn on {e.surface}</Text>
})
}
- Load the mod in a session in the VS Code extension and send a prompt.
- The tab title changes to
placed=true, sosessionTitleworks andui.openreports success. - No Pane appears. A logging line added to the
ui.renderhook never runs.
Evidence
- The extension's
extension.js(2.1.296) names fiveui_*messages:ui_copy,ui_prompt_fill,ui_prompt_read,ui_prompt_suggest,ui_read_selection. It names noui_renderorui_open. $.ui.statusand$.ui.toastalso show nothing in the VS Code panel.
Expected
Either the extension draws Panes (and the band, toasts and status entries), or $.ui.open resolves { isPlaced: false, reason } in VS Code, so a mod can fall back.
The misleading isPlaced: true is the main cost. A mod cannot tell that its UI is invisible.