fix(app): preserve local runtime choice on rehydrate#2529
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughWhen redux-persist rehydrates state from storage, the ChangesRedux-persist rehydration safeguard
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Suggested labels
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
ESLint skipped: no ESLint configuration detected in root package.json. To enable, add Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@graycyrus @senamakel Ready for review. Latest state for #2529 (fix(app): preserve local runtime choice on rehydrate):
|
Summary
redux-persistrehydrate.coreMode.mode=unsetfrom sending users back to the runtime picker after choosing Local.redux-persistreconciler despite the global Vitest mock.Problem
openhuman_core_mode=localsynchronously before boot-check work starts.redux-persistcan later rehydrate an olderpersist:coreModeblob whosemodeis stillunset.Solution
persist/REHYDRATEincoreModeSlicefor thecoreModepersist key.localor fully configuredcloud) win over stale async persisted state.Submission Checklist
diff-cover) meet the gate enforced by.github/workflows/coverage.yml. Targeted coverage coverscoreModeSlice.tschanged lines at 100%; CI remains authoritative.## Related— N/A: no matrix feature ID changed.docs/RELEASE-MANUAL-SMOKE.md) — N/A: no release smoke checklist surface changed.Closes #NNNin the## RelatedsectionImpact
Related
AI Authored PR Metadata (required for Codex/Linear PRs)
Linear Issue
Commit & Branch
fix/2473-runtime-choice-loop21f781bf82a435732ddb83f67980717cbede87caValidation Run
pnpm --filter openhuman-app format:checkpnpm typecheckpnpm --filter openhuman-app test:unit src/store/coreModeSlice.test.ts;pnpm --filter openhuman-app exec vitest run --coverage --config test/vitest.config.ts src/store/coreModeSlice.test.tspnpm format:checkincludes rootcargo fmt --all --check; no Rust code changed.GGML_NATIVE=OFF git push -u origin fix/2473-runtime-choice-looppre-push rancargo check --manifest-path app/src-tauri/Cargo.tomlsuccessfully; no Tauri code changed.Validation Blocked
command:N/Aerror:N/Aimpact:N/ABehavior Changes
unsetstate.Parity Contract
coreModestill rehydrates normally when no synchronous marker exists.coreModerehydrate action and only overrides whenderiveInitialMode()returns a concrete mode.Duplicate / Superseded PR Handling
fix/2473-runtime-choice-loop.Summary by CodeRabbit
Bug Fixes
Tests