Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 9 additions & 8 deletions flocks/updater/restart_handoff.py
Original file line number Diff line number Diff line change
Expand Up @@ -591,13 +591,8 @@ def run(argv: Sequence[str] | None = None) -> int:
f"frontend={args.frontend_host}:{args.frontend_port}"
)
legacy_daemon_pid = _legacy_supervisor_pid(args) if args.prepare_handover else None

if args.parent_pid is not None and not _wait_for_parent_exit(args.parent_pid):
_record_handoff_log(f"parent_exit_timeout parent_pid={args.parent_pid}")
_cleanup_dir(args.cleanup_dir)
return 1

supervisor_stopped = False

if args.prepare_handover:
supervisor_stopped = _stop_supervisor_before_restart(
daemon_pid=legacy_daemon_pid,
Expand All @@ -609,7 +604,13 @@ def run(argv: Sequence[str] | None = None) -> int:
_record_handoff_log("legacy_handover_stop_timeout")
_cleanup_dir(args.cleanup_dir)
return 1
elif args.pro_wheel_path or args.pro_bundle_manifest_path:

if args.parent_pid is not None and not _wait_for_parent_exit(args.parent_pid):
_record_handoff_log(f"parent_exit_timeout parent_pid={args.parent_pid}")
_cleanup_dir(args.cleanup_dir)
return 1

if not args.prepare_handover and (args.pro_wheel_path or args.pro_bundle_manifest_path):
supervisor_stopped = _stop_supervisor_before_restart(
backend_port=args.backend_port,
service_ports=(args.frontend_port,),
Expand All @@ -622,7 +623,7 @@ def run(argv: Sequence[str] | None = None) -> int:
_record_handoff_log(f"backend_port_unavailable port={args.backend_port}")
_cleanup_dir(args.cleanup_dir)
return 1
elif not _ensure_backend_port_free(args.backend_port):
elif not args.prepare_handover and not _ensure_backend_port_free(args.backend_port):
_record_handoff_log(f"backend_port_unavailable port={args.backend_port}")
_cleanup_dir(args.cleanup_dir)
return 1
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "flocks"
version = "v2026.7.22"
version = "v2026.7.22.1"
description = "AI-Native SecOps platform with multi-agent collaboration"
authors = [
{name = "Flocks Team", email = "team@example.com"}
Expand Down
2 changes: 1 addition & 1 deletion tests/updater/test_restart_handoff.py
Original file line number Diff line number Diff line change
Expand Up @@ -736,11 +736,11 @@ def test_v2026_7_15_upgrade_handoff_stops_before_tasks_and_restarts(

assert restart_handoff.run(args) == 0
assert events == [
"wait-parent:1234",
(
"stop-supervisor:{'daemon_pid': 2468, 'backend_port': 5173, "
"'service_ports': (5173,), 'force_daemon_stop': True}"
),
"wait-parent:1234",
"install",
"cleanup-handover",
f"spawn:{restart_argv}:{tmp_path}:True",
Expand Down
2 changes: 1 addition & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading