Skip to content

Mutation gate: remove the three gemini.ts Stryker directives added upstream in #2033 #2201

Open

Description

@easonLiangWorldedtech

Problem

upstream/main gained three new Stryker suppression comments in src/api/providers/gemini.ts after #2054's evidence snapshot (#2033 landed 2026-10-18, after the 38-directive/105-mutant reproduction):

  • src/api/providers/gemini.ts:183 — Regex,LogicalOperator,ConditionalExpression (octet parsing)
  • src/api/providers/gemini.ts:198 — ConditionalExpression (middle octets)
  • src/api/providers/gemini.ts:647 — StringLiteral (completePrompt operation argument)

#2054 removes every directive that existed at its evidence snapshot, but deliberately leaves these three: they were never part of the reproduction, so removing them there would exceed the evidence table. #2060's expected behavior is "no // Stryker disable/enable comments remain in src", so this follow-up is the remaining gap.

Plan

  1. Remove the three directives (comment-only change).
  2. Re-run the same repro protocol chore(mutation-gate): remove all Stryker directives with evidence-backed exclusions #2054 used (buildManifest + runManifest, extension package) on the refreshed head.
  3. Classify every surviving mutant: genuinely equivalent → add a column-pinned entry to scripts/stryker-equivalences.json (file + line + start column + mutator + replacement + rationale); test gap → add a real test.
  4. Re-run until blocking = 0 with no stale-entry advisories, then close Mutation gate: remove the 38 legacy Stryker directives on main with evidence-backed central exclusions #2060.

Acceptance criteria

  • rg 'Stryker disable' src returns nothing.
  • The mutation gate reports blocking = 0 on the cleanup branch and the registry validates against the checked-in source (validateEquivalenceEntries).
  • Any newly accepted mutant has a written rationale and a pinned start column.

Split out of #2054 (comment-only directive removal for the 38 pre-existing directives) because these three came from upstream after that PR's evidence snapshot.

Activity

  1. easonLiangWorldedtech commented on Nov 9, 2026

    @easonLiangWorldedtech
    ContributorAuthor

    Carried over from #2147, which is being closed as a duplicate of this issue so the same three gemini.ts directives are not tracked twice: its reference list named #2051 (the enforcement pull request, which forbids adding directives but does not remove existing ones) and the AGENTS.md section on Stryker suppression comments, and it recorded that the three directives surfaced while #2054 was being refreshed onto upstream/main at 05d01f3 after #2033 landed on 2026-10-18, i.e. after #2054's 38-directive / 105-mutant evidence snapshot. #2060 already names this issue as the follow-up, so this is the canonical tracker.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions