Statusline setup nudge leaks into VS Code Copilot (isCopilot misses CLAUDE_PLUGIN_ROOT)
Bug
ponytail-activate.js:45 guards the statusline nudge with !isCodex && !isCopilot. But ponytail-runtime.js:6 detects Copilot via:
const isCopilot = Boolean(process.env.COPILOT_PLUGIN_DATA);
VS Code Copilot never sets COPILOT_PLUGIN_DATA; it only injects CLAUDE_PLUGIN_ROOT (confirmed from a live SessionStart hook env on Windows, VS Code Copilot, ponytail 4.8.4). So isCopilot=false → ponytail assumes native Claude Code CLI → emits the STATUSLINE SETUP NEEDED nudge telling the user to edit ~/.claude/settings.json's statusLine — a key VS Code Copilot doesn't read. Pure noise.
Reproduce
- Install ponytail into
~/.vscode/agent-plugins/github.com/DietrichGebert/ponytail.
- Don't add a
statusLine key to ~/.claude/settings.json.
- Start a new Copilot chat → SessionStart hook
Output: ends with STATUSLINE SETUP NEEDED: ....
Suggested fix
Detect VS Code Copilot from CLAUDE_PLUGIN_ROOT as a fallback when COPILOT_PLUGIN_DATA is unset:
const isCopilot = Boolean(process.env.COPILOT_PLUGIN_DATA) ||
(process.env.CLAUDE_PLUGIN_ROOT || '')
.split(/[\\/]+/).includes('agent-plugins') &&
(process.env.CLAUDE_PLUGIN_ROOT || '').toLowerCase().includes('.vscode');
Also guard stateDir — the isCopilot branch reads process.env.COPILOT_PLUGIN_DATA which is unset under VS Code, so fall back to getClaudeDir():
let stateDir = getClaudeDir();
if (isCodex) stateDir = process.env.PLUGIN_DATA;
if (process.env.COPILOT_PLUGIN_DATA) stateDir = process.env.COPILOT_PLUGIN_DATA;
Workaround
Add any statusLine entry to ~/.claude/settings.json. The check at ponytail-activate.js:51 only verifies presence, so a stub value silences the nudge (VS Code Copilot ignores the file).
Env
ponytail 4.8.4 · VS Code Copilot (agent-plugins install) · Windows 11
Statusline setup nudge leaks into VS Code Copilot (
isCopilotmissesCLAUDE_PLUGIN_ROOT)Bug
ponytail-activate.js:45guards the statusline nudge with!isCodex && !isCopilot. Butponytail-runtime.js:6detects Copilot via:VS Code Copilot never sets
COPILOT_PLUGIN_DATA; it only injectsCLAUDE_PLUGIN_ROOT(confirmed from a live SessionStart hook env on Windows, VS Code Copilot, ponytail 4.8.4). SoisCopilot=false→ ponytail assumes native Claude Code CLI → emits theSTATUSLINE SETUP NEEDEDnudge telling the user to edit~/.claude/settings.json'sstatusLine— a key VS Code Copilot doesn't read. Pure noise.Reproduce
~/.vscode/agent-plugins/github.com/DietrichGebert/ponytail.statusLinekey to~/.claude/settings.json.Output:ends withSTATUSLINE SETUP NEEDED: ....Suggested fix
Detect VS Code Copilot from
CLAUDE_PLUGIN_ROOTas a fallback whenCOPILOT_PLUGIN_DATAis unset:Also guard
stateDir— theisCopilotbranch readsprocess.env.COPILOT_PLUGIN_DATAwhich is unset under VS Code, so fall back togetClaudeDir():Workaround
Add any
statusLineentry to~/.claude/settings.json. The check atponytail-activate.js:51only verifies presence, so a stub value silences the nudge (VS Code Copilot ignores the file).Env
ponytail 4.8.4 · VS Code Copilot (agent-plugins install) · Windows 11