Thanks to visit codestin.com
Credit goes to github.com

Skip to content

fix(site): fix action bar hidden after null-returning assistant messages#24566

Merged
jaaydenh merged 2 commits into
mainfrom
conversation-wres
Apr 23, 2026
Merged

fix(site): fix action bar hidden after null-returning assistant messages#24566
jaaydenh merged 2 commits into
mainfrom
conversation-wres

Conversation

@jaaydenh
Copy link
Copy Markdown
Contributor

@jaaydenh jaaydenh commented Apr 21, 2026

closes CODAGT-121

When an invisible assistant message (e.g. a provider_executed tool-result with no text content) appeared between a visible assistant message and the next user message, the visible assistant's action bar was incorrectly hidden. The chain logic computed isLastInChain from the raw parsedMessages array, which includes entries that ChatMessageItem returns null for.

Extract a shared isTimelineMessageVisible helper that encodes the three null-return conditions (provider_executed tool-result-only, all-provider-executed parts, metadata-only) in one place. Use it both to guard the early return in ChatMessageItem and to skip invisible entries when computing isLastInChain, so chain boundaries are based on the next rendered message.

@jaaydenh
Copy link
Copy Markdown
Contributor Author

@codex review

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a 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: 7605eefc70

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

@jaaydenh jaaydenh force-pushed the conversation-wres branch 2 times, most recently from 11d2f84 to 7d76d52 Compare April 21, 2026 13:47
@jaaydenh
Copy link
Copy Markdown
Contributor Author

@codex review

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a 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: 7d76d52dfd

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

Comment thread site/src/pages/AgentsPage/components/ChatConversation/ConversationTimeline.tsx Outdated
@jaaydenh jaaydenh force-pushed the conversation-wres branch from 7d76d52 to da45e95 Compare April 21, 2026 14:10
@jaaydenh
Copy link
Copy Markdown
Contributor Author

@codex review

@jaaydenh jaaydenh requested review from mafredri April 21, 2026 14:20
@jaaydenh jaaydenh marked this pull request as ready for review April 21, 2026 14:20
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a 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: da45e956a5

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

Comment thread site/src/pages/AgentsPage/components/ChatConversation/ConversationTimeline.tsx Outdated
Copy link
Copy Markdown

@coder-agents-review coder-agents-review Bot left a comment

Choose a reason for hiding this comment

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

First-pass mechanical review (Netero). 1 P2, 1 Note.

The fix correctly identifies the root cause: invisible assistant messages (provider-executed tool-result-only) between a visible assistant and a user turn broke chain detection. The forward-scan approach and regression story are well-structured.

The main concern is that the new isTimelineMessageVisible helper duplicates the hiding conditions from deriveMessageDisplayState().shouldHide in messageHelpers.ts. The doc comment acknowledges this ("The conditions here mirror..."), but the coupling means a new invisible-message category added to deriveMessageDisplayState but not here silently re-introduces the exact bug this PR fixes.

This is a first-pass review only: these are mechanical findings from Netero. The full review panel has not yet reviewed this PR and will review after these findings are addressed.

Netero: "The three hiding conditions are copied verbatim from messageHelpers.ts lines 29-39 and 66-70. The doc comment acknowledges the coupling but does not prevent drift."

🤖 This review was automatically generated with Coder Agents.

Comment thread site/src/pages/AgentsPage/components/ChatConversation/ConversationTimeline.tsx Outdated
Comment thread site/src/pages/AgentsPage/components/ChatConversation/ConversationTimeline.tsx Outdated
@jaaydenh jaaydenh force-pushed the conversation-wres branch from da45e95 to 6c62234 Compare April 21, 2026 14:49
@jaaydenh
Copy link
Copy Markdown
Contributor Author

@codex review

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a 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: 6c622340e9

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

Comment thread site/src/pages/AgentsPage/components/ChatConversation/ConversationTimeline.tsx Outdated
@jaaydenh jaaydenh force-pushed the conversation-wres branch 3 times, most recently from 0c1a346 to 9d7ecdc Compare April 22, 2026 13:34
@jaaydenh
Copy link
Copy Markdown
Contributor Author

@codex review

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a 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: 9d7ecdc489

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

Comment thread site/src/pages/AgentsPage/components/ChatConversation/ConversationTimeline.tsx Outdated
The isLastInChain check in ConversationTimeline looked at the immediate
next entry in parsedMessages, but some entries are invisible (they
return null from ChatMessageItem via deriveMessageDisplayState). When
the only messages between a visible assistant and the next user turn
were invisible ones, the visible assistant's action bar was hidden.

Add isTimelineMessageVisible() that mirrors the shouldHide conditions
in deriveMessageDisplayState, and update the chain logic to loop past
invisible entries when determining isLastInChain. The action bar now
correctly appears on the last visible assistant message.

Add a regression story (AssistantActionBarAfterHiddenMessages) that
asserts 3 action bars are present when a provider-executed tool-result
message sits between the visible assistant and the next user turn.
@jaaydenh jaaydenh force-pushed the conversation-wres branch from 9d7ecdc to 3f516ce Compare April 22, 2026 15:09
@jaaydenh
Copy link
Copy Markdown
Contributor Author

@codex review

@chatgpt-codex-connector
Copy link
Copy Markdown

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

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

Comment thread site/src/pages/AgentsPage/components/ChatConversation/ConversationTimeline.tsx Outdated
@jaaydenh jaaydenh merged commit e17da2f into main Apr 23, 2026
27 checks passed
@jaaydenh jaaydenh deleted the conversation-wres branch April 23, 2026 13:31
@github-actions github-actions Bot locked and limited conversation to collaborators Apr 23, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants