Repository navigation
Handle an absent work-queue branch during dispatcher activation - #67104
Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot resolve the merge conflicts on this branch. |
There was a problem hiding this comment.
🟡 Changes recommended
The absent dispatcher still cannot emit the required noop because safe-output normalization rejects all unassigned-dispatcher messages.
2 open findings
What changed in this PR
Allows authenticated dispatchers to treat an absent work-queue branch as an uninitialized snapshot while preserving Policy validation.
Changes:
- Supports absent-branch dispatcher snapshots and summaries.
- Rejects existing policyless ledgers and worker snapshots.
- Updates dispatcher guidance and regression coverage.
Security review found no permission or supply-chain weakening; compiler scanners were not run under review constraints.
| File | Description |
|---|---|
actions/setup/js/write_work_queue_snapshot.test.cjs |
Tests absent dispatcher snapshots. |
actions/setup/js/write_work_queue_snapshot.cjs |
Allows absent non-worker queues. |
actions/setup/js/work_queue_summary.test.cjs |
Tests absent-queue summaries. |
actions/setup/js/work_queue_summary.cjs |
Summarizes absent dispatcher queues. |
actions/setup/js/work_queue_mcp_server.test.cjs |
Tests snapshot validation. |
actions/setup/js/work_queue_mcp_server.cjs |
Loads absent non-worker snapshots. |
actions/setup/js/work_queue_documentation.test.cjs |
Updates workflow documentation assertions. |
actions/setup/js/work_queue_claim_scope.cjs |
Admits absent dispatcher scope. |
.github/workflows/eslint-factory-dispatcher.md |
Directs absent queues to noop. |
.github/workflows/eslint-factory-dispatcher.lock.yml |
Regenerates workflow metadata. |
🧠 Review effort: Balanced
| if (snapshot.transactionLog === "" && !(snapshot.sha === null && role !== "worker" && (role !== "observer" || configuredRole === "observer"))) | ||
| throw scopeError("work_queue_policy_missing: existing queues and workers require an installed Policy", "work_queue_policy_missing"); |
There was a problem hiding this comment.
Fixed in cb6cdb9: the safe-output append path now permits only noop for an absent dispatcher snapshot, with regressions rejecting queue-control messages, worker effects, ordinary dispatch, and existing policyless ledgers.
| `"uninitialized"` with a null snapshot SHA means the queue branch does not | ||
| exist yet. Treat it as an empty backlog and stop with `noop`; there is no |
There was a problem hiding this comment.
Updated the shared work-queue guidance in cb6cdb9 to distinguish a null-snapshot_sha absent branch from an existing policyless ledger; workers still require Policy.
|
@copilot resolve the merge conflicts on this branch. |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Merged |
The branch is already up to date with |
|
Great work on the dispatcher fix for the absent work-queue branch — the regression tests are a nice touch. This looks ready for review.
|
|
@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: 93172bd
|
Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
|
🎉 This pull request is included in a new release. Release: |


The ESLint Factory Dispatcher failed during activation when the work-queue branch had not yet been created. Snapshot creation treated genuine branch absence as a missing-Policy error.
noopwhen the branch is absent; do not submit or dispatch work without installed Policy.