GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | |||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | |||||||||||||||||||||||||||
GeezerVison is showing github.com — feat: deliver webhook events to existing chats through chat automations by ThomasK33 · Pull Request #30127 · coder/coder Conversation
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@codex review |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
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. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Here are some automated review suggestions for this pull request.
Reviewed commit: b56dc29b95
Your 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".
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
- Limit webhook event requests per caller across all automation ids, in addition to the per-path limiter, so cycling random ids no longer gets a fresh bucket per request (new httpmw.RateLimitByEndpointKey). - Refuse an already-used single-use webhook before SendMessage, so a repeated request never reaches the user_prompt_submit hooks. The locked recheck in admitAutomation still handles races. - Report a target chat deleted between the pre-send check and the send as ErrAutomationTargetUnavailable instead of an internal error. - Drop the body @PARAM that declared the event as an object; the body can be any JSON value. Regenerated the swagger docs. --- _Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_
|
@codex review |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Here are some automated review suggestions for this pull request.
Reviewed commit: 3e7f99c549
Your 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".
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
…tions - Refuse a webhook request whose secret was rotated before SendMessage, so its payload never reaches the user_prompt_submit hooks. The check under lock still catches a rotation during the send. - In the admission callback, read the chat's queued rows first and lock this automation together with the queued rows' automations in one ascending-id call, the order promotion uses, to avoid deadlocks between deliveries to chats that queue each other's rows. - Count only queued automation rows that promotion would still deliver (automation present, enabled, same queue generation) toward the automations' queue share, so stale rows no longer refuse deliveries. - Remove the now unused CountChatQueuedAutomationMessagesByChatID query. --- _Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_
|
@codex review |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Here are some automated review suggestions for this pull request.
Reviewed commit: c1375b8c7e
Your 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".
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
- Admission is decided by one checkAdmission function, called on unlocked reads before SendMessage and again on the locked rows in the admission callback. It covers enabled, webhook kind and secret version, single-use consumption, the target, when-busy skip and the queue share, so no refusal that the callback can make reaches the prompt hooks first. - A chat is busy, and the automations' share is counted, only from queued rows promotion would keep, so a chat whose queue holds only stale automation rows counts as idle. - Register the webhook events route outside the /api/experimental group so only its per-caller limiter applies; the group's limiter keys unauthenticated callers by path. - Document the event body as an unconstrained JSON schema. --- _Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_
|
@codex review |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Here are some automated review suggestions for this pull request.
Reviewed commit: 23e76e9d4a
Your 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".
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
|
@codex review |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Codex Review: Didn't find any major issues. 👍 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". |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
The events section now says that the route sits outside the /api/experimental group with a fixed-key limiter, that the admission checks run before the send so refused events never reach hooks, that the callback locks the automation together with the chat's queued automations in one call, and that only promotable queued rows count toward busy and the queue share. --- _Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_
|
@codex review |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Codex Review: Didn't find any major issues. Swish! 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". |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
…ble-rotate' into HEAD
…tk/codagt-1210-automations-webhooks coderd/x/chatd/chatd.go conflicted in the Config struct, where main added TracerProvider next to the automation Authorizer field. Both fields are kept. Webhook publishing goes through Server.SendMessage, so it picks up main's chat_turn span and queue-wait recording without further changes. make gen produced no diff. --- _Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_
|
sync with main d9c13dc: hand-resolved coderd/x/chatd/chatd.go Config (kept main's TracerProvider and the automation Authorizer); make gen produced no diff
Generated with |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@codex review Scope: only the conflict resolution in merge commit effdb6b (sync with main d9c13dc). Please do not re-review main's code or the unchanged stack code.
Generated with |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Codex Review: Didn't find any major issues. Delightful! 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". |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
…tk/codagt-1210-automations-webhooks No conflicts. make gen produced no diff. --- _Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_
|
sync with main 35abc22: no content conflicts; make gen produced no diff
Generated with |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Xum (an AI coding agent) prepared and posted this review on behalf of Mike. Each finding came from automated review passes and was re-verified against the code; please push back on anything that looks wrong.
This layer adds POST /api/experimental/chat-automations/{automation}/events and chatd.PublishAutomationWebhook for existing_chat targets. The reviewer passes and an independent re-read of the handler, the rate limiter routing, and the admission path (unlocked precheck, then the locked recheck in AdmitInTx) found no issues worth fixing beyond what the earlier Codex rounds already covered. TestChatAutomationEvents and TestPublishAutomationWebhook pass locally at this head.
Verdict: no blocking issues
Severity: P0 0, P1 0, P2 0, P3 0
new_chat 501 is deferred to the next layer as described)typesGenerated.ts changed)
Sorry, something went wrong.
There was an error while loading. Please reload this page.
…tk/codagt-1210-automations-webhooks No conflicts. make gen produced no diff. --- _Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_
|
sync with main d11809f: merged #30117
Generated with |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Xum re-reviewed this PR on behalf of @ibetitsmike using GPT-6.1 Sol (high) Exec subagents.
Verified the 11 prior fixes on the fresh head and checked the unchanged webhook layer against its changed admission, archive, capacity and retry dependencies. New findings: Standards 0, Spec 0, Frontend 0. The existing physical stale-queue cap remains deferred to CODAGT-1233, and the custom-role consumption policy remains accepted and closed. Fresh publisher, HTTP, escaping, authorization and selected dependency tests passed, including ten additional single-use repetitions; Storybook is externally blocked by Pixel report HTTP 500s, and full suites, frontend runtime checks and dogfood were not rerun.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
…tk/codagt-1210-automations-webhooks Resolved conflicts in coderd/apidoc/docs.go coderd/apidoc/swagger.json coderd/database/dbauthz/dbauthz_test.go : hand-written files keep both sides, generated files come from make gen. make gen regenerated coderd/apidoc/docs.go coderd/apidoc/swagger.json --- _Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_
|
sync with main a328bee: merged #30117
Generated with |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Xum validated this PR and approved it on behalf of @ibetitsmike.
Validated head 258afe9afc14. The 11 resolved webhook findings remain fixed; accepted custom-role and physical stale-queue policies remain unchanged. Fresh publisher/concurrency/refusal, event-escaping, HTTP and consumption-authorization tests passed on this head. Current required CI passed. This approval covers existing-chat acceptance, not eventual execution or the rest of the stack.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
…tk/codagt-1210-automations-webhooks No conflicts. make gen produced no diff. --- _Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_
|
merged #30117
Generated with |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
…tk/codagt-1210-automations-webhooks No conflicts. make gen produced no diff. --- _Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_
|
merged #30117
Generated with |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
…tk/codagt-1210-automations-webhooks No conflicts. make gen produced no diff. --- _Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_
Generated with |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
…automations-webhooks Brings main ff158c0 into this layer. No conflicts. --- _Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.