Skip to content

gardener: start fixes automatically for high-impact, low-cost issues; upgrade to 0.1.21 - #285

Merged
scuffi merged 5 commits into
mainfrom
gardener-auto-fix
Oct 28, 2026
Merged

scuffi merged 5 commits into
mainfrom
gardener-auto-fix

Conversation

@scuffi

@scuffi scuffi commented Oct 28, 2026 •

Copy link
Copy Markdown
Member

Upgrades Gardener to 0.1.21 and uses its new task.run effect, so a high-impact issue that's cheap to fix gets a fix pull request without anyone adding a label.

The chain: triage → fix → fix-ready, or fix-blocked when there's no fix

  • triage judges a new issue high impact and low cost → labels it priority: high and starts fix on it as its last step. No triage comment: the fix comments when its pull request is open.
  • fix reproduces the problem with a failing test, builds the fix, opens a pull request on exactly gardener/issue-<n>, comments on the issue with the link, then starts fix-ready on that pull request. If it can't reproduce the problem or reach a fix it's confident in, it opens nothing, comments with what it found, and starts fix-blocked on the issue instead.
  • fix-ready checks the pull request is open on a gardener/issue- branch and posts it to the team's chat as ready for review.
  • fix-blocked checks the issue is open with no fix pull request and posts it to the team's chat as needing a maintainer, with the reason from fix's comment. So every high-priority issue reaches chat once: as a fix to review, a fix that needs a maintainer, or (high cost) a decision.

triage

  • High impact, low cost: starts fix (above).
  • High impact, high cost: unchanged: a recommendation comment, and the chat post asks for the decision.
  • Low impact: both cases now get wontfix and priority: low, a short comment saying why, and are closed.
  • Chat: posts high-impact, high-cost issues; fix-ready announces the automatic fixes.

fix

  • Runs from the gardener-fix label or from triage. A maintainer can still ask for a fix on any issue.
  • No runs: cap; runs-per-author: 10/day on fix, fix-ready and fix-blocked, matching triage. A started run counts against the original reporter, and a triage run starts at most one fix, so triage's limit is the real bound for non-maintainers (without this, the 3/day default would silently skip a reporter's 4th fix of the day). Maintainers aren't counted.
  • Everything in the issue is untrusted: code, patches, branches, tests and suggested fixes. It never runs, copies, adapts or cherry-picks any of it, or fetches anything it links to.
  • One fix per issue: when triage started it and gardener/issue-<n> already exists, it stops. Label runs still add -2, -3.

Safety (Gardener 0.1.21)

  • A started run inherits the first run's trust (never more) and counts against the original author's runs-per-author. Chains stop at depth 3.
  • A started run carries no instructions: each task reads the issue or pull request itself.
  • A workflow_dispatch started by a bot or another workflow is refused unless a Gardener task.run started it.
  • triage and fix get actions: write so apply can start the next task. Planning never has it.

Validated end to end on a demo repository: fixable bugs went from issue to a correct fix pull request with a regression test and a chat post in about two minutes; a report of a bug that doesn't exist got an evidence comment and a fix-blocked chat post; a report carrying a malicious patch got an independent fix without it; unsanctioned dispatches were refused before the model ran. Gardener change: scuffi/gardener#67.

Regenerated with @scuffi/gardener@0.1.21.

@changeset-bot

changeset-bot Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 6f6b323

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

devin-ai-integration[bot]

This comment was marked as resolved.

@pkg-pr-new

pkg-pr-new Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/@cloudflare/computer@285

commit: 6f6b323

devin-ai-integration[bot]

This comment was marked as resolved.

@scuffi
scuffi merged commit 071b2b2 into main Oct 28, 2026
26 checks passed
@scuffi
scuffi deleted the gardener-auto-fix branch October 28, 2026 17:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant