gridfleet-agent 0.2.2__tar.gz → 0.2.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/CHANGELOG.md +7 -0
  2. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/PKG-INFO +1 -1
  3. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/pyproject.toml +1 -1
  4. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/installer/test_plan.py +3 -3
  5. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/uv.lock +1 -1
  6. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/.gitignore +0 -0
  7. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/README.md +0 -0
  8. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/__init__.py +0 -0
  9. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/appium_process.py +0 -0
  10. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/capabilities.py +0 -0
  11. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/cli.py +0 -0
  12. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/config.py +0 -0
  13. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/driver_doctor.py +0 -0
  14. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/host_telemetry.py +0 -0
  15. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/installer/__init__.py +0 -0
  16. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/installer/install.py +0 -0
  17. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/installer/plan.py +2 -2
  18. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/installer/status.py +0 -0
  19. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/installer/uninstall.py +0 -0
  20. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/installer/update.py +0 -0
  21. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/main.py +0 -0
  22. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/observability.py +0 -0
  23. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/pack/__init__.py +0 -0
  24. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/pack/adapter_dispatch.py +0 -0
  25. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/pack/adapter_loader.py +0 -0
  26. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/pack/adapter_registry.py +0 -0
  27. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/pack/adapter_types.py +0 -0
  28. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/pack/adapter_utils.py +0 -0
  29. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/pack/discovery.py +0 -0
  30. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/pack/dispatch.py +0 -0
  31. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/pack/host_identity.py +0 -0
  32. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/pack/manifest.py +0 -0
  33. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/pack/runtime.py +0 -0
  34. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/pack/runtime_policy.py +0 -0
  35. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/pack/runtime_registry.py +0 -0
  36. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/pack/sidecar_supervisor.py +0 -0
  37. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/pack/state.py +0 -0
  38. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/pack/tarball_fetch.py +0 -0
  39. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/pack/version_catalog.py +0 -0
  40. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/plugin_manager.py +0 -0
  41. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/py.typed +0 -0
  42. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/registration.py +0 -0
  43. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/terminal_pty.py +0 -0
  44. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/terminal_ws.py +0 -0
  45. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/tool_paths.py +0 -0
  46. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/tool_utils.py +0 -0
  47. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/tools_manager.py +0 -0
  48. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/agent_app/version_guidance.py +0 -0
  49. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/__init__.py +0 -0
  50. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/installer/test_cli_install.py +0 -0
  51. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/installer/test_install.py +0 -0
  52. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/installer/test_status.py +0 -0
  53. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/installer/test_uninstall.py +0 -0
  54. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/installer/test_update.py +0 -0
  55. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/__init__.py +0 -0
  56. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/conftest.py +0 -0
  57. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_adapter_dispatch.py +0 -0
  58. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_adapter_loader.py +0 -0
  59. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_adapter_loader_cancel_path_leak.py +0 -0
  60. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_adapter_loader_concurrent_load.py +0 -0
  61. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_adapter_tarball_auth.py +0 -0
  62. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_adapter_utils.py +0 -0
  63. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_adapter_wiring.py +0 -0
  64. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_appium_process_integration.py +0 -0
  65. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_desired_manifest_features.py +0 -0
  66. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_feature_action_routes.py +0 -0
  67. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_host_identity.py +0 -0
  68. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_manifest_parser.py +0 -0
  69. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_pack_discovery_endpoint.py +0 -0
  70. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_pack_state.py +0 -0
  71. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_pack_state_client_auth.py +0 -0
  72. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_pack_state_sidecar_reconcile.py +0 -0
  73. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_runtime_github.py +0 -0
  74. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_runtime_isolated_failures.py +0 -0
  75. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_runtime_manager.py +0 -0
  76. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_runtime_plugins.py +0 -0
  77. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_runtime_policy.py +0 -0
  78. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_sidecar_supervisor.py +0 -0
  79. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_sidecar_supervisor_poll_stop_race.py +0 -0
  80. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_state_loop.py +0 -0
  81. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_state_loop_wired.py +0 -0
  82. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_tarball_fetch.py +0 -0
  83. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_tarball_fetch_concurrent_dedup.py +0 -0
  84. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/pack/test_version_catalog.py +0 -0
  85. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_agent_api.py +0 -0
  86. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_agent_api_more.py +0 -0
  87. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_appium_process.py +0 -0
  88. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_appium_process_port_alloc_race.py +0 -0
  89. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_appium_process_restart_stop_race.py +0 -0
  90. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_appium_process_stop_start_lock_race.py +0 -0
  91. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_appium_process_watch_stop_race.py +0 -0
  92. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_capabilities.py +0 -0
  93. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_capabilities_more.py +0 -0
  94. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_cli.py +0 -0
  95. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_config.py +0 -0
  96. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_config_runtime_root.py +0 -0
  97. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_driver_doctor.py +0 -0
  98. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_host_telemetry.py +0 -0
  99. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_install_script.py +0 -0
  100. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_no_driver_imports.py +0 -0
  101. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_observability.py +0 -0
  102. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_package_metadata.py +0 -0
  103. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_plugin_manager.py +0 -0
  104. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_plugin_manager_more.py +0 -0
  105. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_registration.py +0 -0
  106. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_terminal_pty.py +0 -0
  107. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_terminal_ws.py +0 -0
  108. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_tools_and_utilities_more.py +0 -0
  109. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_tools_manager.py +0 -0
  110. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_tools_manager_extra.py +0 -0
  111. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/tests/test_version_guidance.py +0 -0
  112. {gridfleet_agent-0.2.2 → gridfleet_agent-0.2.3}/uninstall.sh +0 -0
@@ -2,6 +2,13 @@
2
2
 
3
3
  All notable changes to the GridFleet host agent (`gridfleet-agent` on PyPI) are documented here.
4
4
 
5
+ ## [0.2.3](https://github.com/quidow/gridfleet/compare/gridfleet-agent-v0.2.2...gridfleet-agent-v0.2.3) (2026-05-03)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **agent:** prioritize node in service path ([c1d2b72](https://github.com/quidow/gridfleet/commit/c1d2b728d5d01a4a0b76f53ca48be8740de17918))
11
+
5
12
  ## [0.2.2](https://github.com/quidow/gridfleet/compare/gridfleet-agent-v0.2.1...gridfleet-agent-v0.2.2) (2026-05-03)
6
13
 
7
14
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gridfleet-agent
3
- Version: 0.2.2
3
+ Version: 0.2.3
4
4
  Summary: GridFleet agent — runs on each host
5
5
  Project-URL: Homepage, https://github.com/quidow/gridfleet
6
6
  Project-URL: Repository, https://github.com/quidow/gridfleet
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "gridfleet-agent"
7
- version = "0.2.2"
7
+ version = "0.2.3"
8
8
  description = "GridFleet agent — runs on each host"
9
9
  readme = "README.md"
10
10
  license = "Apache-2.0"
@@ -54,7 +54,7 @@ def test_render_config_env_includes_detected_paths_and_optional_auth() -> None:
54
54
  assert "AGENT_MANAGER_AUTH_PASSWORD=secret" in rendered
55
55
  assert "AGENT_ENABLE_WEB_TERMINAL=true" in rendered
56
56
  assert "AGENT_TERMINAL_TOKEN=terminal-token" in rendered
57
- assert "PATH=/usr/bin:/opt/node/bin:" in rendered
57
+ assert "PATH=/opt/node/bin:/usr/bin:" in rendered
58
58
 
59
59
 
60
60
  def test_load_installed_config_reads_persisted_agent_env(tmp_path: Path) -> None:
@@ -175,10 +175,10 @@ def test_dry_run_output_names_generated_artifacts_and_warnings() -> None:
175
175
  assert "ExecStart=/opt/gridfleet-agent/venv/bin/gridfleet-agent serve" in output
176
176
 
177
177
 
178
- def test_build_service_path_prepends_discovered_tool_dirs() -> None:
178
+ def test_build_service_path_prioritizes_node_before_system_dirs() -> None:
179
179
  discovery = ToolDiscovery(java_bin="/usr/lib/jvm/bin/java", node_bin_dir="/opt/node/bin", android_home="/opt/sdk")
180
180
 
181
- assert build_service_path(discovery).startswith("/usr/lib/jvm/bin:/opt/node/bin:/opt/sdk/platform-tools:")
181
+ assert build_service_path(discovery).startswith("/opt/node/bin:/usr/lib/jvm/bin:/opt/sdk/platform-tools:")
182
182
 
183
183
 
184
184
  def test_find_node_bin_dir_prefers_home_nvm_over_system_node(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None:
@@ -169,7 +169,7 @@ wheels = [
169
169
 
170
170
  [[package]]
171
171
  name = "gridfleet-agent"
172
- version = "0.2.2"
172
+ version = "0.2.3"
173
173
  source = { editable = "." }
174
174
  dependencies = [
175
175
  { name = "fastapi" },
@@ -221,10 +221,10 @@ def discover_tools(
221
221
 
222
222
  def build_service_path(discovery: ToolDiscovery) -> str:
223
223
  prefixes: list[str] = []
224
- if discovery.java_bin:
225
- prefixes.append(str(Path(discovery.java_bin).parent))
226
224
  if discovery.node_bin_dir:
227
225
  prefixes.append(discovery.node_bin_dir)
226
+ if discovery.java_bin:
227
+ prefixes.append(str(Path(discovery.java_bin).parent))
228
228
  if discovery.android_home:
229
229
  prefixes.append(f"{discovery.android_home}/platform-tools")
230
230
  return ":".join([*prefixes, DEFAULT_SERVICE_PATH])