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(site): group assistant steps into working blocks by ibetitsmike · Pull Request #29417 · coder/coder Conversation
|
|
@codex review |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Here are some automated review suggestions for this pull request.
Reviewed commit: 97f0bf6be0
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
|
@codex review |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Codex Review: Didn't find any major issues. Keep it up! 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.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
|
@codex review |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
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: f9e0980ef7
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
|
@codex review |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
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: 2e43056387
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.
|
@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: 4d05139e55
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.
## Stack context Bottom of a six-PR stack that adds the **Collapse assistant steps** chat preference (Agents > Settings, off by default). With it on, each turn's consecutive tool-step rows fold into one disclosure: "Worked for 2m 14s (7 steps)" once the turn completes, or a ticking "Working for 12s" while it runs. The stack was split out of #29115 for review size; #29115 now sits at the top with the full feature description and the UAT record. 1. #29416 feat: add a collapse_assistant_steps user preference (this PR) 2. #29417 feat(site): group assistant steps into working blocks 3. #29418 feat(site): add the working block disclosure 4. #29419 feat(site): fold assistant steps in the conversation timeline 5. #29420 fix(site): keep streaming text alive inside expanded working blocks 6. #29115 feat(site): add the collapse assistant steps chat preference ## Why The chat UI reads a per-user boolean to decide whether to fold steps. This layer stores it and exposes it through the preference settings API and SDK. `collapse_assistant_steps` follows the existing `task_notification_alert_dismissed` boolean pattern: a `user_configs` key with dbauthz wrappers, no migration. The generated API docs and TypeScript types are regenerated, and the frontend preference mocks gain the new required field. > This PR was prepared by Xum, an AI coding agent, on behalf of @ibetitsmike.
5f523b1 to
d085d23
Compare
7fb9334 to
94c5a97
Compare
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Adds groupWorkingBlocks, which folds a turn's consecutive tool-step rows into WorkingBlock descriptors the timeline can render as one disclosure. A step row is assistant output whose last visible block is a tool call or reasoning; answers, prompts, hook notices, and rows carrying ask_user_question, propose_plan, or compaction markers never fold. Durations are the wall-clock span of part timestamps taken from the raw messages, so hidden tool-result messages count and parallel tools are not summed. The stream state now records tool part timestamps and the earliest part time so a live block can start its clock at the first reasoning delta.
Drop the unread createdAt fields on stream tool calls and results, the rowKey accessor, the unreachable NaN branch in formatWorkingDuration, and the binary search over per-turn spans. Name getStepRowContent for what it returns. The grouping test reuses the shared fixture clock and stream builder instead of redeclaring them; the stream start test moves next to the code it covers.
A user message made only of context files or skills has no timeline row, so steps on either side of it folded into one block and the block before it counted as live. Grouping now reads user boundaries from the raw entries, anchoring the next turn's live key on the hidden message.
…and partial blocks A metadata-only user message now flushes the read_file merge so reads from two turns never share a row, and a block whose loaded page starts with such a prompt is no longer reported as partial.
A turn that follows a metadata-only prompt can open with provider-executed parts, which carry timestamps but render no row, so the preceding block's duration ran into the next turn. Cap the span at the next user message.
Collect part timestamps into one list per block instead of two running min/max closures, trim restating docs, drop grouping tests that repeat coverage, and leave formatWorkingDuration to the disclosure that uses it.
94c5a97 to
cb17260
Compare
…e the visible row content filter Working block grouping reuses the messageHelpers filter instead of a drifted copy, and drops two no-op guards in its timestamp math.
…rking block comments
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Two medium findings from a review of this PR, details inline. I found no high-severity bugs; the tests, typecheck, and lint all pass locally.
Found with Xum, an AI coding agent.
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.
…nk lines between working block steps
…rking block type docs
…ext-only user messages inside the turn Users cannot send context-file or skill-only messages; the only ones in history were inserted mid-turn after create_workspace by the removed persistInstructionFiles. Treating them as prompts split one turn into two working blocks, so they are invisible to grouping again.
…working block timestamps in one pass Each block filtered every loaded entry, which is O(blocks x entries). Entries arrive sorted by message ID and block spans are disjoint and ascending, so one forward cursor collects every span in a single walk.
…lify stream startedAt chatd stamps stream parts at publish time in publish order, so the first timestamped reasoning or tool part is the earliest. Set startedAt from it in place instead of taking a running minimum in a wrapper.
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.
… undefined timestamps at the source Optional part and stream timestamps are filtered where they are read, so the parse step only sees strings. Empty live rows now share the single empty-blocks check in getStepRowContent.
…nt-steps-grouping
… counting failed steps in working blocks The summary no longer shows a failed step badge, so blocks track only the distinct tool IDs they hold.
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.