diff --git a/.handoff-introduce-thread-id.md b/.handoff-introduce-thread-id.md deleted file mode 100644 index a1ea81142beafe6a88fd4ee695f2693ed8efad8d..0000000000000000000000000000000000000000 --- a/.handoff-introduce-thread-id.md +++ /dev/null @@ -1,41 +0,0 @@ -# Handoff: Introduce ThreadId — Fix sidebar compilation - -## Branch: `introduce-thread-id` -## Worktree: `/Users/nathan/src/worktrees/zed/pure-stork/zed` - -## What's done - -All `agent_ui` crate changes are complete and compiling: -- `thread_metadata_store.rs`: New `ThreadId` type, DB migrations, all store methods updated -- `thread_import.rs`, `thread_worktree_archive.rs`, `threads_archive_view.rs`: Updated -- `thread_view.rs`: Added `is_draft()` method -- `agent_ui.rs`: Re-exports `ThreadId` -- `agent_panel.rs`: Minimal fixes (`entry_by_session`, `unarchive` lookup) - -Verify: `cargo check -p agent_ui` passes. - -## What remains - -`crates/sidebar/src/sidebar.rs` has ~58 compilation errors because `ThreadMetadata.session_id` changed from `acp::SessionId` to `Option`, and several store methods changed signatures. - -Run `cargo check -p sidebar 2>&1` to see all errors. - -### Mechanical fix patterns needed: - -1. **Comparisons**: `metadata.session_id == *session_id` → `metadata.session_id.as_ref() == Some(session_id)` -2. **HashSet collection**: Where `session_id` is collected into `HashSet`, use `.filter_map(|m| m.session_id.clone())` to extract from Option -3. **Field access**: `session_id.0` → `session_id.as_ref().unwrap().0` or `if let Some(sid) = &session_id { sid.0 ... }` -4. **CancelRestore event**: Pattern `CancelRestore { session_id }` → `CancelRestore { thread_id }`. Import `agent_ui::ThreadId`. -5. **Store lookups**: `store.entry(&session_id)` → `store.entry_by_session(&session_id)` -6. **Store mutations** (`delete`, `archive`, `unarchive`, `update_working_directories`): These now take `ThreadId`. Look up via `store.entry_by_session(&session_id).map(|t| t.thread_id)` first, then call with the `ThreadId`. -7. **`entry_ids()`**: Now returns `Iterator` not `SessionId` -8. **`cleanup_thread_archived_worktrees`**: Now takes `ThreadId` not `&acp::SessionId` - -### After fixing sidebar: - -1. Run tests: `cargo test -p agent_ui -- thread_metadata` and `cargo test -p agent_ui -- thread_import` -2. Verify: `cargo check -p sidebar` - -## Reference - -The full target implementation exists on the `project-group-refactor` branch at `/Users/nathan/src/zed` if you need to check anything.