Skip to content

Fall back to pinned Copilot CLI when live compatibility targets lack trusted checksums - #71339

Merged
pelikhan merged 4 commits into
mainfrom
copilot/fix-copilot-cli-installation
Oct 23, 2026
Merged

pelikhan merged 4 commits into
mainfrom
copilot/fix-copilot-cli-installation

Conversation

Copilot AI commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

AW 0.93.0 can fail to install Copilot CLI on runners without a compatible cached binary: the live compatibility matrix may select a release whose checksum pin is absent from the setup action.

  • Guarded fallback: After a cache miss, use the bundled default when the automatic target lacks a reviewed pin—but only within the effective compatibility window, including feature minimums.
  • Preserved safeguards: Keep explicit-version and cache behavior unchanged. Require checksum verification for every download; reject fallback outside the allowed window.
  • Regression coverage: Cover pinned and unpinned compatibility targets, window bounds, feature minimums, and explicit-version rejection.
…ewed

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix Copilot CLI installation issue in AW 0.93.0 Oct 23, 2026
Copilot AI requested a review from pelikhan October 23, 2026 04:18
Bind the compiler default CLI version to its reviewed manifest SHA256, resolve both constants from reviewed release pins, and reject missing default pins during compilation. Preserve cache-first installation with --prefer-toolcache while keeping explicit workflow pins download-only. Add actionable missing-pin remediation and cover compiler, resolver, cache, and musl behavior.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@pelikhan
pelikhan marked this pull request as ready for review October 23, 2026 04:49
Copilot AI max review requested due to automatic review settings October 23, 2026 04:49
Regenerate workflow lock files to inline the default Copilot CLI version, manifest SHA256, and cache-first installer flag.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@pelikhan
pelikhan merged commit 764fdc6 into main Oct 23, 2026
37 of 38 checks passed
@pelikhan
pelikhan deleted the copilot/fix-copilot-cli-installation branch October 23, 2026 04:57

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Default installs bypass the promised compatibility safeguards, and the broader supply-chain behavior change needs human design and security review.

1 open issue
What changed in this PR

Addresses #71332’s Copilot CLI installation failure by adding reviewed-pin fallback handling and embedding the compiler’s default version/checksum pair in generated workflows.

Changes:

  • Add compatibility-bounded fallback and checksum-aware cache options.
  • Propagate the compiler’s reviewed default pin across installation jobs.
  • Add offline pin-update tooling, regression coverage, snapshots, and documentation.
File Description
scripts/​update-copilot-version.sh Updates default version and checksum together.
scripts/​update-copilot-version_test.sh Tests offline updates and failure handling.
scripts/​test-wasm-golden.mjs Normalizes default installation pins.
pkg/​workflow/​wasm_golden_test.go Tests pin normalization in snapshots.
pkg/​workflow/​testdata/​TestWasmGolden_CompileFixtures/​with-imports.golden Updates imported-workflow installation snapshot.
pkg/​workflow/​testdata/​TestWasmGolden_CompileFixtures/​smoke-copilot.golden Updates main and detection installation snapshots.
pkg/​workflow/​testdata/​TestWasmGolden_CompileFixtures/​playwright-cli-mode.golden Updates Playwright fixture installation snapshot.
pkg/​workflow/​testdata/​TestWasmGolden_CompileFixtures/​basic-copilot.golden Updates basic Copilot installation snapshot.
pkg/​workflow/​testdata/​TestWasmGolden_AllEngines/​copilot.golden Updates Copilot engine installation snapshot.
pkg/​workflow/​release_integrity_validation.go Validates the compiler’s default release pin.
pkg/​workflow/​release_integrity_validation_test.go Tests validation and cross-job pin propagation.
pkg/​workflow/​firewall_version_pinning_test.go Checks default checksum against bootstrap pins.
pkg/​workflow/​copilot_installer.go Emits default version, checksum, and cache flags.
pkg/​workflow/​copilot_installer_test.go Updates generated-installation expectations.
pkg/​workflow/​copilot_engine_installation.go Routes omitted versions through shared default pinning.
pkg/​constants/​version_constants.go Adds the default Copilot manifest digest.
Makefile Registers the pin-updater regression tests.
docs/​src/​content/​docs/​reference/​engines/​copilot.md Documents default pinning and maintenance.
actions/​setup/​sh/​release_integrity.sh Expands missing-pin recovery guidance.
actions/​setup/​sh/​release_integrity_test.sh Covers fallback bounds, checksums, and cache behavior.
actions/​setup/​sh/​install_copilot_cli.sh Adds guarded fallback and pinned cache reuse.

Review effort: Max

Comment on lines +15 to +16
if version == "" {
version = string(constants.DefaultCopilotVersion)
@github-actions

Copy link
Copy Markdown
Contributor

🎉 This pull request is included in a new release.

Release: v0.93.2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

3 participants