Repository navigation
Azure Storage queue: round-trip GroupId - #100
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Updated 2026-10-06: reviewed repairs are now pushed at The build caller is pinned to guarded core commit Repair and local validation evidenceVerified legacy-mode mismatch: the wire body drops GroupId/CorrelationId/Properties while Enqueued previously reported them. The repair makes the event reflect the metadata actually stored, preserves the legacy wire format, documents the contract, and registers the shared empty-group test. Legacy/envelope event-versus-dequeue regression: legacy failed before repair; both pass afterward. Focused local Azurite 3.35.0 run: 5 passed, 2 intentional legacy GroupId skips. Both library target frameworks build with zero warnings/errors against sibling core source. This is disposable-emulator evidence, not live Azure evidence. These local checks ran on 2026-10-05. Application/test source is unchanged from those validated repair commits; this follow-through added only the approved workflow guard/pin. YAML parsing and diff checks passed. No new local application test run is claimed. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bd80c80dcc
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…ness The GroupId APIs are not in 13.0.4. Use the nightly until a release is available.
|
Downstream CI pin: this PR consumes |
…rker errors Dead-lettering rebuilt the message from the deserialized value, which a handler may have changed. It now forwards the original body, keeping the payload, GroupId, CorrelationId and properties exactly. The worker loop logs SDK timeouts, waits at least one second after a dequeue error, and does not abandon during shutdown. The metadata test no longer asserts on missing config and deletes the queue it creates. Legacy mode now runs the reused-options test.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
…sserts GroupId is not persisted), use core preview .0.21
|
In Default mode the Enqueued entry now carries the persisted CorrelationId and Properties as well as GroupId (32d3715), so it matches the dequeued entry. A test covers this. |
|
@codex review |
|
Codex Review: Didn't find any major issues. Chef's kiss. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
What this adds
Support for the new
QueueEntryOptions.GroupIdfrom Foundatio core (FoundatioFx/Foundatio#579).Azure Storage queues have no grouping feature, so
GroupIdis stored as metadata in the message envelope and returned onIQueueEntry.GroupIdwhen the message is dequeued.-poisonqueue when retries are exceeded.Enqueuedhandlers carriesGroupIdin the default mode.The legacy (non-envelope) mode has nowhere to store it, so
GroupIdisn't kept there, just likeCorrelationIdandProperties. The shared GroupId tests for legacy mode are skipped and explain why.The enqueue and dead-letter code is otherwise unchanged from
main; each change is one added line.Not in this PR (draft follow-up, held for the next release)
CorrelationIdandPropertieson the entry passed toEnqueuedhandlers, to match the other providers.Tests
QueueTestBaseGroupId tests: round-trip, kept on retry, empty means no group, reused options.Enqueuedentry'sGroupIdmatches the dequeued entry;GroupIdis kept in the poison-queue envelope.Independent dependency validation: core and TestHarness now use matching published
13.0.5-preview.0.10from core #57907568d0e. The original published-package build failed six CS0115 overrides (three missing methods in both default and legacy queue test classes); after this two-pin correction, the full Release solution builds with zero warnings/errors and source linking disabled. No local emulator or runtime tests were run for this dependency-only change. Both normal hosted runs pass atde98dcf8: Azurite CI, 108 passed, 0 failed, 15 skips. CI and stable package publication steps are skipped.Compatibility
GroupIdis a new optional envelope field, and older messages deserialize withnull. This PR consumes the matching core/TestHarness preview addingGroupId; stable release ordering and broader Properties-wrapper compatibility remain coordinated with core (FoundatioFx/Foundatio#579).Update
GetQueueaccept the newgroupIdResolverparameter (breakingQueueTestBasesignature change in Add GroupId to queues (tenant/group key with SQS fair-queue, FIFO, and Service Bus session support) Foundatio#579), and run the shared resolver tests. In legacy mode, the resolver tests check the valueEnqueuinghandlers see and that the dequeuedGroupIdisnull, because only the body is stored.13.0.5-preview.0.10.