A failing test fix agent for Claude Code, Codex and Cursor
CI Fixer reproduces a failing test command in a public repository and returns the smallest change to the project's code that makes it pass, with the passing output. A run costs 5,000 credits, charged only when the run succeeds.
Not offered in ContextStream yet. It needs a sandbox, and ContextStream's Slipstream worker has no sandbox provider yet. Version 0.1.0 · Updated
What does CI Fixer do?
Reproduces a failing test run of a public GitHub repo in a sandbox and returns a minimal fix as a diff, with the passing test output. Never changes a test to make it pass.
What it declines
A task like one of these is declined with a reason, and a declined run is free:
Changing tests, snapshots, fixtures, test or CI configuration, or dependencies to make a check pass.
Upgrading dependencies (Dependency Upgrader does that) or auditing them (Security Audit does that).
Private repositories, or anything that needs credentials.
Opening pull requests, committing or pushing: it returns a diff for a person to apply.
What does a real run of CI Fixer look like?
The input, the result (shortened where it is long), how long it took, what it cost and where it ran. Live runs used public or demo material only; a run marked as from the eval suite is not a live run.
This agent needs a sandbox, and ContextStream's Slipstream worker has no sandbox provider yet, so there is no live run to show. The example comes from its eval suite.
From its eval suite, not a live run
A parser that rejects negative numbers (eval case)
Version
0.1.0
Outcome
succeeded
Ran
2026-10-27 17:17 UTC
Took
Not timed (fakes)
Cost
No charge (offline)
The agent's offline eval suite: its real program in an offline sandbox on a fixture repository, with a scripted model. Not a live run.
What it ran on
evals/ci-fix/cases.jsonl in the Slipstream repository
Input
{
"repo_url": "https://github.com/eval/parser",
"test_command": "npm test",
"failure": "not ok 2 - parses negative numbers\n Expected values to be strictly equal: null !== -7\n at parseNumber (src/parse.js:6:3)\n at TestContext.<anonymous> (test/parse.test.js:11:10)"
}
Result
Fixed: `npm test` passes after a 2-line change to 1 file. NUMBER allows only digits, so a leading minus sign makes parseNumber return null.
The failure it was given
not ok 2 - parses negative numbers
Expected values to be strictly equal: null !== -7
at parseNumber (src/parse.js:6:3)
at TestContext.<anonymous> (test/parse.test.js:11:10)
Diagnosis
NUMBER allows only digits, so a leading minus sign makes parseNumber return null.
Tests
npm test: failed before (exit 1), passes after the fix (exit 0).
fix.patch
diff --git a/src/parse.js b/src/parse.js
index 52c5943..7d090b8 100644
--- a/src/parse.js
+++ b/src/parse.js
@@ -1,4 +1,4 @@
-const NUMBER = /^\d+(\.\d+)?$/;
+const NUMBER = /^-?\d+(\.\d+)?$/;
/** Parses a decimal number, or returns null for anything else. */
export function parseNumber(text) {
workspace_context: 0 context items from ContextStream for this job, about 0 tokens.
Eval case
evals/ci-fix/cases.jsonl, fix-from-ci-output
Depot run
0zb9r381xr
What does CI Fixer cost?
CI Fixer costs 5,000 ContextStream credits a run, charged only when the run succeeds; a declined, failed, cancelled or timed-out run costs nothing. Credits come with every plan: Starter is free with 10,000 a month (2 runs of CI Fixer, if spent on nothing else), and Pro is $19 a month with 25,000.
Which tools does CI Fixer work with?
Claude Code, Codex, Cursor and other MCP clients, once ContextStream offers it: through the slipstream tool of ContextStream's MCP, ss run ci-fix in a terminal, or the web app. It needs a sandbox, and ContextStream's Slipstream worker has no sandbox provider yet.
Claude Code, Codex, Cursor and other MCP clients: connect ContextStream's MCP once (setup for each editor), then ask your agent to hand the job to CI Fixer.
A terminal or an agent's shell:ss run ci-fix, installed with ContextStream's command line.
The web app: the workspace's specialist library, where each run shows its price before it starts.
What access does CI Fixer need?
CI Fixer gets a short-lived token for one workspace, limited to 2 scopes: Models via ContextStream and Reads context. It works in one project, and only for that run.
Model agent with a sandbox. A program on ContextStream's model proxy that also drives its own sandbox. The sandbox holds no credentials. Network: github.com, codeload.github.com, objects.githubusercontent.com, release-assets.githubusercontent.com, registry.npmjs.org, pypi.org, files.pythonhosted.org. It is stopped after 20 min.
Scope
What it lets a run do
model.invoke
Call models through ContextStream’s model proxy, under the run’s credit cap.
context.read
Read the run’s context pack from the workspace.
How do I turn CI Fixer on?
You cannot turn CI Fixer on yet: it needs a sandbox, and ContextStream's Slipstream worker has no sandbox provider yet. It is built and tested, and its page shows how it will be called.
How do I call CI Fixer from Claude Code or Codex?
Once it is offered: ss run ci-fix in a terminal, or slipstream(action="run", agent="ci-fix", input={...}) over MCP, with the input below.
Connect ContextStream's MCP (it also writes each editor's connection):
Dependency Upgrader upgrades a public GitHub repository within its semver ranges, fixes the project's code when that breaks its tests, and returns the diff and the results.
Security Audit finds known vulnerabilities in a public repository's locked dependencies and judges, citing the code, whether the project uses the vulnerable part of each.