aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-03-31 23:22:40 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-03-31 23:22:40 +0300
commit85945c56a56c0a4acd948c83b50ea6ab10b9930c (patch)
tree84ce6070822256d5a0c72a893f7e4f7cb78e5ab5 /src
parente857710d73ad660d17ce39fa3201a39aa49f6932 (diff)
test: cover non-top-anchored scroll regions
Diffstat (limited to 'src')
-rw-r--r--src/pane.rs66
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"
+ );
}
}
}