From 77fde36ae112437a8ce23e752209099ee04a0d50 Mon Sep 17 00:00:00 2001 From: Brent Traut Date: Tue, 10 Nov 2026 11:02:42 +0000 Subject: [PATCH] Allow searching persisted attached threads (#60574) ## Why Title and content searches exclude attached threads, preventing clients from finding their saved conversations alongside ordinary threads. ## What changed - Add `includeAttachedThreads` to `thread/list` and `thread/search`. For `thread/list`, require a non-empty `searchTerm` and preserve the usual provider and source filters. - Expose `attachedToThreadId` on thread responses to identify the owning parent independently of fork and subagent lineage. - Support inclusive searches through SQLite and filesystem fallback, repairing missing database entries with saved thread names during title searches. ## Testing Add regression coverage for opt-in title and content searches, attached-parent metadata after restart, default search filters, filesystem searches without SQLite, and discovery and repair of unindexed title matches. GitOrigin-RevId: ac12ec3c730ad7f1722bdf8e21600d17f12017f0 --- codex-rs/analytics/src/client_tests.rs | 1 + codex-rs/analytics/src/tests/support.rs | 1 + .../app-server-exports-experimental.json.zst | Bin 177245 -> 177400 bytes .../src/protocol/common.rs | 2 + .../src/protocol/v2/tests.rs | 1 + .../src/protocol/v2/thread.rs | 7 + .../src/protocol/v2/thread_data.rs | 5 + codex-rs/app-server-test-client/src/lib.rs | 1 + .../request_processors/thread_processor.rs | 32 +++- .../thread_processor_tests.rs | 1 + .../thread_resume_redaction.rs | 1 + .../src/request_processors/thread_summary.rs | 1 + .../tests/suite/v2/attached_thread_tests.rs | 46 +++++- .../tests/suite/v2/external_agent_config.rs | 7 + .../app-server/tests/suite/v2/projects.rs | 8 + .../tests/suite/v2/remote_thread_store.rs | 3 + .../tests/suite/v2/sqlite_recovery.rs | 1 + .../app-server/tests/suite/v2/thread_fork.rs | 1 + .../app-server/tests/suite/v2/thread_list.rs | 103 +++++++----- .../tests/suite/v2/thread_metadata_update.rs | 3 + .../app-server/tests/suite/v2/thread_read.rs | 3 + .../app-server/tests/suite/v2/turn_start.rs | 1 + codex-rs/cli/tests/queue.rs | 1 + codex-rs/core/src/realtime_context_tests.rs | 1 + codex-rs/exec/src/lib.rs | 2 + codex-rs/exec/src/lib_tests.rs | 2 + codex-rs/rollout/src/list.rs | 98 +++++------ codex-rs/rollout/src/recorder.rs | 136 ++++++---------- codex-rs/rollout/src/recorder_tests.rs | 11 ++ codex-rs/rollout/src/state_db.rs | 70 ++++---- codex-rs/rollout/src/tests.rs | 11 ++ codex-rs/state/src/model/thread_metadata.rs | 2 + codex-rs/state/src/runtime/threads.rs | 37 +++-- codex-rs/thread-store/src/in_memory.rs | 13 +- codex-rs/thread-store/src/local/helpers.rs | 1 + .../thread-store/src/local/list_threads.rs | 45 ++---- .../thread-store/src/local/read_thread.rs | 6 + .../thread-store/src/local/search_threads.rs | 4 +- .../src/local/search_threads_tests.rs | 152 ++++++++++++++++++ .../thread-store/src/local/test_support.rs | 3 + codex-rs/thread-store/src/types.rs | 17 ++ codex-rs/tui/src/analytics/chats.rs | 1 + codex-rs/tui/src/app/agent_picker.rs | 1 + .../tui/src/app/agents_overview_discovery.rs | 2 + codex-rs/tui/src/app/agents_overview_tests.rs | 1 + codex-rs/tui/src/app/loaded_threads.rs | 1 + codex-rs/tui/src/app/tests.rs | 3 + codex-rs/tui/src/app/tests/startup.rs | 1 + codex-rs/tui/src/app/thread_session_state.rs | 1 + codex-rs/tui/src/app_server_session.rs | 1 + .../app_server_session/side_chat_history.rs | 1 + codex-rs/tui/src/dynamic_tools.rs | 1 + codex-rs/tui/src/lib.rs | 1 + codex-rs/tui/src/named_session_lookup.rs | 1 + codex-rs/tui/src/resume_picker.rs | 5 + codex-rs/tui/src/task_mentions.rs | 2 + 56 files changed, 587 insertions(+), 277 deletions(-) diff --git a/codex-rs/analytics/src/client_tests.rs b/codex-rs/analytics/src/client_tests.rs index 534886e0bf..ab47becf11 100644 --- a/codex-rs/analytics/src/client_tests.rs +++ b/codex-rs/analytics/src/client_tests.rs @@ -670,6 +670,7 @@ fn sample_thread(thread_id: &str) -> Thread { extra: None, session_id: format!("session-{thread_id}"), forked_from_id: None, + attached_to_thread_id: None, parent_thread_id: None, preview: "first prompt".to_string(), ephemeral: false, diff --git a/codex-rs/analytics/src/tests/support.rs b/codex-rs/analytics/src/tests/support.rs index b1cc0dd4a9..04ba40cfc9 100644 --- a/codex-rs/analytics/src/tests/support.rs +++ b/codex-rs/analytics/src/tests/support.rs @@ -112,6 +112,7 @@ pub(super) fn sample_thread_with_metadata( extra: None, session_id: format!("session-{thread_id}"), forked_from_id: None, + attached_to_thread_id: None, parent_thread_id, preview: "first prompt".to_string(), ephemeral, diff --git a/codex-rs/app-server-protocol/schema/precomputed/app-server-exports-experimental.json.zst b/codex-rs/app-server-protocol/schema/precomputed/app-server-exports-experimental.json.zst index 561f345bbb1ed32e9d5a685f10dd24c5d728f945..9295fb23f4f2e7e86e0588dc0b6150bdeb74a342 100644 GIT binary patch delta 132465 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 eiPw9Hv>dN8FmXri%X{}Ul3y%Z> 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 L!I^PBDAQ7P8=9p* diff --git a/codex-rs/app-server-protocol/src/protocol/common.rs b/codex-rs/app-server-protocol/src/protocol/common.rs index d61e1b3c72..b1e0d12b22 100644 --- a/codex-rs/app-server-protocol/src/protocol/common.rs +++ b/codex-rs/app-server-protocol/src/protocol/common.rs @@ -3347,6 +3347,7 @@ mod tests { extra: None, session_id: "67e55044-10b1-426f-9247-bb680e5fe0c7".to_string(), forked_from_id: None, + attached_to_thread_id: None, parent_thread_id: None, preview: "first prompt".to_string(), ephemeral: true, @@ -3406,6 +3407,7 @@ mod tests { "extra": null, "sessionId": "67e55044-10b1-426f-9247-bb680e5fe0c7", "forkedFromId": null, + "attachedToThreadId": null, "parentThreadId": null, "preview": "first prompt", "ephemeral": true, diff --git a/codex-rs/app-server-protocol/src/protocol/v2/tests.rs b/codex-rs/app-server-protocol/src/protocol/v2/tests.rs index 238a645fc0..4a5da61b82 100644 --- a/codex-rs/app-server-protocol/src/protocol/v2/tests.rs +++ b/codex-rs/app-server-protocol/src/protocol/v2/tests.rs @@ -304,6 +304,7 @@ fn thread_resume_response_round_trips_initial_turns_page() { extra: None, session_id: "thr_123".to_string(), forked_from_id: None, + attached_to_thread_id: None, parent_thread_id: None, preview: String::new(), ephemeral: false, diff --git a/codex-rs/app-server-protocol/src/protocol/v2/thread.rs b/codex-rs/app-server-protocol/src/protocol/v2/thread.rs index a5845056db..84b61dfb20 100644 --- a/codex-rs/app-server-protocol/src/protocol/v2/thread.rs +++ b/codex-rs/app-server-protocol/src/protocol/v2/thread.rs @@ -1435,6 +1435,10 @@ pub struct ThreadSectionDeleteResponse {} #[serde(rename_all = "camelCase")] #[ts(export_to = "v2/")] pub struct ThreadListParams { + /// Include persistent threads attached to a parent when searching by title. + #[experimental("thread/list.includeAttachedThreads")] + #[serde(default, skip_serializing_if = "std::ops::Not::not")] + pub include_attached_threads: bool, /// Show local history visible to the current ChatGPT account. Defaults to false. #[serde(default, skip_serializing_if = "std::ops::Not::not")] pub current_account_only: bool, @@ -1526,6 +1530,9 @@ pub struct ThreadListParams { #[serde(rename_all = "camelCase")] #[ts(export_to = "v2/")] pub struct ThreadSearchParams { + /// Include persistent threads attached to a parent in search results. + #[serde(default, skip_serializing_if = "std::ops::Not::not")] + pub include_attached_threads: bool, /// Show local history visible to the current ChatGPT account. Defaults to false. #[serde(default, skip_serializing_if = "std::ops::Not::not")] pub current_account_only: bool, diff --git a/codex-rs/app-server-protocol/src/protocol/v2/thread_data.rs b/codex-rs/app-server-protocol/src/protocol/v2/thread_data.rs index dd7c0d854a..24c497ca7b 100644 --- a/codex-rs/app-server-protocol/src/protocol/v2/thread_data.rs +++ b/codex-rs/app-server-protocol/src/protocol/v2/thread_data.rs @@ -218,6 +218,9 @@ pub struct Thread { pub session_id: String, /// Source thread id when this thread was created by forking another thread. pub forked_from_id: Option, + /// Parent that owns this persisted attached thread, independent of fork or spawn lineage. + #[experimental("thread.attachedToThreadId")] + pub attached_to_thread_id: Option, /// The ID of the parent thread. This will only be set if this thread is a subagent. pub parent_thread_id: Option, /// Usually the first user message in the thread, if available. @@ -305,6 +308,7 @@ struct ThreadCompatibility { extra: Option, session_id: String, forked_from_id: Option, + attached_to_thread_id: Option, parent_thread_id: Option, preview: String, ephemeral: bool, @@ -350,6 +354,7 @@ impl<'de> Deserialize<'de> for Thread { extra: thread.extra, session_id: thread.session_id, forked_from_id: thread.forked_from_id, + attached_to_thread_id: thread.attached_to_thread_id, parent_thread_id: thread.parent_thread_id, preview: thread.preview, ephemeral: thread.ephemeral, diff --git a/codex-rs/app-server-test-client/src/lib.rs b/codex-rs/app-server-test-client/src/lib.rs index c57f9758fe..97cb1fe5ec 100644 --- a/codex-rs/app-server-test-client/src/lib.rs +++ b/codex-rs/app-server-test-client/src/lib.rs @@ -1167,6 +1167,7 @@ async fn thread_list(endpoint: &Endpoint, config_overrides: &[String], limit: u3 println!("< initialize response: {initialize:?}"); let response = client.thread_list(ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, diff --git a/codex-rs/app-server/src/request_processors/thread_processor.rs b/codex-rs/app-server/src/request_processors/thread_processor.rs index b4d27cde9a..b21b92ca2f 100644 --- a/codex-rs/app-server/src/request_processors/thread_processor.rs +++ b/codex-rs/app-server/src/request_processors/thread_processor.rs @@ -2754,6 +2754,7 @@ impl ThreadRequestProcessor { params: ThreadListParams, ) -> Result { let ThreadListParams { + include_attached_threads, current_account_only, cursor, limit, @@ -2815,6 +2816,15 @@ impl ThreadRequestProcessor { } } let cwd_filters = normalize_thread_list_cwd_filters(cwd)?; + if include_attached_threads + && search_term + .as_ref() + .is_none_or(|term| term.trim().is_empty()) + { + return Err(invalid_request( + "includeAttachedThreads requires a non-empty searchTerm", + )); + } let relation_filter = match (parent_thread_id, ancestor_thread_id, attached_to_thread_id) { (Some(_), Some(_), None) => { return Err(invalid_request( @@ -2850,6 +2860,9 @@ impl ThreadRequestProcessor { "attachedToThreadId cannot be combined with parentThreadId or ancestorThreadId", )); } + (None, None, None) if include_attached_threads => { + Some(StoreThreadRelationFilter::IncludeAttached) + } (None, None, None) => None, }; @@ -2926,6 +2939,7 @@ impl ThreadRequestProcessor { params: ThreadSearchParams, ) -> Result { let ThreadSearchParams { + include_attached_threads, current_account_only, cursor, limit, @@ -2961,6 +2975,7 @@ impl ThreadRequestProcessor { let page = self .thread_store .search_threads(StoreSearchThreadsParams { + include_attached_threads, account: account.clone(), page_size: remaining.min(THREAD_LIST_MAX_LIMIT), cursor: cursor_obj.clone(), @@ -6078,6 +6093,8 @@ impl ThreadRequestProcessor { let mut items = Vec::with_capacity(requested_page_size); let mut next_cursor: Option = None; + let parent_scoped = + relation_filter.is_some_and(StoreThreadRelationFilter::is_parent_scoped); let model_provider_filter = match model_providers { Some(providers) => { if providers.is_empty() { @@ -6086,15 +6103,14 @@ impl ThreadRequestProcessor { Some(providers) } } - None if relation_filter.is_some() => None, + None if parent_scoped => None, None => Some(vec![self.config.model_provider_id.clone()]), }; - let (allowed_sources_vec, source_kind_filter) = - if relation_filter.is_some() && source_kinds.is_none() { - (Vec::new(), None) - } else { - compute_source_filters(source_kinds) - }; + let (allowed_sources_vec, source_kind_filter) = if parent_scoped && source_kinds.is_none() { + (Vec::new(), None) + } else { + compute_source_filters(source_kinds) + }; let allowed_sources = allowed_sources_vec.as_slice(); let store_sort_direction = match sort_direction { SortDirection::Asc => StoreSortDirection::Asc, @@ -6752,6 +6768,7 @@ fn thread_from_stored_thread( extra: None, session_id: thread_id, forked_from_id: thread.forked_from_id.map(|id| id.to_string()), + attached_to_thread_id: thread.attached_to_thread_id.map(|id| id.to_string()), parent_thread_id: thread.parent_thread_id.map(|id| id.to_string()), preview: thread.preview, ephemeral: false, @@ -6952,6 +6969,7 @@ fn build_thread_from_snapshot( extra: None, session_id, forked_from_id: None, + attached_to_thread_id: None, parent_thread_id: config_snapshot.parent_thread_id.map(|id| id.to_string()), preview: String::new(), ephemeral: config_snapshot.ephemeral, diff --git a/codex-rs/app-server/src/request_processors/thread_processor_tests.rs b/codex-rs/app-server/src/request_processors/thread_processor_tests.rs index af0f34c561..2fc26a2e4b 100644 --- a/codex-rs/app-server/src/request_processors/thread_processor_tests.rs +++ b/codex-rs/app-server/src/request_processors/thread_processor_tests.rs @@ -509,6 +509,7 @@ mod thread_processor_behavior_tests { extra_config: None, rollout_path: Some(PathBuf::from("/tmp/thread.jsonl")), forked_from_id: None, + attached_to_thread_id: None, parent_thread_id: None, preview: "preview".to_string(), name: None, diff --git a/codex-rs/app-server/src/request_processors/thread_resume_redaction.rs b/codex-rs/app-server/src/request_processors/thread_resume_redaction.rs index e33110abf9..8ae17d9a13 100644 --- a/codex-rs/app-server/src/request_processors/thread_resume_redaction.rs +++ b/codex-rs/app-server/src/request_processors/thread_resume_redaction.rs @@ -220,6 +220,7 @@ mod tests { extra: None, session_id: "session-1".to_string(), forked_from_id: None, + attached_to_thread_id: None, parent_thread_id: None, preview: "preview".to_string(), ephemeral: false, diff --git a/codex-rs/app-server/src/request_processors/thread_summary.rs b/codex-rs/app-server/src/request_processors/thread_summary.rs index 42562e4084..b88c911829 100644 --- a/codex-rs/app-server/src/request_processors/thread_summary.rs +++ b/codex-rs/app-server/src/request_processors/thread_summary.rs @@ -266,6 +266,7 @@ pub(crate) fn summary_to_thread( extra: None, session_id: thread_id, forked_from_id: None, + attached_to_thread_id: None, parent_thread_id: None, preview, ephemeral: false, diff --git a/codex-rs/app-server/tests/suite/v2/attached_thread_tests.rs b/codex-rs/app-server/tests/suite/v2/attached_thread_tests.rs index 08c95a748b..dba3700702 100644 --- a/codex-rs/app-server/tests/suite/v2/attached_thread_tests.rs +++ b/codex-rs/app-server/tests/suite/v2/attached_thread_tests.rs @@ -15,6 +15,7 @@ use codex_app_server_protocol::ThreadLoadedListParams; use codex_app_server_protocol::ThreadLoadedListResponse; use codex_app_server_protocol::ThreadReadResponse; use codex_app_server_protocol::ThreadResumeResponse; +use codex_app_server_protocol::ThreadSearchResponse; use codex_app_server_protocol::TurnStartParams; use codex_app_server_protocol::TurnStartResponse; use codex_app_server_protocol::UserInput; @@ -75,6 +76,7 @@ async fn saved_attached_thread_upgrade_restart_and_delete(recovery: Recovery) -> let fork: ThreadForkResponse = mcp.read_response(id).await?; assert!(!fork.thread.ephemeral); assert_eq!(fork.thread.forked_from_id, Some(parent.clone())); + assert_eq!(fork.thread.attached_to_thread_id.as_ref(), Some(&parent)); children.push(fork.thread.id); } // Newer attached threads fill the raw scan page. Listing must refill across hidden @@ -162,6 +164,11 @@ async fn saved_attached_thread_upgrade_restart_and_delete(recovery: Recovery) -> found.sort(); children.sort(); assert_eq!(found, children); + let id = mcp + .send_raw_request("thread/read", Some(json!({"threadId": children[0]}))) + .await?; + let cold: ThreadReadResponse = mcp.read_response(id).await?; + assert_eq!(cold.thread.attached_to_thread_id.as_ref(), Some(&parent)); let id = mcp .send_raw_request("thread/list", Some(json!({"attachedToThreadId": other}))) .await?; @@ -187,6 +194,7 @@ async fn saved_attached_thread_upgrade_restart_and_delete(recovery: Recovery) -> }) .await?; let independent: ThreadForkResponse = mcp.read_response(id).await?; + assert_eq!(independent.thread.attached_to_thread_id, None); let id = mcp .send_raw_request( "thread/list", @@ -205,7 +213,7 @@ async fn saved_attached_thread_upgrade_restart_and_delete(recovery: Recovery) -> .send_turn_start_request(TurnStartParams { thread_id: children[0].clone(), input: vec![UserInput::Text { - text: "continue".into(), + text: "continue the chartreuse calculation".into(), text_elements: vec![], }], ..Default::default() @@ -236,6 +244,42 @@ async fn saved_attached_thread_upgrade_restart_and_delete(recovery: Recovery) -> ) .await?; let read: ThreadReadResponse = mcp.read_response(id).await?; + let id = mcp + .send_raw_request( + "thread/name/set", + Some(json!({ + "threadId": children[0], "name": "chartreuse calculation" + })), + ) + .await?; + let _: serde_json::Value = mcp.read_response(id).await?; + for include in [false, true] { + let params = + json!({"searchTerm": "chartreuse calculation", "includeAttachedThreads": include}); + let id = mcp + .send_raw_request("thread/list", Some(params.clone())) + .await?; + let by_title: ThreadListResponse = mcp.read_response(id).await?; + let id = mcp.send_raw_request("thread/search", Some(params)).await?; + let by_content: ThreadSearchResponse = mcp.read_response(id).await?; + for results in [ + by_title.data, + by_content.data.into_iter().map(|hit| hit.thread).collect(), + ] { + let destinations = results + .into_iter() + .map(|thread| (thread.id, thread.attached_to_thread_id)) + .collect::>(); + assert_eq!( + destinations, + if include { + vec![(children[0].clone(), Some(parent.clone()))] + } else { + vec![] + } + ); + } + } assert_eq!(read.thread.turns.len(), 1); assert_eq!(read.thread.turns[0].id, started.turn.id); let id = mcp diff --git a/codex-rs/app-server/tests/suite/v2/external_agent_config.rs b/codex-rs/app-server/tests/suite/v2/external_agent_config.rs index 7546304013..15a45c7567 100644 --- a/codex-rs/app-server/tests/suite/v2/external_agent_config.rs +++ b/codex-rs/app-server/tests/suite/v2/external_agent_config.rs @@ -610,6 +610,7 @@ source = {:?} let request_id = mcp .send_thread_list_request(ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -2067,6 +2068,7 @@ async fn external_agent_config_import_creates_session_rollouts() -> Result<()> { let request_id = mcp .send_thread_list_request(ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -2262,6 +2264,7 @@ required = true let request_id = mcp .send_thread_list_request(ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -2351,6 +2354,7 @@ async fn external_agent_config_import_accepts_detected_session_payload_after_res let request_id = mcp .send_thread_list_request(ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -2437,6 +2441,7 @@ async fn external_agent_config_import_skips_already_imported_session_versions() let request_id = mcp .send_thread_list_request(ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -2569,6 +2574,7 @@ async fn external_agent_config_import_returns_before_background_session_import_f let request_id = mcp .send_thread_list_request(ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -2689,6 +2695,7 @@ async fn external_agent_config_import_compacts_huge_session_before_first_follow_ let request_id = mcp .send_thread_list_request(ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, diff --git a/codex-rs/app-server/tests/suite/v2/projects.rs b/codex-rs/app-server/tests/suite/v2/projects.rs index 918368504e..fb89279ea9 100644 --- a/codex-rs/app-server/tests/suite/v2/projects.rs +++ b/codex-rs/app-server/tests/suite/v2/projects.rs @@ -100,6 +100,7 @@ async fn projects_list_by_recency_and_preserve_metadata_timestamps() -> Result<( .request(|request_id| ClientRequest::ThreadList { request_id, params: ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -327,6 +328,7 @@ async fn projects_persist_and_assign_threads() -> Result<()> { .request(|request_id| ClientRequest::ThreadList { request_id, params: ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -377,6 +379,7 @@ async fn projects_persist_and_assign_threads() -> Result<()> { .request(|request_id| ClientRequest::ThreadList { request_id, params: ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -430,6 +433,7 @@ async fn projects_persist_and_assign_threads() -> Result<()> { .request(|request_id| ClientRequest::ThreadList { request_id, params: ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -628,6 +632,7 @@ async fn projects_persist_and_assign_threads() -> Result<()> { .request(|request_id| ClientRequest::ThreadList { request_id, params: ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -722,6 +727,7 @@ async fn deleted_project_is_dropped_before_first_durable_thread_persistence() -> .request(|request_id| ClientRequest::ThreadList { request_id, params: ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -915,6 +921,7 @@ async fn projects_validate_filters_cursors_and_sqlite_less_assignment() -> Resul for project_id in [String::new(), Uuid::now_v7().to_string()] { let request_id = server .send_thread_list_request(ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -1004,6 +1011,7 @@ async fn projects_validate_filters_cursors_and_sqlite_less_assignment() -> Resul assert_eq!(error.error.code, -32601); let list_id = unsupported_projects .send_thread_list_request(ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, diff --git a/codex-rs/app-server/tests/suite/v2/remote_thread_store.rs b/codex-rs/app-server/tests/suite/v2/remote_thread_store.rs index b59ac6e0c0..f4f72c5e1a 100644 --- a/codex-rs/app-server/tests/suite/v2/remote_thread_store.rs +++ b/codex-rs/app-server/tests/suite/v2/remote_thread_store.rs @@ -255,6 +255,7 @@ async fn thread_list_repeated_cursor_returns_internal_error() -> Result<()> { .request(ClientRequest::ThreadList { request_id: RequestId::Integer(1), params: ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -315,6 +316,7 @@ async fn thread_list_repeated_cursor_returns_internal_error() -> Result<()> { .request(ClientRequest::ThreadList { request_id: RequestId::Integer(2), params: ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -499,6 +501,7 @@ async fn thread_delete_with_non_local_thread_store_does_not_create_local_persist .request(ClientRequest::ThreadList { request_id: RequestId::Integer(3), params: ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, diff --git a/codex-rs/app-server/tests/suite/v2/sqlite_recovery.rs b/codex-rs/app-server/tests/suite/v2/sqlite_recovery.rs index c16a2a7928..a59eff0be6 100644 --- a/codex-rs/app-server/tests/suite/v2/sqlite_recovery.rs +++ b/codex-rs/app-server/tests/suite/v2/sqlite_recovery.rs @@ -235,6 +235,7 @@ async fn state_recovery_restores_saved_threads() -> Result<()> { .await?; let request = server .send_thread_list_request(ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, diff --git a/codex-rs/app-server/tests/suite/v2/thread_fork.rs b/codex-rs/app-server/tests/suite/v2/thread_fork.rs index e732b9296f..43528e6850 100644 --- a/codex-rs/app-server/tests/suite/v2/thread_fork.rs +++ b/codex-rs/app-server/tests/suite/v2/thread_fork.rs @@ -116,6 +116,7 @@ const DEFAULT_READ_TIMEOUT: std::time::Duration = std::time::Duration::from_secs async fn list_threads(mcp: &mut TestAppServer) -> Result { let list_id = mcp .send_thread_list_request(ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, diff --git a/codex-rs/app-server/tests/suite/v2/thread_list.rs b/codex-rs/app-server/tests/suite/v2/thread_list.rs index 1310e5af54..66a5052718 100644 --- a/codex-rs/app-server/tests/suite/v2/thread_list.rs +++ b/codex-rs/app-server/tests/suite/v2/thread_list.rs @@ -102,6 +102,7 @@ async fn list_threads_with_sort( mcp.request(|request_id| ClientRequest::ThreadList { request_id, params: codex_app_server_protocol::ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -145,6 +146,7 @@ async fn list_threads_for_relation( mcp.request(|request_id| ClientRequest::ThreadList { request_id, params: codex_app_server_protocol::ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -779,6 +781,7 @@ async fn thread_list_respects_cwd_filters() -> Result<()> { let mut mcp = init_mcp(codex_home.path()).await?; let request_id = mcp .send_thread_list_request(codex_app_server_protocol::ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -822,17 +825,10 @@ async fn thread_list_respects_cwd_filters() -> Result<()> { #[tokio::test] async fn thread_list_respects_search_term_filter() -> Result<()> { let codex_home = TempDir::new()?; - std::fs::write( - codex_home.path().join("config.toml"), - r#" -model = "mock-model" -approval_policy = "never" -suppress_unstable_features_warning = true - -[features] -sqlite = true -"#, - )?; + let server = create_mock_responses_server_repeating_assistant("Done").await; + MockResponsesConfig::new(&server.uri()) + .enable_feature(Feature::Sqlite) + .write(codex_home.path())?; let older_match = create_fake_rollout( codex_home.path(), @@ -859,6 +855,24 @@ sqlite = true /*git_info*/ None, )?; + create_fake_rollout( + codex_home.path(), + "2025-01-02T13-00-00", + "2025-01-02T13:00:00Z", + "needle on another provider", + Some("other_provider"), + /*git_info*/ None, + )?; + let exec_match = create_fake_rollout_with_source( + codex_home.path(), + "2025-01-02T14-00-00", + "2025-01-02T14:00:00Z", + "exec needle", + Some("mock_provider"), + /*git_info*/ None, + CoreSessionSource::Exec, + )?; + // `thread/list` applies `search_term` on the sqlite fast path. This test creates // rollouts manually, so mark the DB backfill complete and then run an unsearched // list large enough to repair every rollout the searched list should find. @@ -889,40 +903,32 @@ sqlite = true /*cwd_filters*/ None, "mock_provider", /*search_term*/ None, + /*include_attached_threads*/ false, ) .await?; - assert_eq!(repaired_page.items.len(), 3); + assert_eq!(repaired_page.items.len(), 5); let mut mcp = init_mcp(codex_home.path()).await?; - let request_id = mcp - .send_thread_list_request(codex_app_server_protocol::ThreadListParams { - current_account_only: false, - excluded_thread_ids: None, - attached_to_thread_id: None, - originators: None, - cursor: None, - limit: Some(10), - sort_key: None, - sort_direction: None, - model_providers: Some(vec!["mock_provider".to_string()]), - source_kinds: None, - archived: None, - section_id: None, - project_id: None, - cwd: None, - use_state_db_only: false, - search_term: Some("needle".to_string()), - parent_thread_id: None, - ancestor_thread_id: None, - }) - .await?; - let ThreadListResponse { - data, next_cursor, .. - } = timeout(DEFAULT_READ_TIMEOUT, mcp.read_response(request_id)).await??; - - assert_eq!(next_cursor, None); - let ids: Vec<_> = data.iter().map(|thread| thread.id.as_str()).collect(); - assert_eq!(ids, vec![newer_match, older_match]); + for (mut params, expected_ids) in [ + (json!({}), vec![&newer_match, &older_match]), + ( + json!({"includeAttachedThreads": true}), + vec![&newer_match, &older_match], + ), + ( + json!({"includeAttachedThreads": true, "sourceKinds": ["exec"]}), + vec![&exec_match], + ), + ] { + params["limit"] = json!(10); + params["searchTerm"] = json!("needle"); + let request_id = mcp.send_raw_request("thread/list", Some(params)).await?; + let response: ThreadListResponse = + timeout(DEFAULT_READ_TIMEOUT, mcp.read_response(request_id)).await??; + assert_eq!(response.next_cursor, None); + let ids: Vec<_> = response.data.iter().map(|thread| &thread.id).collect(); + assert_eq!(ids, expected_ids); + } Ok(()) } @@ -968,6 +974,7 @@ async fn thread_search_returns_content_matches() -> Result<()> { let mut mcp = init_mcp(codex_home.path()).await?; let request_id = mcp .send_thread_search_request(codex_app_server_protocol::ThreadSearchParams { + include_attached_threads: false, current_account_only: false, cursor: None, limit: Some(10), @@ -1024,6 +1031,7 @@ async fn thread_search_returns_content_matches() -> Result<()> { let request_id = mcp .send_thread_search_request(codex_app_server_protocol::ThreadSearchParams { + include_attached_threads: false, current_account_only: false, cursor: None, limit: Some(10), @@ -1087,6 +1095,7 @@ async fn thread_search_matches_json_escaped_content() -> Result<()> { let mut mcp = init_mcp(codex_home.path()).await?; let request_id = mcp .send_thread_search_request(codex_app_server_protocol::ThreadSearchParams { + include_attached_threads: false, current_account_only: false, cursor: None, limit: Some(10), @@ -1133,6 +1142,7 @@ async fn thread_search_filters_by_source_kind() -> Result<()> { let mut mcp = init_mcp(codex_home.path()).await?; let request_id = mcp .send_thread_search_request(codex_app_server_protocol::ThreadSearchParams { + include_attached_threads: false, current_account_only: false, cursor: None, limit: Some(10), @@ -1311,6 +1321,7 @@ sqlite = true let request_id = mcp .send_thread_list_request(codex_app_server_protocol::ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -1351,6 +1362,7 @@ sqlite = true let request_id = mcp .send_thread_list_request(codex_app_server_protocol::ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -1384,6 +1396,7 @@ sqlite = true let request_id = mcp .send_thread_list_request(codex_app_server_protocol::ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -1573,6 +1586,7 @@ async fn thread_list_relation_filters_reject_invalid_requests() -> Result<()> { let mut mcp = init_mcp(codex_home.path()).await?; let request_id = mcp .send_thread_list_request(codex_app_server_protocol::ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -1603,6 +1617,7 @@ async fn thread_list_relation_filters_reject_invalid_requests() -> Result<()> { let thread_id = ThreadId::new().to_string(); let request_id = mcp .send_thread_list_request(codex_app_server_protocol::ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -1844,6 +1859,7 @@ async fn thread_list_reports_loaded_subagent_direct_input_capability() -> Result let request_id = mcp .send_thread_search_request(codex_app_server_protocol::ThreadSearchParams { + include_attached_threads: false, current_account_only: false, cursor: None, limit: Some(10), @@ -1898,6 +1914,7 @@ async fn thread_list_reports_loaded_subagent_direct_input_capability() -> Result .request(|request_id| ClientRequest::ThreadList { request_id, params: codex_app_server_protocol::ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -2567,6 +2584,7 @@ async fn thread_list_sort_recency_at_uses_state_db_order_with_provider_filter() /*cwd_filters*/ None, "mock_provider", /*search_term*/ None, + /*include_attached_threads*/ false, ) .await?; state_db @@ -2723,6 +2741,7 @@ async fn thread_list_backwards_cursor_can_seed_forward_delta_sync() -> Result<() } = { let request_id = mcp .send_thread_list_request(codex_app_server_protocol::ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -2768,6 +2787,7 @@ async fn thread_list_backwards_cursor_can_seed_forward_delta_sync() -> Result<() } = { let request_id = mcp .send_thread_list_request(codex_app_server_protocol::ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -3203,6 +3223,7 @@ async fn thread_list_invalid_cursor_returns_error() -> Result<()> { let request_id = mcp .send_thread_list_request(codex_app_server_protocol::ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, diff --git a/codex-rs/app-server/tests/suite/v2/thread_metadata_update.rs b/codex-rs/app-server/tests/suite/v2/thread_metadata_update.rs index 17d053bdd3..04a7479158 100644 --- a/codex-rs/app-server/tests/suite/v2/thread_metadata_update.rs +++ b/codex-rs/app-server/tests/suite/v2/thread_metadata_update.rs @@ -88,6 +88,7 @@ async fn thread_section_move_pins_and_archives_before_first_turn() -> Result<()> timeout(DEFAULT_READ_TIMEOUT, mcp.read_response(move_id)).await??; let list_params = ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -295,6 +296,7 @@ async fn thread_section_move_pins_and_unpins_with_filtered_recency_pagination() } let list_params = ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -490,6 +492,7 @@ async fn thread_sections_preserve_server_owned_manual_order_across_moves_and_res } let list_params = ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, diff --git a/codex-rs/app-server/tests/suite/v2/thread_read.rs b/codex-rs/app-server/tests/suite/v2/thread_read.rs index f7ad67d679..6cd281857f 100644 --- a/codex-rs/app-server/tests/suite/v2/thread_read.rs +++ b/codex-rs/app-server/tests/suite/v2/thread_read.rs @@ -415,6 +415,7 @@ async fn paginated_stored_thread_routes_projected_turns() -> Result<()> { let list_id = mcp .send_thread_list_request(ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -1161,6 +1162,7 @@ async fn thread_list_includes_store_thread_without_rollout_path() -> Result<()> .request(ClientRequest::ThreadList { request_id: RequestId::Integer(1), params: ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, @@ -1644,6 +1646,7 @@ async fn paginated_thread_name_set_is_reflected_in_read_list_and_metadata_resume // List should also surface the name. let list_id = mcp .send_thread_list_request(ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, diff --git a/codex-rs/app-server/tests/suite/v2/turn_start.rs b/codex-rs/app-server/tests/suite/v2/turn_start.rs index 34e9d2dc45..44014ab340 100644 --- a/codex-rs/app-server/tests/suite/v2/turn_start.rs +++ b/codex-rs/app-server/tests/suite/v2/turn_start.rs @@ -4722,6 +4722,7 @@ async fn direct_input_to_multi_agent_v2_subagent_is_rejected( .request(|request_id| ClientRequest::ThreadList { request_id, params: codex_app_server_protocol::ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, diff --git a/codex-rs/cli/tests/queue.rs b/codex-rs/cli/tests/queue.rs index 23c241ff58..13f2554b98 100644 --- a/codex-rs/cli/tests/queue.rs +++ b/codex-rs/cli/tests/queue.rs @@ -474,6 +474,7 @@ async fn remote_session_commands_with_workload_identity_use_server_auth() -> Res .request_typed(ClientRequest::ThreadList { request_id: RequestId::Integer(4), params: ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, diff --git a/codex-rs/core/src/realtime_context_tests.rs b/codex-rs/core/src/realtime_context_tests.rs index 2faf5c0649..2f7da06c59 100644 --- a/codex-rs/core/src/realtime_context_tests.rs +++ b/codex-rs/core/src/realtime_context_tests.rs @@ -36,6 +36,7 @@ fn stored_thread(cwd: &str, title: &str, first_user_message: &str) -> StoredThre extra_config: None, rollout_path: Some(PathBuf::from("/tmp/rollout.jsonl")), forked_from_id: None, + attached_to_thread_id: None, parent_thread_id: None, preview: first_user_message.to_string(), name: (!title.is_empty()).then(|| title.to_string()), diff --git a/codex-rs/exec/src/lib.rs b/codex-rs/exec/src/lib.rs index 827eb2be00..bb01fc3568 100644 --- a/codex-rs/exec/src/lib.rs +++ b/codex-rs/exec/src/lib.rs @@ -2007,6 +2007,7 @@ async fn resolve_resume_thread_id( ClientRequest::ThreadList { request_id: RequestId::Integer(0), params: ThreadListParams { + include_attached_threads: false, current_account_only: true, excluded_thread_ids: None, attached_to_thread_id: None, @@ -2096,6 +2097,7 @@ async fn resolve_resume_thread_id( ClientRequest::ThreadList { request_id: RequestId::Integer(0), params: ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, diff --git a/codex-rs/exec/src/lib_tests.rs b/codex-rs/exec/src/lib_tests.rs index af43049b02..b518d37265 100644 --- a/codex-rs/exec/src/lib_tests.rs +++ b/codex-rs/exec/src/lib_tests.rs @@ -358,6 +358,7 @@ fn turn_items_for_thread_returns_matching_turn_items() { extra: None, session_id: "thread-1".to_string(), forked_from_id: None, + attached_to_thread_id: None, parent_thread_id: None, preview: String::new(), ephemeral: false, @@ -871,6 +872,7 @@ fn sample_thread_start_response() -> ThreadStartResponse { extra: None, session_id: "67e55044-10b1-426f-9247-bb680e5fe0c7".to_string(), forked_from_id: None, + attached_to_thread_id: None, parent_thread_id: None, preview: String::new(), ephemeral: false, diff --git a/codex-rs/rollout/src/list.rs b/codex-rs/rollout/src/list.rs index ec40f50ea6..60b9972cc0 100644 --- a/codex-rs/rollout/src/list.rs +++ b/codex-rs/rollout/src/list.rs @@ -88,6 +88,8 @@ pub struct ThreadItem { pub source: Option, /// Persisted thread history contract selected when this thread was created. pub history_mode: ThreadHistoryMode, + /// Parent of a persisted attached thread. + pub attached_to_thread_id: Option, /// Immediate control/spawn parent thread id from session metadata. pub parent_thread_id: Option, /// Random unique nickname from session metadata for AgentControl-spawned sub-agents. @@ -123,7 +125,7 @@ struct HeadTailSummary { originator: Option, saw_session_meta: bool, has_fork_history: bool, - attached_to_parent: bool, + attached_to_thread_id: Option, thread_id: Option, first_user_message: Option, preview: Option, @@ -166,12 +168,14 @@ pub enum ThreadListLayout { Flat, } +#[derive(Clone, Copy)] pub struct ThreadListConfig<'a> { pub allowed_sources: &'a [SessionSource], pub model_providers: Option<&'a [String]>, pub cwd_filters: Option<&'a [PathBuf]>, pub default_provider: &'a str, pub layout: ThreadListLayout, + pub include_attached_threads: bool, } /// Pagination cursor identifying the last item in a page. @@ -256,9 +260,8 @@ struct FilesByCreatedAtVisitor<'a> { page_size: usize, anchor_state: AnchorState, more_matches_available: bool, - allowed_sources: &'a [SessionSource], + config: ThreadListConfig<'a>, provider_matcher: Option<&'a ProviderMatcher<'a>>, - cwd_filters: Option<&'a [PathBuf]>, } impl<'a> RolloutFileVisitor for FilesByCreatedAtVisitor<'a> { @@ -286,12 +289,12 @@ impl<'a> RolloutFileVisitor for FilesByCreatedAtVisitor<'a> { .and_then(format_rfc3339); if let Some(item) = build_thread_item( path, - self.allowed_sources, + self.config.allowed_sources, self.provider_matcher, - self.cwd_filters, + self.config.cwd_filters, updated_at, PreviewFilter::RequirePreview, - /*include_attached_threads*/ false, + self.config.include_attached_threads, ) .await { @@ -364,6 +367,7 @@ pub async fn get_threads( cwd_filters, default_provider, layout: ThreadListLayout::NestedByDate, + include_attached_threads: false, }, ) .await @@ -398,9 +402,8 @@ pub async fn get_threads_in_root( page_size, anchor, sort_key, - config.allowed_sources, + config, provider_matcher.as_ref(), - config.cwd_filters, ) .await? } @@ -410,9 +413,8 @@ pub async fn get_threads_in_root( page_size, anchor, sort_key, - config.allowed_sources, + config, provider_matcher.as_ref(), - config.cwd_filters, ) .await? } @@ -429,9 +431,8 @@ async fn traverse_directories_for_paths( page_size: usize, anchor: Option, sort_key: ThreadSortKey, - allowed_sources: &[SessionSource], + config: ThreadListConfig<'_>, provider_matcher: Option<&ProviderMatcher<'_>>, - cwd_filters: Option<&[PathBuf]>, ) -> io::Result { match sort_key { ThreadSortKey::CreatedAt => { @@ -439,9 +440,8 @@ async fn traverse_directories_for_paths( root, page_size, anchor, - allowed_sources, + config, provider_matcher, - cwd_filters, ) .await } @@ -450,9 +450,8 @@ async fn traverse_directories_for_paths( root, page_size, anchor, - allowed_sources, + config, provider_matcher, - cwd_filters, ) .await } @@ -464,32 +463,15 @@ async fn traverse_flat_paths( page_size: usize, anchor: Option, sort_key: ThreadSortKey, - allowed_sources: &[SessionSource], + config: ThreadListConfig<'_>, provider_matcher: Option<&ProviderMatcher<'_>>, - cwd_filters: Option<&[PathBuf]>, ) -> io::Result { match sort_key { ThreadSortKey::CreatedAt => { - traverse_flat_paths_created( - root, - page_size, - anchor, - allowed_sources, - provider_matcher, - cwd_filters, - ) - .await + traverse_flat_paths_created(root, page_size, anchor, config, provider_matcher).await } ThreadSortKey::UpdatedAt | ThreadSortKey::RecencyAt => { - traverse_flat_paths_updated( - root, - page_size, - anchor, - allowed_sources, - provider_matcher, - cwd_filters, - ) - .await + traverse_flat_paths_updated(root, page_size, anchor, config, provider_matcher).await } } } @@ -504,9 +486,8 @@ async fn traverse_directories_for_paths_created( root: PathBuf, page_size: usize, anchor: Option, - allowed_sources: &[SessionSource], + config: ThreadListConfig<'_>, provider_matcher: Option<&ProviderMatcher<'_>>, - cwd_filters: Option<&[PathBuf]>, ) -> io::Result { let mut items: Vec = Vec::with_capacity(page_size); let mut scanned_files = 0usize; @@ -516,9 +497,8 @@ async fn traverse_directories_for_paths_created( page_size, anchor_state: AnchorState::new(anchor), more_matches_available, - allowed_sources, + config, provider_matcher, - cwd_filters, }; walk_rollout_files(&root, &mut scanned_files, &mut visitor).await?; more_matches_available = visitor.more_matches_available; @@ -555,9 +535,8 @@ async fn traverse_directories_for_paths_updated( root: PathBuf, page_size: usize, anchor: Option, - allowed_sources: &[SessionSource], + config: ThreadListConfig<'_>, provider_matcher: Option<&ProviderMatcher<'_>>, - cwd_filters: Option<&[PathBuf]>, ) -> io::Result { let mut items: Vec = Vec::with_capacity(page_size); let mut scanned_files = 0usize; @@ -583,12 +562,12 @@ async fn traverse_directories_for_paths_updated( let updated_at_fallback = format_rfc3339(ts); if let Some(item) = build_thread_item( candidate.path, - allowed_sources, + config.allowed_sources, provider_matcher, - cwd_filters, + config.cwd_filters, updated_at_fallback, PreviewFilter::RequirePreview, - /*include_attached_threads*/ false, + config.include_attached_threads, ) .await { @@ -620,9 +599,8 @@ async fn traverse_flat_paths_created( root: PathBuf, page_size: usize, anchor: Option, - allowed_sources: &[SessionSource], + config: ThreadListConfig<'_>, provider_matcher: Option<&ProviderMatcher<'_>>, - cwd_filters: Option<&[PathBuf]>, ) -> io::Result { let mut items: Vec = Vec::with_capacity(page_size); let mut scanned_files = 0usize; @@ -644,12 +622,12 @@ async fn traverse_flat_paths_created( .and_then(format_rfc3339); if let Some(item) = build_thread_item( path, - allowed_sources, + config.allowed_sources, provider_matcher, - cwd_filters, + config.cwd_filters, updated_at, PreviewFilter::IncludeEmpty, - /*include_attached_threads*/ false, + config.include_attached_threads, ) .await { @@ -681,9 +659,8 @@ async fn traverse_flat_paths_updated( root: PathBuf, page_size: usize, anchor: Option, - allowed_sources: &[SessionSource], + config: ThreadListConfig<'_>, provider_matcher: Option<&ProviderMatcher<'_>>, - cwd_filters: Option<&[PathBuf]>, ) -> io::Result { let mut items: Vec = Vec::with_capacity(page_size); let mut scanned_files = 0usize; @@ -709,12 +686,12 @@ async fn traverse_flat_paths_updated( let updated_at_fallback = format_rfc3339(ts); if let Some(item) = build_thread_item( candidate.path, - allowed_sources, + config.allowed_sources, provider_matcher, - cwd_filters, + config.cwd_filters, updated_at_fallback, PreviewFilter::IncludeEmpty, - /*include_attached_threads*/ false, + config.include_attached_threads, ) .await { @@ -816,7 +793,7 @@ async fn build_thread_item( let summary = read_head_summary(&path, HEAD_RECORD_LIMIT) .await .unwrap_or_default(); - if summary.attached_to_parent && !include_attached_threads { + if summary.attached_to_thread_id.is_some() && !include_attached_threads { return None; } if !allowed_sources.is_empty() @@ -844,7 +821,8 @@ async fn build_thread_item( if summary.saw_session_meta && (matches!(preview_filter, PreviewFilter::IncludeEmpty) || summary.preview.is_some() - || summary.has_fork_history) + || summary.has_fork_history + || summary.attached_to_thread_id.is_some()) { let HeadTailSummary { originator, @@ -873,6 +851,7 @@ async fn build_thread_item( originator, path, thread_id, + attached_to_thread_id: summary.attached_to_thread_id, first_user_message, preview, section: None, @@ -1035,7 +1014,10 @@ async fn read_head_summary(path: &Path, head_limit: usize) -> io::Result, default_provider: &str, search_term: Option<&str>, + include_attached_threads: bool, ) -> std::io::Result { Self::list_threads_with_db_fallback( state_db_ctx, @@ -431,6 +432,7 @@ impl RolloutRecorder { ThreadListArchiveFilter::Active, ThreadListRepairMode::ScanAndRepair, search_term, + include_attached_threads, ) .await } @@ -463,6 +465,7 @@ impl RolloutRecorder { ThreadListArchiveFilter::Active, ThreadListRepairMode::StateDbOnly, search_term, + /*include_attached_threads*/ false, ) .await } @@ -481,6 +484,7 @@ impl RolloutRecorder { cwd_filters: Option<&[PathBuf]>, default_provider: &str, search_term: Option<&str>, + include_attached_threads: bool, ) -> std::io::Result { Self::list_threads_with_db_fallback( state_db_ctx, @@ -496,6 +500,7 @@ impl RolloutRecorder { ThreadListArchiveFilter::Archived, ThreadListRepairMode::ScanAndRepair, search_term, + include_attached_threads, ) .await } @@ -528,6 +533,7 @@ impl RolloutRecorder { ThreadListArchiveFilter::Archived, ThreadListRepairMode::StateDbOnly, search_term, + /*include_attached_threads*/ false, ) .await } @@ -547,6 +553,7 @@ impl RolloutRecorder { archive_filter: ThreadListArchiveFilter, repair_mode: ThreadListRepairMode, search_term: Option<&str>, + include_attached_threads: bool, ) -> std::io::Result { let codex_home = config.codex_home(); let sqlite = config.sqlite_config(); @@ -554,6 +561,8 @@ impl RolloutRecorder { ThreadListArchiveFilter::Active => false, ThreadListArchiveFilter::Archived => true, }; + let relation_filter = + include_attached_threads.then_some(codex_state::ThreadRelationFilter::IncludeAttached); if matches!(repair_mode, ThreadListRepairMode::StateDbOnly) { return state_db::list_threads_db( state_db_ctx.as_deref(), @@ -565,7 +574,7 @@ impl RolloutRecorder { allowed_sources, model_providers, cwd_filters, - /*relation_filter*/ None, + relation_filter, archived, /*section*/ None, /*project_id*/ None, @@ -586,6 +595,18 @@ impl RolloutRecorder { // Filesystem-first listing intentionally overfetches so we can repair stale/missing // SQLite rows before returning the scan page for filtered listings or the DB page for // unfiltered listings. + let file_config = ThreadListConfig { + allowed_sources, + model_providers, + cwd_filters, + default_provider, + layout: if archived { + ThreadListLayout::Flat + } else { + ThreadListLayout::NestedByDate + }, + include_attached_threads, + }; let fs_page = match sort_direction { SortDirection::Asc => { list_threads_from_files_asc( @@ -593,11 +614,7 @@ impl RolloutRecorder { page_size, cursor, sort_key, - allowed_sources, - model_providers, - cwd_filters, - default_provider, - archived, + file_config, search_term, ) .await? @@ -608,18 +625,14 @@ impl RolloutRecorder { page_size.saturating_mul(2), cursor, sort_key, - allowed_sources, - model_providers, - cwd_filters, - default_provider, - archived, + file_config, search_term, ) .await? } }; - if state_db_ctx.is_none() { + let Some(state_db) = state_db_ctx.as_deref() else { // Keep legacy behavior when SQLite is unavailable: return filesystem results // at the requested page size. codex_state::record_fallback( @@ -633,7 +646,7 @@ impl RolloutRecorder { page_size, sort_key, )); - } + }; // For metadata-filtered listings the filesystem page is the page we return. Track those // IDs so the later DB page only triggers full reconciliation for DB-only hits. @@ -648,14 +661,12 @@ impl RolloutRecorder { // enough there. Search can depend on full title metadata, so keep full reconciliation. for item in &fs_page.items { if search_term.is_some() { - state_db::reconcile_rollout( - state_db_ctx.as_deref(), + state_db::reconcile_rollout_from_disk( + state_db, item.path.as_path(), default_provider, - /*builder*/ None, - &[], Some(archived), - /*new_thread_memory_mode*/ None, + Some(codex_home), ) .await; } else { @@ -679,7 +690,7 @@ impl RolloutRecorder { allowed_sources, model_providers, cwd_filters, - /*relation_filter*/ None, + relation_filter, archived, /*section*/ None, /*project_id*/ None, @@ -710,7 +721,7 @@ impl RolloutRecorder { allowed_sources, model_providers, cwd_filters, - /*relation_filter*/ None, + relation_filter, archived, /*section*/ None, /*project_id*/ None, @@ -752,7 +763,7 @@ impl RolloutRecorder { allowed_sources, model_providers, cwd_filters, - /*relation_filter*/ None, + relation_filter, archived, /*section*/ None, /*project_id*/ None, @@ -1415,6 +1426,7 @@ fn fill_missing_thread_item_metadata(item: &mut ThreadItem, state_item: ThreadIt git_origin_url, source, history_mode: _, + attached_to_thread_id, parent_thread_id, agent_nickname, agent_role, @@ -1465,6 +1477,7 @@ fn fill_missing_thread_item_metadata(item: &mut ThreadItem, state_item: ThreadIt if item.source.is_none() { item.source = source; } + item.attached_to_thread_id = item.attached_to_thread_id.or(attached_to_thread_id); if item.parent_thread_id.is_none() { item.parent_thread_id = parent_thread_id; } @@ -1491,17 +1504,12 @@ fn fill_missing_thread_item_metadata(item: &mut ThreadItem, state_item: ThreadIt } } -#[allow(clippy::too_many_arguments)] async fn list_threads_from_files_desc( codex_home: &Path, page_size: usize, cursor: Option<&Cursor>, sort_key: ThreadSortKey, - allowed_sources: &[SessionSource], - model_providers: Option<&[String]>, - cwd_filters: Option<&[PathBuf]>, - default_provider: &str, - archived: bool, + config: ThreadListConfig<'_>, search_term: Option<&str>, ) -> std::io::Result { if let Some(search_term) = search_term { @@ -1517,11 +1525,7 @@ async fn list_threads_from_files_desc( scan_page_size, page_cursor.as_ref(), sort_key, - allowed_sources, - model_providers, - cwd_filters, - default_provider, - archived, + config, ) .await?; scanned_files = scanned_files.saturating_add(page.num_scanned_files); @@ -1554,74 +1558,29 @@ async fn list_threads_from_files_desc( }); } - list_threads_from_files_desc_unfiltered( - codex_home, - page_size, - cursor, - sort_key, - allowed_sources, - model_providers, - cwd_filters, - default_provider, - archived, - ) - .await + list_threads_from_files_desc_unfiltered(codex_home, page_size, cursor, sort_key, config).await } -#[allow(clippy::too_many_arguments)] async fn list_threads_from_files_desc_unfiltered( codex_home: &Path, page_size: usize, cursor: Option<&Cursor>, sort_key: ThreadSortKey, - allowed_sources: &[SessionSource], - model_providers: Option<&[String]>, - cwd_filters: Option<&[PathBuf]>, - default_provider: &str, - archived: bool, + config: ThreadListConfig<'_>, ) -> std::io::Result { - if archived { - let root = codex_home.join(ARCHIVED_SESSIONS_SUBDIR); - get_threads_in_root( - root, - page_size, - cursor, - sort_key, - ThreadListConfig { - allowed_sources, - model_providers, - cwd_filters, - default_provider, - layout: ThreadListLayout::Flat, - }, - ) - .await - } else { - get_threads( - codex_home, - page_size, - cursor, - sort_key, - allowed_sources, - model_providers, - cwd_filters, - default_provider, - ) - .await - } + let root = codex_home.join(match config.layout { + ThreadListLayout::Flat => ARCHIVED_SESSIONS_SUBDIR, + ThreadListLayout::NestedByDate => SESSIONS_SUBDIR, + }); + get_threads_in_root(root, page_size, cursor, sort_key, config).await } -#[allow(clippy::too_many_arguments)] async fn list_threads_from_files_asc( codex_home: &Path, page_size: usize, cursor: Option<&Cursor>, sort_key: ThreadSortKey, - allowed_sources: &[SessionSource], - model_providers: Option<&[String]>, - cwd_filters: Option<&[PathBuf]>, - default_provider: &str, - archived: bool, + config: ThreadListConfig<'_>, search_term: Option<&str>, ) -> std::io::Result { let mut all_items = Vec::new(); @@ -1635,11 +1594,7 @@ async fn list_threads_from_files_asc( scan_page_size, page_cursor.as_ref(), sort_key, - allowed_sources, - model_providers, - cwd_filters, - default_provider, - archived, + config, /*search_term*/ None, ) .await?; @@ -2165,6 +2120,7 @@ fn thread_item_from_state_metadata( .unwrap_or(SessionSource::Unknown), ), history_mode: item.history_mode, + attached_to_thread_id: item.attached_thread_parent_id, parent_thread_id, agent_nickname: item.agent_nickname, agent_role: item.agent_role, diff --git a/codex-rs/rollout/src/recorder_tests.rs b/codex-rs/rollout/src/recorder_tests.rs index c3c27f6d2e..0f88cb986f 100644 --- a/codex-rs/rollout/src/recorder_tests.rs +++ b/codex-rs/rollout/src/recorder_tests.rs @@ -1344,6 +1344,7 @@ async fn discovery_without_database_skips_attached_threads_before_pagination() - /*cwd_filters*/ None, default_provider.as_str(), /*search_term*/ None, + /*include_attached_threads*/ false, ) .await?; assert_eq!(page1.items.len(), 1); @@ -1362,6 +1363,7 @@ async fn discovery_without_database_skips_attached_threads_before_pagination() - /*cwd_filters*/ None, default_provider.as_str(), /*search_term*/ None, + /*include_attached_threads*/ false, ) .await?; assert_eq!(page2.items.len(), 1); @@ -1400,6 +1402,7 @@ async fn list_archived_threads_without_db_keeps_threads_without_previews() -> st /*cwd_filters*/ None, config.model_provider_id.as_str(), /*search_term*/ None, + /*include_attached_threads*/ false, ) .await?; assert_eq!(page.items.len(), 1); @@ -1495,6 +1498,7 @@ async fn list_threads_db_enabled_preserves_metadata_for_missing_rollout_paths() /*cwd_filters*/ None, default_provider.as_str(), /*search_term*/ None, + /*include_attached_threads*/ false, ) .await?; assert_eq!(page.items.len(), 1); @@ -1524,6 +1528,7 @@ async fn list_threads_db_enabled_preserves_metadata_for_missing_rollout_paths() /*cwd_filters*/ None, default_provider.as_str(), /*search_term*/ None, + /*include_attached_threads*/ false, ) .await?; assert_eq!(fallback.items.len(), 1); @@ -1608,6 +1613,7 @@ async fn list_threads_state_db_only_skips_jsonl_repair_scan() -> std::io::Result /*cwd_filters*/ Some(cwd_filters.as_slice()), config.model_provider_id.as_str(), /*search_term*/ None, + /*include_attached_threads*/ false, ) .await?; assert_eq!(repaired_page.items.len(), 1); @@ -1716,6 +1722,7 @@ async fn list_threads_default_filter_returns_filesystem_scan_results() -> std::i /*cwd_filters*/ Some(cwd_filters.as_slice()), config.model_provider_id.as_str(), /*search_term*/ None, + /*include_attached_threads*/ false, ) .await?; assert_eq!(scanned_page.items.len(), 0); @@ -1794,6 +1801,7 @@ async fn list_threads_metadata_filter_overlays_state_db_list_metadata() -> std:: /*cwd_filters*/ None, config.model_provider_id.as_str(), /*search_term*/ None, + /*include_attached_threads*/ false, ) .await?; @@ -1831,6 +1839,7 @@ fn fill_missing_thread_item_metadata_preserves_identity_and_prefers_state_git_fi ), source: None, history_mode: Default::default(), + attached_to_thread_id: None, parent_thread_id: None, agent_nickname: None, agent_role: None, @@ -1864,6 +1873,7 @@ fn fill_missing_thread_item_metadata_preserves_identity_and_prefers_state_git_fi ), source: Some(SessionSource::Exec), history_mode: Default::default(), + attached_to_thread_id: None, parent_thread_id: None, agent_nickname: Some("state-agent".to_string()), agent_role: Some("state-role".to_string()), @@ -1979,6 +1989,7 @@ async fn list_threads_search_repairs_stale_state_db_hits_before_returning() -> s /*cwd_filters*/ None, config.model_provider_id.as_str(), Some("needle"), + /*include_attached_threads*/ false, ) .await?; assert_eq!(scanned_page.items.len(), 0); diff --git a/codex-rs/rollout/src/state_db.rs b/codex-rs/rollout/src/state_db.rs index a53b099bd9..82ec525896 100644 --- a/codex-rs/rollout/src/state_db.rs +++ b/codex-rs/rollout/src/state_db.rs @@ -401,31 +401,6 @@ pub async fn list_threads_db( SortDirection::Desc => codex_state::SortDirection::Desc, }; - if let Some(relation_filter) = relation_filter { - let filters = codex_state::ThreadFilterOptions { - archived_only: archived, - section, - allowed_sources: allowed_sources.as_slice(), - model_providers: model_providers.as_deref(), - cwd_filters: normalized_cwd_filters.as_deref(), - project_id, - anchor: anchor.as_ref(), - sort_key: state_sort_key, - sort_direction: state_sort_direction, - search_term, - }; - return match ctx - .list_threads_by_relation(page_size, relation_filter, filters) - .await - { - Ok(page) => Some(page), - Err(err) => { - warn!("state db list_threads failed: {err}"); - None - } - }; - } - let mut items = Vec::with_capacity(page_size); let mut next_anchor = None; let mut num_scanned_rows = 0usize; @@ -442,13 +417,21 @@ pub async fn list_threads_db( sort_direction: state_sort_direction, search_term, }; - let page = match ctx.list_threads(page_size - items.len(), filters).await { - Ok(page) => page, - Err(err) => { - warn!("state db list_threads failed: {err}"); - return None; + let page = match relation_filter { + Some(relation) => { + ctx.list_threads_by_relation(page_size - items.len(), relation, filters) + .await } - }; + None => ctx.list_threads(page_size - items.len(), filters).await, + } + .inspect_err(|err| warn!("state db list_threads failed: {err}")) + .ok()?; + // Parent-scoped listings include empty threads whose rollout may still be pending. + if relation_filter + .is_some_and(|relation| relation != codex_state::ThreadRelationFilter::IncludeAttached) + { + return Some(page); + } num_scanned_rows = num_scanned_rows.saturating_add(page.num_scanned_rows); next_anchor = page.next_anchor; @@ -542,6 +525,23 @@ pub async fn reconcile_rollout( .await; return; } + reconcile_rollout_from_disk( + ctx, + rollout_path, + default_provider, + archived_only, + /*name_index_home*/ None, + ) + .await; +} + +pub(super) async fn reconcile_rollout_from_disk( + ctx: &codex_state::StateRuntime, + rollout_path: &Path, + default_provider: &str, + archived_only: Option, + name_index_home: Option<&Path>, +) { let outcome = match metadata::extract_metadata_from_rollout(rollout_path, default_provider).await { Ok(outcome) => outcome, @@ -573,6 +573,14 @@ pub async fn reconcile_rollout( if let Some(existing_metadata) = existing_metadata.as_ref() { metadata.prefer_existing_git_info(existing_metadata); metadata.prefer_existing_explicit_title(existing_metadata); + } else if let Some(home) = name_index_home { + // The saved name is outside the rollout. Seed it when title search repairs a missing row. + // The upsert preserves the database name if another writer creates the row first. + metadata.name = crate::find_thread_name_by_id(home, &metadata.id) + .await + .ok() + .flatten() + .filter(|name| !name.is_empty()); } match archived_only { Some(true) if metadata.archived_at.is_none() => { diff --git a/codex-rs/rollout/src/tests.rs b/codex-rs/rollout/src/tests.rs index 91be8e9a3c..f9855b313f 100644 --- a/codex-rs/rollout/src/tests.rs +++ b/codex-rs/rollout/src/tests.rs @@ -805,6 +805,7 @@ async fn test_list_conversations_latest_first() { git_origin_url: None, source: Some(SessionSource::VSCode), history_mode: Default::default(), + attached_to_thread_id: None, parent_thread_id: None, agent_nickname: None, agent_role: None, @@ -831,6 +832,7 @@ async fn test_list_conversations_latest_first() { git_origin_url: None, source: Some(SessionSource::VSCode), history_mode: Default::default(), + attached_to_thread_id: None, parent_thread_id: None, agent_nickname: None, agent_role: None, @@ -857,6 +859,7 @@ async fn test_list_conversations_latest_first() { git_origin_url: None, source: Some(SessionSource::VSCode), history_mode: Default::default(), + attached_to_thread_id: None, parent_thread_id: None, agent_nickname: None, agent_role: None, @@ -976,6 +979,7 @@ async fn test_pagination_cursor() { git_origin_url: None, source: Some(SessionSource::VSCode), history_mode: Default::default(), + attached_to_thread_id: None, parent_thread_id: None, agent_nickname: None, agent_role: None, @@ -1002,6 +1006,7 @@ async fn test_pagination_cursor() { git_origin_url: None, source: Some(SessionSource::VSCode), history_mode: Default::default(), + attached_to_thread_id: None, parent_thread_id: None, agent_nickname: None, agent_role: None, @@ -1064,6 +1069,7 @@ async fn test_pagination_cursor() { git_origin_url: None, source: Some(SessionSource::VSCode), history_mode: Default::default(), + attached_to_thread_id: None, parent_thread_id: None, agent_nickname: None, agent_role: None, @@ -1090,6 +1096,7 @@ async fn test_pagination_cursor() { git_origin_url: None, source: Some(SessionSource::VSCode), history_mode: Default::default(), + attached_to_thread_id: None, parent_thread_id: None, agent_nickname: None, agent_role: None, @@ -1144,6 +1151,7 @@ async fn test_pagination_cursor() { git_origin_url: None, source: Some(SessionSource::VSCode), history_mode: Default::default(), + attached_to_thread_id: None, parent_thread_id: None, agent_nickname: None, agent_role: None, @@ -1353,6 +1361,7 @@ async fn test_get_thread_contents() { git_origin_url: None, source: Some(SessionSource::VSCode), history_mode: Default::default(), + attached_to_thread_id: None, parent_thread_id: None, agent_nickname: None, agent_role: None, @@ -1771,6 +1780,7 @@ async fn test_filesystem_cursor_pages_through_same_timestamp_ties() { git_origin_url: None, source: Some(SessionSource::VSCode), history_mode: Default::default(), + attached_to_thread_id: None, parent_thread_id: None, agent_nickname: None, agent_role: None, @@ -1797,6 +1807,7 @@ async fn test_filesystem_cursor_pages_through_same_timestamp_ties() { git_origin_url: None, source: Some(SessionSource::VSCode), history_mode: Default::default(), + attached_to_thread_id: None, parent_thread_id: None, agent_nickname: None, agent_role: None, diff --git a/codex-rs/state/src/model/thread_metadata.rs b/codex-rs/state/src/model/thread_metadata.rs index 75378446c4..cf72159b85 100644 --- a/codex-rs/state/src/model/thread_metadata.rs +++ b/codex-rs/state/src/model/thread_metadata.rs @@ -36,6 +36,8 @@ pub enum SortDirection { /// Thread relationship used to filter thread listings. #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum ThreadRelationFilter { + /// Include attached threads alongside ordinary threads for search. + IncludeAttached, /// Return only threads whose immediate parent is the given thread. DirectChildrenOf(ThreadId), /// Return every thread transitively descended from the given thread. diff --git a/codex-rs/state/src/runtime/threads.rs b/codex-rs/state/src/runtime/threads.rs index 85ac134aae..c398140b5a 100644 --- a/codex-rs/state/src/runtime/threads.rs +++ b/codex-rs/state/src/runtime/threads.rs @@ -1370,7 +1370,7 @@ WITH RECURSIVE subtree(child_thread_id, parent_thread_id) AS ( Some(crate::ThreadRelationFilter::DescendantsOf(_)) => builder.push( ", subtree.parent_thread_id AS parent_thread_id\nFROM subtree\nCROSS JOIN threads ON threads.id = subtree.child_thread_id", ), - Some(crate::ThreadRelationFilter::AttachedThreadsOf(_)) => { + Some(crate::ThreadRelationFilter::AttachedThreadsOf(_) | crate::ThreadRelationFilter::IncludeAttached) => { builder.push(", NULL AS parent_thread_id\nFROM threads") } None => builder.push(" FROM threads"), @@ -1379,11 +1379,14 @@ WITH RECURSIVE subtree(child_thread_id, parent_thread_id) AS ( builder, filters, /*include_thread_id_tiebreaker*/ true, - /*include_empty_preview*/ relation_filter.is_some(), + relation_filter, ); if !matches!( relation_filter, - Some(crate::ThreadRelationFilter::AttachedThreadsOf(_)) + Some( + crate::ThreadRelationFilter::AttachedThreadsOf(_) + | crate::ThreadRelationFilter::IncludeAttached + ) ) { builder.push(EXCLUDE_ATTACHED_THREADS); } @@ -1400,17 +1403,19 @@ WITH RECURSIVE subtree(child_thread_id, parent_thread_id) AS ( builder.push(" AND threads.attached_thread_parent_id = "); builder.push_bind(parent.to_string()); } - None => {} + Some(crate::ThreadRelationFilter::IncludeAttached) | None => {} } let order_by_index = match (relation_filter, filters.cwd_filters) { // Relationship listings are expected to be much smaller than the global thread table. // Prefer the relationship index and sort the matches instead of scanning the // timestamp index until enough related threads happen to be found. - (Some(_), _) => OrderByIndex::Disabled, + (Some(relation), _) if relation != crate::ThreadRelationFilter::IncludeAttached => { + OrderByIndex::Disabled + } // Multi-cwd listing is supported but at the time of writing has no current use in production. // Preserve its query plan so the global timestamp index does not regress cwd filtering into a scan. - (None, Some(cwd_filters)) if cwd_filters.len() > 1 => OrderByIndex::Disabled, - (None, Some(_) | None) => OrderByIndex::Enabled, + (_, Some(cwd_filters)) if cwd_filters.len() > 1 => OrderByIndex::Disabled, + (_, Some(_) | None) => OrderByIndex::Enabled, }; push_thread_order_and_limit( builder, @@ -1523,7 +1528,7 @@ pub(super) fn push_thread_filters<'a>( builder, options, include_thread_id_tiebreaker, - /*include_empty_preview*/ false, + /*relation_filter*/ None, ); } @@ -1531,7 +1536,7 @@ fn push_thread_filters_with_preview<'a>( builder: &mut QueryBuilder, options: ThreadFilterOptions<'a>, include_thread_id_tiebreaker: bool, - include_empty_preview: bool, + relation_filter: Option, ) { let ThreadFilterOptions { archived_only, @@ -1551,8 +1556,18 @@ fn push_thread_filters_with_preview<'a>( } else { builder.push(" AND threads.archived = 0"); } - if !archived_only && !include_empty_preview && !matches!(section, Some(Some(_))) { - builder.push(" AND threads.preview <> ''"); + if !archived_only && !matches!(section, Some(Some(_))) { + match relation_filter { + None => { + builder.push(" AND threads.preview <> ''"); + } + Some(crate::ThreadRelationFilter::IncludeAttached) => { + builder.push( + " AND (threads.preview <> '' OR threads.attached_thread_parent_id IS NOT NULL)", + ); + } + Some(_) => {} + } } match section { Some(Some(section)) => { diff --git a/codex-rs/thread-store/src/in_memory.rs b/codex-rs/thread-store/src/in_memory.rs index a3e34aaeb0..7303edc797 100644 --- a/codex-rs/thread-store/src/in_memory.rs +++ b/codex-rs/thread-store/src/in_memory.rs @@ -1007,10 +1007,9 @@ impl ThreadStore for InMemoryThreadStore { page.items .retain(|thread| thread.parent_thread_id == Some(parent_thread_id)); } - Some(ThreadRelationFilter::AttachedThreadsOf(_)) => { - return Err(ThreadStoreError::Unsupported { - operation: "attached threads", - }); + Some(ThreadRelationFilter::AttachedThreadsOf(parent)) => { + page.items + .retain(|thread| thread.attached_to_thread_id == Some(parent)); } Some(ThreadRelationFilter::DescendantsOf(ancestor_thread_id)) => { let mut subtree = HashSet::from([ancestor_thread_id]); @@ -1033,7 +1032,10 @@ impl ThreadStore for InMemoryThreadStore { && subtree.contains(&thread.thread_id) }); } - None => {} + Some(ThreadRelationFilter::IncludeAttached) => {} + None => page + .items + .retain(|thread| thread.attached_to_thread_id.is_none()), } if let Some(section) = params.section.as_ref() { page.items.retain(|thread| { @@ -1132,6 +1134,7 @@ fn stored_thread_from_state( .and_then(|metadata| metadata.rollout_path.clone()) .or(rollout_path), forked_from_id: created.forked_from_id, + attached_to_thread_id: created.forked_from_id.filter(|_| created.attached_thread), parent_thread_id: created.parent_thread_id, preview: metadata .and_then(|metadata| metadata.preview.clone()) diff --git a/codex-rs/thread-store/src/local/helpers.rs b/codex-rs/thread-store/src/local/helpers.rs index a4f4d70552..1b5d0d74de 100644 --- a/codex-rs/thread-store/src/local/helpers.rs +++ b/codex-rs/thread-store/src/local/helpers.rs @@ -146,6 +146,7 @@ pub(super) fn stored_thread_from_rollout_item( extra_config: None, rollout_path: Some(rollout_path), forked_from_id: None, + attached_to_thread_id: item.attached_to_thread_id, parent_thread_id: item.parent_thread_id, preview, name: codex_state::is_guardian_review_source(&source) diff --git a/codex-rs/thread-store/src/local/list_threads.rs b/codex-rs/thread-store/src/local/list_threads.rs index 5abdecaf53..3d54f1b385 100644 --- a/codex-rs/thread-store/src/local/list_threads.rs +++ b/codex-rs/thread-store/src/local/list_threads.rs @@ -241,7 +241,13 @@ pub(super) async fn list_rollout_threads( sort_key: codex_rollout::ThreadSortKey, sort_direction: codex_rollout::SortDirection, ) -> ThreadStoreResult { - if params.relation_filter.is_some() || params.section.is_some() || params.project_id.is_some() { + if params.use_state_db_only + || params + .relation_filter + .is_some_and(ThreadRelationFilter::is_parent_scoped) + || params.section.is_some() + || params.project_id.is_some() + { let page = codex_rollout::state_db::list_threads_db( state_db.as_deref(), &config.sqlite, @@ -265,37 +271,9 @@ pub(super) async fn list_rollout_threads( return Ok(page.into()); } - let page = if params.use_state_db_only && params.archived { - RolloutRecorder::list_archived_threads_from_state_db( - state_db, - config, - params.page_size, - cursor, - sort_key, - sort_direction, - params.allowed_sources.as_slice(), - params.model_providers.as_deref(), - params.cwd_filters.as_deref(), - default_model_provider_id, - params.search_term.as_deref(), - ) - .await - } else if params.use_state_db_only { - RolloutRecorder::list_threads_from_state_db( - state_db, - config, - params.page_size, - cursor, - sort_key, - sort_direction, - params.allowed_sources.as_slice(), - params.model_providers.as_deref(), - params.cwd_filters.as_deref(), - default_model_provider_id, - params.search_term.as_deref(), - ) - .await - } else if params.archived { + let include_attached_threads = + params.relation_filter == Some(ThreadRelationFilter::IncludeAttached); + let page = if params.archived { RolloutRecorder::list_archived_threads( state_db, config, @@ -308,6 +286,7 @@ pub(super) async fn list_rollout_threads( params.cwd_filters.as_deref(), default_model_provider_id, params.search_term.as_deref(), + include_attached_threads, ) .await } else { @@ -323,6 +302,7 @@ pub(super) async fn list_rollout_threads( params.cwd_filters.as_deref(), default_model_provider_id, params.search_term.as_deref(), + include_attached_threads, ) .await }; @@ -333,6 +313,7 @@ pub(super) async fn list_rollout_threads( fn state_relation_filter(filter: ThreadRelationFilter) -> codex_state::ThreadRelationFilter { match filter { + ThreadRelationFilter::IncludeAttached => codex_state::ThreadRelationFilter::IncludeAttached, ThreadRelationFilter::DirectChildrenOf(id) => { codex_state::ThreadRelationFilter::DirectChildrenOf(id) } diff --git a/codex-rs/thread-store/src/local/read_thread.rs b/codex-rs/thread-store/src/local/read_thread.rs index 9b1435c908..d943660c68 100644 --- a/codex-rs/thread-store/src/local/read_thread.rs +++ b/codex-rs/thread-store/src/local/read_thread.rs @@ -455,6 +455,7 @@ pub(super) fn stored_thread_from_state_metadata( thread_id: metadata.id, extra_config: None, rollout_path: Some(rollout_path), + attached_to_thread_id: metadata.attached_thread_parent_id, forked_from_id: None, parent_thread_id, preview, @@ -560,6 +561,10 @@ fn stored_thread_from_meta_line( thread_id: meta_line.meta.id, extra_config: None, rollout_path: Some(rollout_path), + attached_to_thread_id: meta_line + .meta + .forked_from_id + .filter(|_| meta_line.meta.attached_thread), forked_from_id: meta_line.meta.forked_from_id, parent_thread_id: meta_line.meta.parent_thread_id, preview: String::new(), @@ -864,6 +869,7 @@ mod tests { "Forked user message", Some("test-provider"), Some(parent_uuid), + /*attached_thread*/ false, ThreadHistoryMode::Legacy, ) .expect("forked session file"); diff --git a/codex-rs/thread-store/src/local/search_threads.rs b/codex-rs/thread-store/src/local/search_threads.rs index 6207811936..c9bd137038 100644 --- a/codex-rs/thread-store/src/local/search_threads.rs +++ b/codex-rs/thread-store/src/local/search_threads.rs @@ -106,7 +106,9 @@ pub(super) async fn search_threads( project_id: None, archived: params.archived, search_term: None, - relation_filter: None, + relation_filter: params + .include_attached_threads + .then_some(crate::ThreadRelationFilter::IncludeAttached), use_state_db_only: state_db.is_some(), }; let mut remaining_rollouts = matching_rollouts diff --git a/codex-rs/thread-store/src/local/search_threads_tests.rs b/codex-rs/thread-store/src/local/search_threads_tests.rs index 69737f4844..65148e2816 100644 --- a/codex-rs/thread-store/src/local/search_threads_tests.rs +++ b/codex-rs/thread-store/src/local/search_threads_tests.rs @@ -1,3 +1,7 @@ +use std::collections::HashMap; +use std::path::Path; +use std::path::PathBuf; + use chrono::Utc; use codex_protocol::ThreadId; use codex_protocol::protocol::SessionSource; @@ -10,10 +14,13 @@ use uuid::Uuid; use super::super::LocalThreadStore; use super::super::test_support::test_config; use super::super::test_support::write_session_file_with; +use super::super::test_support::write_session_file_with_fork; use super::ThreadSearchItem; use super::cursor_from_thread_search_item; +use crate::ListThreadsParams; use crate::SearchThreadsParams; use crate::SortDirection; +use crate::ThreadRelationFilter; use crate::ThreadSortKey; use crate::ThreadStore; @@ -141,6 +148,7 @@ async fn search_matches_selected_rollout_across_path_spellings_and_compression() ] { let page = store .search_threads(SearchThreadsParams { + include_attached_threads: false, account: None, page_size: 10, cursor: None, @@ -168,3 +176,147 @@ async fn search_matches_selected_rollout_across_path_spellings_and_compression() } } } + +async fn write_named_rollout(home: &Path, id: Uuid, attached_to: Option) -> PathBuf { + let path = write_session_file_with_fork( + home, + home.join("sessions/2025/01/03"), + "2025-01-03T12-00-00", + id, + "searchable message", + Some("test-provider"), + attached_to, + attached_to.is_some(), + ThreadHistoryMode::Legacy, + ) + .expect("write rollout"); + codex_rollout::append_thread_name(home, ThreadId::from_u128(id.as_u128()), "matching title") + .await + .expect("save thread name"); + path +} + +fn inclusive_title_search() -> ListThreadsParams { + ListThreadsParams { + page_size: 10, + cursor: None, + sort_key: ThreadSortKey::CreatedAt, + sort_direction: SortDirection::Desc, + allowed_sources: vec![SessionSource::Cli], + model_providers: None, + cwd_filters: None, + section: None, + project_id: None, + archived: false, + search_term: Some("matching title".to_string()), + relation_filter: Some(ThreadRelationFilter::IncludeAttached), + use_state_db_only: false, + } +} + +#[tokio::test] +async fn title_and_content_search_return_attached_parent_without_state_db() { + let home = TempDir::new().expect("temp dir"); + let store = LocalThreadStore::new(test_config(home.path()), /*state_db*/ None); + let parent = Uuid::new_v4(); + let child = Uuid::new_v4(); + write_named_rollout(home.path(), child, Some(parent)).await; + let expected = vec![( + ThreadId::from_u128(child.as_u128()), + Some(ThreadId::from_u128(parent.as_u128())), + )]; + + let list = store + .list_threads(inclusive_title_search()) + .await + .expect("search titles on disk"); + assert_eq!( + list.items + .into_iter() + .map(|t| (t.thread_id, t.attached_to_thread_id)) + .collect::>(), + expected + ); + + let search = store + .search_threads(SearchThreadsParams { + page_size: 10, + cursor: None, + sort_key: ThreadSortKey::CreatedAt, + sort_direction: SortDirection::Desc, + allowed_sources: vec![SessionSource::Cli], + archived: false, + search_term: "searchable message".to_string(), + include_attached_threads: true, + account: None, + }) + .await + .expect("search messages on disk"); + assert_eq!( + search + .items + .into_iter() + .map(|hit| (hit.thread.thread_id, hit.thread.attached_to_thread_id)) + .collect::>(), + expected + ); +} + +#[tokio::test] +async fn inclusive_title_search_finds_unindexed_matches_when_filesystem_scanning_is_allowed() { + let home = TempDir::new().expect("temp dir"); + let config = test_config(home.path()); + let state_db = codex_state::StateRuntime::init( + config.sqlite.clone(), + config.default_model_provider_id.clone(), + ) + .await + .expect("initialize state database"); + let parent = Uuid::new_v4(); + let child = Uuid::new_v4(); + let standalone = Uuid::new_v4(); + let parent_path = write_named_rollout(home.path(), parent, /*attached_to*/ None).await; + write_named_rollout(home.path(), standalone, /*attached_to*/ None).await; + write_named_rollout(home.path(), child, Some(parent)).await; + let parent_id = ThreadId::from_u128(parent.as_u128()); + let child_id = ThreadId::from_u128(child.as_u128()); + let mut row = codex_state::ThreadMetadataBuilder::new( + parent_id, + parent_path, + Utc::now(), + SessionSource::Cli, + ) + .build("test-provider"); + row.first_user_message = Some("searchable message".to_string()); + row.title = "matching title".to_string(); + state_db + .upsert_thread(&row) + .await + .expect("index only the parent"); + let store = LocalThreadStore::new(config, Some(state_db)); + let all = HashMap::from([ + (parent_id, None), + (child_id, Some(parent_id)), + (ThreadId::from_u128(standalone.as_u128()), None), + ]); + for (use_state_db_only, expected) in [ + (true, HashMap::from([(parent_id, None)])), + (false, all.clone()), + (true, all), + ] { + let page = store + .list_threads(ListThreadsParams { + use_state_db_only, + ..inclusive_title_search() + }) + .await + .expect("search titles"); + assert_eq!( + page.items + .into_iter() + .map(|t| (t.thread_id, t.attached_to_thread_id)) + .collect::>(), + expected + ); + } +} diff --git a/codex-rs/thread-store/src/local/test_support.rs b/codex-rs/thread-store/src/local/test_support.rs index e7b014b43b..ddaf7eece2 100644 --- a/codex-rs/thread-store/src/local/test_support.rs +++ b/codex-rs/thread-store/src/local/test_support.rs @@ -72,6 +72,7 @@ pub(super) fn write_session_file_with( first_user_message, model_provider, /*forked_from_id*/ None, + /*attached_thread*/ false, history_mode, ) } @@ -85,6 +86,7 @@ pub(super) fn write_session_file_with_fork( first_user_message: &str, model_provider: Option<&str>, forked_from_id: Option, + attached_thread: bool, history_mode: ThreadHistoryMode, ) -> std::io::Result { fs::create_dir_all(&day_dir)?; @@ -97,6 +99,7 @@ pub(super) fn write_session_file_with_fork( "session_id": uuid, "id": uuid, "forked_from_id": forked_from_id, + "attached_thread": attached_thread, "timestamp": ts, "cwd": root, "originator": "test_originator", diff --git a/codex-rs/thread-store/src/types.rs b/codex-rs/thread-store/src/types.rs index 66c26692df..02979d0f68 100644 --- a/codex-rs/thread-store/src/types.rs +++ b/codex-rs/thread-store/src/types.rs @@ -337,6 +337,8 @@ pub enum SortDirection { /// Parent relationship used to filter thread listings. #[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)] pub enum ThreadRelationFilter { + /// Include attached threads alongside ordinary threads for search. + IncludeAttached, /// Return only threads whose immediate parent is the given thread. DirectChildrenOf(ThreadId), /// Return every thread transitively descended from the given thread. @@ -345,6 +347,16 @@ pub enum ThreadRelationFilter { AttachedThreadsOf(ThreadId), } +impl ThreadRelationFilter { + /// Whether the caller requested relatives of one particular thread. + pub fn is_parent_scoped(self) -> bool { + match self { + Self::IncludeAttached => false, + Self::DirectChildrenOf(_) | Self::DescendantsOf(_) | Self::AttachedThreadsOf(_) => true, + } + } +} + /// Parameters for listing threads. #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] pub struct ListThreadsParams { @@ -383,6 +395,8 @@ pub struct ListThreadsParams { /// Parameters for searching thread content. #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] pub struct SearchThreadsParams { + #[serde(default)] + pub include_attached_threads: bool, /// The current login when searching account-scoped local history. #[serde(default, skip_serializing_if = "Option::is_none")] pub account: Option, @@ -660,6 +674,9 @@ pub struct StoredThread { pub rollout_path: Option, /// Source thread id when this thread was forked from another thread. pub forked_from_id: Option, + /// Parent that owns this persisted attached thread, independent of fork or spawn lineage. + #[serde(default)] + pub attached_to_thread_id: Option, /// The ID of the parent thread. This will only be set if this thread is a subagent. pub parent_thread_id: Option, /// Best available user-facing preview, usually the first user message. diff --git a/codex-rs/tui/src/analytics/chats.rs b/codex-rs/tui/src/analytics/chats.rs index f9dd8c68f2..9c32e57835 100644 --- a/codex-rs/tui/src/analytics/chats.rs +++ b/codex-rs/tui/src/analytics/chats.rs @@ -144,6 +144,7 @@ pub(super) async fn roots( pub(super) fn list_params() -> ThreadListParams { ThreadListParams { + include_attached_threads: false, current_account_only: true, excluded_thread_ids: None, attached_to_thread_id: None, diff --git a/codex-rs/tui/src/app/agent_picker.rs b/codex-rs/tui/src/app/agent_picker.rs index 1132d640f1..681d123a68 100644 --- a/codex-rs/tui/src/app/agent_picker.rs +++ b/codex-rs/tui/src/app/agent_picker.rs @@ -40,6 +40,7 @@ impl App { .request_typed::(ClientRequest::ThreadList { request_id: RequestId::String(Uuid::new_v4().to_string()), params: ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, diff --git a/codex-rs/tui/src/app/agents_overview_discovery.rs b/codex-rs/tui/src/app/agents_overview_discovery.rs index 8c951fbe2c..41464b3ebb 100644 --- a/codex-rs/tui/src/app/agents_overview_discovery.rs +++ b/codex-rs/tui/src/app/agents_overview_discovery.rs @@ -48,6 +48,7 @@ pub(crate) async fn list_pinned_threads( .request_typed::(ClientRequest::ThreadList { request_id: RequestId::String(Uuid::new_v4().to_string()), params: ThreadListParams { + include_attached_threads: false, current_account_only: true, excluded_thread_ids: None, originators: None, @@ -193,6 +194,7 @@ impl SourcePage { .request_typed::(ClientRequest::ThreadList { request_id: RequestId::String(Uuid::new_v4().to_string()), params: ThreadListParams { + include_attached_threads: false, current_account_only: true, excluded_thread_ids: None, attached_to_thread_id: None, diff --git a/codex-rs/tui/src/app/agents_overview_tests.rs b/codex-rs/tui/src/app/agents_overview_tests.rs index 114e685a8e..287430e457 100644 --- a/codex-rs/tui/src/app/agents_overview_tests.rs +++ b/codex-rs/tui/src/app/agents_overview_tests.rs @@ -269,6 +269,7 @@ pub(in crate::app) fn overview_thread( daybreak_enabled: None, session_id: parent_thread_id.unwrap_or(thread_id).to_string(), forked_from_id: None, + attached_to_thread_id: None, parent_thread_id: None, preview: name.to_string(), ephemeral: false, diff --git a/codex-rs/tui/src/app/loaded_threads.rs b/codex-rs/tui/src/app/loaded_threads.rs index 57c9c6b336..75d3ed5ba5 100644 --- a/codex-rs/tui/src/app/loaded_threads.rs +++ b/codex-rs/tui/src/app/loaded_threads.rs @@ -141,6 +141,7 @@ mod tests { extra: None, session_id: thread_id.to_string(), forked_from_id: None, + attached_to_thread_id: None, parent_thread_id: None, preview: String::new(), ephemeral: false, diff --git a/codex-rs/tui/src/app/tests.rs b/codex-rs/tui/src/app/tests.rs index f39a812d76..cda3ed85b0 100644 --- a/codex-rs/tui/src/app/tests.rs +++ b/codex-rs/tui/src/app/tests.rs @@ -7085,6 +7085,7 @@ async fn inactive_thread_started_notification_initializes_replay_session() -> Re extra: None, session_id: agent_thread_id.to_string(), forked_from_id: None, + attached_to_thread_id: None, parent_thread_id: None, preview: "agent thread".to_string(), ephemeral: false, @@ -7191,6 +7192,7 @@ async fn inactive_thread_started_notification_preserves_primary_model_when_path_ extra: None, session_id: agent_thread_id.to_string(), forked_from_id: None, + attached_to_thread_id: None, parent_thread_id: None, preview: "agent thread".to_string(), ephemeral: false, @@ -7262,6 +7264,7 @@ async fn thread_read_session_state_does_not_reuse_primary_permission_profile() { extra: None, session_id: read_thread_id.to_string(), forked_from_id: None, + attached_to_thread_id: None, parent_thread_id: None, preview: "read thread".to_string(), ephemeral: false, diff --git a/codex-rs/tui/src/app/tests/startup.rs b/codex-rs/tui/src/app/tests/startup.rs index 7a91a3a2fb..4954bf3ff7 100644 --- a/codex-rs/tui/src/app/tests/startup.rs +++ b/codex-rs/tui/src/app/tests/startup.rs @@ -1304,6 +1304,7 @@ async fn known_thread_started_preserves_session_without_reading_unmaterialized_r extra: None, session_id: thread_id.to_string(), forked_from_id: None, + attached_to_thread_id: None, parent_thread_id: None, preview: String::new(), ephemeral: false, diff --git a/codex-rs/tui/src/app/thread_session_state.rs b/codex-rs/tui/src/app/thread_session_state.rs index b5596528f2..983b95b25a 100644 --- a/codex-rs/tui/src/app/thread_session_state.rs +++ b/codex-rs/tui/src/app/thread_session_state.rs @@ -418,6 +418,7 @@ mod tests { extra: None, session_id: read_thread_id.to_string(), forked_from_id: None, + attached_to_thread_id: None, parent_thread_id: None, preview: "read thread".to_string(), ephemeral: false, diff --git a/codex-rs/tui/src/app_server_session.rs b/codex-rs/tui/src/app_server_session.rs index 73351e555f..d83055f5d4 100644 --- a/codex-rs/tui/src/app_server_session.rs +++ b/codex-rs/tui/src/app_server_session.rs @@ -4912,6 +4912,7 @@ mod tests { extra: None, session_id: ThreadId::new().to_string(), forked_from_id: Some(forked_from_id.to_string()), + attached_to_thread_id: None, parent_thread_id: None, preview: "hello".to_string(), ephemeral: false, diff --git a/codex-rs/tui/src/app_server_session/side_chat_history.rs b/codex-rs/tui/src/app_server_session/side_chat_history.rs index fd018d5948..72a92e2a2d 100644 --- a/codex-rs/tui/src/app_server_session/side_chat_history.rs +++ b/codex-rs/tui/src/app_server_session/side_chat_history.rs @@ -125,6 +125,7 @@ impl AppServerSession { } let query = ThreadListParams { attached_to_thread_id: Some(parent.to_string()), + include_attached_threads: false, current_account_only: true, archived: Some(false), model_providers: Some(Vec::new()), diff --git a/codex-rs/tui/src/dynamic_tools.rs b/codex-rs/tui/src/dynamic_tools.rs index 7e753f16fc..e06585de15 100644 --- a/codex-rs/tui/src/dynamic_tools.rs +++ b/codex-rs/tui/src/dynamic_tools.rs @@ -351,6 +351,7 @@ async fn execute_inner( request(&handle, |request_id| ClientRequest::ThreadList { request_id, params: ThreadListParams { + include_attached_threads: false, current_account_only: true, excluded_thread_ids: None, attached_to_thread_id: None, diff --git a/codex-rs/tui/src/lib.rs b/codex-rs/tui/src/lib.rs index 2d124a4f3b..52d6aefaeb 100644 --- a/codex-rs/tui/src/lib.rs +++ b/codex-rs/tui/src/lib.rs @@ -939,6 +939,7 @@ fn latest_session_lookup_params( lookup_mode: LatestSessionLookupMode, ) -> ThreadListParams { ThreadListParams { + include_attached_threads: false, current_account_only: true, excluded_thread_ids: None, attached_to_thread_id: None, diff --git a/codex-rs/tui/src/named_session_lookup.rs b/codex-rs/tui/src/named_session_lookup.rs index 06529b6b23..40f724e837 100644 --- a/codex-rs/tui/src/named_session_lookup.rs +++ b/codex-rs/tui/src/named_session_lookup.rs @@ -64,6 +64,7 @@ pub(super) async fn lookup( loop { let response = app_server .thread_list(ThreadListParams { + include_attached_threads: false, current_account_only: false, excluded_thread_ids: None, attached_to_thread_id: None, diff --git a/codex-rs/tui/src/resume_picker.rs b/codex-rs/tui/src/resume_picker.rs index d2d45d3023..a9d7fbce57 100644 --- a/codex-rs/tui/src/resume_picker.rs +++ b/codex-rs/tui/src/resume_picker.rs @@ -2515,6 +2515,7 @@ fn thread_list_params( use_state_db_only: bool, ) -> ThreadListParams { ThreadListParams { + include_attached_threads: false, current_account_only: true, excluded_thread_ids: None, attached_to_thread_id: None, @@ -7451,6 +7452,7 @@ session_picker_view = "dense" extra: None, session_id: thread_id.to_string(), forked_from_id: None, + attached_to_thread_id: None, parent_thread_id: None, preview: String::from("remote thread"), ephemeral: false, @@ -7498,6 +7500,7 @@ session_picker_view = "dense" extra: None, session_id: thread_id.to_string(), forked_from_id: None, + attached_to_thread_id: None, parent_thread_id: None, preview: String::from("preview"), ephemeral: false, @@ -7600,6 +7603,7 @@ session_picker_view = "dense" extra: None, session_id: thread_id.to_string(), forked_from_id: None, + attached_to_thread_id: None, parent_thread_id: None, preview: String::from("preview"), ephemeral: false, @@ -7679,6 +7683,7 @@ session_picker_view = "dense" extra: None, session_id: thread_id.to_string(), forked_from_id: None, + attached_to_thread_id: None, parent_thread_id: None, preview: String::from("preview"), ephemeral: false, diff --git a/codex-rs/tui/src/task_mentions.rs b/codex-rs/tui/src/task_mentions.rs index c7d8e8e148..2d3cc54906 100644 --- a/codex-rs/tui/src/task_mentions.rs +++ b/codex-rs/tui/src/task_mentions.rs @@ -73,6 +73,7 @@ pub(crate) fn spawn_search( handle.request_typed::(ClientRequest::ThreadSearch { request_id: RequestId::String(format!("task-search-{request_generation}")), params: ThreadSearchParams { + include_attached_threads: false, current_account_only: true, cursor: None, limit: Some(MAX_SEARCH_RESULTS), @@ -91,6 +92,7 @@ pub(crate) fn spawn_search( "task-title-search-{request_generation}" )), params: ThreadListParams { + include_attached_threads: false, current_account_only: true, excluded_thread_ids: None, attached_to_thread_id: None,