Skip to content

docs(gotcha 27): it fails on docs and passes on code, which is the inverse - #416

Merged
oddharsh merged 1 commit into
mainfrom
docs/gotcha-27-exclusion-filter
Aug 16, 2026
Merged

oddharsh merged 1 commit into
mainfrom
docs/gotcha-27-exclusion-filter

Conversation

@oddharsh

Copy link
Copy Markdown
Owner

Gotcha 27 claimed twice that this check fails on every diff, and one of those claims went in a few hours ago (#403) as the general lesson. It is wrong, and the correction is more useful than the claim was.

The run always fires. Whether it requests a model depends on the diff, and the discriminator is a file exclusion list the job prints on every run:

FileExclusionPatterns = *.c,*.cpp,*.cs,*.go,*.h,*.html,*.java,*.js,*.json,
*.jsx,*.kt,*.mjs,*.mts,*.py,*.rb,*.rs,*.ts,*.tsx,*.vue,*.xml,*.yaml,*.yml,
**/action.yml,*.github/workflows/*.yml,Cargo.toml,Gemfile

.md, .sh and .css are not on it. A docs diff survives the filter and draws a claude-opus-4.6 request; a pure JavaScript diff is filtered to nothing and the run exits clean.

So on this repo the check fails on documentation and passes on code, which is the inverse of what "code scanning" predicts, and it is why a gotcha that grew mostly on docs PRs saw an unbroken run of failures.

One trap worth recording: both paths print Sessions disabled: not supported for code scanning yet, so that line is noise. The discriminating line is Creating copilot-sdk session with model, which only the failing path reaches.

Correlates 12 of 12:

PR extensions survives outcome
#399 jpg, json no success
#402 js, mjs no success
#398 md yes failure
#400 json, md, sh, yml yes failure
#401 md yes failure

Plus all seven earlier failures checked backwards: #305, #307, #351 and #368 carried .md; #313 is the "CSS-only" diff this gotcha already singles out; #319 and #340 carried both.

The prose-only argument keeps its conclusion and loses its mechanism. A docs PR reddens this because markdown is one of the few things the detector still looks at, rather than because the agent read the prose and choked. The entitlement root cause from #403 is untouched: every failure is still CAPIError: 400 on a model a 0-credit Free account cannot be served.

Also records the method failure, which is the transferable part. Nine entries were built by pattern-matching outcomes across PRs without ever reading which files each diff touched, and "fails on everything" was an artifact of that sample. One uncollected column explained the whole shape.

Docs only. pnpm run lint exits 0 and no served byte moves.

…verse

This gotcha claimed twice that the Copilot check fails on every diff, and one of
those claims went in a few hours ago as the general lesson. It is wrong. The run
always fires; whether it REQUESTS A MODEL depends on the diff.

The job prints a file exclusion list on every run, covering js, json, mjs, ts,
py, rs, yaml, yml, html, xml, go, java, c/cpp, rb and more. `.md`, `.sh` and
`.css` are NOT on it. So a docs diff survives the filter and gets a
`claude-opus-4.6` request, while a pure JavaScript diff is filtered to nothing
and the run exits clean.

Both paths print `Sessions disabled: not supported for code scanning yet`, which
this session initially read as the discriminator and is not; the discriminating
line is `Creating copilot-sdk session with model`, which only the failing path
reaches.

Correlates 12 of 12: the five runs of 2026-08-15 (#399 jpg/json and #402 js/mjs
passed; #398, #400 and #401 all carried md and failed), plus all seven earlier
failures checked backwards. #313 is the "CSS-only" diff this gotcha already
singles out, and css is not on the list either. #351's note here called its
entire diff a `${{ }}` move in workflow files; it touched md and mjs too, and
the md is what drew the request.

The prose-only argument is unchanged in conclusion and inverted in mechanism: a
docs PR reddens this because markdown is one of the few things the detector
still looks at, rather than because the agent choked on prose. The entitlement
root cause is untouched.

Records the method failure too, since it is the transferable part. Nine entries
were built by pattern-matching outcomes across PRs without once reading which
files each diff touched, and "fails on everything" was an artifact of that
sample. One uncollected column explained the whole shape.
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
aadhar-sh 421142e Aug 16 2026, 12:11 AM

@oddharsh
oddharsh merged commit e63e63b into main Aug 16, 2026
6 checks passed
@oddharsh
oddharsh deleted the docs/gotcha-27-exclusion-filter branch August 16, 2026 00:22
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