Repository navigation
Conversation
An open block's member rows rendered at their own chronological positions, interleaved with the main conversation's — so expanding a header left the rows directly under it belonging to the main conversation, which read as the expansion doing nothing (rossoctl#1047 live check). The block's rows now render contiguously under the header, in arrival order within the block; the TIME and # columns still carry where each row sat, and the DIR gutter's │ still marks members. Blocks exist only in the chronological view (a sort disables grouping), so the sort-key path never sees a member row. Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com> Signed-off-by: Hai Huang <huang195@gmail.com>
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 25 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Two subagents interleaved with each other and with the main conversation, one resuming long after it started: each block still renders its whole run contiguously under its own single header — membership is by subagent id over the whole session, not by time-contiguity, so interleaving cannot split a block or emit a second header for the same agent. Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com> Signed-off-by: Hai Huang <huang195@gmail.com>
The block reads as the subagent's own transcript, so its first exchange is 1 — the session-wide number the main rows keep would start a block at 94 and say nothing about how much the subagent itself did. A request and its response still share one number (the session-wide ids still decide what an exchange is; only the counting restarts per block), and the header's rollup counts the same unit (28 msgs, not 56 rows) so it agrees with the last number shown inside the block. Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com> Signed-off-by: Hai Huang <huang195@gmail.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What
Two changes to the subagent blocks from #1601, from its live check on session
3230ebba("Cortex PR 1611 Merge Conflict"):of the chronological interleaving with the main conversation.
keep session-wide numbers.
Why
Expanding
▾─ review cortex#1611 r1worked, but the rows directly under theheader were the main conversation's — a subagent's exchange spans several
main-conversation turns (and other subagents'), so its rows scattered across
the pane at their own timestamps. That reads as "expanding did nothing". And
the
#numbers the members did show were session-wide (starting at 94), whichsays nothing about how much the subagent itself did — the block reads as the
subagent's own transcript, so its first message should be 1.
The merged tests' fixture never interleaved a main row inside a subagent
exchange, so the interleaved case was never pinned.
The changes
Contiguity —
rebuildEventsTable's row loop: when a block's header isemitted and the block is open, all of
b.rows(already the inactive-filteredpopulation, in arrival order) render immediately after the header; member rows
no longer render at their own loop turn. Cell building moved into a small
renderEventRow(j)helper used by both paths sorows/visibleRows/search rows cannot drift apart. Membership is by subagent id over the whole
session, not time-contiguity, so interleaving cannot split a block into
segments or emit a second header for the same agent — pinned by
TestBlocks_ConcurrentSubagentsEachStayOneSegment(two subagents interleavedwith each other and the main conversation, one resuming long after it started).
Numbering — a block-local
blockIDsmap renumbers member exchanges from 1,built after the blocks are collected; the session-wide ids still decide what an
exchange IS (request + response share one number), only the counting restarts
per block. The header's rollup counts the same unit (
28 msgs, not56 rows)so it agrees with the last number shown inside the block.
Unchanged: the header anchors at the block's first surviving row; main rows
keep their positions and session numbers; TIME stays absolute; the DIR
gutter's
│still marks members; sorting disables grouping (blocks exist onlyin the chronological view, so the sort-key path never sees a member row);
cursor pin, search, hideInactive and the Timeline reveal all key on
visibleRows/event identity, not row order —#is display-only.Verification
TestBlocks_ExpandedMembersStayTogether(a main rowchronologically inside a subagent's exchange stays outside the expanded
block),
TestBlocks_ConcurrentSubagentsEachStayOneSegment,TestBlocks_MembersNumberFromOneInsideTheBlock(member#cells read1,1,2,2 and main rows keep 1..3; header says
2 msgs). All fail on main'sbehavior where they apply.
cmd/agentop/tuipackage green;gofmt/go vetclean.session: Enter on
▸─ review cortex#1611 r1 · 28 msgs→▾, the rows underthe header are all the subagent's glm exchanges numbered 1,1,2,2,3…, no
main-conversation rows interleaved; r2 (
34 msgs) stays collapsed.Assisted-By: Claude (Anthropic AI) noreply@anthropic.com