GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeezerVison is showing github.com — feat: add the Agents automations list page and chat-list automation filter by ThomasK33 · Pull Request #30171 · coder/coder Conversation
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@codex review |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
…labels' into tk/codagt-1213-automations-list-page
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Here are some automated review suggestions for this pull request.
Reviewed commit: 8f2ee30d8f
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
- 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.
…labels' into tk/codagt-1213-automations-list-page
|
@codex review |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
CI note: the The previous head |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Here are some automated review suggestions for this pull request.
Reviewed commit: 43fa1a5f23
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
- 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.
|
@codex review |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
CI note: the |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Here are some automated review suggestions for this pull request.
Reviewed commit: a307cbc190
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
- 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.
|
@codex review |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
CI note: the |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Here are some automated review suggestions for this pull request.
Reviewed commit: b37e9d99d0
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
|
Readiness record for head
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
CI on the current head: |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Here are some automated review suggestions for this pull request.
Reviewed commit: 991f9691fc
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Sorry, something went wrong.
There was an error while loading. Please reload this page.
| API.experimental.getChats( | ||
| { | ||
| automation_id: automationId, | ||
| limit: automationChatsPageSize, | ||
| offset: pageParam, | ||
| }, |
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
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.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
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.
There was an error while loading. Please reload this page.
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`_
|
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.
Generated with |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@codex review |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Documentation CheckUpdates Needed
Automated review via Coder Agents |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Codex Review: Didn't find any major issues. Can't wait for the next one! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
…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`_
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`_
…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`_
…odagt-1213-automations-list-page No conflicts. --- _Generated with [`xum`](https://github.com/coder/xum) • Model: `anthropic:claude-opus-5-5` • Thinking: `high`_
…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`_
…-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`_
Docs previewCheck 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. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
…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`_
|
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.
Generated with |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Review follow-ups in head 4b2a0af:
Generated with |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@codex review |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Here are some automated review suggestions for this pull request.
Reviewed commit: 4b2a0afffc
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Sorry, something went wrong.
There was an error while loading. Please reload this page.
| </TableCell> | ||
| <TableCell> | ||
| <Switch | ||
| checked={automation.enabled} |
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
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.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
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.
There was an error while loading. Please reload this page.
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`_
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Xum re-reviewed this PR on behalf of @ibetitsmike using GPT-6.1 Sol (high) Exec subagents.
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.
There was an error while loading. Please reload this page.
| const toggle = await screen.findByRole("switch", { | ||
| name: `Enable ${mockAutomation.name}`, | ||
| }); | ||
| expect(toggle).not.toBeChecked(); |
There was a problem 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.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
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.
There was an error while loading. Please reload this page.
…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`_
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Xum validated this PR and approved it on behalf of @ibetitsmike.
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.
There was an error while loading. Please reload this page.
…mations-list-page
…mations-list-page
…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`_
…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`_
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.