Skip to content

Fix mutations Stryker surfaces #64

Description

@Mearman

Once stryker.config.ts exists and a baseline run completes, go through every surviving mutant: either the test suite is missing an assertion that should have caught it, or the mutated code path is genuinely dead and can be deleted. Don't chase 100% for its own sake where a mutant is equivalent, but a surviving mutant on a real branch (a swapped comparison in peer-id verification, an off-by-one in stale-agent cleanup timing, a dropped early return in delivery-status handling) is a real gap and gets a real test.

Target 80% mutation score on every file stryker.config.ts's mutate list currently names.

Scope changed after #97 split core/mesh-store.ts into ten collaborator files (agent-registry.ts, connection-approval.ts, delivery-engine.ts, federation-bridge.ts, mesh-store-shared.ts, peer-lifecycle.ts, room-lifecycle.ts, room-messaging.ts, room-protocol.ts, room-wire-extensions.ts), with mesh-store.ts itself reduced to a thin orchestrator. The branch-heavy, security-relevant logic this issue originally targeted in mesh-store.ts now lives across those files, so #98 expanded the mutation-testing CI matrix and stryker.config.ts's own mutate list to cover each of them individually. This Epic now tracks one Task per file, rather than the original two-file list.

Current status (measured against the real, current split):

File Score Status
identity.ts 92.86% Done (PR #100)
wire-mesh-transport.ts 78.70% PR #101 merged, remaining gap tracked in #114
room-wire-extensions.ts 100.00% Done, no work needed
agent-registry.ts 76.19% #104
room-protocol.ts 69.57% #111
room-lifecycle.ts 65.20% #109
peer-lifecycle.ts 64.52% #108
mesh-store-shared.ts 66.67% #113
mesh-store.ts 60.19% #103
connection-approval.ts 57.14% #105
delivery-engine.ts 56.64% #106
room-messaging.ts 55.71% #110
federation-bridge.ts 49.02% #107
stale-agent-checker.ts 45.65% #112

Activity

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions