SIGN IN SIGN UP

refactor(queue): split queue reader capabilities (#4743)

## Description

- replace the broad `JobQueueReader` with focused `RunQueueReader`,
`QueueStatusReader`, `QueuePartitionReader`, `QueueBacklogReader`, and
`QueueItemReader` interfaces
- allow queue processors to override each reader independently,
alongside the existing producer, consumer, and attempt-resetter
overrides
- narrow App API to the two reader capabilities it actually uses: run
reads and individual item reads
- keep App API shard routing on `queue.ShardRegistry`
- make per-shard key-queue backlog reads an optional `BacklogOperations`
capability so non-key-queue shards do not have to implement them
- narrow shard-backed reader and attempt-resetter constructors to the
read-only `ShardRegistry`
- update devserver and finalization integration wiring to provide only
the queue capabilities they consume

## Testing

- `go test -count=1 ./pkg/execution/queue ./pkg/execution/checkpoint
./pkg/api/apiv1 ./pkg/debugapi ./pkg/coreapi ./pkg/execution/executor`
- `go test -count=1 -run '^$' ./pkg/execution/state/redis_state`
- `go test -count=1 ./tests/execution/executor -run '^TestFinalize'`

## Release note

None

## Migration note

None
B
Bruno Scheufler committed
f7ae7bdaeb56bb98df1407b3694e9ea192a86501
Parent: a81dc79
Committed by GitHub <noreply@github.com> on 8/14/2026, 10:47:32 PM