Repository navigation
Install configured work queue pools on first use - #71675
Conversation
Invoke the existing authenticated PoolInstall transition before new submission and dispatch requests, preserving installed authority and recovery semantics. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Condense first-use pool guidance and remove redundant instruction text without relaxing the documentation contract. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
🔵 Needs a closer look
Automatic durable Policy publication needs human review of authorization and recovery guarantees, and the instruction update exceeds an enforced word limit.
1 open issue
What changed in this PR
Enables trusted work queue producers and dispatchers to install missing configured pools on first use through the existing authenticated PoolInstall transition, before deployment synchronization.
Changes:
- Adds installation calls for new submission and dispatch requests.
- Adds regression coverage for installation, recovery, launch, and refusal paths.
- Updates documentation, agent instructions, and missing-pool recovery guidance.
| File | Description |
|---|---|
docs/src/content/docs/specs/work-queue-specification.md |
Defines first-use installation requirements and exclusions. |
docs/src/content/docs/reference/work-queue.md |
Explains on-demand installation and administrator-only changes. |
docs/src/content/docs/patterns/workqueue-ops.md |
Updates native queue deployment guidance. |
docs/adr/71495-additive-first-use-work-queue-pool-installation.md |
Revises the decision to support trusted first-use installation. |
actions/setup/js/work_queue_logging.test.cjs |
Updates expected missing-pool recovery guidance. |
actions/setup/js/work_queue_logging.cjs |
Explains configuration, recompilation, and authority constraints. |
actions/setup/js/work_queue_dispatch.test.cjs |
Covers installation, recovery, launch, and refusal scenarios. |
actions/setup/js/work_queue_dispatch.cjs |
Invokes the installer before new submission and dispatch processing. |
.github/aw/work-queue.md |
Updates agent instructions for automatic installation and exclusions. |
Review effort: Max
|
@copilot address the following outstanding work in one pass:
Push the necessary fixes, reply to each listed review thread and resolve it when addressed. Ignore feedback already answered or resolved. Use the pr-finisher skill and stop when only human review or CI remains; do not trigger CI. Sous-chef head: 5f90ed9
|
|
🎉 This pull request is included in a new release. Release: |

Configured pools were rejected by submission and dispatch handlers when absent from the installed queue Policy, even when declared in
aw.json. In the smoke workflow, admission and dispatch failed before any Claims were created; Claims were not getting stuck during completion.Approach
Reuse the existing authenticated, additive
PoolInstalltransition during trusted first-use submission and dispatch, before deployment synchronization. Preserve installed pools, the Policy epoch, existing worker authority, immutable route verification, preview behavior, and accepted-request recovery. Validate dispatch bounds before installation and retain actionable missing-pool diagnostics.Update operator guidance and add regression coverage for first-use installation, admission, native launch binding, recovery, and rejection paths.
Boundaries and trade-offs
Pool installation is a separate durable transaction: a successfully installed pool can remain if subsequent admission or dispatch fails. Workers, observers, and dry-run previews cannot install pools. Installation cannot approve new worker profiles or change existing pool economics.
The live smoke queue also lacks approved
smoke-work-queue-workerauthority. This change intentionally preserves that approval boundary; installing the pool alone does not resolve it. The smoke pool has no admitted Work or Claims to reset, and resetting the shared queue would affect unrelated pools.Validation
make fmt-cjs && make lint-cjsnpm run typecheck --silentinactions/setup/jsmake agent-report-progressmake agent-report-progress-no-testafter the final diagnostic adjustmentwork_queue_dispatch.test.cjs,work_queue_logging.test.cjs, andwork_queue_control_receipts.test.cjs: 286 tests passedNo live workflow was dispatched and no production queue state was changed during this work. Live installation and worker completion remain unverified; dry-run execution suppresses the mutations and launches needed to prove those effects.