You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Summary
Change thinking level storage from per-workspace to per-model globally.
### Changes
- **New storage key**: `thinkingLevel:model:{modelName}` (global)
replaces `thinkingLevel:{workspaceId}` (per-workspace)
- **ThinkingContext**: Reads model from workspace storage to derive the
per-model key
- **Simplified keybind**: Toggle now cycles through allowed levels
instead of toggle on/off with memory
- **Removed `lastThinkingByModel`**: No longer needed with cycle
behavior
- **No workspace sync**: Thinking level not copied on workspace creation
(uses global model preference)
### Benefits
- User's thinking preference for a model carries across all workspaces
- Clearer mental model — thinking is a property of the model, not the
workspace
- Net code reduction despite adding functionality
### Testing
- All 699 browser tests pass
- Typecheck passes
- Static checks pass
---
_Generated with `mux` • Model: `anthropic:claude-sonnet-4-20250514` •
Thinking: `low`_
-**Never call `localStorage` directly** — always use `usePersistedState`/`readPersistedState`/`updatePersistedState` helpers. This includes inside `useCallback`, event handlers, and non-React functions. The helpers handle JSON parsing, error recovery, and cross-component sync.
132
132
- When a component needs to read persisted state it doesn't own (to avoid layout flash), use `readPersistedState` in `useState` initializer: `useState(() => readPersistedState(key, default))`.
133
133
- When multiple components need the same persisted value, use `usePersistedState` with identical keys and `{ listener: true }` for automatic cross-component sync.
134
134
- Avoid destructuring props in function signatures; access via `props.field` to keep rename-friendly code.
0 commit comments