fix(ui): surface session loading failures#582
Conversation
Show detailed OpenCode errors and retry actions when the session list or a known session's messages cannot be loaded, instead of presenting an empty state or relying only on logs. Other instance data continues hydrating when the list request fails. Share error extraction and error-state rendering across list and message loading while keeping their state scoped by instance and session. Request IDs prevent stale overlapping list requests from replacing newer results, and retries without cached sessions display loading feedback. Add localized copy for all supported locales and tests for nested SDK errors, fallback messages, structured bodies, cyclic causes, and session-list error state. Validated with targeted Bun tests, UI typecheck, production build, and diff checks.
|
PR builds are available as GitHub Actions artifacts: https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29174942286 Artifacts expire in 7 days.
|
Gatekeeper review: REQUEST CHANGESI reviewed the latest PR head Blocking findings
Non-blocking improvements
Implementation assessmentThe shared Verification
I would not merge this state until both blocking findings are resolved. |
|
PR builds are available as GitHub Actions artifacts: https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29189026755 Artifacts expire in 7 days.
|
Restore pending permission and question indicators when interruption queues hydrate before a failed session list is retried. Reconcile the queue-derived state after list and queue synchronization so recovery no longer depends on another SSE event. Clear per-instance request state during teardown and use a monotonic request generation to keep late responses stale even if an instance ID is reused. Move error extraction coverage out of the client-only store graph and add server-safe tests for pending-state reconciliation. Validated with focused Bun tests, UI typechecking, the production UI build, and git diff checks.
Gatekeeper follow-up: PASSResolved both blocking findings in
Validation:
|
|
@shantur LGTM |
|
PR builds are available as GitHub Actions artifacts: https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29205577941 Artifacts expire in 7 days.
|
|
PR builds are available as GitHub Actions artifacts: https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29206152730 Artifacts expire in 7 days.
|
1 similar comment
|
PR builds are available as GitHub Actions artifacts: https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29206152730 Artifacts expire in 7 days.
|
|
PR builds are available as GitHub Actions artifacts: https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29335999227 Artifacts expire in 7 days.
|
|
@pascalandr - Needs to resolve conflicts |
Integrate the current dev restoration and runtime-authority lifecycle with the session-list failure handling from this branch. Keep session loading failures visible in UI state without aborting the remaining instance hydration. Preserve both request-state cleanup and the newer attachment, selection, deletion-authority, and lifecycle cleanup when instances are removed. Validated with the UI typecheck and production build, six focused PR tests, and eleven instance runtime-authority assertions under SolidJS browser conditions.
|
PR builds are available as GitHub Actions artifacts: https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/29406565575 Artifacts expire in 7 days.
|
Summary
Closes #543.
Validation
bun test --conditions=browser packages/ui/src/stores/session-list-error.test.ts packages/ui/src/stores/session-tree.test.tsnpm run typecheck --workspace @codenomad/uinpm run build --workspace @codenomad/uigit diff --check upstream/dev...HEAD