GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — feat: deliver webhook events to existing chats through chat automations by ThomasK33 · Pull Request #30127 · coder/coder

Conversation

@ThomasK33

@ThomasK33 ThomasK33 commented Sep 29, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

Part of CODAGT-1210 (1 of 2). Part of CODAGT-1135.

Stack: PR 5 of "Automations for Coder Agents", on top of #30117. The ticket is split in two by operation: this PR delivers webhook events to existing_chat targets; the stacked follow-up delivers them to new_chat targets and closes CODAGT-1210. Until then a new_chat automation's events endpoint answers 501.

What this adds

  • POST /api/experimental/chat-automations/{automation}/events. External systems send the automation's webhook secret as Authorization: Bearer <secret> and a JSON body of at most 256 KiB. The route has no API key middleware and sits outside the /api/experimental group, behind its own rate limiter keyed by caller and a fixed endpoint key (IP address for unauthenticated callers), so varying the automation id does not reset the budget.
  • Secret check: SHA-256 of the bearer value, compared in constant time. Unknown ids, other kinds, and wrong secrets all get the same 401. The chat-automations experiment is checked for the automation owner only after the secret matches (404 when off). The body is then read: over the limit 413, not JSON 400.
  • chatd.PublishAutomationWebhook sends as the owner (dbauthz.As with the owner's subject) through SendMessage with the queue busy behavior set explicitly, so automations never interrupt or steer. user_prompt_submit hooks run first: a denial is 403, an unreachable hook service 502.
  • One admission check runs before the send (so refused events never reach hooks) and again in the AdmitInTx callback, which locks the automation together with the chat's queued automations in one ascending-order call. Under the lock it rechecks: enabled, secret version (a request verified before a rotation but committed after it gets 401), single-use state, target chat (root chat of the owner, same org, not archived), owner status, and the owner's chat:update permission. It then applies When busy: skip refuses a busy chat (409), queue refuses input beyond the automations' share, half the chat queue cap rounded down and at least 1 (429); busy and the share count only queued rows that promotion would still deliver. It marks a single-use webhook consumed and returns the provenance.
  • The message has two parts: the saved prompt, and a labeled part with the body as untrusted event data inside <automation_event_data> tags. json.HTMLEscape escapes <, >, and & in the body, which keeps the JSON value and makes the closing tag impossible to forge.
  • chatd.Config.Authorizer (wired from options.Authorizer) for the explicit owner checks; publishing fails closed without one.
  • New query ConsumeChatAutomationWebhookByID with a dbauthz wrapper.

Status codes follow the RFC's failure outcomes table; the chat-without-a-model case returns the same 400 as a person's message.

Notes for reviewers

  • Single-use consumption runs from the chatd publish code as the owner, because the chatd role only reads chat_automation. No lower-layer RBAC change.
  • ARCHITECTURE.md prose was drafted by an agent at the user's request; the user will review it.
  • Size: about 1,460 hand-written lines after review fixes (about 770 of them tests), over the ~1,000 budget because of the review hardening. Generated: about 360 lines (coderd/apidoc, dbmock, dbmetrics, querier.go, queries.sql.go, docs/reference/api/schemas.md, typesGenerated.ts).
  • Dogfood UAT ran through Coder Agents on a real dev deployment with curl deliveries. Round 1 found error-mapping defects, fixed here; rounds 2 and 3 passed, the last on the final code (the head after it changes only ARCHITECTURE.md).
  • Deferred: CODAGT-1233 (stale automation rows filling the physical queue cap; lower-layer SendMessage path).

Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: high

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

chatgpt-codex-connector[bot] reacted with thumbs up emoji
All reactions
  • 👍 1 reaction
ThomasK33 added 7 commits September 29, 2026 19:18
@ThomasK33
fix: let chat automation delete work without update permission
72ce59c
Delete no longer runs the disable update first, which required update
permission. It deletes the row and then removes every queued message
of the automation; the promotion guard discards any message whose
automation no longer exists, so deleting the row is the cutoff.
@ThomasK33
test(coderd): update chat automation delete comment
f67fc0a
@ThomasK33
feat: deliver webhook events to existing chats through chat automations
656e808
Add POST /api/experimental/chat-automations/{automation}/events. The
caller authenticates with the automation's webhook secret, compared in
constant time; unknown ids, other kinds, and wrong secrets get the same
401. After the secret matches, the chat-automations experiment is
checked for the automation owner and the body (at most 256 KiB of JSON)
is read.

chatd's PublishAutomationWebhook sends the saved prompt and a separate,
labeled untrusted event-data part to the target chat as the owner,
always with the queue busy behavior. Its AdmitInTx callback locks the
automation and rechecks enabled, secret version, single-use state,
target, and owner permissions, applies When busy (skip refuses a busy
chat; queue caps automation messages at half the chat queue), consumes
single-use webhooks, and returns the provenance. new_chat targets answer
501 until a follow-up change.

Part of CODAGT-1210 (1 of 2).
@ThomasK33
Merge branch 'tk/codagt-1209b-automations-disable-rotate' into tk/cod…
34491fb
…agt-1210-automations-webhooks
@ThomasK33
Merge branch 'tk/codagt-1209b-automations-disable-rotate' into tk/cod…
b017175
…agt-1210-automations-webhooks
@ThomasK33
fix(coderd): map chat automation event errors to client responses
5a22e1b
- A chat with no enabled model now gets the same 400 as a person's
  message instead of a 500 that senders retry.
- The 429 for a full automation queue share names the share instead of
  repeating the internal error chain.
- The 400 for a body that fails to parse names the parser's cause, such
  as nesting deeper than the parser accepts.
- The event data part starts with a blank line so clients that join
  text parts verbatim do not run it into the prompt.
@ThomasK33
test(coderd): compare every webhook 401 body in one loop
b56dc29
The Unauthorized case sent a wrong secret and an unknown id twice to
compare their bodies. Compare each case's body with the first inside the
loop instead, which also covers missing secrets and session tokens.
@ThomasK33
ThomasK33 added this pull request to stack #30097 September 29, 2026 21:04
@linear-code

linear-code Bot commented Sep 29, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

CODAGT-1135

CODAGT-1210

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@github-actions github-actions Bot assigned ThomasK33 Sep 29, 2026
@ThomasK33

ThomasK33 commented Sep 29, 2026

Copy link
Copy Markdown
Member Author

@codex review

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 29, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-01T06:42:46.633466Z effdb6b Manual request
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

chatgpt-codex-connector[bot]
chatgpt-codex-connector Bot reviewed Sep 29, 2026
View reviewed changes

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b56dc29b95

ℹ️ 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".

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread coderd/coderd.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread coderd/x/chatd/automations_publish.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread coderd/exp_chat_automations.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread coderd/x/chatd/automations_publish.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

@ThomasK33
fix(coderd): harden chat automation webhook delivery
3e7f99c
- 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`_
@ThomasK33

ThomasK33 commented Sep 29, 2026

Copy link
Copy Markdown
Member Author

@codex review

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

chatgpt-codex-connector[bot]
chatgpt-codex-connector Bot reviewed Sep 29, 2026
View reviewed changes

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3e7f99c549

ℹ️ 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".

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread coderd/x/chatd/automations_publish.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread coderd/database/dbauthz/dbauthz.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread coderd/x/chatd/automations_publish.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread coderd/x/chatd/automations_publish.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

@ThomasK33
fix(coderd): check webhook secret before hooks and lock queued automa…
c1375b8
…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`_
@ThomasK33

ThomasK33 commented Sep 29, 2026

Copy link
Copy Markdown
Member Author

@codex review

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

chatgpt-codex-connector[bot]
chatgpt-codex-connector Bot reviewed Sep 29, 2026
View reviewed changes

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c1375b8c7e

ℹ️ 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".

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread coderd/x/chatd/automations_publish.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread coderd/exp_chat_automations.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread coderd/x/chatd/automations_publish.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread coderd/coderd.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

@ThomasK33
fix(coderd): decide automation admission with one check before hooks
23e76e9
- 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`_
@ThomasK33

ThomasK33 commented Sep 29, 2026

Copy link
Copy Markdown
Member Author

@codex review

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

chatgpt-codex-connector[bot]
chatgpt-codex-connector Bot reviewed Sep 29, 2026
View reviewed changes

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 23e76e9d4a

ℹ️ 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".

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread coderd/x/chatd/automations_publish.go Resolved

Uh oh!

There was an error while loading. Please reload this page.

@ThomasK33

ThomasK33 commented Sep 29, 2026

Copy link
Copy Markdown
Member Author

@codex review

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 29, 2026

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 👍

Reviewed commit: 23e76e9d4a

ℹ️ 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".

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ThomasK33
docs(coderd/x/chatd): describe webhook admission after review fixes
4f4e921
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`_
@ThomasK33

ThomasK33 commented Sep 29, 2026

Copy link
Copy Markdown
Member Author

@codex review

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 29, 2026

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Swish!

Reviewed commit: 4f4e921e23

ℹ️ 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".

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ThomasK33 ThomasK33 mentioned this pull request Sep 29, 2026
feat(coderd): create a chat for each webhook event of a new_chat automation #30134
Merged
@ThomasK33
Merge remote-tracking branch 'origin/tk/codagt-1209b-automations-disa…
ec11de5
…ble-rotate' into HEAD
@ThomasK33 ThomasK33 mentioned this pull request Sep 30, 2026
feat: label automation messages in agent chats #30167
Merged
@ThomasK33 ThomasK33 mentioned this pull request Sep 30, 2026
feat: add the Agents automations list page and chat-list automation filter #30171
Merged
@ThomasK33
Merge tk/codagt-1209b-automations-disable-rotate (main d9c13dc) into …
effdb6b
…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`_
@ThomasK33

ThomasK33 commented Oct 1, 2026

Copy link
Copy Markdown
Member Author

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

  • Head: effdb6b81b7888747574555a3df31be4105caa27
  • CI run (workflow_dispatch): https://github.com/coder/coder/actions/runs/36826050074

Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: high

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ThomasK33

ThomasK33 commented Oct 1, 2026

Copy link
Copy Markdown
Member Author

@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.

  • coderd/x/chatd/chatd.go: the Config struct conflicted where main added TracerProvider next to this PR's Authorizer. Both fields are kept. Webhook publishing calls Server.SendMessage, so it gets main's chat_turn span and queue-wait recording without other changes.

Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: high

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 1, 2026

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Delightful!

Reviewed commit: effdb6b81b

ℹ️ 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".

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ThomasK33
ThomasK33 marked this pull request as ready for review October 1, 2026 09:38
@ThomasK33
Merge tk/codagt-1209b-automations-disable-rotate (main 35abc22) into …
6e51a66
…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`_
@ThomasK33

ThomasK33 commented Oct 1, 2026

Copy link
Copy Markdown
Member Author

sync with main 35abc22: no content conflicts; make gen produced no diff

  • Head: 6e51a66782702396730cce6f583cb31deca4c383
  • CI run (pull_request): https://github.com/coder/coder/actions/runs/36851382664

Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: high

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

ibetitsmike
ibetitsmike reviewed Oct 1, 2026
View reviewed changes

@ibetitsmike ibetitsmike left a comment

Copy link
Copy Markdown
Collaborator

There was a problem hiding this comment.

Choose a reason for 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

Review coverage
  • code-review Standards: 0 findings (Swagger annotations, error wrapping, doc comments, body limit, ARCHITECTURE.md adds no TODOs)
  • code-review Spec: 0 findings (matches the RFC Webhooks, Acceptance transaction, and Failure outcomes sections; new_chat 501 is deferred to the next layer as described)
  • frontend-review: FE2 PASS, FE1 and FE3 to FE10 N/A (only generated typesGenerated.ts changed)
  • coder-frontend-review: types and naming PASS, other roles N/A
  • Existing threads: 13 Codex threads, all resolved (11 fixed, 1 declined with a reason, 1 deferred to CODAGT-1233); none reopened

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@ThomasK33
Merge tk/codagt-1209b-automations-disable-rotate (main d11809f) into …
d46e3dd
…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`_
@ThomasK33

ThomasK33 commented Oct 1, 2026

Copy link
Copy Markdown
Member Author

sync with main d11809f: merged #30117

  • Head: d46e3dd804f45ebfe0cd13a6895614e827233569
  • CI run (pull_request): https://github.com/coder/coder/actions/runs/36886013355

Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: high

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

ibetitsmike
ibetitsmike reviewed Oct 1, 2026
View reviewed changes

@ibetitsmike ibetitsmike left a comment

Copy link
Copy Markdown
Collaborator

There was a problem hiding this comment.

Choose a reason for 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.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@ThomasK33
Merge tk/codagt-1209b-automations-disable-rotate (main a328bee) into …
258afe9
…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`_
@ThomasK33

ThomasK33 commented Oct 1, 2026

Copy link
Copy Markdown
Member Author

sync with main a328bee: merged #30117

  • Head: 258afe9afc147c9db0f4cebf93fbe8cf450ed2be
  • CI run (pull_request): https://github.com/coder/coder/actions/runs/36909696808

Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: high

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

ibetitsmike
ibetitsmike approved these changes Oct 1, 2026
View reviewed changes

@ibetitsmike ibetitsmike left a comment

Copy link
Copy Markdown
Collaborator

There was a problem hiding this comment.

Choose a reason for 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.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@ThomasK33
Merge tk/codagt-1209b-automations-disable-rotate (main 15382eb) into …
94ad2cb
…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`_
@ThomasK33

ThomasK33 commented Oct 1, 2026

Copy link
Copy Markdown
Member Author

merged #30117

  • Head: 94ad2cb816f491b74b1e8ae2af86965e119c10be
  • CI run (pull_request): https://github.com/coder/coder/actions/runs/36943705664

Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: high

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ThomasK33
Merge tk/codagt-1209b-automations-disable-rotate (main 15382eb) into …
f609f2d
…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`_
@ThomasK33

ThomasK33 commented Oct 2, 2026

Copy link
Copy Markdown
Member Author

merged #30117

  • Head: f609f2d90bdbdcbb64f952a612e69343336c3118
  • CI run (pull_request): https://github.com/coder/coder/actions/runs/36948139115

Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: high

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ThomasK33
Merge tk/codagt-1209b-automations-disable-rotate (main dc07908) into …
4cdbadb
…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`_
@ThomasK33

ThomasK33 commented Oct 2, 2026

Copy link
Copy Markdown
Member Author

merged #30117 (main dc07908)

  • Head: 4cdbadbff3c507a1ff7f4f29f6f8da5b64f88ffa
  • CI run (pull_request): https://github.com/coder/coder/actions/runs/36968857182

Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: high

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ThomasK33
Merge tk/codagt-1209b-automations-disable-rotate into tk/codagt-1210-…
b623c26
…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`_
@ThomasK33
ThomasK33 merged commit b517db4 into main Oct 2, 2026
52 of 54 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@github-actions github-actions Bot locked and limited conversation to collaborators Oct 2, 2026
@ThomasK33
ThomasK33 deleted the tk/codagt-1210-automations-webhooks branch October 2, 2026 15:55
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Reviewers

@chatgpt-codex-connector chatgpt-codex-connector[bot] chatgpt-codex-connector[bot] left review comments
@ibetitsmike ibetitsmike ibetitsmike approved these changes

Uh oh!

There was an error while loading. Please reload this page.

Assignees

@ThomasK33 ThomasK33

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@ThomasK33 @ibetitsmike
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.