microsoft / microsoft/vscode

Chat agent debug logging settings (`github.copilot.chat.agentDebugLog.*`) are undiscoverable in Settings search

Open
#327,865 0 comments 0 reactions 1 assignee Claimed by @vijayupadya View on GitHub
Dominant language
TypeScript
Stars
193k
Forks
42.4k
PR merge metrics
PR metrics pending

Description

Does this issue occur when all extensions are disabled?: No (the settings are contributed by the Copilot extension)

![Image](https://github.com/user-attachments/assets/094b1999-edea-4c02-8714-47d3f8ec5dbc)

- VS Code Version: 1.132.0
- OS Version: Windows

Steps to Reproduce:

1. Open the Settings editor (`Ctrl+,`).
2. Search for `agentDebugLog`.
3. "No Settings Found" is shown — on the User, Workspace, and Folder scopes alike.

**Expected:** the chat agent debug logging settings show up, since they are the documented way to turn on file logging for chat/agent debugging.

**Actual:** nothing is found unless you paste the full setting id, use `@id:`, use `@tag:advanced`, or enable `workbench.settings.alwaysShowAdvancedSettings`.

### Affected settings

Registered in `extensions/copilot/package.json`, all tagged `["advanced", "experimental"]`:

- `github.copilot.chat.agentDebugLog.fileLogging.enabled`
- `github.copilot.chat.agentDebugLog.fileLogging.flushIntervalMs`
- `github.copilot.chat.agentDebugLog.fileLogging.maxRetainedSessionLogs`
- `github.copilot.chat.agentDebugLog.fileLogging.maxSessionLogSizeMB`
- `github.copilot.chat.agentDebugLog.enabled` (deprecated)

### Root cause

`SettingsEditor2.shouldShowSetting()` in `src/vs/workbench/contrib/preferences/browser/settingsEditor2.ts` hides `advanced`-tagged settings unless the query *contains the whole setting key*:

```ts
private shouldShowSetting(setting: ISetting): boolean {
if (!setting.tags?.includes(ADVANCED_SETTING_TAG)) { return true; }
if (this.viewState.idFilters?.has(setting.key)) { return true; }
if (this.viewState.query?.toLowerCase().includes(setting.key.toLowerCase())) { return true; }
if (this.viewState.tagFilters?.has(POLICY_SETTING_TAG)) { return true; }
return false;
}
```

A partial keyword such as `agentDebugLog` therefore never matches.

### Why this one matters

The setting's own description is explicitly a troubleshooting affordance — "write chat debug events (tool calls, LLM requests, token usage, errors) to JSONL files for the debug panel and troubleshoot skill". A user who is told to turn on chat debug logging has no way to find it by searching.

### Suggested fixes (either or both)

1. Drop the `advanced` tag from the `github.copilot.chat.agentDebugLog.*` settings, keeping `experimental`. This matches the intent stated in #293142.
2. More generally: let a partial keyword match on the setting key surface an advanced setting, rather than requiring the full id. Today `shouldShowSetting` effectively requires you to already know the answer.

### Related

- #293142 — same repro with `github.copilot.chat.searchSubagent.enabled`; closed as a question, but the stated follow-up to remove the advanced tag from those settings does not appear to have landed.
- #290438 — advanced auth-provider setting not visible in the Settings UI after extension unification.
- #278253 / #283592 — added `workbench.settings.alwaysShowAdvancedSettings` as an opt-out.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.