Skip to content

Workspace provider isolation - #5

Merged
FullstackSensei merged 4 commits into
mainfrom
workspace-provider-isolation
Nov 6, 2026
Merged

FullstackSensei merged 4 commits into
mainfrom
workspace-provider-isolation

Conversation

@FullstackSensei

Copy link
Copy Markdown
Owner

Related GitHub Issue

Closes: #

Description

Test Procedure

Pre-Submission Checklist

  • Issue Linked: This PR is linked to an approved GitHub Issue (see "Related GitHub Issue" above).
  • Scope: My changes are focused on the linked issue (one major feature/fix per PR).
  • Self-Review: I reviewed my own code with care.
  • Writing Style: The PR title and description use Simplified Technical English (ASD-STE100): short sentences, plain words, active voice, one idea per sentence, no contractions.
  • Testing: New and/or updated tests have been added to cover my changes (if applicable).
  • Test Helpers (test changes only): Shared test helpers (src/test-utils/, @/utils/test-utils) are used only for mechanical duplication; test intent and scenario-specific mocks remain visible.
  • Visual Snapshot (UI changes only): If a user would notice this change at a glance (layout, theme tokens, brand elements, empty/error states), I added or updated a *.visual.tsx snapshot in webview-ui/. See webview-ui/AGENTS.md → "When a UI change needs a snapshot".
  • Documentation Impact: I checked if my changes need documentation updates (see "Documentation Updates" section below).
  • Contribution Guidelines: I read and agree to the Contributor Guidelines.

Visual Snapshots

Videos (interaction / animation only)

Documentation Updates

Additional Notes

Get in Touch

@github-actions

github-actions Bot commented Nov 6, 2026

Copy link
Copy Markdown

Changed-code mutation testing

Report for PR head 2eacffaf9710.

Surviving / uncovered mutants Advisories
11 1
Details: mutants, guidance, and reproduction

Changed-code mutation testing

PackageChanged executable linesValidKilledTimeoutSurvivedNo coverageResult
types100000No mutants generated
extension202922052Advisory findings
webview2162040Advisory findings

Focused tests

  • types (cwd packages/types): No mutants were generated; selected test file names were not recorded.
  • extension (cwd src): core/task/__tests__/ask-auto-deny.spec.ts, core/webview/__tests__/ClineProvider.spec.ts, core/webview/__tests__/ClineProvider.taskHistory.spec.ts, core/task-persistence/__tests__/TaskHistoryStore.spec.ts, core/task/__tests__/ask-queued-message-drain.spec.ts, __tests__/extension.spec.ts, core/task/__tests__/Task.spec.ts, core/tools/__tests__/executeCommand.spec.ts, core/task/__tests__/Task.persistence.spec.ts, activate/__tests__/registerCommands.spec.ts, core/tools/__tests__/executeCommandTool.spec.ts, core/webview/__tests__/ClineProvider.sticky-mode.spec.ts, core/webview/__tests__/ClineProvider.apiHandlerRebuild.spec.ts, core/webview/__tests__/ClineProvider.sticky-profile.spec.ts, __tests__/ClineProvider.history-resume-delegation.spec.ts, core/task/__tests__/Task.dispose.test.ts, core/task/__tests__/ask-clear-approval-buttons.spec.ts, core/task/__tests__/ask-allowlist-cwd.spec.ts, core/context-management/__tests__/context-management.spec.ts, core/task/__tests__/Task.streaming-tool-calls.spec.ts, core/webview/__tests__/ClineProvider.stale-view.spec.ts, __tests__/single-open-invariant.spec.ts, core/task/__tests__/grace-retry-errors.spec.ts, core/task/__tests__/flushPendingToolResultsToHistory.spec.ts, core/webview/__tests__/ClineProvider.lockApiConfig.spec.ts, core/task/__tests__/Task.throttle.test.ts, core/task/__tests__/Task.run-shadow.spec.ts, core/assistant-message/__tests__/presentAssistantMessage-tool-usage-attribution.spec.ts, core/task/__tests__/reasoning-preservation.test.ts, core/assistant-message/__tests__/presentAssistantMessage-custom-tool.spec.ts, __tests__/ClineProvider.delegation.spec.ts, core/webview/__tests__/ClineProvider.flicker-free-cancel.spec.ts, core/webview/__tests__/checkpointRestoreHandler.spec.ts, core/webview/__tests__/webviewMessageHandler.checkpoint.spec.ts, core/task/__tests__/grounding-sources.test.ts, __tests__/ClineProvider.subtask-links.spec.ts, activate/__tests__/registerCodeActions.spec.ts, services/code-index/__tests__/code-index-status-manager.spec.ts, core/assistant-message/__tests__/presentAssistantMessage-unknown-tool.spec.ts, core/task/__tests__/Task.resume-eviction-race.spec.ts, core/task/__tests__/Task.ignored-disabled-tools-notice.spec.ts, extension/__tests__/api-start-task-logging.spec.ts, core/assistant-message/__tests__/presentAssistantMessage-auto-deny.spec.ts, core/task/__tests__/Task.abort-reason-race.spec.ts, __tests__/removeClineFromStack-delegation.spec.ts, extension/__tests__/api-task-conversation-history-length.spec.ts, activate/__tests__/handleUri.spec.ts, core/assistant-message/__tests__/presentAssistantMessage-images.spec.ts, core/assistant-message/__tests__/presentAssistantMessage-tool-repetition.spec.ts, extension/__tests__/api-configuration.spec.ts, extension/__tests__/api-start-new-task.spec.ts, core/task/__tests__/ask-abort-race.spec.ts, core/task/__tests__/Task.pending-action.spec.ts, extension/__tests__/api-has-task-ui-message-text.spec.ts, activate/__tests__/handleTask.spec.ts, __tests__/abandonSubtask.spec.ts, core/context-management/__tests__/truncation.spec.ts, core/assistant-message/__tests__/presentAssistantMessage.spec.ts, extension/__tests__/api-send-message.spec.ts, __tests__/nested-delegation-resume.spec.ts, core/webview/__tests__/ClineProvider.pending-action.spec.ts, extension/__tests__/api-delegation-events.spec.ts, core/task/__tests__/ToolExecutionContext.spec.ts, __tests__/task-run-dispatch.spec.ts, services/code-index/__tests__/code-index-scope.spec.ts, core/task/__tests__/Task.sticky-profile-race.spec.ts, extension/__tests__/api-delete-queued-message.spec.ts, core/webview/__tests__/ClineProviderFactory.spec.ts, __tests__/api-subtask.spec.ts, extension/__tests__/api-theme-fixture.spec.ts, core/task/__tests__/Task.terminal-operation.spec.ts, __tests__/new-task-delegation.spec.ts, test-utils/__tests__/provider.spec.ts, extension/__tests__/api-terminal-profile.spec.ts, core/assistant-message/__tests__/toTelemetryToolName.spec.ts
  • webview (cwd .): webview-ui/src/components/settings/__tests__/SettingsView.spec.tsx, webview-ui/src/components/settings/__tests__/SettingsView.displaySave.spec.tsx, webview-ui/src/components/settings/__tests__/SettingsView.unsaved-changes.spec.tsx, webview-ui/src/components/settings/__tests__/ContextManagementSettings.spec.tsx, webview-ui/src/components/settings/__tests__/SettingsView.change-detection.spec.tsx, webview-ui/src/context/__tests__/ExtensionStateContext.spec.tsx

All surviving and uncovered mutants

Warning annotations highlight up to 20 unique locations (maximum 7 per file). This summary lists every advisory mutant.

extension

src/core/task/Task.ts

LineStatusMutatorReplacement
5539NoCoverageBooleanLiteraltrue
5712SurvivedBooleanLiteraltrue
5832SurvivedConditionalExpressiontrue
5832SurvivedLogicalOperatorprovider || !disableAutoContextManagement
6061SurvivedConditionalExpressiontrue
6061SurvivedEqualityOperatorretryAttempt <= MAX_CONTEXT_WINDOW_RETRIES

src/core/webview/ClineProvider.ts

LineStatusMutatorReplacement
3290NoCoverageBooleanLiteraltrue

webview

webview-ui/src/components/settings/ContextManagementSettings.tsx

LineStatusMutatorReplacement
520SurvivedStringLiteral""
526SurvivedStringLiteral""
530SurvivedStringLiteral""

webview-ui/src/context/ExtensionStateContext.tsx

LineStatusMutatorReplacement
306SurvivedBooleanLiteraltrue

Resolve a mutation gap

Add or strengthen a focused test that fails under the mutation. If the mutant is equivalent, request maintainer approval for the narrowest mutator-specific exclusion and explain why it cannot change behavior:

// Stryker disable next-line ConditionalExpression: normalized input cannot reach the alternate branch
const result = condition ? value : fallback

Broad all exclusions and exclusions without a concrete reason are reported as advisories.

Reproduce locally

From a full checkout containing both commits:

pnpm install --frozen-lockfile
node scripts/stryker-diff.mjs ci --base f48943cb54e30574f7fda9c15882196f8cd65130 --head 6af0626f6fd99c0b5dac5a761e746d1c53333db0

Mutation reports

  • types: reports/mutation/types/mutation.html
  • extension: reports/mutation/extension/mutation.html
  • webview: reports/mutation/webview/mutation.html

The workflow uploads generated reports in the changed-code-mutation-report artifact. A direct artifact link appears below after upload.

Advisory findings

  • src/core/task/Task.ts:4422: mutation exclusions must use "// Stryker disable next-line MutatorName: concrete reason"; broad or unreasoned exclusions are not allowed.

@FullstackSensei
FullstackSensei merged commit 4ea48f8 into main Nov 6, 2026
15 of 16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant