🤖 fix: stabilize /btw transcript placement#3393
Conversation
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 353238ff8a
ℹ️ 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".
353238f to
ebe981c
Compare
|
@codex review Addressed the scroll-hold initialization issue by tracking standalone/stale /btw question IDs as seen, and added a regression test for rows that first render standalone and later become interrupted. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ebe981c79b
ℹ️ 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".
ebe981c to
0b7d3cc
Compare
|
@codex review Addressed the hidden-owner case by excluding hidden synthetic assistant anchors from the inline /btw display plan, so side-question rows remain visible chronologically when their split owner will not render. Added regression coverage. |
|
Codex Review: Didn't find any major issues. Another round soon, please! ℹ️ 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". |
Summary
/btwtranscript tail stickiness by making side-question display placement explicit and by limiting scroll ownership to valid interrupted branches.Background
/btwrows are durable history, but interrupted/btwbranches are projected into the interrupted assistant message by the renderer. The previous display walk decided inline ownership during rendering, and scroll hold logic only looked at broadisSideQuestion/isSideAnswerflags. That made standalone or stale side-question rows eligible for sticky scroll behavior.Implementation
sideQuestionBranchplacement metadata for/btwuser and assistant rows./btwrows are emitted exactly once inside the interrupted assistant split.interruptedHistorySequencewhen present to avoid splitting stale anchors.Validation
bun test src/browser/utils/messages/StreamingMessageAggregator.sideQuestion.test.tsbun test src/browser/components/ChatPane/sideQuestionScrollHold.test.tsbun test src/browser/stores/WorkspaceStore.test.ts --test-name-pattern "/btw|side-question|side answer"bun run typecheckmake static-checkRisks
/btwscroll behavior. Legacy side-question answers withoutquestionMessageIdstill use the existing adjacency fallback; stale or mismatched anchors now render chronologically instead of splitting an unrelated assistant row.Generated with
mux• Model:openai:gpt-5.5• Thinking:xhigh• Cost:$31.98