From da5357d23f8450d4609f72d079876d7d439ef5a0 Mon Sep 17 00:00:00 2001 From: akbash Date: Tue, 25 Aug 2026 22:38:14 +0300 Subject: fix(cli): accept reordered agent report arguments (#2928) refs #2926 Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com> --- tests/cli/panes.rs | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) (limited to 'tests/cli') diff --git a/tests/cli/panes.rs b/tests/cli/panes.rs index fb6cd3de..90b2bf79 100644 --- a/tests/cli/panes.rs +++ b/tests/cli/panes.rs @@ -567,6 +567,76 @@ fn pane_shell_gets_herdr_socket_and_pane_env() { cleanup_spawned_herdr(herdr, base); } +#[test] +fn pane_agent_reports_accept_options_before_pane() { + let base = unique_test_dir(); + let config_home = base.join("config"); + let runtime_dir = base.join("runtime"); + let socket_path = runtime_dir.join("herdr.sock"); + + let herdr = spawn_herdr(&config_home, &runtime_dir, &socket_path); + wait_for_socket(&socket_path, Duration::from_secs(5)); + + let created = send_request( + &socket_path, + &format!( + r#"{{"id":"req_agent_report_1","method":"workspace.create","params":{{"cwd":"{}","focus":true}}}}"#, + base.display() + ), + ); + let pane_id = created["result"]["root_pane"]["pane_id"] + .as_str() + .unwrap() + .to_string(); + + let state_report = run_cli( + &socket_path, + &[ + "pane", + "report-agent", + "--source=custom:cli-test", + "--agent=cli-test", + "--state=working", + "--message=parsing=works", + &pane_id, + ], + ); + assert!( + state_report.status.success(), + "stderr: {}", + String::from_utf8_lossy(&state_report.stderr) + ); + assert!(state_report.stdout.is_empty()); + assert!(state_report.stderr.is_empty()); + + let agent = run_cli_json(&socket_path, &["agent", "get", &pane_id]); + assert_eq!(agent["result"]["agent"]["agent"], "cli-test"); + assert_eq!(agent["result"]["agent"]["agent_status"], "working"); + + let session_report = run_cli( + &socket_path, + &[ + "pane", + "report-agent-session", + "--source=custom:cli-test", + "--agent=cli-test", + "--seq=1", + "--agent-session-id=session=1", + "--session-start-source=startup", + &pane_id, + ], + ); + assert!( + session_report.status.success(), + "stderr: {}", + String::from_utf8_lossy(&session_report.stderr) + ); + assert!(session_report.stdout.is_empty()); + assert!(session_report.stderr.is_empty()); + + cleanup_spawned_herdr(herdr, base); +} + #[test] fn pane_read_rejects_invalid_value_with_usage_error() { // Invalid option values fail as CLI usage errors before any server -- cgit v1.2.3