Temporarily remove AI summary feature (issue #20)#23
Merged
MelbourneDeveloper merged 3 commits intomainfrom May 7, 2026
Merged
Temporarily remove AI summary feature (issue #20)#23MelbourneDeveloper merged 3 commits intomainfrom
MelbourneDeveloper merged 3 commits intomainfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TLDR
Temporarily rips out the Copilot-powered AI summary feature so it cannot silently consume Copilot quota — closes the regression reported in #20. Discovery, registration, tagging, Quick Launch, and execution are unchanged.
Details
Removed entirely:
src/semantic/summariser.ts(Copilot model selection, request fan-out, tool-calling) — 297 lines deletedsrc/semantic/modelSelection.ts(auto-pick logic that landed on the first available model, often Claude Opus) — 106 lines deletedsrc/test/e2e/aisummaries.e2e.test.tsandsrc/test/unit/modelSelection.unit.test.ts— tests for the removed codeTrimmed:
src/semantic/summaryPipeline.ts— kept onlyregisterAllCommands(DB registration + content hashing); removedsummariseAllTasks,processPendingBatch, and all Copilot-touching helperssrc/summaryOrchestration.ts— kept onlyregisterDiscoveredCommandsand a no-CopilotsyncAndSummarise; removedrunSummarisation,initAiSummaries,aiSummariesEnabled, and the file-watcher Copilot triggersrc/extension.ts— removed thecommandtree.generateSummariesandcommandtree.selectModelcommand registrations and the activation-time AI startuppackage.json— removed thecommandtree.enableAiSummariesandcommandtree.aiModelsettings and the two AI commands; no setting remains for a user to flip back on by accidentDamage prevention (vs #20):
grepconfirms zero remaining references tovscode.lm,LanguageModelChat,selectChatModels,enableAiSummaries,aiModel,generateSummaries,selectModel,summariseAllTasks, orforceSelectModelanywhere insrc/orpackage.json. The bomb is fully disarmed: there is no command, no setting, and no code path that can reach Copilot.Docs (VSIX-bundled only — website intentionally untouched):
README.md— dropped the "AI-powered" tagline, replaced the "AI Summaries (powered by GitHub Copilot)" section with a "temporarily removed" notice linking Extension consumed hundreds of Copilot requests in minutes without clear warning or model selection #20, removed the AI feature bullet and theenableAiSummariessettings rowCHANGELOG.md— added a 0.11.0 "Removed" entry explaining the reason and the conditions for returnClaude.md— updated the project overview to drop "AI-generated summaries"Other:
coverage-thresholds.json— auto-bumped bytools/check-coverage.mjsto reflect the post-deletion measured coveragesummaryTooltip.e2e.test.ts— only a header comment edit; the test still proves the tooltip rendering path works against summaries seeded directly into the DBNet diff: +36 / −1143 across 14 files.
How Do The Automated Tests Prove It Works?
make ci(fmt + lint + test + build + package) all pass locally:discovery.unit.test.ts,taskRunner.unit.test.ts,taskItem.unit.test.ts,treehierarchy.unit.test.ts,markdownDescription.unit.test.ts,dbLockRecovery.unit.test.ts. The previously-deletedmodelSelection.unit.test.tsis gone because the code it tested is gone.zzActivationNonBlocking.e2e.test.ts), command registration (commands.e2e.test.ts— asserts every contributed command exists and there are no orphans), discovery across all 22 task types (discovery.e2e.test.ts,coverage.e2e.test.ts), execution (execution.e2e.test.ts,runner.e2e.test.ts,dockerExecution.e2e.test.ts), tag/filter/quick-launch flows, and the rendering path that was previously fed by AI (summaryTooltip.e2e.test.ts— seeds a summary directly viaupsertSummaryand asserts the tooltip + warning glyph render correctly).configuration.e2e.test.ts) reads the livepackage.jsoncontributions and passes against the trimmed settings, proving the manifest is internally consistent.tools/check-coverage.mjsaccepts: lines 92.94%, functions 94.65%, branches 88.04%, statements 92.94%; thresholds incoverage-thresholds.jsonupdated accordingly.tsc -p ./produces no errors with the dead AI files removed (would fail loudly if any surviving file still imported./semantic/summariseror./semantic/modelSelection).make packageproducescommandtree-0.11.0.vsix(1.36 MB, 65 files);semantic/is now 3 files (down from 5), confirming the deleted modules don't ship.Closes #20.