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 the Agents automations list page and chat-list automation filter by ThomasK33 · Pull Request #30171 · coder/coder

Conversation

@ThomasK33

@ThomasK33 ThomasK33 commented Sep 30, 2026 •
edited
Loading

Uh oh!

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

Copy link
Copy Markdown
Member

Closes CODAGT-1213. Part of CODAGT-1135 (Automations for Coder Agents, RFC step 7).

Adds an Automations list to the Agents UI and an automation_id filter on the chat list, so users can see their automations and find the chats an automation created or wrote to.

Changes

  • Chat-list filter: GET /api/v2/chats?automation_id=<uuid> returns root chats whose chats.automation_id matches (chats the automation created) and chats with a non-deleted message whose chat_messages.automation_id matches (chats it wrote to). The nil UUID is rejected, because the query uses it as "no filter". It is honored only when the chat-automations experiment is on for the caller; otherwise it is ignored, as the RFC says, and the evaluator runs only when the parameter is present. Chat authorization is unchanged. Swagger documents the parameter, and codersdk.ListChatsOptions gains AutomationID. The existing partial indexes back the filter.
  • List page: /agents/automations, with an Automations sidebar entry. Both are hidden when the experiment is off for the viewer (per-user experiment list). The page lists the automations of the organization selected in the Agents organization picker; it shares the stored selection with the new-chat form and has its own picker. Columns: name (with the creating chat for agent-created automations), trigger (cron and time zone, or webhook single or multi use), target (chat link, "New chat each run", or a Missing target badge for a deleted or archived target), next run from the server's next_run_times, an enabled switch (PATCH; a non-owner cannot re-enable), Run now (owner only, schedules only, disabled for a missing target and while another run is pending), and View chats (owner only; a paged dialog backed by the new filter). Chat titles are looked up only for the viewer's own automations. The list refetches every minute so the next run stays current. On mobile, the chats header links to the page, which opens full width with a back link. A Run now failure, such as 409 for a busy chat with skip or 429 for a full queue or share, shows the server message in an alert above the table.
  • Out of scope, per the ticket: the Last skipped run column, and the editor (CODAGT-1214). The empty state points to the API because the manage_automations tool is not in this stack yet.

Validation

  • Go: TestListChats/AutomationFilter covers:
    • created and written-to chats, deleted messages, and another user's chat;
    • an unknown id, a malformed id (400), and the nil UUID (400);
    • the experiment turned off by a per-user rule, where the parameter is ignored, including a malformed id.
  • Vitest (AgentAutomationsPage.test.tsx), all asserting requests:
    • the selected organization's list is requested, and switching the picker refetches and stores the choice;
    • the switch sends PATCH {enabled:false};
    • Run now sends its POST when the server answers 409 or 429;
    • View chats requests ?automation_id=, and Load more requests the next page;
    • nothing is requested with the experiment off.
  • Storybook (Pixel): WithAutomations, OtherOwner, Empty, MissingTarget, RunNowError, ChatsDialog, ChatsDialogLoadMoreError, Loading, RefetchError, ListError, and ChatsSidebar/MobileWithAutomations.
  • Remote dogfood UAT: PASS in round 1 (fa60a15767) and round 2 on the current head b37e9d99d0. Round 2 repeated every criterion and verified the review fixes. Screenshots are in the comments below.
  • coder-frontend-review self-review: every role passes after fixes on each update, except two items:
    • the experiment-off test waits for the not-found page only as a sync point before asserting that no request was sent;
    • there is no story for a chat-title lookup error, because the Storybook query helper cannot inject errors.
  • Codex review: 4 rounds (8, 4, 4 and 6 P2 findings, no P0 or P1).
    • Rounds 1 to 3 were fixed, except the model-availability item (CODAGT-1244).
    • Round 4 found no blocker and is tracked in CODAGT-1246, together with the minor UAT round 2 findings.
    • All threads are resolved. There is no clean Codex verdict on the current head. Further rounds were not requested because findings were not converging and none was a blocker; the stack orchestrator accepted stopping at round 4.
  • CI: ci run 36703512580, started with workflow_dispatch, is green on the current head b37e9d99d0. Pushes to existing stacked PRs did not start the pull_request ci run (noted in the comments). The earlier head 8f2ee30d8f was green through a normal pull_request run.

Size: about 1,370 hand-written lines (about 560 of them tests and stories), plus generated code. This is over the 1,000-line guideline, mostly from review fixes.

Stack

Stacked on #30085, #30096, #30112, #30117, #30127, #30134, #30160, #30166 and #30167 (CODAGT-1215). Base: tk/codagt-1215-automations-chat-labels, merged in (not rebased). Follow-ups: CODAGT-1244, CODAGT-1246.


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 added 5 commits September 30, 2026 05:11
@ThomasK33
feat: add the Agents automations list page and chat-list automation f…
fa60a15
…ilter

GET /api/v2/chats accepts an automation_id query parameter. It returns
the chats the automation created (chats.automation_id) and the chats it
sent messages to (chat_messages.automation_id). Chat authorization is
unchanged. The chat list is not experiment-gated, so the parameter is
ignored unless the chat-automations experiment is on for the caller.
codersdk.ListChatsOptions gains AutomationID.

/agents/automations lists the automations of the organization selected
in the Agents organization picker: name, the creating chat for
agent-created automations, trigger and cadence, target chat (a missing
or archived target is marked), the server's next run, an enabled
switch, Run now, and a dialog with the automation's chats. Run now
failures such as 409 and 429 show the server message in an alert. The
page and its sidebar entry are hidden unless the chat-automations
experiment is on for the viewer.
@ThomasK33
test(site/src/pages/AgentsPage): cover switching the automations org …
c05cb0e
…picker

The org-selection test only proved the page reads the stored Agents
picker choice. Extend it to switch the picker and assert that the page
refetches automations for the new organization and writes the choice
back to the shared localStorage key the create form reads.
@ThomasK33
fix: address list page UAT findings
f106110
- Evaluate the experiment only when the chat list has an automation_id
  filter, and ignore a malformed id when the experiment is off.
- Do not count deleted automation messages as writing to a chat.
- Offer Run now only to the owner, and disable it for a missing target.
- Fix the empty-state copy and the Run now success toast.
@ThomasK33
fix(site/src): address frontend self-review findings
cbea559
- Look up the target chat in the row, so an archived or deleted target
  also disables Run now, and show a deleted creating chat as such.
- Use queryOptions for the automation chats query and name the props
  types of the new components.
- Prefix story and test fixtures with mock, wire story queries inline,
  add a chats dialog story, and drop comments that restate the code.
@ThomasK33
chore(site/src/pages/AgentsPage): drop a comment about the stored org…
8f2ee30
… key
@linear-code

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

Uh oh!

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

Copy link
Copy Markdown

CODAGT-1135

CODAGT-1213

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 30, 2026
@ThomasK33
ThomasK33 added this pull request to stack #30097 September 30, 2026 07:18
@ThomasK33

ThomasK33 commented Sep 30, 2026

Copy link
Copy Markdown
Member Author

Remote dogfood UAT, round 1: PASS on fa60a1576782 (develop.sh with --experiments chat-automations --chat-max-queued-messages-per-chat 2, real model through the AI gateway). The later commits fix the minor UAT findings and the frontend self-review findings; a confirmatory round will run on the final head.

List of org A, with every column (org B showed only its own automations):
Automations list

Missing target after archiving the target chat:
Missing target

Run now, busy chat with when_busy=skip (409):
Run now 409

Run now, automation share of the queue used up (429):
Run now 429

View chats (chat-list filter): a chat the automation created, and chats it wrote to:
Created chat
Written-to chats

Experiment turned off for one user by a runtime rule: no nav entry, and the page is not found:
No nav entry
Not found

All reactions

Sorry, something went wrong.

Uh oh!

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

@ThomasK33

ThomasK33 commented Sep 30, 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 30, 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-02T08:05:37.575455Z 4b2a0af 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.

@ThomasK33
Merge remote-tracking branch 'origin/tk/codagt-1215-automations-chat-…
3acd9c0
…labels' into tk/codagt-1213-automations-list-page
chatgpt-codex-connector[bot]
chatgpt-codex-connector Bot reviewed Sep 30, 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: 8f2ee30d8f

ℹ️ 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 site/src/api/queries/chatAutomations.ts Resolved

Uh oh!

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

Comment thread site/src/pages/AgentsPage/components/Automations/AutomationRow.tsx Resolved

Uh oh!

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

Comment thread site/src/pages/AgentsPage/components/Automations/AutomationRow.tsx Resolved

Uh oh!

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

Comment thread site/src/router.tsx Resolved

Uh oh!

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

Comment thread site/src/pages/AgentsPage/components/Automations/AutomationRow.tsx Resolved

Uh oh!

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

Comment thread coderd/exp_chats.go Resolved

Uh oh!

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

Comment thread site/src/pages/AgentsPage/AgentAutomationsPage.tsx Resolved

Uh oh!

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

Comment thread site/src/api/queries/chatAutomations.ts Resolved

Uh oh!

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

ThomasK33 added 3 commits September 30, 2026 07:41
@ThomasK33
fix: address Codex review round 1 on the automations list
0fefb2a
- Reject the nil UUID as an automation_id filter; the query uses it as
  "no filter".
- Page the View chats dialog with Load more instead of a fixed 25.
- Look up chat titles only for the viewer's own automations, which bounds
  the requests and avoids a false missing target for other owners.
- Keep the enabled switch off for non-owners of a disabled automation,
  and disable every Run now while a run request is pending.
- Refetch the list every minute so the next run stays current, and
  refresh the chat lists after a run.
- Show the page full width on mobile with a back link, like settings.
@ThomasK33
chore(site/src/api/queries): drop a comment on the chat list invalida…
e5962d6
…tion
@ThomasK33
Merge remote-tracking branch 'origin/tk/codagt-1215-automations-chat-…
43fa1a5
…labels' into tk/codagt-1213-automations-list-page
@ThomasK33

ThomasK33 commented Sep 30, 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.

@ThomasK33

ThomasK33 commented Sep 30, 2026

Copy link
Copy Markdown
Member Author

CI note: the ci pull_request workflow did not start for head 43fa1a5f23 (GitHub reports mergeable: UNKNOWN and no merge ref). This matches the known GitHub issue affecting pushes to existing stacked PRs in this repo since about 01:00Z (#30160, #30166 and #30167 show the same), which the stack orchestrator has escalated. No extra commits will be pushed to re-trigger it.

The previous head 8f2ee30d8f has a fully green ci run on record. 43fa1a5f23 adds the round 1 review fixes and a merge of the base branch, and passed the full local pre-push gate (make pre-push: Go tests, site build and tests).

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 30, 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: 43fa1a5f23

ℹ️ 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 site/src/api/queries/chatAutomations.ts Resolved

Uh oh!

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

Comment thread site/src/pages/AgentsPage/AgentAutomationsPageView.tsx Resolved

Uh oh!

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

Comment thread site/src/pages/AgentsPage/AgentAutomationsPageView.tsx Resolved

Uh oh!

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

Comment thread site/src/pages/AgentsPage/components/Automations/AutomationRow.tsx Resolved

Uh oh!

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

@ThomasK33
fix(site/src/pages/AgentsPage): address Codex review round 2
a307cbc
- Offer View chats only for the viewer's own automations, since the chat
  list is scoped to the viewer's chats by default.
- Keep the loaded table when a background refetch fails, and keep loaded
  chats and Load more when a later page fails.
- Name the Run now and View chats buttons after their automation.
@ThomasK33

ThomasK33 commented Sep 30, 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.

@ThomasK33

ThomasK33 commented Sep 30, 2026

Copy link
Copy Markdown
Member Author

CI note: the ci pull_request workflow again did not start for head a307cbc190 (Codex round 2 fixes; mergeable: UNKNOWN, no merge ref), the same known GitHub issue as on 43fa1a5f23. No commits are pushed to re-trigger it. a307cbc190 passed the full local pre-push gate (make pre-push), and 8f2ee30d8f remains the last head with a fully green ci run.

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 30, 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: a307cbc190

ℹ️ 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 site/src/pages/AgentsPage/components/ChatsSidebar/chats/ChatsPanel.tsx Resolved

Uh oh!

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

Comment thread site/src/pages/AgentsPage/components/Automations/AutomationRow.tsx Resolved

Uh oh!

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

Comment thread site/src/pages/AgentsPage/AgentAutomationsPage.test.tsx Resolved

Uh oh!

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

Comment thread site/src/pages/AgentsPage/components/Automations/AutomationRow.tsx Resolved

Uh oh!

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

@ThomasK33
fix(site/src/pages/AgentsPage): address Codex review round 3
b37e9d9
- Add a mobile header link to Automations, since the sidebar nav is
  hidden on mobile, with a mobile story.
- Show a chat title lookup failure instead of an Untitled link.
- Assert the Run now request in the 409 and 429 tests.
@ThomasK33

ThomasK33 commented Sep 30, 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.

@ThomasK33

ThomasK33 commented Sep 30, 2026

Copy link
Copy Markdown
Member Author

CI note: the ci pull_request workflow again did not start for head b37e9d99d0 (Codex round 3 fixes; mergeable: UNKNOWN), the same known GitHub issue as the previous two heads. No commits are pushed to re-trigger it. b37e9d99d0 passed the full local pre-push gate, and 8f2ee30d8f remains the last head with a fully green ci run.

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 30, 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: b37e9d99d0

ℹ️ 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 site/src/pages/AgentsPage/AgentAutomationsPage.tsx Resolved

Uh oh!

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

Comment thread site/src/api/queries/chatAutomations.ts Resolved

Uh oh!

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

Comment thread site/src/pages/AgentsPage/components/Automations/AutomationRow.tsx Resolved

Uh oh!

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

Comment thread site/src/pages/AgentsPage/AgentAutomationsPage.tsx Resolved

Uh oh!

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

Comment thread site/src/pages/AgentsPage/components/Automations/AutomationRow.tsx Resolved

Uh oh!

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

Comment thread site/src/pages/AgentsPage/components/Automations/AutomationsNavItem.tsx Resolved

Uh oh!

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

@ThomasK33

ThomasK33 commented Sep 30, 2026

Copy link
Copy Markdown
Member Author

Remote dogfood UAT, round 2: PASS (minor issues only) on the current head b37e9d99d0 (develop.sh test server on a Coder Agents workspace, two organizations plus an empty one, a real model through the AI gateway). The runner downloaded and hash-checked all 45 attachments and reviewed every screenshot. It repeated every round 1 criterion and verified each change since round 1:

  • the nil UUID filter returns 400;
  • a malformed id is ignored when the experiment is off;
  • deleted messages no longer match;
  • 30 chats page as 25 plus Load more;
  • non-owner rows get no Run now or View chats and the switch cannot re-enable;
  • Run now is disabled for a missing target and while a run is pending;
  • buttons have per-row accessible names;
  • the mobile link opens a full-width page;
  • the next run advances without a reload;
  • a failed refetch keeps the table.

Minor findings are tracked in CODAGT-1246.

Org A list:
Org A list

Run now 409 (busy, skip), 202 (queued), 429 (queue share), 202 (idle):
Run now errors

Experiment off for one user by a runtime rule:
Experiment off

Org admin viewing another owner's automations:
Non-owner view

A pending Run now disables every Run now:
Run pending

Mobile (390x844):
Mobile

Next run advances with the page open:
Next run timeline

Blocked refetch keeps the table:
Refetch error

All reactions

Sorry, something went wrong.

Uh oh!

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

@ThomasK33

ThomasK33 commented Sep 30, 2026 •
edited
Loading

Uh oh!

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

Copy link
Copy Markdown
Member Author

Readiness record for head b37e9d99d0a23b41771a2e7f137706f436ecf6be.

  • Decision: ready with tracked follow-ups. The PR stays a draft for the stack owner.
  • Independent advisory pass (a separate reviewer given the goal, diff, findings and test results): ready with tracked follow-ups. No deferred item is a security, data-loss or core-behavior blocker.
  • Codex review: 4 rounds with 8, 4, 4 and 6 P2 findings. All threads are resolved. There is no clean verdict on this head.
    • Rounds 1 to 3 were fixed.
    • The round 3 model-availability item and all of round 4 were deferred: CODAGT-1244 and CODAGT-1246 (Linear, under CODAGT-1135).
    • Stopped because findings were not converging and none was a blocker. The advisor agreed, and the stack orchestrator accepted stopping at round 4.
  • UAT: round 2 PASS on this exact head.
  • Tests: local make pre-push passed on this head, and ci run 36703512580 (https://github.com/coder/coder/actions/runs/36703512580), started with workflow_dispatch, is green on this exact head.
  • Pre-merge condition: met for this head. A later head (for example after a base merge) needs a new green ci run.
All reactions

Sorry, something went wrong.

Uh oh!

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

@ThomasK33

ThomasK33 commented Sep 30, 2026

Copy link
Copy Markdown
Member Author

CI on the current head: ci run 36703512580 (https://github.com/coder/coder/actions/runs/36703512580), started with gh workflow run ci --ref tk/codagt-1213-automations-list-page because pushes to existing stacked PRs do not start the pull_request ci run right now. The run's headSha is b37e9d99d0a23b41771a2e7f137706f436ecf6be, and it completed with success: all 22 jobs succeeded or were skipped, including required.

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 Oct 2, 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: 991f9691fc

ℹ️ 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 site/src/api/queries/chatAutomations.ts
Comment on lines +84 to +89
API.experimental.getChats(
{
automation_id: automationId,
limit: automationChatsPageSize,
offset: pageParam,
},

@chatgpt-codex-connector chatgpt-codex-connector Bot Oct 2, 2026

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.

P2 Badge Include archived chats in automation history

When a chat created by or written to by an automation is later archived, this request silently omits it because it supplies no q override and searchquery.Chats defaults Archived to false. The dialog describes itself as the automation's chat history and archived chats remain openable, so archiving a chat currently makes that history entry disappear. Make this history query include both active and archived matches, or explicitly expose an active-only filter.

Useful? React with 👍 / 👎.

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 356447f. The chat search syntax only had archived:true and archived:false, so the dialog could not ask for both. searchquery.Chats now accepts archived:any, which leaves the archived filter null so archived and active chats both match. The automation history query sends q: "archived:any". Omitting the term still hides archived chats, and the owner scope is unchanged.

Tests: TestSearchChats and TestSearchChatsFrontendEmitted cover the new value, TestListChats/AutomationFilter checks that an archived automation chat is returned with archived:any and archived:true and hidden by default, and the AgentAutomationsPage request assertions include q=archived%3Aany (they fail without the frontend change).


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
fix: include archived chats in automation chat history
356447f
The automation chats dialog listed only active chats, because the chat
list hides archived chats unless the query sets archived. A chat the
automation created or wrote to dropped out of its history once
archived.

The chat search query now accepts archived:any, which matches archived
and active chats. archived:true and archived:false still filter to one
side, and omitting the term still hides archived chats. The automation
history query sends archived:any. The owner scope is unchanged.

Addresses Codex review on #30171.

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

Fixed the Codex P2 on automation chat history: the chat search query accepts archived:any (archived and active chats), and the automation chats dialog requests it. Go tests cover parsing and the API returning archived automation chats; the Vitest request assertions fail without the frontend change.

  • Head: 356447f0d810854e675c36361e7fd982996611f0
  • CI run (pull_request): https://github.com/coder/coder/actions/runs/36976442095

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

@coderagents

coderagents Bot commented Oct 2, 2026 •
edited
Loading

Uh oh!

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

Copy link
Copy Markdown
Contributor

Documentation Check

Updates Needed

  • docs/ai-coder/agents/chat-search-syntax.md (open) - Add any to the archived filter row and note it matches archived and active chats, while omitting the term still hides archived chats. This was addressed.

Automated review via Coder Agents

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

Copy link
Copy Markdown

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

Reviewed commit: 356447f0d8

ℹ️ 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 added 4 commits October 2, 2026 07:38
@ThomasK33
fix(site/src/pages/AgentsPage): restore chats dialog focus and apply …
1b6d9ff
…review nits

Return focus to the View chats button when the automation chats dialog
closes, since it has no DialogTrigger, with a keyboard test. Move
AUTOMATIONS_PATH and useAutomationsEnabled into automationsFlag.ts, let
AutomationsList read useDashboard itself, and reuse ChatTitleLink in the
dialog.

---
_Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_
@ThomasK33
docs(docs/ai-coder/agents): document archived:any in chat search syntax
5f9cdb3
archived:any matches archived and active conversations; omitting the
term still hides archived ones.

---
_Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_
@ThomasK33
refactor(site/src/pages/AgentsPage): tidy the automations flag doc an…
fe4cf27
…d focus test

Describe automationsFlag.ts as holding both the page route and the
experiment flag, and let the focus-return test wait only for the focus
it asserts.

---
_Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_
@ThomasK33
Merge tk/codagt-1215-automations-chat-labels (main dc07908) into tk/c…
4b2a0af
…odagt-1213-automations-list-page

No conflicts.

---
_Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_
ThomasK33 added a commit that referenced this pull request Oct 2, 2026
@ThomasK33
Merge tk/codagt-1213-automations-list-page (main dc07908) into tk/cod…
0987b54
…agt-1214-automations-editor

Resolved the conflict in AgentAutomationsPage.tsx: kept this layer's AutomationEditorDialog import and EditorState type, and took #30171's automationsFlag import and the useDashboard call inside AutomationsList (no threaded organization props).

---
_Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_
ThomasK33 added a commit that referenced this pull request Oct 2, 2026
@ThomasK33
Merge tk/codagt-1214-automations-editor (main dc07908) into tk/codagt…
a906c45
…-1214b-automations-webhook-editor

Resolved the import conflict in AgentAutomationsPage.tsx: kept this layer's AutomationWebhookSecretDialog import and took #30171's automationsFlag import, and read buildInfo from the same useDashboard call that #30171 moved into AutomationsList.

---
_Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_
@github-actions

github-actions Bot commented Oct 2, 2026

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/ai-coder/agents/chat-search-syntax.md
All reactions

Sorry, something went wrong.

Uh oh!

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

ThomasK33 added a commit that referenced this pull request Oct 2, 2026
@ThomasK33
Merge tk/codagt-1212b-automations-tool-writes (main dc07908) into tk/…
6e47c23
…codagt-1212c-automations-tool-toggle

No conflicts. Pointed the useAutomationsEnabled imports this layer adds in AgentChatPage.tsx and AgentCreateForm.tsx at automationsFlag.ts, where #30171 moved the hook.

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

Review fixes: the automation chats dialog returns focus to the View chats button on close (with a test); AutomationsList calls useDashboard itself; AUTOMATIONS_PATH and useAutomationsEnabled moved to automationsFlag.ts; the dialog reuses ChatTitleLink; chat-search-syntax.md documents archived:any. Merged #30167.

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

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

Copy link
Copy Markdown
Member Author

Review follow-ups in head 4b2a0af:

  • Documentation Check: 5f9cdb3 adds any to the archived row of docs/ai-coder/agents/chat-search-syntax.md: it matches archived and active chats, and omitting the term still hides archived chats.
  • Folded nits from Mike's review, all in 1b6d9ff (doc wording tidied in fe4cf27):
    • AutomationsList calls useDashboard() itself; AutomationsListProps and the threaded props are gone.
    • AUTOMATIONS_PATH and useAutomationsEnabled moved to components/Automations/automationsFlag.ts, mirroring exp/chatBoard/chatBoardFlag.ts; every importer up the stack now imports from there.
    • The chats dialog reuses ChatTitleLink, now an exported link-only component; AutomationRow keeps the loading and error handling in a private ChatTitle wrapper.
    • (isAnyRunPending was already renamed earlier.)
  • Focus restore: see the reply on the thread.

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 2, 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 Oct 2, 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: 4b2a0afffc

ℹ️ 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 site/src/pages/AgentsPage/components/Automations/AutomationRow.tsx Outdated
</TableCell>
<TableCell>
<Switch
checked={automation.enabled}

@chatgpt-codex-connector chatgpt-codex-connector Bot Oct 2, 2026

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.

P2 Badge Do not show consumed webhooks as enabled

After a single-use webhook succeeds, ConsumeChatAutomationWebhookByID sets only webhook_consumed_at and leaves enabled true, while checkAutomationInput rejects every subsequent delivery with ErrAutomationWebhookConsumed. This switch therefore remains checked under Enabled for a permanently spent automation, and after turning it off the owner can turn it back on without making it usable. Treat webhook_consumed_at as a terminal unavailable state in this control rather than reflecting enabled alone.

Useful? React with 👍 / 👎.

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 2b91eb8: a used single-use webhook (webhook_consumed_at set) now renders the enabled switch as off and disabled, so it can no longer be toggled back on. The existing "Used" label stays. Test: AgentAutomationsPage.test.tsx "shows a used single-use webhook as off and locks its switch" (fails without the fix).


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
fix(site/src/pages/AgentsPage): show used single-use webhooks as off
2b91eb8
A single-use webhook that has been used rejects every later delivery,
but the list's enabled switch kept reflecting only the enabled flag.
The switch now shows such automations as off and cannot be changed.

---
_Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_
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 re-reviewed this PR on behalf of @ibetitsmike using GPT-6.1 Sol (high) Exec subagents.

The original View chats focus-restoration finding is fixed and validated by the unchanged maintained keyboard test, including a scratch production-wiring removal that reproduces focus loss. One new own-layer test-contract finding remains below. Inherited #30167 findings are not new findings against this layer. No approval is given while the new finding remains.

Sorry, something went wrong.

Uh oh!

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

All reactions
Comment thread site/src/pages/AgentsPage/AgentAutomationsPage.test.tsx Outdated
const toggle = await screen.findByRole("switch", {
name: `Enable ${mockAutomation.name}`,
});
expect(toggle).not.toBeChecked();

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

P3: Consumed-switch test asserts only rendered state (FE1, TS2, TS5)

This new test only locates the switch and asserts not.toBeChecked() and toBeDisabled(). It never drives an interaction or checks a callback/API outcome. The frontend contract assigns rendered switch state to Storybook/Pixel and requires Vitest behavior tests to assert the non-visual outcome.

Keep the consumed-webhook story for the off/disabled appearance. If a behavior regression test is needed, attempt the switch interaction and assert that no PATCH request is sent; otherwise remove this state-only unit test.

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 52959fb. The render-only test is replaced by a behavior test, "does not update a used single-use webhook from its switch". It clicks the used webhook's switch, then a second row's switch, waits for the second row's PATCH, and asserts that only the second row was updated. The second row's request is sent after the first click, so its arrival bounds any update the first click could have sent. With the AutomationRow fix reverted, the test fails (both rows get a PATCH). The consumed-webhook story still covers the off and disabled appearance.


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
@ibetitsmike ibetitsmike mentioned this pull request Oct 2, 2026
feat: add the manage automations toggle, tool rendering and CODAGT-1217 tests #30219
Merged
@ThomasK33
test(site/src/pages/AgentsPage): check a used webhook's switch sends …
52959fb
…no update

The consumed-webhook test asserted only the rendered switch state, which
the Storybook story already covers. It now clicks the used webhook's
switch, then another row's, and checks that only the second row is
updated.

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

Approved at 52959fbe12b862e300eee851256dd154ee0aff58 after independent Sol-high Standards and Spec review, complete frontend checkpoint adjudication, and fresh exact-head validation. Accepted deferrals remain unchanged.

The consumed-webhook test finding is fixed: real switch interactions now assert PATCH request IDs instead of checked/disabled DOM state. The maintained test passes, fails with the extra consumed-row PATCH when only the production consumed-switch disable guard is removed, and passes after restoration. Fixtures, assertions and effective-off mapping remain unchanged.

Validation: 9 maintained page unit cases, 74 Chromium story cases, two uncached Go groups covering automation and association-history HTTP/parser contracts, Biome, Oxlint and TypeScript all passed. The fresh unit run includes actual-opener Enter/Escape focus restoration; the earlier production-wiring negative control carries through identical relevant source.

Exact head, base, PR body, GitHub diff, all observed CI checks and review state were checked immediately before this review. Lower #30167's separate test-contract hold and #30220's documentation wording hold remain outstanding. No full-suite, Pixel or remote-UAT clearance is claimed.

Sorry, something went wrong.

Uh oh!

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

All reactions
ThomasK33 added 4 commits October 2, 2026 11:03
@ThomasK33
Merge tk/codagt-1215-automations-chat-labels into tk/codagt-1213-auto…
9b89634
…mations-list-page
@ThomasK33
Merge tk/codagt-1215-automations-chat-labels into tk/codagt-1213-auto…
c84c1bb
…mations-list-page
@ThomasK33
Merge tk/codagt-1215-automations-chat-labels into tk/codagt-1213-auto…
59cb625
…mations-list-page

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
Merge tk/codagt-1215-automations-chat-labels into tk/codagt-1213-auto…
29a4d1c
…mations-list-page

Brings the new_chat automation title source fix from #30134.

---
_Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_
@ThomasK33
ThomasK33 merged commit a3fbd23 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-1213-automations-list-page 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.