mirror of
https://github.com/NeuralNomadsAI/CodeNomad.git
synced 2026-10-19 15:34:12 +00:00
Native Preferences can reopen with a backend workspace ID saved before restart. Those IDs are ephemeral, so Providers and Web search were reading an obsolete proxy and remaining in an error state even after the project restored. Resolve the project through the existing metadata-only inventory and wait for its ready event before reading project settings. Prefer the exact record while it exists; otherwise choose only one unambiguous exact-folder match. Persist the opened backend-host workspacePath separately from the selected native directory so WSL and worktree requests retain their execution-host Location. Both Electron and Tauri accept and store the optional field. Legacy requests without it retain the conservative exact-directory fallback; no path translation or ancestor is guessed. Reads follow visible section demand, matching lifecycle events and reconnects, without polling or hydrating other workspaces. Record deletion tombstones before candidates are known, revalidate ambiguity after deletion, and fence stale responses and newer explicit Preferences requests. Rebinding uses the existing persistence queue and preserves scrolling performed while the native write is pending. Validation: 28 browser tests across startup restoration, Preferences lifetime/opener state, Web search and the native Missions entry point; 44 TypeScript request-contract and Electron client-state tests; UI typecheck and diff check. New startup regressions cover both hosts, delayed readiness, obsolete IDs, unresolved deletion, ambiguous folders, WSL paths, reconnects and newer view intent. Tauri validation and persistence tests cover the updated request contract. Independent review approved the follow-up after its deletion, WSL and scroll findings were addressed. CI also exposed an existing Markdown completion stopwatch failure (178 ms versus 150 ms). A test-only follow-up verifies immediate warm parser dispatch before timers instead of measuring highlighting/observation latency, then checks exactly one final parse and highlighted final text. All 11 tests pass and a deliberate 200 ms dispatch-delay mutation fails; production Markdown remains unchanged. |
||
|---|---|---|
| .. | ||
| scripts | ||
| src-tauri | ||
| tests | ||
| vendor | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| NOTIFICATION_BADGES.md | ||
| package.json | ||