Skip to content

fix(ui): restore the active project before session hydration - #707

Merged
pascalandr merged 1 commit into
devfrom
fix/restore-active-project-tab
Sep 18, 2026
Merged

pascalandr merged 1 commit into
devfrom
fix/restore-active-project-tab

Conversation

@pascalandr

Copy link
Copy Markdown
Contributor

Summary

Restore the saved active project as soon as its workspace tab is bound, without waiting for conversation hydration.

Previously selection happened only after conversation hydration and a successful preservation settlement. Slow session requests delayed project selection; a competing settlement from the capture hook could also bypass it. The saved project could therefore remain unselected despite its tab already existing.

The selection now uses the restored binding and the existing user-selection revision guard. A manual project choice during startup remains authoritative.

Validation

  • Reproduced the regression before the fix: the saved second project existed but was not selected while conversation requests were held.
  • Four browser regressions using the real Solid restore/capture hooks: Electron and Tauri, with and without a subsequent user selection. Each verifies the persisted active index after hydration.
  • 27 targeted store tests passed: app tabs, reconciliation, snapshot merge. App-tab tests run with the browser condition required by Solid.
  • UI typecheck and production build passed; staged diff check passed.

Local delivery

Updated the installed application's UI assets for the next launch. No native binary rebuild or real-profile restart was performed for this fix; runtime validation is through isolated browser fixtures.

Select the saved project as soon as its restored workspace tab is bound. Previously selection depended on conversation hydration finishing and settling the preserved tab, so slow requests or a competing capture settlement could leave the wrong project active.

Keep the restored binding check and selection revision guard so a manual project choice during startup remains authoritative. Conversation hydration continues independently of project selection.

Add a browser fixture exercising the real restore and capture hooks with delayed conversation requests for Electron and Tauri. Cover selection before hydration, persistence afterward, and user selection during restoration. Validated four browser cases, 27 targeted store tests, UI typecheck, and production UI build.
@github-actions

Copy link
Copy Markdown

PR builds are available as GitHub Actions artifacts:

https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/35321898454

Artifacts expire in 7 days.
Artifacts:

  • pr-707-6c2fd1183371fc279d71c1d24de87e58f8707534-electron-macos
  • pr-707-6c2fd1183371fc279d71c1d24de87e58f8707534-tauri-macos
  • pr-707-6c2fd1183371fc279d71c1d24de87e58f8707534-tauri-windows
  • pr-707-6c2fd1183371fc279d71c1d24de87e58f8707534-electron-windows
  • pr-707-6c2fd1183371fc279d71c1d24de87e58f8707534-tauri-macos-arm64
  • session-pruning-plugin-windows-latest
  • session-pruning-plugin-macos-latest
  • pr-707-6c2fd1183371fc279d71c1d24de87e58f8707534-tauri-linux
  • session-pruning-plugin-ubuntu-latest
  • pr-707-6c2fd1183371fc279d71c1d24de87e58f8707534-electron-linux

@pascalandr
pascalandr merged commit 8ee276c into dev Sep 18, 2026
23 checks passed
@pascalandr
pascalandr deleted the fix/restore-active-project-tab branch September 18, 2026 09:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant