Repository navigation
Remove work-queue storage configuration - #66985
Conversation
Use Git unconditionally, reject the removed workflow field, and update workflows, documentation, and specs. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
✅ Design Decision Gate 🏗️ completed the design decision gate check. See the comment below for the result and any generated ADR draft. No ADR enforcement needed: PR #66985 does not have the 'implementation' label and has only 26 new lines in business logic directories (threshold: 100).
|
|
✅ Ponytail Reviewer completed successfully! Lean already. Ship.
|
|
✅ Test Quality Sentinel completed test quality analysis. Test Quality Sentinel skipped because pre-fetch PR data was unavailable: unable to fetch test file diff
|
|
✅ PR Code Quality Reviewer completed the code quality review. No GitHub write emitted yet because safeoutputs review write attempts require approval in this non-interactive run.
|
|
🧠 Matt Pocock Skills Reviewer has completed the skills-based review. ✅
|
There was a problem hiding this comment.
🟡 Changes recommended
The generated frontmatter reference still recommends the removed field and must be regenerated.
1 open finding
What changed in this PR
Removes the obsolete tools.work-queue.storage selector and makes Git the unconditional queue backend.
Changes:
- Rejects
storagethrough strict schema validation. - Removes backend-selection runtime, permission, and secret plumbing.
- Updates tests, documentation, workflows, and generated lock files.
| File | Description |
|---|---|
specs/work-queue/README.md |
Documents Git-only storage. |
pkg/workflow/work_queue_policy.go |
Removes redundant backend validation. |
pkg/workflow/work_queue_policy_test.go |
Updates policy cases. |
pkg/workflow/work_queue_compilation_integration_test.go |
Tests field rejection and generated output. |
pkg/workflow/notify_comment_conclusion_helpers.go |
Removes Issues-specific environment variables. |
pkg/workflow/dispatch_workflow_validation_test.go |
Removes obsolete test configuration. |
pkg/workflow/dispatch_workflow_test.go |
Updates worker fixture. |
pkg/workflow/compiler_safe_outputs_steps.go |
Removes backend-specific handler setup. |
pkg/workflow/compiler_safe_outputs_job.go |
Makes Git permissions unconditional. |
pkg/workflow/compiler_development_test.go |
Updates compiler fixtures. |
pkg/workflow/compiler_activation_permissions.go |
Removes Issues permissions. |
pkg/workflow/compiler_activation_outputs.go |
Removes backend selection helper. |
pkg/parser/schemas/main_workflow_schema.json |
Removes the storage property. |
pkg/parser/schema_work_queue_policy_test.go |
Tests strict rejection. |
docs/src/content/docs/specs/work-queue-specification.md |
Updates protocol requirements. |
docs/src/content/docs/reference/work-queue.md |
Documents removed selector. |
docs/src/content/docs/patterns/workqueue-ops.md |
Updates worker example. |
docs/src/content/docs/patterns/linter-factory.md |
Updates queue examples. |
docs/src/content/docs/patterns/daily-report-portfolio.md |
Updates portfolio example. |
docs/src/content/docs/guides/deploy-work-queue.md |
Updates deployment guidance. |
actions/setup/js/work_queue_summary_publication.test.cjs |
Replaces obsolete backend test. |
actions/setup/js/work_queue_store.cjs |
Removes runtime storage selection. |
actions/setup/js/work_queue_store_checks.cjs |
Removes backend rejection checks. |
actions/setup/js/daily_report_portfolio.test.cjs |
Verifies storage omission. |
.github/workflows/eslint-refiner.md |
Removes selector from workflow. |
.github/workflows/eslint-refiner.lock.yml |
Regenerates workflow metadata. |
.github/workflows/eslint-monster.md |
Removes selector from workflow. |
.github/workflows/eslint-monster.lock.yml |
Regenerates workflow metadata. |
.github/workflows/eslint-miner.md |
Removes selector from workflow. |
.github/workflows/eslint-miner.lock.yml |
Regenerates workflow metadata. |
.github/workflows/daily-token-consumption-report.md |
Removes selector from workflow. |
.github/workflows/daily-token-consumption-report.lock.yml |
Regenerates workflow metadata. |
.github/workflows/daily-team-evolution-insights.md |
Removes selector from workflow. |
.github/workflows/daily-team-evolution-insights.lock.yml |
Regenerates workflow metadata. |
.github/workflows/daily-secrets-analysis.md |
Removes selector from workflow. |
.github/workflows/daily-secrets-analysis.lock.yml |
Regenerates workflow metadata. |
.github/workflows/daily-repo-chronicle.md |
Removes selector from workflow. |
.github/workflows/daily-repo-chronicle.lock.yml |
Regenerates workflow metadata. |
.github/workflows/daily-regulatory.md |
Removes selector from workflow. |
.github/workflows/daily-regulatory.lock.yml |
Regenerates workflow metadata. |
.github/workflows/daily-observability-report.md |
Removes selector from workflow. |
.github/workflows/daily-observability-report.lock.yml |
Regenerates workflow metadata. |
.github/workflows/daily-issues-report.md |
Removes selector from workflow. |
.github/workflows/daily-issues-report.lock.yml |
Regenerates workflow metadata. |
.github/workflows/daily-firewall-report.md |
Removes selector from workflow. |
.github/workflows/daily-firewall-report.lock.yml |
Regenerates workflow metadata. |
.github/workflows/daily-evals-report.md |
Removes selector from workflow. |
.github/workflows/daily-evals-report.lock.yml |
Regenerates workflow metadata. |
.github/workflows/daily-compiler-quality.md |
Removes selector from workflow. |
.github/workflows/daily-compiler-quality.lock.yml |
Regenerates workflow metadata. |
.github/aw/work-queue.md |
Updates agent-facing guidance. |
.changeset/major-remove-work-queue-storage.md |
Records the breaking change. |
🧠 Review effort: Balanced
Comment MemoryPeek at saved memory (pr-code-quality-reviewer)Note This comment is managed by comment memory.Expand the saved memory block to view or edit the persistent context for this thread.
|
There was a problem hiding this comment.
Request changes
This removes the frontmatter selector, but the runtime also drops the fail-closed rejection for the legacy GH_AW_WORK_QUEUE_STORAGE=issues path. That turns a breaking change into a silent backend switch: stale generated workflows or wrappers can hit the Git queue instead of erroring.
The blocking theme
- removed backend selectors should still fail closed at runtime when legacy env/config plumbing is present
- silently proceeding against Git changes which queue gets read/published, which is correctness-risky for older automation
🔎 Code quality review by PR Code Quality Reviewer · copilot · gpt54 · 44.1 AIC · ⌖ 6 AIC · ⊞ 19.8K
Comment /review to run again
Preserve upstream work-queue debug logging while keeping the storage selector removed. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Skills-Based Review 🧠
Applied /codebase-design and /grill-with-docs on this work-queue.storage removal. The compiler/runtime cleanup itself is clean — workQueueStorage/storageSupported plumbing is fully removed with no dangling references, and the test coverage (rejecting git/issues/null) is solid. Requesting changes on two doc/UX gaps before merge.
📋 Key Themes & Highlights
Issues found
- Misleading compiler error (
pkg/parser/schemas/main_workflow_schema.json): removing thestorageproperty makes the schema's "closest match" suggester point users at the unrelatedexperiments.storagefield ('storage' belongs under 'experiments') instead of explaining the field was removed. Confirmed via a local compile ofwork-queue: {storage: git, worker: true}. - Stale generated docs (
docs/src/content/docs/reference/frontmatter-full.md): this file is generated bymake generate-schema-docsbut wasn't regenerated — it still documentsstorage: "git"as a valid example and a note aboutstorage: "issues"being invalid, directly contradicting the PR's claim that documentation was aligned. Confirmed by running the generator locally (46-line diff).
Positive Highlights
- ✅ Thorough removal of backend-selection plumbing across compiler permissions, env injection, and JS store code — no orphaned
GH_AW_WORK_QUEUE_STORAGE/WORK_QUEUE_HMAC_SECRETreferences remain outside tests that assert their absence. - ✅ Good negative-test coverage: schema, policy, and integration tests all verify
storage: git/issues/nullare rejected, not just the trivially-removedissuesbackend. - ✅ Changeset correctly flags this as a
majorbreaking change with clear migration guidance.
@copilot please address the review comments above.
🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · copilot · sonnet50 · 92.2 AIC · ⌖ 14.6 AIC · ⊞ 10.1K
Comment /matt to run again
There was a problem hiding this comment.
No Impeccable-mode findings apply — this PR (#66985) is a non-UI configuration-removal change (removing tools.work-queue.storage), so modes like critique, audit, harden, distill, extract, and clarify don't map to any changed UI surface.
Direct correctness review of the diff:
- Schema rejection, compiler plumbing removal (
workQueueStorage,GH_AW_WORK_QUEUE_STORAGE,WORK_QUEUE_HMAC_SECRET), and runtime JS changes (work_queue_store.cjs) are internally consistent — no dangling references found acrosspkg/,actions/setup/js/, docs, or workflow files. - New test
TestWorkQueueStorageFieldRejectedand updatedTestWorkQueueMandatoryPolicy/schema tests correctly cover rejection ofgit,issues, andnullstorage values. go build,go vet, and targetedgo test ./pkg/workflow/... -run TestWorkQueueall pass locally.- Docs (
work-queue.md, spec, reference, patterns) are updated consistently with the removal and no legacy-migration claims.
No blocking issues found.
🧵 Reviewed using Impeccable skills by Impeccable Skills Reviewer · copilot · sonnet50 · 66.4 AIC · ⌖ 13.1 AIC · ⊞ 8.1K
Reject stale runtime selectors before queue access, provide explicit removed-field diagnostics for workflows and imports, and regenerate the full schema reference with regression coverage. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep storage absent from the frontmatter schema without dedicated removal validation or runtime selector guards. Remove the related diagnostics, compatibility checks, and documented rejection requirements; retain normal unknown-field schema validation. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
🎉 This pull request is included in a new release. Release: |

Summary
Git is the only supported work-queue backend, so exposing a storage selector adds configuration without a meaningful choice. Remove
tools.work-queue.storageoutright, with no legacy compatibility.git, through strict schema validation.Validation
make build,make fmt, andmake recompilepassed; all 333 workflows compiled.git,issues, andnullstorage values.origin/main.make agent-report-progresspassed its Go lint, schema freshness, and impacted Go/JavaScript tests, but initially failed JavaScript lint because lint dependencies were missing. After restoring dependencies,make agent-report-progress-no-testpassed, including JavaScript lint and full workflow drift verification.