Skip to content

Managed PR repair inside disposable E2B sandboxes. Critique reads the review artifact, patches in scope, validates the work, and pushes only when the branch is reachable.

Fixes that land clean.

remedy sandboxchecks armed
patch artifactready

+ guard stale review state before publish

+ add regression coverage for fork fallback

~ rerun lint, test, build in sandbox

validation
pass

Commit is allowed to touch the PR branch only after project checks clear.

E2B sandboxOpenCode runtimePR head clonebounded scopetest gatecommit pushfork fallbackE2B sandboxOpenCode runtimePR head clonebounded scopetest gatecommit pushfork fallback

A narrower blast radius

Cloud repair without runaway agent behavior.

The generated reference image leaned into a gapless bento: fewer cards, bigger surfaces, and useful proof instead of decorative widgets. This implementation keeps that structure and lets each panel earn its space.

Isolated execution

Every run gets a disposable cloud workspace. Your laptop never becomes the runtime.

Scope is a gate

If the agent reaches outside the review contract, the run stops instead of improvising.

Validation before branch write

Lint, tests, build, and project checks decide whether a patch is allowed to leave the sandbox.

Two-loop ceiling

The run retries once, then hands back a precise artifact instead of burning time forever.

Model choice stays live

Pick economical lanes for simple repairs and frontier reasoning for structural work.

Remedy patch artifact
findingCQ-2087·Critical · Tenant isolation
remedy/fix-2087·Qwen3 Coder Next·18.4s · 1 / 2 loops
Drag across the same handler to see the patch Remedy generated, ran in the sandbox, and only then pushed back to the branch.
Drag the handle
Head @ pre-patch
invites.ts
app/api/workspaces/[workspaceSlug]/invites.tsTS · 5 issues
36
export async function POST(req: NextRequest, { params }: RouteContext) {
37
const session = await requireSession(req)
38
const input = await parseInviteBody(req)
@@ -39,1 @@
-
40
const targetWorkspaceId = input.workspaceId ?? params.workspaceSlug
// Request body can override the authenticated route slug
-
41
const membership = await requireWorkspaceMember(session.user.id, input.workspaceId)
// Auth check follows the caller-supplied workspace id
-
42
await listPendingInvites(targetWorkspaceId)
@@ -43,20 @@
63
const nextSeatCount = computeSeatTotal(input.members)
@@ -64,2 @@
-
66
await stripe.subscriptionItems.update(itemId, { quantity: nextSeatCount })
// No idempotency fence · retries double-apply the mutation
-
67
await db.workspace.update({ data: { lastAppliedSeatCount: nextSeatCount } })
@@ -68,2 @@
70
return NextResponse.json({ ok: true })
71
}
verification failed·3 failed · 2 issues blocked pushpushback · declined
Finding source
id: "CQ-2087"
severity: "critical"
invariant: "requireManagedWorkspace(session, slug)"
lines: [40, 41, 66, 67]

Machine-readable finding from the Critique review — Remedy reads the structured record, not a chat comment.

Verification bundle
eslint .1.4s
tsc --noEmit3.2s
vitest run api/workspaces6.1s
next build7.7s

Every step ran inside the e2b sandbox. Nothing touched your branch until the full bundle returned green.

Patch artifact
--- run_8a2f91c3b4e7.patch
diff app/api/.../invites.ts
- 5 lines removed
+ 6 lines added
signed: "remedy-sandbox-7f3b"
Pushed to PR5 cr · 1 loop
run_8a2f91c3b4e7/Pre-patch verification blocked 3 regressions before the patch was authored.sandbox closed · artifact archived

From finding to branch

The fix loop becomes inspectable.

The reference direction uses a pinned narrative: one stable promise on the left, and a stack of artifacts moving on the right. In code, each frame scales in and fades with ScrollTrigger.

Blueprintartifact

Blueprint

The machine-readable review output becomes an execution contract: files, findings, scope, and validation steps.

finding.security[2]scope: app/api/**validation: lint + test
Sandboxartifact

Sandbox

A clean E2B runtime clones the PR head and runs the fix away from your machine and shared host state.

vm: ephemeralrepo: clonedagent: opencode
Patchartifact

Patch

The selected model writes the bounded fix, updates tests where needed, and leaves a reviewable artifact.

diff: preparedtests: expandedfiles: in scope
Pushartifact

Push

Passing runs commit back to the PR branch when the GitHub App can access the head repository.

checks: greencommit: signedbranch: updated

Remedyisnotasuggestionbox.Itisaboundedrepairsystemthatturnsreviewevidenceintocode,validatestheresult,andleavesaclearaudittrailwhenautomationshouldstop.

Execution choice

Use Remedy, or hand off the blueprint.

Teams with existing agent subscriptions can reserve Critique credits for review and pass the same structured blueprint to the execution stack they already trust.

CodexCodex

handoff 1

OpenAI Codex

Keep execution in your Codex workflow.

AntigravityAntigravity

handoff 2

Claude Code

Hand the Critique blueprint to your local agent.

GithubCopilotGithubCopilot

handoff 3

GitHub Copilot

Use existing vendor spend for implementation.

Model routing

Spend reasoning where the patch deserves it.

Simple lint and nullability fixes do not need the same execution lane as a behavioral security change. Remedy exposes model floors clearly, then prices the full managed run around execution and verification.

“The useful part is not that it writes code. It knows when the fix is outside the contract.”

Model selector

15 lanes
Gemma

Gemma-4-31B

Small, cheap patches with an open Google lane.

0.5

model floor

Safety cap

2 loops max
Loop onewaiting
Loop twoarmed

Credits

Transparent floors, visible execution overhead.

The model floor is only the starting point. A managed Remedy run also includes sandbox setup, repository clone, validation, git operations, and optional re-review when loop two is needed.

ActionCreditsNotes
Standard /ai reviewReview costLead plus specialist costs apply
/ai security onlySub-agent onlySingle specialist pass
/ai suggest fix (Remedy)2.75+Model floor plus managed execution
Remedy run - low-floor model3+1 model floor plus 2 managed execution
Remedy run - frontier model22+Model floor plus managed execution
Verification re-review+ Review costApplies only if loop two is needed
ModelModel floor
GemmaGemma-4-31B
0.5 cr
XiaomiMiMoMiMo v2.5
0.5 cr
StepfunStepFun-3.5 Flash
1 cr

Selected model

Run outcome

Selected model floor0.5 cr
Managed execution2 cr
Re-review loop0 cr

Estimated total

2.5 cr

Close the loop where review starts.

Connect GitHub, run Critique on a pull request, and let Remedy turn validated findings into a tested branch update.