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: add chat automations management API behind chat-automations by ThomasK33 · Pull Request #30112 · coder/coder

Conversation

@ThomasK33

@ThomasK33 ThomasK33 commented Sep 29, 2026

Copy link
Copy Markdown
Member

Adds the management API for chat automations under /api/experimental/organizations/{organization}/chat-automations, behind the new user-scoped chat-automations experiment. This is the first of two PRs for RFC step 3; nothing publishes automation messages yet.

  • Experiment: chat-automations is in ExperimentsKnown, ExperimentsUserScoped, and the ruleguard list in scripts/rules.go. Every route asks chatd.AutomationsEnabled(ctx, api.ExperimentEvaluator, callerID), which fails closed on a missing subject or evaluator; the routes stay mounted and return 404 when the experiment is off for the caller, so a runtime rule for one user applies on the next request without a restart. There is no /api/v2 alias.
  • Routes: list, create (201), get, PATCH, delete (204), with Swagger annotations and audit entries. List returns the automations in the organization the caller can read (members see their own, organization admins see all).
  • Service (coderd/x/chatd/automations.go): create validates kind and target shape, a non-empty prompt, a five-field cron and IANA time zone, model access, and that an existing_chat target is a root chat of the owner in the same organization. It defaults when_busy to skip for schedules and queue for webhooks and computes the first schedule cursor. PATCH runs the same per-field validation on each changed field, rejects kind and target_mode, bumps schedule_revision on prompt, cron, or time zone changes, and recomputes the cursor on cron or time zone changes.
  • Owner-only: only the owner can PATCH an automation, even with organization-admin or site-owner roles (403); admins can list, read, and delete.
  • Secrets: a webhook's secret (coder_automation_ prefix) is returned once in the create response. Only its SHA-256 is stored, and it appears in no list, get, audit, or log output.
  • Cap: new option --chat-max-automations-per-owner (default 50) caps automations per owner across all organizations; creating one more returns 409. Creates serialize on a per-owner advisory lock.
  • Cron: cron.Standard(spec, timeZone) accepts any standard five-field expression (the existing Weekly rejects day-of-month and month restrictions). Responses include the next five run times of an enabled schedule.

PR 3b (stacked on this one) adds disable and re-enable with the queue cutoff, makes delete run disable first, and adds secret rotation and the schedule preview route. Until then, the queue promotion guard from #30096 discards queued rows whose automation was deleted.

Dogfood UAT ran on a real dev instance and passed: create/list/get/patch/delete via curl, owner-only 403s for an organization admin and the site owner, the cap (including concurrent creates and cross-organization counting), a runtime rule turning the experiment off for one user without a restart, and /api/v2 404s.

Part of CODAGT-1209 (PR 3b closes it)
Part of CODAGT-1135
Refs CODAGT-1217

Stack: PR 3 of the Automations for Coder Agents stack, on top of #30096 (which is on top of #30085).

This PR was written by an AI agent (xum) and reviewed by the agent's own test audit and UAT. A human has not reviewed it yet.


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 4 commits September 29, 2026 14:22
@ThomasK33
feat: add chat automations management API behind chat-automations
d06d0af
Add the management API for chat automations under
/api/experimental/organizations/{organization}/chat-automations
(list, create, get, PATCH, delete). There is no /api/v2 alias.

- Register chat-automations as a user-scoped experiment (ExperimentsKnown,
  ExperimentsUserScoped, and the ruleguard rule). Routes decide it per
  caller through the experiment evaluator and return 404 when it is off,
  including after a runtime rule change without a restart.
- Add --chat-max-automations-per-owner (default 50). Creating one more
  automation than the cap, counted across all organizations, fails with
  409.
- Add chatd CreateAutomation, UpdateAutomation, DeleteAutomation, and
  AutomationNextRuns with per-field validation shared by create and
  PATCH. Only the owner can PATCH; org admins and site owners can list,
  get, and delete. Kind and target mode cannot change.
- Webhook secrets are returned only by create; only their SHA-256 hash
  is stored.
- Add cron.Standard for general five-field specs in an IANA time zone.
- Add queries GetChatAutomationsByOrganizationID,
  CountChatAutomationsByOwnerID, and UpdateChatAutomationByID with
  dbauthz, SDK types, and experimental client methods.

Refs CODAGT-1209, CODAGT-1217
@ThomasK33
refactor(coderd): dedupe chat automation response conversion
bfcc971
Add a chatAutomationResponse helper for the four handlers that convert a
row with its upcoming runs, and drop a redundant deleted check on model
configs: GetChatModelConfigByID already filters deleted rows.

Signed-off-by: Thomas Kosiewski <[email protected]>
@ThomasK33
test(coderd): pin chat automation guards that tests reached only indi…
06c6ae6
…rectly

Strengthen the chat automation route tests where assertions passed for
the wrong reason or left branches unexercised:

- Compare the stored webhook secret hash with an independent SHA-256 of
  the returned secret instead of only checking the plaintext is absent.
- Create as the site owner, who can read the member's chat and a model
  config in another organization, so the ownership and organization
  checks are reached instead of the lookup denial.
- Assert an automation is not found under another organization's path.
- Assert a prompt change bumps schedule_revision.
@ThomasK33
fix: clarify automation cap errors and cron day matching
189c394
The 409 for the per-owner cap no longer repeats wrapped internal errors;
it states the configured limit. Document that restricting both day
fields matches either one, as in standard cron.

---
_Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_
@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-1209

CODAGT-1217

All reactions

Sorry, something went wrong.

Uh oh!

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

@github-actions

github-actions Bot commented Sep 29, 2026 •
edited
Loading

Uh oh!

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

Copy link
Copy Markdown
Contributor

Docs preview

Check off each page once it's been reviewed. If a page changes in a later push, its checkbox clears automatically so it gets a fresh look. Pages not yet wired into the docs navigation aren't listed here.

  • docs/admin/setup/configuration-reference.md
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 added this pull request to stack #30097 September 29, 2026 16:28
@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:11:58.626163Z 3f4cd08 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

chatgpt-codex-connector Bot commented Sep 29, 2026

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Can't wait for the next one!

Reviewed commit: 189c394a42

ℹ️ 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: disable, re-enable, and rotate chat automations with schedule preview #30117
Merged
@ThomasK33
Merge remote-tracking branch 'origin/tk/codagt-1208-automations-seam-…
c1e1686
…guard' into tk/codagt-1209-automations-mgmt-routes
@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: c1e1686cd8

ℹ️ 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 codersdk/chatautomations.go Resolved

Uh oh!

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

@ThomasK33
fix: let PATCH clear a chat automation reasoning effort
45bf292
An empty reasoning_effort in PATCH clears the override, so new chats
use the model default again. Before, null was ignored and an empty
string was rejected, so the override could not be removed.

---
_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. Another round soon, please!

Reviewed commit: 45bf292115

ℹ️ 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 commented Sep 29, 2026

Copy link
Copy Markdown
Member Author

Readiness record (agent): ready, with follow-ups tracked.

  • Final head: 45bf292. CI: 32 of 32 checks green. Unresolved threads: 0.
  • Codex: 3 rounds. Round 1 was clean on 189c394. Round 2, after the docs-only merge of feat(coderd): add chatd automation admission seam and queue promotion guard #30096, found one P2 (PATCH could not clear reasoning_effort), fixed with a red-then-green test. Round 3 was clean on 45bf292.
  • Dogfood UAT passed on d06d0af. Later changes are an error-detail text and the reasoning_effort clear, both covered by Go tests.
  • An independent clean-context review recommended ready with tracked follow-ups and found no repeat UAT necessary.
  • Deferred, low priority: PATCH ignores unknown fields; no prompt size limit beyond the request body limit; an archived chat is accepted as a target; PATCH {} updates updated_at; Swagger documents only success codes.

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.

This was referenced Sep 30, 2026
feat: label automation messages in agent chats #30167
Merged
feat: add the Agents automations list page and chat-list automation filter #30171
Merged
@ThomasK33
Merge tk/codagt-1208-automations-seam-guard (main d9c13dc) into tk/co…
3f4cd08
…dagt-1209-automations-mgmt-routes

codersdk/deployment.go conflicted where main added the chat-board and
chat-stage-metrics experiments next to chat-automations. The resolution
keeps all three in the Experiment constants, DisplayName and
ExperimentsKnown, with main's entries first. Generated files (apidoc,
API schema docs, typesGenerated.ts) were regenerated with make gen
instead of being merged by hand.

---
_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 codersdk/deployment.go (kept main's chat-board and chat-stage-metrics experiments plus chat-automations); generated apidoc/schemas/typesGenerated regenerated with make gen

  • Head: 3f4cd0857c3ec52b4d14ab577d883faa0c3966f0
  • CI run (workflow_dispatch): https://github.com/coder/coder/actions/runs/36823222173

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 3f4cd08 (sync with main d9c13dc). Please do not re-review main's code or the unchanged stack code.

  • codersdk/deployment.go: main added the chat-board and chat-stage-metrics experiments where this PR adds chat-automations. The resolution keeps all three in the Experiment constants, DisplayName and ExperimentsKnown.
  • Generated files (coderd/apidoc, docs/reference/api, site/src/api/typesGenerated.ts) were regenerated with make gen, not merged by hand.

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

Reviewed commit: 3f4cd0857c

ℹ️ 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-1208-automations-seam-guard (main 35abc22) into tk/co…
975924b
…dagt-1209-automations-mgmt-routes

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: 975924bf3e5a77bba4108d19398f88a789471184
  • CI run (pull_request): https://github.com/coder/coder/actions/runs/36849583098

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.

The management service and routes match the CODAGT-1209 part 1 scope. The experiment gate fails closed, PATCH is owner-only, the cap uses a per-owner advisory lock, only the secret hash is stored, and the earlier Codex thread on clearing reasoning_effort is fixed. One small naming nit remains.

Verdict: no blocking issues

Severity: P0 0, P1 0, P2 0, P3 1

Review coverage
  • code-review Standards: 1 finding kept (P3 naming). Its note that delete has no owner-only check was dropped: CODAGT-1209 says admins can delete.
  • code-review Spec: 0 findings. Disable/enable, delete-runs-disable, secret rotation and schedule preview are deferred to #30117 as the description states.
  • frontend-review (generated site/src/api/typesGenerated.ts only): FE2 PASS, FE1 and FE3 to FE10 N/A.
  • coder-frontend-review types-and-naming: PASS. Other roles N/A (generated file only).
  • Adjudicator checks: the automation prompt size is bounded by the same 4 MiB httpapi.Read limit as postChatMessages, so it is not a new gap. Pagination of the list route and the cap message when the flag is 0 are not raised. The other deferred hardening items are tracked in CODAGT-1226.

Sorry, something went wrong.

Uh oh!

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

All reactions
Comment thread coderd/x/chatd/automations.go Outdated
}
// Work computed from an older prompt or schedule is stale once
// either changes.
scheduleChanged := false

@ibetitsmike ibetitsmike Oct 1, 2026

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.

P3: scheduleChanged is also set by prompt edits

This flag becomes true when only the prompt changes (line 309) and then drives the ScheduleRevision bump at line 384. Someone reading line 384 will assume prompt edits leave pending scheduled work alone, but they invalidate it. The comment above the declaration explains this; the name does not. The code is unchanged through the top of the stack.

Fix: Rename it to something like revisionChanged or invalidatesPendingRuns at lines 297, 309, 332 and 384.

Sorry, something went wrong.

Uh oh!

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

All reactions

@ThomasK33 ThomasK33 Oct 1, 2026

Copy link
Copy Markdown
Member Author

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.

Fixed in 7a3af68: renamed to invalidatesPendingRuns at all four uses.


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.

All reactions
@ThomasK33
Merge tk/codagt-1208-automations-seam-guard (main d11809f) into tk/co…
605f223
…dagt-1209-automations-mgmt-routes

No conflicts. make gen produced no diff.

---
_Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_
@ThomasK33
refactor(coderd/x/chatd): rename scheduleChanged to invalidatesPendin…
7a3af68
…gRuns

A prompt edit also sets the flag, and it drives the schedule revision
bump that invalidates pending scheduled work, so name it for that.

---
_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 #30096; renamed scheduleChanged to invalidatesPendingRuns (Mike's review)

  • Head: 7a3af6855133f44cd46c2d06c9bcfd6261526ed1
  • CI run (pull_request): https://github.com/coder/coder/actions/runs/36883379066

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 four-use invalidation rename and preserved reasoning-effort clearing; the naming thread is fixed in source with an author reply but remains open on GitHub. New findings: Standards 0, Spec 0, Frontend 0, with no duplicate inline comments. Fresh targeted management/gating, queue-guard/locking, capacity and repeated concurrency tests passed, and generated contracts match. Storybook CI failed on Pixel snapshot-reporting HTTP 500, leaving visual validation incomplete; full suites, local frontend typecheck and remote UAT were not run.

Sorry, something went wrong.

Uh oh!

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

All reactions
@ThomasK33
Merge tk/codagt-1208-automations-seam-guard (main a328bee) into tk/co…
e022601
…dagt-1209-automations-mgmt-routes

Resolved conflicts:
- coderd/coderd.go: kept this layer's /organizations/{organization}/chat-automations
  route group and main's new /organizations/{organization} group that mounts the
  chat projects routes. Chi matches the static chat-automations segment first,
  so both route groups stay reachable.
- dbauthz_test.go: kept both sides.
- Generated apidoc and API docs were regenerated with make gen.

---
_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 #30096 (kept the chat-automations route group next to main's new organization chat routes)

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

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 e022601d5730. The naming and reasoning-effort fixes remain intact, and the restack preserves the management contracts. Fresh management/gating, queue/provenance/locking and interruption tests plus generated-contract checks passed. Current required CI passed. Accepted management and downstream follow-ups remain unchanged.

Sorry, something went wrong.

Uh oh!

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

All reactions
@ThomasK33
Merge tk/codagt-1208-automations-seam-guard (main 15382eb) into tk/co…
ecc2bac
…dagt-1209-automations-mgmt-routes

No conflicts. make gen regenerated docs/admin/setup/configuration-reference.md:
main's new configuration reference generator now also lists this layer's
chat max-automations-per-owner option in its format.

---
_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 #30096 (regenerated main's new configuration reference for this layer's option)

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

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 2, 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 reviewed this PR on behalf of @ibetitsmike.

One newly reproduced integration finding blocks approval at ecc2bacdd3e4. Original accepted follow-ups remain unchanged. No source fix was applied.

Sorry, something went wrong.

Uh oh!

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

All reactions
Comment thread codersdk/deployment.go
ExperimentEnableAIWorkspaceDebug,
ExperimentChatBoard,
ExperimentChatStageMetrics,
ExperimentChatAutomations,

@ibetitsmike ibetitsmike Oct 2, 2026

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.

P2: Extend the display-name test map for the new experiment

This adds the twentieth known experiment, but TestExperimentDisplayNames still expects only the inherited 19 entries. Both current Ubuntu and PG17 CI jobs fail at codersdk/deployment_test.go:61; the exact uncached test fails locally too. Add codersdk.ExperimentChatAutomations: "Chat Automations" to that existing expected map. A scratch-only one-entry overlay makes the test pass; the production display-name mapping is already correct.

Sorry, something went wrong.

Uh oh!

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

All reactions

@ThomasK33 ThomasK33 Oct 2, 2026

Copy link
Copy Markdown
Member Author

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.

Fixed in ee760de: TestExperimentDisplayNames now expects codersdk.ExperimentChatAutomations: "Chat Automations". go test ./codersdk/ passes at this head; the fix is merged upward into every layer above.


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.

All reactions
@ThomasK33
test(codersdk): expect the Chat Automations experiment display name
ee760de
Main's TestExperimentDisplayNames requires an expected display name for
every known experiment. This layer adds chat-automations as the
twentieth, so the expected map now includes it.

---
_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

fix: TestExperimentDisplayNames now expects the Chat Automations display name (Mike's P2; main's new test)

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

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 2, 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.

The missing ExperimentChatAutomations display-name expectation is fixed at ee760de9c8d36910a88d6aa738a47583a88cdea6. Fresh uncached tests pass for display names, chat-limit validation, safe experiments, and user-scoped experiment rules: four roots and 39 test/parent outcomes, with no skips.

The remaining 33 own-file blobs and patch payloads, base, and PR body are unchanged from the completed review. Prior management/runtime validation and independent Standards, Spec, and generated-FE dispositions are retained for that unchanged source, not reported as newly executed checks. Accepted deferrals remain accepted.

Current exact-head required CI and all observed checks passed at the approval gate. This is a layer-local approval, not approval of the whole stack; the lower #30096 CI race failure and outstanding upper-layer review issues are not waived. No full local SDK/repository suite, new runtime/race suite, lint/generation, UI/Pixel, or remote UAT was run for this test-only fix.

Sorry, something went wrong.

Uh oh!

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

All reactions
@ThomasK33
Merge tk/codagt-1208-automations-seam-guard (main dc07908) into tk/co…
dfae36c
…dagt-1209-automations-mgmt-routes

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 #30096 (main dc07908)

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

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-1208-automations-seam-guard into tk/codagt-1209-autom…
afff2be
…ations-mgmt-routes

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 9316d67 into main Oct 2, 2026
32 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-1209-automations-mgmt-routes 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.