[BUG] Desktop: no-CI-polling rule applies to Azure DevOps PRs the PR monitor can't track, so nothing watches PR builds
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
In the desktop app's Code tab, every interactive session's system prompt contains:
After opening a PR, use the ccd_pr tools: callget_statusand, if it does not report that PR, bind it withbind_pr; then read its CI and offer Auto-fix, and never schedule or poll CI checks yourself (CronCreate, ScheduleWakeup, /loop, Monitor,ghpolling); never enable auto-merge unless the user asked.
For a repo hosted on Azure DevOps, the app's PR monitor can't take over. get_status returns bound: false, and bind_pr rejects the ADO PR URL. The rule still applies, so after Claude opens a PR it declines to watch the PR build, even when explicitly asked, and nothing else watches it.
Until the current wording arrived (sessions started from 2026-09-25), Claude watched ADO PR builds on request with Monitor or a background script.
Compliance is also inconsistent. On 2026-09-30 a Sonnet 5.5 session declined to watch the build of a PR it had opened. On 2026-10-01 another Sonnet 5.5 session opened a PR with az repos pr create, watched its build with Monitor until it passed, and afterwards said the rule forbade that.
What Should Happen?
Any one of these would fix it:
- Apply the rule only when the app is actually monitoring the PR: it is bound and its host is supported. A comment on #68083 suggests the same for the Auto-fix case.
- Support Azure DevOps PRs in the PR monitor.
- Let Claude poll CI when the user explicitly asks, as #98360 requests.
Error Messages/Logs
bind_pr url="https://dev.azure.com/<org>/<project>/_git/<repo>/pullrequest/<id>"
-> That is not a pull request URL the app recognises (expected https://<host>/<owner>/<repo>/pull/<number>).
get_status
-> {"bound": false, "message": "No pull request is bound to this session. ..."}
Steps to Reproduce
- In the Claude desktop app on Windows, open a Code-tab session on a repo hosted on Azure DevOps (dev.azure.com) that has a PR build-validation pipeline.
- Ask Claude to create a branch, push it and open a PR, with
az repos pr createor the Azure DevOps MCP server. - Ask Claude to monitor the PR build and tell you when it completes.
- Claude calls
get_status(not bound) andbind_pr(rejected). It then declines to watch, quotes the system-prompt rule, and offers only one-time checks when asked.
Claude Model
Not sure / Multiple models
Is this a regression?
Yes, this worked in a previous version
Last Working Version
Claude desktop 2.7032.0 (sessions started before 2026-09-25)
Claude Code Version
2.1.284 (bundled with Claude desktop 2.16120.0)
Platform
Other
Operating System
Windows
Terminal/Shell
Other
Additional Information
- The rule is added whatever the repo's git host is. In the installed app (2.9939.2 to 2.16120.0), the PR monitor parses only GitHub, GitHub Enterprise, GitLab and Gerrit URLs. The injection is controlled by server-side feature gate
1776348311. - A session keeps the prompt it started with. Sessions started before 2026-09-25 carry the older wording ("use the ccd_pr tools to read CI and offer Auto-fix instead of polling gh") and still watch ADO PR builds.
- The docs still recommend Monitor and
/loopfor watching PR CI: https://code.claude.com/docs/en/scheduled-tasks and https://code.claude.com/docs/en/tools-reference#monitor-tool. The changelog doesn't mention this rule. - Related:
- #98738
- #68083
- #98319
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗