jif-oai
5865ec45e5
Avoid config snapshots in live agent subtree traversal ( #24057 )
...
## Why
`/feedback` asks `ThreadManager` for the selected agent subtree before
it uploads logs. The previous live subtree path reconstructed
parent-child links by iterating every loaded thread and awaiting each
thread config snapshot, so unrelated loaded-thread state could stall
feedback subtree enumeration.
The loaded-thread set already belongs to
[`ThreadManagerState`](50e6644c94/codex-rs/core/src/thread_manager.rs ).
Reading thread-spawn parents from the captured `CodexThread` session
sources at that boundary keeps unload and resume behavior manager-owned
while avoiding per-session config inspection.
## What Changed
- expose parent-child thread-spawn edges for loaded, non-internal
threads from `ThreadManagerState`
- build the live child map from those edges while keeping agent metadata
lookup and ordering in `AgentControl`
- add regression coverage for live subtree enumeration when no state DB
is available
## Validation
- `git diff --check`
- local Rust tests not run per request
2026-05-22 13:06:40 +02:00
..
2026-05-22 13:06:40 +02:00
2026-04-21 10:22:36 -07:00
2026-04-07 00:32:41 +00:00
2026-05-22 12:50:42 +02:00
2026-05-21 12:54:00 +02:00
2026-05-22 01:11:47 +00:00
2026-05-20 21:55:21 +00:00
2026-05-07 10:16:10 -07:00
2026-04-26 22:11:49 -07:00
2026-05-22 12:50:42 +02:00
2026-05-20 21:55:21 +00:00
2026-05-20 21:55:21 +00:00
2026-05-21 20:40:34 -07:00
2026-05-20 17:57:36 -07:00
2026-05-19 21:56:46 -07:00
2026-05-19 21:56:46 -07:00
2026-04-07 21:20:22 +00:00
2026-05-11 16:33:44 -07:00
2026-05-08 12:36:02 -07:00
2026-05-18 09:57:54 -07:00
2026-05-18 09:57:54 -07:00
2026-05-08 12:36:02 -07:00
2026-05-21 11:13:23 +02:00
2026-05-13 11:15:25 -07:00
2026-05-18 18:48:35 -07:00
2026-05-18 21:03:51 -07:00
2026-04-01 23:06:24 -07:00
2026-05-21 15:07:03 +02:00
2026-05-21 15:07:03 +02:00
2026-05-11 19:51:51 -07:00
2026-05-19 01:13:38 +00:00
2026-05-14 15:16:15 +02:00
2026-05-13 16:59:22 -07:00
2026-05-21 17:19:54 +02:00
2026-05-19 12:55:34 -07:00
2026-05-21 12:54:00 +02:00
2026-05-15 15:04:04 -07:00
2026-04-26 15:10:53 -07:00
2026-04-26 15:10:53 -07:00
2026-05-16 12:12:37 -07:00
2026-05-16 12:12:37 -07:00
2026-05-11 11:37:53 -07:00
2026-05-19 11:03:47 -07:00
2026-05-20 17:57:36 -07:00
2026-05-13 11:31:27 +02:00
2026-05-18 10:53:49 -07:00
2026-05-21 12:54:00 +02:00
2026-05-21 14:54:01 -07:00
2026-04-28 13:03:28 +02:00
2026-04-28 19:43:44 -07:00
2026-05-19 16:23:25 -07:00
2026-05-13 11:15:25 -07:00
2026-05-21 17:19:54 +02:00
2026-05-21 17:19:54 +02:00
2026-05-20 17:02:10 -07:00
2026-05-19 11:24:09 +02:00
2026-05-19 11:24:09 +02:00
2026-05-07 10:36:32 +02:00
2026-05-19 11:24:09 +02:00
2026-04-02 23:00:02 -07:00
2026-04-09 10:53:06 -07:00
2026-05-20 17:10:37 -07:00
2026-05-20 17:10:37 -07:00
2026-04-24 17:49:29 -07:00
2026-05-11 11:32:40 -07:00
2026-05-15 15:04:04 -07:00
2026-05-06 22:48:29 -07:00
2026-05-19 12:55:34 -07:00
2026-05-06 02:12:31 +00:00
2026-04-23 10:17:09 -07:00
2026-05-20 16:03:51 -07:00
2026-05-20 16:03:51 -07:00
2026-04-16 14:30:57 -07:00
2026-04-01 23:06:24 -07:00
2026-04-14 14:26:10 -07:00
2026-05-05 15:25:19 -07:00
2026-05-19 11:03:47 -07:00
2026-05-07 11:33:47 +02:00
2026-05-15 10:58:50 -07:00
2026-05-15 10:58:50 -07:00
2026-04-20 22:39:17 -07:00
2026-04-03 00:33:34 -07:00
2026-05-18 21:33:46 -07:00
2026-05-04 11:46:03 -07:00
2026-05-04 11:46:03 -07:00
2026-04-02 13:47:10 -07:00
2026-05-19 01:24:19 +00:00
2026-04-14 14:26:10 -07:00
2026-05-04 11:46:03 -07:00
2026-05-20 15:30:01 +02:00
2026-05-18 15:43:01 -07:00
2026-05-06 22:48:29 -07:00
2026-05-19 12:55:34 -07:00
2026-05-22 13:06:40 +02:00
2026-04-26 17:18:09 -07:00
2026-04-13 23:11:49 -07:00
2026-05-07 18:05:45 +02:00
2026-05-07 18:05:45 +02:00
2026-05-15 10:58:50 -07:00
2026-05-15 01:26:50 +00:00
2026-04-28 16:36:59 +00:00
2026-05-15 11:40:35 +02:00
2026-04-20 22:39:17 -07:00
2026-04-20 22:39:17 -07:00
2026-05-14 16:54:59 -07:00
2026-05-14 16:54:59 -07:00
2026-04-01 23:06:24 -07:00
2026-04-01 23:06:24 -07:00
2026-05-22 12:13:52 +02:00
2026-05-22 12:50:42 +02:00