Safe re-enable plan for Copilot-powered AI summaries
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- typescript, vscode
- Domain
- ai, devtools, testing-qa
Research direction
Start by reviewing PR #23 and the removed paths runBackgroundStartup, initAiSummaries, and runSummarisation, alongside incident #20. Map the explicit command, model picker, watcher, disable command, and consent flows before implementing the regression tests. Done means every listed close criterion passes and no implicit path contacts vscode.lm.
Written by the indexing model from the issue text.
Description
Tracking issue for re-enabling the Copilot-powered AI summary feature that was temporarily removed in 0.11.0 (PR #23, in response to #20). All mitigations below MUST be in place before any Copilot call is reintroduced.
Mitigation requirements (all must ship before re-enable)
- User MUST explicitly select a model. No auto-pick. No silent default. With no saved model, the extension does not contact
vscode.lmat all. The picker that selects the model is the only entry point for arming the feature. - Premium / metered models require a separate explicit confirmation step. The picker labels each model with its tier; selecting an Opus-class or other premium model requires confirming a second prompt that names the model and warns about per-request cost.
- Cheaper models recommended at the top of the picker. A
*-mini-class (or equivalent low-cost) model is presented as the recommended default. Premium models are visually flagged. - Up-front usage warning before any bulk run. Before processing more than a small threshold of commands, a modal names the chosen model and the exact request count and requires explicit confirmation. Cancellation closes the run with zero requests sent.
- Batched consent during the run. Process summaries in a small initial batch (~5–10), pause, and ask whether to continue. Each continuation prompt re-shows the running total of requests sent so far. Cancellation is one click and propagates to in-flight requests.
- No silent re-runs from file watchers. Watcher-triggered re-summarisation must respect the same consent gates as the initial run — never silently fan out a fresh batch on save.
- No activation-time Copilot call. Activation never contacts
vscode.lm, regardless of any setting. The user must invoke an explicit command (e.g. "Generate AI Summaries") to start a run. - One-click disable. A status-bar item or palette command disables AI summary behaviour immediately and persists across sessions.
Follow-up candidates (post-re-enable)
- Per-run and per-day request caps as user settings
- Estimated-cost line in the consent modal
- Local audit log of request counts visible to the user
- CHANGELOG / README disclosure of the previous default and the fix on the version that re-enables the feature
Investigation — what went wrong (from #20)
Activation issued a bulk Copilot run with no consent gate, and fell through to a premium model when none was configured.
Code paths that produced the regression (all removed in PR #23):
runBackgroundStartup→initAiSummaries→runSummarisationinautomaticmode.- One Copilot request per discovered command whose content hash was new or changed. Real repos easily hit hundreds.
resolveModelAutomaticallywith no saved model selected the first concrete model returned byvscode.lm.selectChatModels. Reported case landed on Claude Opus 4.7 (premium, metered).- File watchers re-triggered the same pipeline on edits. A single save fanned out another bulk run.
Compounding defaults:
commandtree.enableAiSummariesdefaulted totrue.commandtree.aiModeldefaulted to\"\", triggering the auto-pick above.- No per-run cap, no consent modal, no estimated-usage preview, no rate limit, no progress UI with cancel.
Net effect: a single "Allow Copilot access" click authorised hundreds of premium-model requests with no further confirmation.
Close criteria — regression tests required before this issue is closed
- With no saved model, the extension does not call
vscode.lmon activation, on file change, or on any other implicit trigger — only an explicit user command may initiate model selection. - A run above the small-batch threshold cannot proceed without an explicit user confirmation that names the chosen model and the exact request count.
- Selecting a premium / Opus-class model requires a second explicit confirmation distinct from the model picker itself.
- Watcher-triggered runs respect the same consent gates as the initial run — no silent re-summarisation.
- The disable command takes effect immediately and is honoured by every code path that could otherwise call
vscode.lm.
References
- Original incident report: #20
- Removal PR: #23
- Dominant language
- TypeScript
- Stars
- 3
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Nimblesite/CommandTree
-
Difficulty 5/5 Over a week Newbie friendliness 38/100
Nimblesite/CommandTree#18 ·
All issues in Nimblesite/CommandTree
Similar issues
-
comp/dashboard P3 type/bug
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
NousResearch/hermes-agent#117722 ·
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:ux-friction issue-rating: 🦞 diamond lobster no-stale P3
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficulty 1/5 Under an hour Newbie friendliness 76/100
-
code-quality refactoring
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
github/gh-aw-firewall#8816 ·
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
langchain-ai/deepagents#6450 ·