Repository navigation
chore: configure Copilot - #151
Conversation
There was a problem hiding this comment.
Current status: 6 findings originating in this review require attention.
Last reconciled ond813e03. See aggregate Bugbot status.
🤖 Bugbot review snapshot
Bugbot reported 6 potential problems when commit d813e03 was analyzed. This snapshot is historical; use the status block above for current state. 6 findings are linked to changed code.
Findings
- high: Release preparation no longer updates release files —
.github/workflows/release_workflow.yml:97 - high: Release workflow no longer publishes packages to pub.dev —
.github/workflows/release_workflow.yml:159 - high: Publish mode no longer publishes Dart packages —
.github/workflows/release_workflow.yml:183 - medium: Release preparation no longer updates package versions —
.github/workflows/release_workflow.yml:97 - medium: PR synchronize runs fail before Copilot starts —
.github/workflows/copilot_pull_request.yml:39 - low: Bugfix workflow lists a field that the issue form does not have —
.copilot/repository-profile.json:57
| cp CHANGELOG.md "zstandard/CHANGELOG.md" | ||
|
|
||
| - name: Update versions in all pubspec.yaml | ||
| run: dart run .github/scripts/update_versions.dart "${{ github.event.inputs.version }}" | ||
|
|
There was a problem hiding this comment.
Release preparation no longer updates release files
Severity: high
Category: correctness · Confidence: 100%
Location: .github/workflows/release_workflow.yml:97-101
The prepare job now contains only a placeholder comment before committing the checkout. It does not update package versions or dependency constraints, copy the changelog, or build the CLI libraries. Consequently, the promotion PR contains no release preparation changes, so the documented release process cannot produce a prepared release.
Evidence:
The changed job runs checkout, then reaches Commit prepared release files with add: './'; no step modifies any files between them. The previous workflow updated CHANGELOG.md and package versions and built platform libraries, and the repository release process requires those updates before publishing.
Suggested fix:
Restore the version, changelog, and native-library preparation steps before committing the prepared files.
| rm libzstandard_macos_intel.dylib | ||
|
|
||
| - name: Verify libs | ||
| run: | | ||
| cd zstandard_cli/lib/src/bin | ||
| lipo -info libzstandard_macos.dylib | ||
|
|
||
| - name: Commit and Push Library | ||
| uses: EndBug/add-and-commit@v9 | ||
| - uses: actions/checkout@v5 | ||
| with: | ||
| add: './zstandard_cli/lib/src/bin/libzstandard_macos.dylib' | ||
| committer_name: GitHub Actions | ||
| committer_email: actions@github.com | ||
| default_author: user_info | ||
| message: 'gh-action: Add precompiled macOS libraries for x86_64 and arm64' | ||
|
|
||
| cli_build_linux_precompiled_libs: | ||
| name: Linux precompiled libraries | ||
| runs-on: [ self-hosted, Linux ] | ||
| needs: [ update_files, cli_build_macos_precompiled_libs ] | ||
| permissions: | ||
| contents: write | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - name: Configure Git for push (HTTPS + token) | ||
| run: git remote set-url origin "https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git" | ||
|
|
||
| - name: Update branch | ||
| run: | | ||
| git pull origin ${{ github.ref }} --rebase | ||
|
|
||
| - name: Copy zstd from zstandard_native into zstandard_cli | ||
| run: | | ||
| cp -r zstandard_native/src/zstd zstandard_cli/ | ||
| ( cd zstandard_native/src/zstd && git rev-parse HEAD 2>/dev/null && git describe --tags 2>/dev/null ) || true | ||
|
|
||
| - name: List files in zstandard_cli/zstd to verify | ||
| run: cd zstandard_cli && ls -R zstd | ||
|
|
||
| - name: Compile x86_64 Linux lib | ||
| run: | | ||
| cd zstandard_cli/builders/linux_x64 |
There was a problem hiding this comment.
Release workflow no longer publishes packages to pub.dev
Severity: high
Category: correctness · Confidence: 100%
Location: .github/workflows/release_workflow.yml:159-201
The publish job now creates a tag and GitHub release, then starts reconciliation, but it has no pub.dev publication steps. A successful run therefore marks the release flow as published without publishing any of the repository's packages.
Evidence:
The entire publish job consists of create_tag, create_release, and published_deployment_action; no dart pub publish or flutter pub publish command remains. The removed workflow published platform_interface, zstandard_native, platform packages, zstandard_cli, and zstandard in dependency order, as also specified in docs/development/ci-cd.md.
Suggested fix:
Restore package dry-run and publication steps in dependency order, and make reconciliation completion depend on successful publication.
| contents: write | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
There was a problem hiding this comment.
Publish mode no longer publishes Dart packages
Severity: high
Category: correctness · Confidence: 99%
Location: .github/workflows/release_workflow.yml:183
After creating or verifying the Git tag, publish mode only creates or verifies a GitHub Release and starts reconciliation. It contains no dart pub publish steps, so a successful workflow run can mark the deployment as published without making the version available on pub.dev. This removes the package publication performed by the previous workflow.
Evidence:
The publish job has create_tag at lines 174–182, then proceeds directly to create_release at lines 184–192 and reconciliation at lines 193–201. Line 183 is a placeholder for deployment work. The documented release order in docs/development/release-process.md requires publishing the packages to pub.dev.
Suggested fix:
Restore publication and verification steps for all Dart packages in dependency order before recording publication as complete or starting reconciliation.
| cp CHANGELOG.md "zstandard_linux/CHANGELOG.md" | ||
| cp CHANGELOG.md "zstandard_web/CHANGELOG.md" | ||
| cp CHANGELOG.md "zstandard_cli/CHANGELOG.md" | ||
| cp CHANGELOG.md "zstandard/CHANGELOG.md" |
There was a problem hiding this comment.
Release preparation no longer updates package versions
Severity: medium
Category: correctness · Confidence: 99%
Location: .github/workflows/release_workflow.yml:97
In prepare mode, this job checks out the repository and immediately runs EndBug/add-and-commit; the only intervening step is a placeholder comment. It does not update package versions, dependency constraints, or changelogs. The workflow can therefore proceed to create a promotion PR without preparing the release files, contrary to the documented release process.
Evidence:
The prepare-version-files job has no commands between checkout at line 94 and the commit step at line 98; line 97 explicitly marks the missing project-specific preparation steps. docs/development/release-process.md requires updating versions and inter-package dependencies before release.
Suggested fix:
Restore the release preparation steps that update and validate all package versions, dependency constraints, and changelogs before committing.
| BEFORE_SHA: ${{ github.event.before }} | ||
| AFTER_SHA: ${{ github.event.after }} | ||
| run: | | ||
| git cat-file -e "${AFTER_SHA}^{commit}" |
There was a problem hiding this comment.
PR synchronize runs fail before Copilot starts
Severity: medium
Category: reliability · Confidence: 98%
Location: .github/workflows/copilot_pull_request.yml:39
The pull_request event payload does not define the push-event before and after fields. On each synchronize event, AFTER_SHA is therefore empty, so this command becomes git cat-file -e '^{commit}' and fails under set -e. The workflow stops before the Copilot action can review the updated pull request.
Evidence:
The step runs only for github.event.action == 'synchronize' (line 34), reads github.event.before and github.event.after into its environment (lines 36–37), then requires AFTER_SHA to identify a commit. Those fields belong to push payloads; pull request synchronize payloads provide the updated commit under github.event.pull_request.head.sha.
Suggested fix:
Use the pull request head SHA for the updated commit and obtain the previous SHA from the pull request event’s pull_request data or another supported source. If the step is only a best-effort fetch optimization, skip the check when either SHA is missing so the Copilot action can use its documented fallback.
| "requiredFields": [ | ||
| "Description", | ||
| "Reproducing the issue", | ||
| "copilot Version" |
There was a problem hiding this comment.
Bugfix workflow lists a field that the issue form does not have
Severity: low
Category: correctness · Confidence: 99%
Location: .copilot/repository-profile.json:57
The installed bugfix profile says copilot Version is required, but the referenced bug_report.yml form requires Flutter Version. Contributors following the profile can be told to provide a nonexistent field, while the form still requires a different one, making bug reports harder to submit correctly.
Evidence:
The profile lists "copilot Version" in issueWorkflows.forms.bugfix.requiredFields; .github/ISSUE_TEMPLATE/bug_report.yml labels its required version input Flutter Version.
Suggested fix:
Change the profile entry to Flutter Version so it matches the installed issue form.
Apply this change:
| "copilot Version" | |
| "Flutter Version" |
Bugbot: 6 findings need attention
Findings
|
Configure Copilot using the reviewed setup plan. Shared Secret values are retained.
Status: PR created; installation awaits human review and merge. Runtime credential and capability verification remain pending.
Review the generated workflows, repository guidance and configuration before merging. Setup never merges, releases or deploys this PR.
Runner routing and installation parity
Profile choice: manual-self-hosted. Existing native source workflows remain per-job exceptions.
Reviewed plan:
7ffd190335eb898e3e5db8033624a5e9b52087bbbb691630fa84a99b1bc6438b.Selected managed agent route:
{ "group": "vypdev", "labels": [ "self-hosted", "codex", "Linux" ] }Observations: 0 pending capacity; 53 access unverified; 0 unavailable.
Parity: 0 source extensions; 13 missing assets (including disabled optional capabilities); 25 customized; 0 incompatible metadata retained or blocked before regeneration.
Inspect the complete Files changed view and
.copilot/runner-profile.json. Any replacements retain setup backups under.copilot/setup-backups/.Runner access, capacity and agent authentication are separate. Selection grants no group access and never falls back to another runner. Human merge and actual trusted workflow verification remain pending.