Sentry-driven autonomy release: the worker now watches Sentry for production errors and fixes them automatically, fails over across agent harnesses when usage limits hit, and reports its own crashes to Sentry.
Added
- Sentry error watcher that auto-creates bugfixes: the new
devintern sentrycommand (and a worker-mode acquirer registered automatically whenSENTRY_AUTH_TOKEN+SENTRY_ORGare configured in.devintern-code/.env) polls a Sentry org/project for unresolved error groups and turns valid ones into markdown bugfix tasks run through the standard pipeline. A validity gate (minimum event count, actionable metadata, optional injected validator) filters one-off blips, handled group ids persist in the queue database and are marked before execution, so restarts, overlapping ticks, and failing runs never re-process the same error — standalone and worker modes share dedupe state. Supports self-hosted Sentry viaSENTRY_BASE_URL,--oncefor cron setups,--queryfor Sentry search scoping, and--min-events/--intervaltuning - Automatic harness failover when usage limits are hit (DEV-106): an ordered harness chain (
AGENT_HARNESS=codex,grok,...) retries worker jobs on the next harness when the current one reports usage limits, instead of crashing or idling — Codex’sERROR:-prefixed limit lines, OpenCode Go retry strings, and Grok’s pretty-printed 402 JSON are all recognized as usage limits, and fleet/polling children are pinned to the active harness so one-shot CLI spawns no longer ignore the chain. Every worker job type participates (tasks, reviews, mentions, conflict resolution, automations, estimations); an exhausted chain defers the job until a retry window elapses - Crash and unhandled-error reporting to Sentry (DEV-113): the CLI, worker, and webhook server report crashes and unhandled errors through a baked-in DevIntern DSN so production failures surface without user reports; the desktop app gets the same reporting with an opt-out setting in Preferences.
SENTRY_DISABLED=1disables reporting entirely
Changed
- Handled review failures are reported to Sentry: address-review and relay/polling acquirers now capture failures they would otherwise swallow silently, so review-feedback pipeline errors are visible even when the run itself is handled
Fixed
- Trello client hardening (DEVINTERN-8, DEVINTERN-9): network failures and malformed search responses in the Trello tracker client no longer surface as unhandled errors
- Optional Sentry action comments:
comment_on_action = trueleaves a best-effort comment after a terminal successful or failed remediation run without resolving the issue or changing its workflow fields. Deferred runs stay silent, comment failures never affect execution or deduplication, and the option remains off by default because Sentry’s private comment endpoint requires a user-authenticated token with Issue & Event write access. Sentry runs now skip the redundant generic feasibility assessment and carry a distincterror_monitororigin, so restart recovery reaps an interrupted run without trying to fetch its synthetic identifier from the configured task tracker - Opt-in automatic CI repair for agent-created PRs:
[workspace].ci_failure_fix = truecontinuously watches GitHub Actions and commit statuses while the worker and PR remain open, sends failing job logs through the existing review-fix pipeline, retries failed/no-op invocations with a bounded budget, and records CI-fix runs in the dashboard. Pending, failing, and not-yet-reported CI uses the configured poll interval; unchanged terminal-green PRs progressively back off to 5, 15, and 30 minutes. The feature is disabled by default and live-reloads; fine-grained tokens and customer-owned Apps need read access to Actions and Commit statuses.
Fixed
- CLI test runs no longer ship expected tracker connection failures to Sentry: the CLI argument and estimation tests spawn the real CLI against a closed local tracker port; the resulting
fetchWithRetryTypeError (“Unable to connect. Is the computer able to access the url?”) was captured by the CLI’s top-level error handlers and reported to the baked-in production Sentry DSN from CI (515 error-level events, DEVINTERN-6). The spawn environments now pinSENTRY_DISABLED=1, mirroring the existing address-review test setup, without changing the CLI’s user-facing failure output