Repository navigation
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".
| { | ||
| CorrelationId = options.CorrelationId, | ||
| Properties = options.Properties, | ||
| GroupId = options.GroupId, |
There was a problem hiding this comment.
Require the Foundatio release that defines GroupId
When this provider is built or packaged outside the coordinated Foundatio source workspace, its project still restores Foundatio 13.0.4 (and the tests restore Foundatio.TestHarness 13.0.4), which predates the GroupId API and shared test methods introduced by Foundatio PR 579. The standalone solution therefore cannot compile against its declared dependencies; if packaging is performed against newer source, the resulting package can instead restore 13.0.4 for consumers and fail when these member references are resolved. Update both package requirements to a release containing the new API before referencing it.
AGENTS.md reference: AGENTS.md:L107-L111
Useful? React with 👍 / 👎.
…ness The GroupId APIs are not in 13.0.4. Use the nightly until a release is available.
|
Downstream CI pin: this PR consumes the |
…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. |
What this adds
Support for the new
QueueEntryOptions.GroupIdfrom Foundatio core.Azure Storage queues have no grouping feature, so
GroupIdis stored as metadata in the message envelope and returned onIQueueEntry.GroupIdwhen the message is dequeued. It is also kept when the message is retried.The legacy (non-envelope) mode has nowhere to store it, so
GroupIdisn't kept there. The shared tests for legacy mode are skipped and explain why.Fixes
The entry returned by
EnqueueAsyncused to always haveCorrelationId = nulland no properties. It now carries theCorrelationId,Properties, andGroupIdthat were actually sent, soEnqueuedhandlers see the real values.Tests
QueueTestBaseGroupId tests: round-trip, kept on retry, empty means no group.Compatibility
Nothing breaks.
GroupIdis a new optional envelope field, and older messages deserialize withnull. This PR needs the Foundatio core release that addsGroupId(FoundatioFx/Foundatio#579).