fix(ui): scope project session list requests#565
Conversation
Load the project-scoped OpenCode session list through the SDK endpoint that supports scope=project so worktree sessions are included in the sidebar data. Update @opencode-ai/sdk to 1.17.8 and switch the list loader from the cursor-based /api/session response to client.session.list with a single high-limit project request. The new endpoint does not support cursor pagination, so the UI marks the loaded list as complete and keeps load-more as a no-op. Validated with npm run typecheck --workspace packages/ui.
|
I want you to perform the gatekeeper checks for latest PR state check for regressions |
|
Gatekeeper review for latest PR state. Request understood: review PR #565 ruthlessly for regressions and implementation quality. I treated this as review-only and made no code changes. Findings
Validation
Initial typecheck before Gatekeeper Decision Request changes. The SDK migration itself typechecks, and -- |
|
PR builds are available as GitHub Actions artifacts: https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/27830530627 Artifacts expire in 7 days.
|
Replace stale cursor pagination assertions with coverage for the current project-scoped session list behavior. The tests now assert that requests use scope=project with the one-shot 1000-session limit and omit cursor/start pagination params. The session API now shares the same request option builder as the tests so the cap and scope stay aligned. Validated with npm run typecheck --workspace packages/ui and node --test packages/ui/src/stores/session-pagination.test.ts.
|
check again |
|
Re-check complete for the latest PR state. Request understood: re-run the gatekeeper review after the new push. I reviewed this as a strict review-only pass and made no code changes. Findings
The new commit adds tests, but they encode the regression rather than fixing it: Important detail: the installed
Validation
Worktree remained clean after validation. Gatekeeper Decision Request changes. The new test commit improves coverage only for the chosen one-shot behavior; it does not remove the core regression. Merge should wait until session list loading either preserves incremental access beyond 1,000 sessions or the team explicitly accepts and documents the cap with UI behavior that does not pretend infinite scroll still exists. -- |
Narrow fetchSessions to the reset option now that project session loading uses a fixed scoped request. This removes the stale getSessionFetchLimit call path so callers no longer imply cursor or offset pagination is still supported. Validated with npm run typecheck --workspace packages/ui and node --test packages/ui/src/stores/session-pagination.test.ts.
|
Thanks for the detailed review. I fixed the API cleanup issue in 8ff9ed1 by removing the ignored On the remaining pagination concern: I do not think we should implement offset pagination with The reason this PR uses So the tradeoff in this PR is intentional: restore project/worktree session visibility via the endpoint that supports |
|
PR builds are available as GitHub Actions artifacts: https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/27833404275 Artifacts expire in 7 days.
|
|
Again |
|
Re-check complete for the latest PR state at Request understood: run the gatekeeper review again after the author response and cleanup commit. I treated this as review-only and made no code changes. Findings No blocking findings in the current PR state. The previous API cleanup issue is fixed. I am also withdrawing the earlier recommendation to implement pagination with Residual Risk The PR still intentionally caps project-scoped session loading at Small non-blocking cleanup opportunity: Validation
Worktree remained clean after validation. Gatekeeper Decision Mergeable with known risk. The PR restores project/worktree session visibility through the endpoint that supports -- |
|
PR builds are available as GitHub Actions artifacts: https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/27833689732 Artifacts expire in 7 days.
|
|
This scope change is amazing! Thank you! Saves a lot of troubling finding missing sessions |
…r streaming, session fixes and Winget automation (#568) ## Thanks for contributions - [@shantur](https://github.com/shantur): [#535](#535), [#556](#556), [#557](#557), [#562](#562), [#563](#563), [#564](#564), [#565](#565), [#567](#567) - [@pascalandr](https://github.com/pascalandr): [#533](#533), [#551](#551) - [@JDis03](https://github.com/JDis03): [#484](#484), [#536](#536) - [@aayurt](https://github.com/aayurt): [#552](#552) ## Highlights - **Compact mode is much better on mobile**: The message UI has been redesigned for compact layouts, with cleaner controls and a denser conversation view that works better on smaller screens. - **Tool output is easier to control**: New tool-level expansion settings let you choose how much tool-call detail you want to see, making busy sessions easier to scan. - **Streaming output feels steadier**: Bash output, tool output, and assistant responses now stay pinned more reliably while streaming, reducing jumps and missed updates. - **Project sessions are scoped more accurately**: Session lists now respect the active project more consistently, so switching projects is less likely to show unrelated sessions. - **Tab closing is more dependable**: Closing tabs has been tightened up to avoid cases where the wrong tab behavior could interrupt your workflow. ## What’s Improved - **Cleaner compact conversation layout**: Message blocks, message sections, tool calls, permissions, questions, todos, and task output have all been polished for a more readable compact experience. - **More useful tool-call presentation**: Tool calls now have a stronger registry-backed rendering path, clearer titles, improved status display, and better per-tool output handling. - **Better follow behavior near the bottom of sessions**: The session view now tracks bottom-follow intent more carefully, helping the app stay with new output when you expect it to. - **Smoother live session creation**: Session-created events from the live event stream are now handled directly, so new sessions appear more reliably without manual refreshes. - **Improved permission denial feedback**: Denied permissions now produce simpler, less noisy feedback in the conversation. ## Fixes - **More reliable autoscroll during long responses**: Hold-mode assistant autoscroll, message-part tool output autoscroll, and streaming bash output pinning were stabilized. - **Less duplicated streaming text**: SSE part deltas are throttled and buffered more carefully to prevent stale delta text from being duplicated in streamed messages. - **Better session list isolation**: Project session list requests are now scoped so sessions from one project do not bleed into another project’s list. - **More stable tab management**: A tab close bug was fixed to make multi-session navigation safer. - **Release pipeline reliability**: Winget release automation is now wired into the release workflow so Windows package updates can be published more consistently. ## Docs - **New contributor guide**: A `CONTRIBUTING.md` guide was added to help new contributors set up the project and understand the development workflow. - **Winget release docs updated**: Supporting documentation for Winget release automation was refreshed. ### Contributors - [@shantur](https://github.com/shantur) - [@pascalandr](https://github.com/pascalandr) - [@JDis03](https://github.com/JDis03) - [@aayurt](https://github.com/aayurt) **Full Changelog**: [v0.17.0...v0.18.0](v0.17.0...v0.18.0) ## Merged Pull Requests ### [@shantur](https://github.com/shantur) - PR [#535](#535) “fix(ui): simplify permission denial feedback” - PR [#556](#556) “fix(ui): keep streaming bash output pinned” - PR [#557](#557) “WIP: Compact mode message UI redesign” - PR [#562](#562) “fix(ui): handle session created SSE events” - PR [#563](#563) “feat(ui): Add tool level expansion settings.” - PR [#564](#564) “Improve compact mobile UI controls” - PR [#565](#565) “fix(ui): scope project session list requests” - PR [#567](#567) “fix(ui): keep message-part tool output auto-scroll synced” ### [@pascalandr](https://github.com/pascalandr) - PR [#533](#533) “fix: stabilize hold-mode assistant autoscroll” - PR [#551](#551) “fix: wire Winget automation into release pipeline” ### [@JDis03](https://github.com/JDis03) - PR [#484](#484) “docs: add CONTRIBUTING.md guide for new contributors” - PR [#536](#536) “fix(ui): throttle SSE part deltas and prevent stale delta text duplication” ### [@aayurt](https://github.com/aayurt) - PR [#552](#552) “Bugfix/tab close bug”
Summary
Validation
Notes