## Context This PR cleans up all the sidebar impl, from the over use of agentic tools, without regard for the sidebar's construction. ## How to Review This PR fixes the following problems: - Overuse of inter-event guards and state management around focus state. Simplified to just `focused_thread `, a derived value from the current active agent panel and thread. UI can optimistically set this value for threads that haven't been loaded yet, and it won't be unset by `update_entries` - Mixing data fetching and re-derivation. `update_entries` should not be fetching the list of threads. Rather, that list should be pulled from the threads meta data, cached on the sidebar, and then used to compute the new state - Similarly, removed logical state mutation from `update_entries`. It's job is to compile the new UI state from it's data sources, not to move selection state around. Do that elsewhere. - The Archive pointer should be stored in the active view enum, rather than spread across two fields - Finally, update_entries did several linear passes over the list of threads in a row, I had claude consolidate these passes and am relying on our extensive test coverage to keep it functioning. If this breaks something you built, _put that in a test_. ## Self-Review Checklist <!-- Check before requesting review: --> - [x] I've reviewed my own diff for quality, security, and reliability - [x] Unsafe blocks (if any) have justifying comments - [x] The content is consistent with the [UI/UX checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) - [x] Tests cover the new/changed behavior - [x] Performance impact has been considered and is acceptable Release Notes: - N/A
1 file changedLine totals unavailable