diff options
| author | Eric Yue <yue1995pro@gmail.com> | 2026-06-15 21:50:24 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-06-15 16:50:24 +0300 |
| commit | 07261e09be60ac0c145685fd11f94351cc0e5ba6 (patch) | |
| tree | 771b0180c7a1560189547e6d23ef004ec1cf6d5c /src/terminal | |
| parent | 08bb0768ae224c8db04bbe016b050353ce13eee7 (diff) | |
feat: add devin cli detection and restore support (#622)
* feat: add devin cli detection and restore support
refs #606
* fix: keep devin integration session-only
---------
Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
Diffstat (limited to 'src/terminal')
| -rw-r--r-- | src/terminal/state.rs | 48 |
1 files changed, 27 insertions, 21 deletions
diff --git a/src/terminal/state.rs b/src/terminal/state.rs index 932e0735..9b9b6d43 100644 --- a/src/terminal/state.rs +++ b/src/terminal/state.rs @@ -1073,31 +1073,37 @@ mod tests { #[test] fn session_only_report_does_not_create_hook_authority() { - let mut terminal = test_terminal(); - terminal.set_detected_state(Some(Agent::Codex), AgentState::Idle); + for (agent, source, label, session_id) in [ + (Agent::Codex, "herdr:codex", "codex", "codex-session"), + (Agent::Devin, "herdr:devin", "devin", "devin-session"), + ] { + let mut terminal = test_terminal(); + terminal.set_detected_state(Some(agent), AgentState::Idle); - let mutation = terminal.set_agent_session_ref( - "herdr:codex".into(), - "codex".into(), - crate::agent_resume::AgentSessionRef::id("codex-session"), - Some(1), - ); + let mutation = terminal.set_agent_session_ref( + source.into(), + label.into(), + crate::agent_resume::AgentSessionRef::id(session_id), + Some(1), + ); - assert!(mutation.is_some()); - assert!(terminal.hook_authority.is_none()); - assert_eq!(terminal.state, AgentState::Idle); + assert!(mutation.is_some()); + assert!(terminal.hook_authority.is_none()); + assert!(!terminal.full_lifecycle_hook_authority_active()); + assert_eq!(terminal.state, AgentState::Idle); - terminal.set_detected_state_with_screen_signals_at( - Some(Agent::Codex), - AgentState::Working, - false, - false, - false, - false, - Instant::now(), - ); + terminal.set_detected_state_with_screen_signals_at( + Some(agent), + AgentState::Working, + false, + false, + false, + false, + Instant::now(), + ); - assert_eq!(terminal.state, AgentState::Working); + assert_eq!(terminal.state, AgentState::Working); + } } #[test] |
