[BUG] Desktop global "Auto-fix CI and address comments" toggle never applies to PRs created via gh from local sessions, and doesn't persist in claude_desktop_config.json
Status Open
Reported on v2.1.170
Maintainer reply None cached
Workaround ✓ Mentioned in description ↑
Activity 8 comments · opened Jun 12, 2026
Preflight Checklist
- [x] I have searched existing issues and this is not a duplicate (closest match is #51765, which asked for persistent auto-fix configuration for scheduled remote triggers and was closed as not planned — this report is about the existing global desktop toggle not applying to locally-created PRs and not persisting at all)
- [x] This is a single bug report
- [x] I am using the latest version available to me (desktop app auto-updates; versions below)
What's Wrong?
The Claude desktop app exposes a global settings toggle, "Auto-fix CI and address comments". Enabling it has no observable effect on pull requests created from local desktop sessions via gh pr create:
- No auto-fix behavior ever triggers on those PRs (CI failures and review comments sit unhandled unless the in-session agent babysits them itself).
- The toggle's state does not persist anywhere in
claude_desktop_config.json— other global toggles do persist there, but after flipping Auto-fix on, no corresponding key appears, and the published docs describe Auto-fix only as a per-PR feature (web-session CI bar,/autofix-pr, or pasting a PR URL).
So the global toggle appears to be a UI affordance with no backing implementation for the local-session + gh-created-PR path.
What Should Happen?
Either:
- Enabling the global toggle should arm auto-fix (CI failure remediation + review-comment handling) for PRs created by local desktop sessions, including ones created with
gh pr create; or - If the toggle is only meant to cover web/cloud sessions, the UI should say so, and the setting should still persist somewhere inspectable.
Error Messages
(none — the behavior simply never triggers; no errors are produced)
Steps to Reproduce
- In the Claude desktop app settings, enable the global "Auto-fix CI and address comments" toggle.
- Inspect
~/Library/Application Support/Claude/claude_desktop_config.json: no key reflecting the toggle is written (other global toggles do persist here). - In a local desktop session, have Claude create a branch and open a PR via
gh pr createon a repo with CI. - Push a commit that fails CI (or leave a review comment on the PR).
- Observe that no auto-fix activity ever occurs on the PR.
Claude Model
Not sure / Multiple models
Is this a regression?
No, this never worked
Claude Code Version
2.1.170 (bundled inside Claude desktop app 1.12603.1)
Platform
Anthropic API
Operating System
macOS (Darwin 25.5.0)
Terminal/Shell
Other (Claude desktop app, local agent session)
Additional Information
- Related but distinct: #51765 requested persistent auto-fix for scheduled remote triggers and was closed as not planned. This report is narrower: the already-shipped global toggle is inert for locally-created PRs and has no persisted state.
- Verified the non-persistence by diffing
claude_desktop_config.jsonbefore/after flipping the toggle; all other global toggles in the same settings pane persist keys there. - Current workaround: the in-session agent watches its own PRs (poll
gh pr checks/ merge-state until terminal) — works, but burns session time on what the toggle implies is automatic.
Showing cached comments. Read the full discussion on GitHub ↗
3 Comments
I am experiencing the same problem, and stumbled on this issue while debugging. It looks like a configuration could be missing?
Still reproducing on current versions, and I think I can sharpen the second half of this report: the toggle state does persist — just per-PR, inside per-session files — and nothing ever seeds it from the global setting.
Environment
Where the state actually lives
There is no
autofix-ish key in any global config — I grepped~/Library/Application Support/Claude/config.json,~/Library/Application Support/Claude/claude_desktop_config.json(only keys:coworkUserFilesPath,preferences),~/.claude.json, and~/.claude/settings.json. Zero hits, confirming the persistence half of this report.The effective state is written per-PR here:
prs[].autoFixis only written when you tick the per-PR "Auto-fix CI & address comments" checkbox in the CI-monitoring popover. Otherwise the key is simply absent, and the PR behaves as opt-out — regardless of the global setting.Quantified over my local session store
50 session files, 21 of which have a non-empty
prs[], 34 tracked PR entries total — with the global setting ON the whole time:|
prs[].autoFix| count ||---|---|
|
true(I ticked the box by hand) | 9 ||
false| 1 || key absent | 24 |
So ~70% of PRs the app was actively tracking got no autofix subscription.
Why this isn't just "the setting was enabled recently"
The states are interleaved within single sessions at identical timestamps, which I think rules out any ordering explanation:
Same global setting state, same instant, different results — the only variable is whether I happened to click the checkbox. (Repo names redacted; these are private repos.)
That last pair is also consistent with #65488 — within one session, some PR entries in
prs[]get subscribed and others don't.Repro script
Run with the global setting ON, after a few sessions have created PRs via
gh pr create:Expected if the global setting were honored:
absent=0. Observed:absentdominates.Impact
The per-PR checkbox is the only thing that works, so it has to be clicked on every single PR — which defeats the purpose of a global default. For anyone running a scripted ship flow (
gh pr createfrom a local session, one PR per worktree), that's a manual click per PR, and it's easy to miss and then wonder why nothing is being monitored.Suggested fix
Seed
prs[].autoFixfrom the global setting at the point a PR entry is added toprs[], rather than leaving the key unset until a manual click. If the global setting is genuinely intended to be remote-sessions-only, the settings copy should say so the way the sibling "Create pull requests automatically" setting does ("Applies to remote sessions only") — and the per-PR checkbox should probably still inherit it.Worth noting the related #52474 (closed as not planned) reports that even after ticking the box, GitHub events aren't delivered into local sessions — particularly worktree sessions. If that's still current, then fixing the default alone won't be sufficient.
Additional cross-platform reproduction, Windows desktop app:
Worked a long single desktop session across 4 sequential PRs on the same repo, all created via
gh pr createfrom a local Bash tool call (not the desktop app's own PR-creation UI): #421 → #428 → #436 → #448. "Auto-fix pull requests" ci-monitor-events (CI failures, new review comments) arrived automatically and correctly for at least two of these PRs mid-session without the toggle being touched between them, so per-PR monitoring clearly can get armed for agh-created PR in this environment -- but it didn't happen consistently for every PR in the sequence, and there was no way from inside the session to tell in advance whether a freshly-opened PR would get picked up or not.That's consistent with this report's second comment (state persists per-PR in session files, nothing seeds it from a global setting) rather than "never works for gh-created PRs at all" -- in my case it worked, intermittently, for a
gh-created PR in the same session as prior ones, which points more at a seeding/re-subscription gap than a hardgh pr createexclusion.Environment: Claude Desktop (Windows 11), same repo (
Damont14/magnetar) for all 4 PRs, all within one continuous session.