Autonomous AI repair system for open-source projects.
- Discover
scout: issue 9516 scored 0.87 — repro evidence in body, bug-class label - Investigate
declared: internal/capability/catalog.go — a stale entry suppressed the entire live proxy tool directory - Fix
patch: suppresses per-tool duplicates, never the whole live directory - Verify
test: FAIL on the unpatched tree → PASS on patch · judge ×2 correct · 15 gates PASS - Submit
PR #9707 opened 09:53 · merged by the maintainer Sept 25
From open issue to upstream pull request
Five stages. The model proposes; deterministic checks hold the authority to ship. Every stage links to the real artifact it produced — in production, or in the recorded demo below.
- Discover
production · recorded
A daily scout ranks every open candidate issue; the executor picks unprompted.
the scout's ranking row → - Investigate
benchmarked
A read-only session names the faulty files from the issue text alone — 78.4% top-1 on 37 ground-truth issues (29 of 37).
the localization it declared → - Fix
production · recorded
A bounded session — file tools, no shell — edits a fresh checkout; only the diff is kept.
the merged production diff → - Verify
deterministic
A fix-blind regression test must FAIL on base and PASS on patch; judge ×2; 16 fail-closed gates.
inspect all 16 gates → - Submit
maintainer's call
A pull request a maintainer reviews on its own merits. Omega only reads the public state afterward.
the merged-PR record →
Tests FAIL on buggy code
loading…
Tests PASS on patch
loading…
Inspect all 16 release gates
Merged pull requests
Every link is the public record on GitHub. These are the 11 merged code changes in externally-owned repositories, from 74 pull requests submitted to 30 such repositories (GitHub API, 2026-10-24). A twelfth merged PR, naimkatiman/tradeclaw#48 (April 2026), is a documentation edit that predates this system and is not a repair.
| Repository | PR | Change | Status | Merged |
|---|---|---|---|---|
| caddyserver/caddy | #7898 | Register nested named-route invokes transitively | Merged | 2026-07-30 |
| caddyserver/caddy | #7905 | Flush headers immediately for SSE responses | Merged | 2026-07-31 |
| caddyserver/caddy | #7904 | Isolate auth-provider responses | Merged | 2026-08-01 |
| rclone/rclone | #9639 | serve nfs: fix EIO creating symlinks | Merged | 2026-08-01 |
| caddyserver/caddy | #7916 | Isolate health-check state per check config | Merged | 2026-08-12 |
| caddyserver/caddy | #7920 | Shield hostnames from wildcard client auth | Merged | 2026-08-12 |
| ethereum/go-ethereum | #35433 | Synthesize finalized markers only with explicit sync target | Merged | 2026-08-12 |
| rclone/rclone | #9726 | drive: pool resumable-upload chunk buffers | Merged | 2026-08-30 |
| rclone/rclone | #9847 | onedrive: manual drive-ID fallback | Merged | 2026-09-01 |
| k3s-io/k3s | #14552 | Restore Flatcar detection in install script | Merged | 2026-09-03 |
| esengine/DeepSeek-Reasonix | #9707 | Merge live proxy-observed MCP tools into catalog — shipped with no human in the loop · full anatomy → | Merged | 2026-09-25 |
| danielgtaylor/huma | #1101 | Surface the Body field's example tag as the request-body example | Merged | 2026-10-25 |
Eight open pull requests — snapshot as of 2026-10-25
A static snapshot, not a live feed. An open pull request is pending the maintainer's judgment — it is not an endorsement by these projects, and it may close without merging. The work continues daily: a scout → executor cycle has run every morning since 2026-08-31 (one full cycle, published verbatim · production record).
| Repository | PR | Change | Status | Opened |
|---|---|---|---|---|
| ethereum/go-ethereum | #36015 | Add missing IsAmsterdam arms to precompile activation — opened 2026-10-24 by the unattended ship path | Open | 2026-10-24 |
| rclone/rclone | #9851 | protondrive: fall back to decrypted-name search on name-hash miss | Open | 2026-09-02 |
| cosmos/cosmos-sdk | #26800 | Take a read lock rather than an exclusive lock in getContextForTx | Open | 2026-09-03 |
| caddyserver/caddy | #7961 | caddytls: stop mutating the live cache's options on reload | Open | 2026-08-26 |
| go-task/task | #2998 | Fall back to the include dir when no taskfile is specified | Open | 2026-08-26 |
| helm/helm | #32553 | Skip namespace creation in --create-namespace when it already exists | Open | 2026-08-17 |
| encoredev/encore | #2536 | Stop a 304 revalidation's Content-Length from truncating cached responses | Open | 2026-08-16 |
| go-git/go-git | #2238 | Use git's funcname heuristic for diff hunk context | Open | 2026-07-02 |
Three design decisions
DecisionUnknown or incomplete results block shipment.
WhyA retry can hide a real failure, create duplicate actions, or turn an ambiguous outcome into a false success.
Trade-offSome recoverable jobs require manual investigation. Safety takes priority over throughput.
DecisionRemove attacker-controlled framing before the second review.
WhyIssue descriptions are untrusted input. The second judge evaluates the fix without being steered by instructions embedded in the report.
Trade-offNeutralization is deliberately greedy and can strip harmless context; if the two verdicts then diverge, the candidate goes to human review instead of shipping. A lost candidate is cheaper than a steered patch.
DecisionReplay verified evidence rather than execute live model sessions on the public website.
WhyVisitors inspect the repair workflow without exposed credentials, untrusted code execution, or model charges.
Trade-offVisitors cannot submit new bugs to the public site. Real execution remains a controlled, local capability.
Long-form rationale: autonomy & authority in the showcase documentation.
Full technical details
Pipeline architecture
- Localize — a read-only model session names the faulty files from the issue text alone (78.4% top-1 on 37 ground-truth issues; keyword baseline 10.8%).
- Patch — a bounded session (file tools, no shell) edits the checkout; only the diff is kept.
- Regression test — a fix-blind session writes a test that must FAIL on base and PASS on patch, twice, stably.
- Judge ×2 — independent review passes; the second reads neutralized issue text so steering produces a divergence.
- 16 release gates — budgets, capacity, policy, scope, lints, breaker; a gate that errors fails closed.
Correct fix vs wrong fix, side by side
The model's fix → shipped
A plausible wrong fix → blocked
Full pipeline log (unabridged)
Verification suite
Real-world reproduction: go-ethereum #34692
The seeded demo bug is synthetic by design. The same localization
session, pointed at go-ethereum before the maintainers fixed
issue #34692,
named node/rpcstack.go top-1 in 9.6 s — matching
the merged fix.
One benchmark data point; localization only; live runs vary.
Numbers & limitations
- Localization: 78.4% top-1 (29/37) and 89.2% top-3 (33/37) on 37 issues with merged human fixes; keyword baseline 10.8% (4/37).
- Fixes: an LLM judge — not test execution — rated 45.9% of patches (17/37) equivalent to the merged human fix. Of 45 end-to-end validation runs against the projects' own test suites, 4 produced a test-verified fix, 9 demonstrably failed, and 32 were environmentally inconclusive.
- Honest negatives: a Rust expansion closed NO-PROMOTE on pre-registered bars, twice; one PR withdrawn as a design finding.
- The seeded demo bug is easier than production work; recorded output is recorded; live sessions vary.
- A merged PR proves a change passed one repository's review — nothing more universal.
- Reproduction tested on macOS/arm64 (go 1.25, python 3.14); Linux expected, unverified.
Security model & failure injection
Reasoning does not confer authority. Model and external text
are untrusted inputs to a deterministic control plane. Six injected failures, six
blocks (the demo's third tab, or make inject):
- Plausible-but-wrong patch → tests catch it;
tests_passrefuses. - Prompt-injection in the issue text →
injection_lintrefuses. - Diff touching CI config →
content_lintrefuses. - Oversized 40-file diff →
size_capsrefuses. - Tripped circuit breaker →
breaker_armedrefuses. - Missing state file → the gate errors and fails closed.
This site is static files only — no backend, no analytics, no cookies; nothing here can execute code or spend a model budget.
Reproduce it & raw artifacts
MANIFEST.json proves by sha256 that the modules doing
the work are byte-identical to the
published production code;
tools/record.py
regenerates every recording under your own account.
Artifacts: the model's patch ·
generated regression test ·
the wrong patch ·
judge verdicts (fix) ·
judge verdicts (wrong patch) ·
regression-test record ·
the seeded issue ·
recording transcript
Pick your next step
git clone github.com/SillyZir/agent-omega-lab
make demo
the demonstration lab →