diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-03-31 23:22:40 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-03-31 23:22:40 +0300 |
| commit | 85945c56a56c0a4acd948c83b50ea6ab10b9930c (patch) | |
| tree | 84ce6070822256d5a0c72a893f7e4f7cb78e5ab5 /src | |
| parent | e857710d73ad660d17ce39fa3201a39aa49f6932 (diff) | |
test: cover non-top-anchored scroll regions
Diffstat (limited to 'src')
| -rw-r--r-- | src/pane.rs | 66 |
1 files changed, 45 insertions, 21 deletions
diff --git a/src/pane.rs b/src/pane.rs index 01d872a6..44238a8a 100644 --- a/src/pane.rs +++ b/src/pane.rs @@ -416,28 +416,52 @@ impl PaneRuntime { last_process_check = now; let pid = child_pid.load(Ordering::Acquire); if pid > 0 { - if let Some(job) = detect::foreground_job(pid) { - let identified = detect::identify_agent_in_job(&job); - let new_agent = identified.as_ref().map(|(agent, _)| *agent); - if new_agent != agent { - if let Some((_, process_name)) = identified { - info!( - pane = pane_id.raw(), - ?new_agent, - process = %process_name, - pgid = job.process_group_id, - "agent changed" - ); - } else { - info!( - pane = pane_id.raw(), - ?new_agent, - pgid = job.process_group_id, - "agent changed" - ); + match detect::foreground_job(pid) { + Some(job) => { + let identified = detect::identify_agent_in_job(&job); + let new_agent = identified.as_ref().map(|(agent, _)| *agent); + + debug!( + pane = pane_id.raw(), + pid, + previous_agent = ?agent, + ?new_agent, + identified_process = identified + .as_ref() + .map(|(_, name)| name.as_str()), + pgid = job.process_group_id, + processes = ?job.processes, + "foreground job probe" + ); + + if new_agent != agent { + if let Some((_, process_name)) = identified { + info!( + pane = pane_id.raw(), + ?new_agent, + process = %process_name, + pgid = job.process_group_id, + "agent changed" + ); + } else { + info!( + pane = pane_id.raw(), + ?new_agent, + pgid = job.process_group_id, + "agent changed" + ); + } + agent = new_agent; + agent_changed = true; } - agent = new_agent; - agent_changed = true; + } + None => { + debug!( + pane = pane_id.raw(), + pid, + previous_agent = ?agent, + "foreground job probe returned none" + ); } } } |
