Skip to content

Commit 77eaf80

Browse files
fix(mutation-gate): drop the non-equivalent streaming and missing-workspace approvals
Review follow-ups: remove both compound streaming guard approvals (Task.ts:4344) and the missing-workspace guard plus its folders.length LogicalOperator approval (pathUtils.ts:113); each mutant is classified independently since the false/tree replacements change behavior or can throw. 27 entries remain; stryker-diff tests pass.
1 parent a174001 commit 77eaf80

1 file changed

Lines changed: 0 additions & 45 deletions

File tree

‎scripts/stryker-equivalences.json‎

Lines changed: 0 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -91,24 +91,6 @@
9191
"column": 11,
9292
"node": "streamingKey === undefined ? null : NativeToolCallParser.processStreamingChunk( streamingKey, event.delta, nativeToolCallParserScope, )"
9393
},
94-
{
95-
"file": "src/core/task/Task.ts",
96-
"line": 4344,
97-
"mutator": "ConditionalExpression",
98-
"replacement": "false",
99-
"reason": "streamingKey is always a defined string on this path (same invariant as the guard above)",
100-
"column": 14,
101-
"node": "if (partialToolUse && streamingKey !== undefined) { // Reuse the compound key built above: it is exactly the key the start event // registered under, so the delta lookup needs no second encoding. const toolUseIndex = this.streamingToolCallIndices.get(streamingKey) if (toolUseIndex !== undefined) { // Store the ID for native protocol ;(partialToolUse as any).id = event.id // Update the existing tool use with new partial data this.assistantMessageContent[toolUseIndex] = partialToolUse // Present updated tool use /* v8 ignore next -- streaming presenter; .catch lives in presentAssistantMessageSafe (covered) */ this.presentAssistantMessageSafe() } }"
102-
},
103-
{
104-
"file": "src/core/task/Task.ts",
105-
"line": 4344,
106-
"mutator": "ConditionalExpression",
107-
"replacement": "true",
108-
"reason": "streamingKey is always a defined string on this path (same invariant as the guard above)",
109-
"column": 14,
110-
"node": "if (partialToolUse && streamingKey !== undefined) { // Reuse the compound key built above: it is exactly the key the start event // registered under, so the delta lookup needs no second encoding. const toolUseIndex = this.streamingToolCallIndices.get(streamingKey) if (toolUseIndex !== undefined) { // Store the ID for native protocol ;(partialToolUse as any).id = event.id // Update the existing tool use with new partial data this.assistantMessageContent[toolUseIndex] = partialToolUse // Present updated tool use /* v8 ignore next -- streaming presenter; .catch lives in presentAssistantMessageSafe (covered) */ this.presentAssistantMessageSafe() } }"
111-
},
11294
{
11395
"file": "src/core/task/Task.ts",
11496
"line": 4344,
@@ -235,33 +217,6 @@
235217
"column": 8,
236218
"node": "if (stat.isSymbolicLink()) { return null }"
237219
},
238-
{
239-
"file": "src/utils/pathUtils.ts",
240-
"line": 113,
241-
"mutator": "ConditionalExpression",
242-
"replacement": "false",
243-
"reason": "with no folders the realFolders set stays empty and the empty-set fail-closed returns the same result",
244-
"column": 5,
245-
"node": "if (!folders || folders.length === 0) { return true }"
246-
},
247-
{
248-
"file": "src/utils/pathUtils.ts",
249-
"line": 113,
250-
"mutator": "ConditionalExpression",
251-
"replacement": "false",
252-
"reason": "with no folders the realFolders set stays empty and the empty-set fail-closed returns the same result",
253-
"column": 17,
254-
"node": "if (!folders || folders.length === 0) { return true }"
255-
},
256-
{
257-
"file": "src/utils/pathUtils.ts",
258-
"line": 113,
259-
"mutator": "LogicalOperator",
260-
"replacement": "!folders && folders.length === 0",
261-
"reason": "with no folders the realFolders set stays empty and the empty-set fail-closed returns the same result",
262-
"column": 5,
263-
"node": "!folders || folders.length === 0"
264-
},
265220
{
266221
"file": "src/utils/pathUtils.ts",
267222
"line": 120,

0 commit comments

Comments
 (0)