fix(tui): sort child sessions by created time, not session ID - #42907
Zagoshipda wants to merge 1 commit into
Conversation
|
The following comment was made by an LLM, it may be inaccurate: Potential duplicate PR found:
|
|
Thanks for updating your PR! It now meets our contributing guidelines. 👍 |
Overall: right fix — ID-based ordering scattered subagent runs randomly whenever ID prefixes didn't align with creation sequence. With the two guards above this is solid. Thanks! |
|
Automated PR Cleanup Thank you for contributing to opencode. Due to the high volume of PRs from users and AI agents, we periodically close older PRs using automated criteria so maintainers can focus review time on the most active and community-supported contributions. This PR was closed because it matched the following cleanup criteria:
PRs created within the last month are not affected by this cleanup. If you believe this PR was closed incorrectly, or if you are still actively working on it, please leave a comment explaining why it should be reopened. A maintainer can review and reopen it if appropriate. Thanks again for taking the time to contribute. |
Issue for this PR
Closes #42905
Type of change
What does this PR do?
session.child.first(Ctrl+X+Down) and the Left/Right child cycle sorted sibling sessions by session ID string. Session IDs are descending-encoded timestamps that wrap around at 2^48, so once the encoding wraps the ID order no longer matches creation order and "first child" lands on an old subagent instead of the newest.The fix sorts
children()inpackages/tui/src/routes/session/index.tsxbytime.createddescending instead of by session ID. This is the ordering the ID sort was already encoding — "first child" keeps meaning newest-created, but is now stable across the wrap. The footer(N of M)counter already sorts bytime.createdascending, so navigation and the counter stay consistent (Ctrl+X+Down lands onM of M).How did you verify your code works?
~currentwherecurrent = timestamp_ms * 0x1000 + counter, truncated to 48 bits. The last wrap occurred at 2026-08-14 11:19:55 UTC.bun typecheckpasses inpackages/tui.Screenshots / recordings
Not included — this changes which session navigation lands on, not how the UI looks, so there is nothing visual to capture.
Checklist