feat(tui): add session_list_limit for session picker (#6137)#6138
feat(tui): add session_list_limit for session picker (#6137)#6138CasualDeveloper wants to merge 4 commits intoanomalyco:devfrom
Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds a configurable message_limit option to control the number of messages loaded per session in the TUI. The default value remains 100, but users can now configure it up to 10,000 messages through the config file.
- Add
message_limitconfiguration field to TUI schema with validation constraints (1-10,000) - Update implementation to use the configured value with fallback to 100
- Generate corresponding TypeScript type definitions
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
packages/sdk/openapi.json |
Adds message_limit field to the schema with integer constraints (1-10,000) and description |
packages/sdk/js/src/v2/gen/types.gen.ts |
Generated TypeScript types for the new message_limit config option |
packages/sdk/js/src/gen/types.gen.ts |
Generated TypeScript types with incorrect default value in documentation |
packages/opencode/src/config/config.ts |
Adds Zod schema validation for message_limit with proper constraints |
packages/opencode/src/cli/cmd/tui/context/sync.tsx |
Updates message loading to use configured limit with fallback to 100 |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
f0fea03 to
0a0b93e
Compare
|
Fixed the inconsistent default value in the SDK types (was 500, now correctly 100). Thanks Copilot! |
0a0b93e to
9f54237
Compare
|
Fixed second hardcoded |
|
I have a working implementation ready - typechecks pass. |
|
@CasualDeveloper I also want to see this feature. I've had a half-finished PR in my pocket for a while that addresses this (and also makes the length of I cordially invite you to steal anything you think might be useful from my unfinished PR: ariane-emory#43 The team may (or may not) conclude that this also resolves my original Issue on the topic, #4918. |
9f54237 to
c22ee69
Compare
|
@ariane-emory Thanks for linking your PR! I've incorporated |
ef4a090 to
4a4438c
Compare
|
Re-committed with valid GPG signature. PR ready. |
4596a07 to
da1e0bc
Compare
872e100 to
1e84d56
Compare
|
Will continue rebasing on top of release tags as they're set. |
1e84d56 to
0414034
Compare
325c7f5 to
8fc7ac0
Compare
c0282dc to
a566be1
Compare
bd214cc to
a7d1cc1
Compare
00637c0 to
71e0ba2
Compare
Add session_list_limit to both legacy config migration schema and current tui.json schema so the setting is recognized on latest dev.
Apply session_list_limit from tui config and preserve active-session visibility when the list is capped.
Add focused tests for capping behavior, search bypass, active-session preservation, and equal-timestamp ordering.
Add a home-screen tip for tui.session_list_limit and resolve duplicate wording introduced during rebase conflict resolution.
Problem
The session picker loads all sessions by default, which can become slow with hundreds or thousands of sessions.
Solution
tui.session_list_limitconfig (default 150)Notes
bun run --cwd packages/opencode typecheck