Skip to content

Remove work-queue storage configuration - #66985

Merged
pelikhan merged 4 commits into
mainfrom
pelikhan-remove-work-queue-storage
Oct 8, 2026
Merged

pelikhan merged 4 commits into
mainfrom
pelikhan-remove-work-queue-storage

Conversation

@pelikhan

@pelikhan pelikhan commented Oct 8, 2026

Copy link
Copy Markdown
Collaborator

Summary

Git is the only supported work-queue backend, so exposing a storage selector adds configuration without a meaningful choice. Remove tools.work-queue.storage outright, with no legacy compatibility.

  • Reject the removed field for every value, including git, through strict schema validation.
  • Remove obsolete compiler permission/secret branches and runtime backend-selection plumbing while preserving Git-backed queue behavior.
  • Update 13 repository workflows and regenerate their lock files; align documentation, examples, and protocol specifications.
  • Add rejection coverage and a major changeset. Existing workflows must remove the field and recompile; there is no automatic migration.

Validation

  • make build, make fmt, and make recompile passed; all 333 workflows compiled.
  • Focused parser/workflow unit tests and compiler integration tests passed, including rejection of git, issues, and null storage values.
  • JavaScript type checking, focused queue/documentation tests (65 tests), standalone Git store checks (43 tests), and formatting checks passed.
  • Operational-value contract verification passed against origin/main.
  • make agent-report-progress passed 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-test passed, including JavaScript lint and full workflow drift verification.

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>
@pelikhan
pelikhan marked this pull request as ready for review October 8, 2026 19:16
Copilot AI balanced review requested due to automatic review settings October 8, 2026 19:16
@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

✅ 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).

🏗️ ADR gate enforced by Design Decision Gate 🏗️

@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

✅ Ponytail Reviewer completed successfully!

Lean already. Ship.

Generated by Ponytail Reviewer for #66985

@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

✅ Test Quality Sentinel completed test quality analysis.

Test Quality Sentinel skipped because pre-fetch PR data was unavailable: unable to fetch test file diff

🧪 Test quality analysis by Test Quality Sentinel

@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

✅ 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.

🔎 Code quality review by PR Code Quality Reviewer

@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

🧠 Matt Pocock Skills Reviewer has completed the skills-based review. ✅

🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer

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.

🟡 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 storage through 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 thread pkg/parser/schemas/main_workflow_schema.json
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Comment Memory

Peek at saved memory (pr-code-quality-reviewer)
reviewed_at: 2026-10-08T19:19:06Z
review_event: REQUEST_CHANGES
top_themes:
  - legacy work-queue storage selector must fail closed at runtime
files_reviewed:
  - actions/setup/js/work_queue_store.cjs
  - actions/setup/js/work_queue_store_checks.cjs
  - actions/setup/js/work_queue_summary_publication.test.cjs
  - pkg/workflow/work_queue_policy.go
  - pkg/workflow/work_queue_compilation_integration_test.go
  - pkg/parser/schema_work_queue_policy_test.go
  - pkg/workflow/compiler_activation_permissions.go
  - pkg/workflow/compiler_safe_outputs_job.go
  - pkg/workflow/compiler.go
  - pkg/parser/schemas/main_workflow_schema.json
comment_count: 1

Note

This comment is managed by comment memory.

Expand the saved memory block to view or edit the persistent context for this thread.
Edit only the text inside the backtick fences; workflow metadata and the footer are regenerated automatically.

Learn more about comment memory

🔎 Code quality review by PR Code Quality Reviewer · copilot · gpt54 · 44.1 AIC · ⌖ 6 AIC · ⊞ 19.8K · ◷
Comment /review to run again

@github-actions github-actions Bot 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.

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

Comment thread actions/setup/js/work_queue_store.cjs
Preserve upstream work-queue debug logging while keeping the storage selector removed.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@github-actions github-actions Bot mentioned this pull request Oct 8, 2026

@github-actions github-actions Bot 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.

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 the storage property makes the schema's "closest match" suggester point users at the unrelated experiments.storage field ('storage' belongs under 'experiments') instead of explaining the field was removed. Confirmed via a local compile of work-queue: {storage: git, worker: true}.
  • Stale generated docs (docs/src/content/docs/reference/frontmatter-full.md): this file is generated by make generate-schema-docs but wasn't regenerated — it still documents storage: "git" as a valid example and a note about storage: "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_SECRET references remain outside tests that assert their absence.
  • ✅ Good negative-test coverage: schema, policy, and integration tests all verify storage: git/issues/null are rejected, not just the trivially-removed issues backend.
  • ✅ Changeset correctly flags this as a major breaking 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

Comment thread pkg/parser/schemas/main_workflow_schema.json

@github-actions github-actions Bot 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.

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 across pkg/, actions/setup/js/, docs, or workflow files.
  • New test TestWorkQueueStorageFieldRejected and updated TestWorkQueueMandatoryPolicy/schema tests correctly cover rejection of git, issues, and null storage values.
  • go build, go vet, and targeted go test ./pkg/workflow/... -run TestWorkQueue all 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>
@pelikhan
pelikhan merged commit 9d50852 into main Oct 8, 2026
63 checks passed
@pelikhan
pelikhan deleted the pelikhan-remove-work-queue-storage branch October 8, 2026 19:56
@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

🎉 This pull request is included in a new release.

Release: v0.91.7

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.

2 participants