ci: fix the always-failing PR checks (LFS-404 + upstream-only gating)#48
Merged
Conversation
The repo's only LFS-tracked files are copilot simulation-cache sqlite databases under extensions/copilot/test/simulation/cache/. Their LFS objects are not present on our LFS server (all return 404), which makes every `actions/checkout@v6` with `lfs: true` fail before any real work. The Linux/macOS/Windows electron/browser/remote tests and the Linux CLI Rust tests don't touch those files, so we can safely set `lfs: false` to unblock checkout. The copilot simulation jobs themselves are addressed separately in a follow-up commit. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…nt jobs - Compile & Hygiene and Copilot - Check Telemetry don't touch the LFS- tracked simulation cache, so switch `lfs: true` to `lfs: false` to unblock checkout (our LFS server returns 404 for those objects). - Copilot - Check Test Cache, Copilot - Test (Linux), and Copilot - Test (Windows) genuinely open the sqlite simulation databases via cache-cli check / simulate-ci. Without LFS data they cannot work, so gate them off on our fork (`if: github.repository_owner != 'OpenCortexIDE'`) rather than masking the missing data. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Monaco Editor is published from microsoft/vscode; this checks belongs to that publishing flow and isn't relevant for downstream forks. It also hit the LFS-404 issue, which the gate makes moot. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This workflow queries microsoft/vscode collaborator permissions and enforces upstream's bot allow-list. It returns 403 on our token and references identities (vs-code-engineering[bot], etc.) that don't apply to this fork. Engineering-system changes here are governed by normal PR review. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This check enforces upstream VS Code's policy around versioned proposed APIs (vscode.proposed.*.d.ts). We don't publish proposed APIs from this fork and don't want to block PRs that touch d.ts files inherited from an upstream sync. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The workflow uploads to hediet-screenshots.azurewebsites.net (upstream's Azure-hosted screenshot diff service) using a token derived from OIDC. Our OIDC identity is not authorized at that endpoint (403 on every run). Until we run an equivalent screenshot service, skip the workflow on this fork rather than fail every PR. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This workflow targets `runs-on: vscode-large-runners`, a self-hosted runner pool that exists only in the microsoft/vscode org. On our fork the job sits queued for 24h and is then auto-failed by GitHub. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Every PR on this repo currently shows ~15 red checks. Almost all of them have always been red since long before the 1.118.1 sync (confirmed on PR #44 from Feb 2026). The team has been relying on cortexide-builder for real validation. This PR triages the inherited-from-upstream noise without disabling any check that's catching real regressions.
This is a draft; do not merge until reviewed.
Root causes found
After pulling logs from PRs #46 and #47, the failures collapse into three buckets:
LFS-404 (drives ~15 of the failures).
actions/checkout@v6withlfs: truefails because every LFS pointer in the repo resolves to 404 on our LFS server:The only LFS-tracked files in the repo are
extensions/copilot/test/simulation/cache/*.sqlite(andextensions/copilot/.gitattributesdeclares them). The pointer files are committed; the actual blobs were never uploaded to our LFS endpoint.Microsoft-specific infrastructure the fork doesn't have credentials/runners/endpoints for:
Monaco Editor checks— part of upstream's npm-publish flow formonaco-editor.Prevent engineering system changes in PRs— queriesmicrosoft/vscodecollaborator permissions (403 Resource not accessible by integration) and referencesvs-code-engineering[bot].Check API Proposal Version Changes— enforces upstream'svscode.proposed.*.d.tsversioning policy that we don't manage.Checking Component Screenshots— uploads tohediet-screenshots.azurewebsites.netwith an OIDC token our identity isn't authorized for (curl: (22) The requested URL returned error: 403).copilot-setup-steps— usesruns-on: vscode-large-runners(Microsoft-only self-hosted runner), sits queued 24h before GitHub force-fails it.Real test failures —
Component Fixture Testsis failing 8 Playwright tests intests/imageCarousel.spec.ts(locator('.image-carousel-editor')never becomes visible). This fails identically on PR Sync/vscode 1.110.0 #44 from February, so it's a pre-existing bug unrelated to the 1.118.1 rebase. Not fixed in this PR; see follow-ups below.Fixes in this PR
lfs: falsein pr.yml (compile doesn't read sqlite)lfs: falsein pr-linux-test.ymllfs: falsein pr-darwin-test.ymllfs: falsein pr-win32-test.ymllfs: falsein pr-linux-cli-test.ymllfs: falsein pr.yml (telemetry extractor reads TS sources)if: github.repository_owner != 'OpenCortexIDE'All gating uses
if: github.repository_owner != 'OpenCortexIDE'so the workflows are kept verbatim and will run normally on any other fork that has the upstream infra. To revert, drop theif:line.Intentionally NOT fixed
Component Fixture Tests(Playwright imageCarousel timeouts) — this is a real test failure, but it pre-existed the rebase by several months and isn't load-bearing for shipping (the actual product build runs in cortexide-builder, which is green). Fixing it requires investigating why.image-carousel-editornever mounts in headless Chromium and is out of scope here. Suggest a separatefix/image-carousel-playwrightPR.chat-lib tests (ubuntu/macos/windows)— these are passing and unaffected.Check metadata(telemetry.yml) — passing.pr-node-modules.yml— push-to-main only, doesn't run on PRs.sessions-e2e.yml/chat-perf.yml— alreadyworkflow_dispatch-only.cortexide-builderworkflows in the sibling repo were not touched.Follow-ups requiring user decision (not in this PR)
OpenCortexIDE/cortexidecollaborator permissions instead ofmicrosoft/vscode. Happy to do that in a follow-up.Test plan
Compile & Hygiene,Linux/macOS/Windows × Browser/Electron/Remote,Linux / CLI, andCopilot - Check Telemetryall get pastactions/checkout(they may still fail later for other reasons — that's a separate problem we want to see).chat-lib testsandCheck metadatastill pass.🤖 Generated with Claude Code