send previous command result in heartbeat

This commit is contained in:
ars
2026-06-15 03:04:37 +03:00
parent 1a51ee2bbf
commit 25ca35c097
2 changed files with 107 additions and 3 deletions
+11 -3
View File
@@ -57,7 +57,11 @@ def load_client_config(env: Mapping[str, str] = os.environ) -> ClientConfig:
)
def build_heartbeat_request(config: ClientConfig) -> HeartbeatRequest:
def build_heartbeat_request(
config: ClientConfig,
*,
last_command_result: CommandResult | None = None,
) -> HeartbeatRequest:
now = datetime.now(UTC)
return HeartbeatRequest(
client_id=config.client_id,
@@ -71,7 +75,7 @@ def build_heartbeat_request(config: ClientConfig) -> HeartbeatRequest:
local_time=datetime.now().astimezone(),
uptime_seconds=None,
),
last_command_result=None,
last_command_result=last_command_result,
)
@@ -112,13 +116,17 @@ def send_heartbeat(
def run_once(
config: ClientConfig,
*,
last_command_result: CommandResult | None = None,
heartbeat_sender: Callable[
[ClientConfig, HeartbeatRequest],
HeartbeatResponse,
] = send_heartbeat,
executor: Callable[..., CommandResult] = execute_command,
) -> CommandResult | None:
response = heartbeat_sender(config, build_heartbeat_request(config))
response = heartbeat_sender(
config,
build_heartbeat_request(config, last_command_result=last_command_result),
)
if response.command is None:
return None