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 Fall back to pinned Copilot CLI when live compatibility targets lack trusted checksums 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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[bug] AW 0.93.0 fails to install Copilot CLI

3 participants