forgexa-cli 1.73.2__tar.gz → 1.75.0__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 (31) hide show
  1. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/PKG-INFO +1 -1
  2. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/forgexa_cli/__init__.py +1 -1
  3. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/forgexa_cli/daemon.py +41 -2
  4. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/forgexa_cli.egg-info/PKG-INFO +1 -1
  5. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/pyproject.toml +1 -1
  6. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/README.md +0 -0
  7. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/forgexa_cli/_build_config.py +0 -0
  8. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/forgexa_cli/_local_bind.py +0 -0
  9. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/forgexa_cli/agent_core.py +0 -0
  10. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/forgexa_cli/autoupgrade.py +0 -0
  11. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/forgexa_cli/aws_evidence.py +0 -0
  12. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/forgexa_cli/aws_logs_evidence.py +0 -0
  13. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/forgexa_cli/main.py +0 -0
  14. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/forgexa_cli/py.typed +0 -0
  15. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/forgexa_cli/runtime_evidence.py +0 -0
  16. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/forgexa_cli/zcode_protocol.py +0 -0
  17. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/forgexa_cli.egg-info/SOURCES.txt +0 -0
  18. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/forgexa_cli.egg-info/dependency_links.txt +0 -0
  19. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/forgexa_cli.egg-info/entry_points.txt +0 -0
  20. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/forgexa_cli.egg-info/requires.txt +0 -0
  21. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/forgexa_cli.egg-info/top_level.txt +0 -0
  22. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/setup.cfg +0 -0
  23. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/tests/test_auth_and_runtime_commands.py +0 -0
  24. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/tests/test_autoupgrade.py +0 -0
  25. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/tests/test_check_command.py +0 -0
  26. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/tests/test_expiry_warnings_and_revoke.py +0 -0
  27. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/tests/test_local_bind_commands.py +0 -0
  28. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/tests/test_runtime_credentials.py +0 -0
  29. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/tests/test_session_credentials.py +0 -0
  30. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/tests/test_silent_install.py +0 -0
  31. {forgexa_cli-1.73.2 → forgexa_cli-1.75.0}/tests/test_upgrade_observability.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: forgexa-cli
3
- Version: 1.73.2
3
+ Version: 1.75.0
4
4
  Summary: Forgexa CLI — command-line client and AI agent runtime for the Forgexa platform
5
5
  Author-email: Jason Sun <dev.winds@gmail.com>
6
6
  License-Expression: MIT
@@ -1,2 +1,2 @@
1
1
  """forgexa-cli — Forgexa command-line client."""
2
- __version__ = "1.73.2"
2
+ __version__ = "1.75.0"
@@ -1234,7 +1234,7 @@ except (ImportError, ModuleNotFoundError):
1234
1234
  # DAEMON_VERSION is the protocol/logic version of the daemon code.
1235
1235
  # Kept in sync with pyproject.toml version via bump-version.sh.
1236
1236
  # CLIENT_TYPE identifies which packaging/distribution this daemon runs in.
1237
- DAEMON_VERSION = "1.73.2"
1237
+ DAEMON_VERSION = "1.75.0"
1238
1238
 
1239
1239
 
1240
1240
  def _detect_client_type() -> str:
@@ -9632,7 +9632,7 @@ class TaskPoller:
9632
9632
  analysis_branch=t.get("analysis_branch"),
9633
9633
  workspace_source_mode=t.get("workspace_source_mode"),
9634
9634
  workspace_branch=t.get("workspace_branch"),
9635
- workspace_resolution=t.get("workspace_resolution", "cloud_worktree"),
9635
+ workspace_resolution=t.get("workspace_resolution"),
9636
9636
  local_workspace_binding_id=t.get("local_workspace_binding_id"),
9637
9637
  effective_operator_user_id=t.get("effective_operator_user_id"),
9638
9638
  required_commit_shas=t.get("required_commit_shas", []),
@@ -9649,6 +9649,45 @@ class TaskPoller:
9649
9649
  # root neither executes nor fails them. Invalid OWN tasks
9650
9650
  # still reach the ordinary authorization-failure path.
9651
9651
  continue
9652
+ resolution = task.workspace_resolution
9653
+ binding_id = task.local_workspace_binding_id
9654
+ target_valid = (
9655
+ resolution == "cloud_worktree" and binding_id is None
9656
+ or resolution == "local_bind"
9657
+ and isinstance(binding_id, str) and bool(binding_id.strip())
9658
+ )
9659
+ if not target_valid:
9660
+ error = (
9661
+ "Runtime task has a missing or conflicting execution target. "
9662
+ "An explicit workspace_resolution and matching local binding "
9663
+ "are required; refusing to infer a managed checkout. "
9664
+ "Update the server and Desktop before retrying."
9665
+ )
9666
+ logger.error("Refusing task %s: %s", task.task_id, error)
9667
+ try:
9668
+ rejected = await self.client.post(
9669
+ f"{self.server_url}/api/v1/runtimes/{self.runtime_id}"
9670
+ f"/tasks/{task.task_id}/complete",
9671
+ json={
9672
+ "status": "failed",
9673
+ "exit_code": -1,
9674
+ "error": error,
9675
+ "failure_code": "execution_target_invalid",
9676
+ "execution_attempt_id": task.execution_attempt_id,
9677
+ },
9678
+ timeout=15,
9679
+ )
9680
+ rejected.raise_for_status()
9681
+ except httpx.HTTPError as exc:
9682
+ logger.warning(
9683
+ "Could not report invalid execution target for task %s: %s",
9684
+ task.task_id, _format_exc(exc),
9685
+ )
9686
+ continue
9687
+ logger.info(
9688
+ "Task %s execution target: workspace_resolution=%s binding_id=%s",
9689
+ task.task_id, resolution, binding_id,
9690
+ )
9652
9691
  tasks.append(task)
9653
9692
  return tasks
9654
9693
  except Exception as e:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: forgexa-cli
3
- Version: 1.73.2
3
+ Version: 1.75.0
4
4
  Summary: Forgexa CLI — command-line client and AI agent runtime for the Forgexa platform
5
5
  Author-email: Jason Sun <dev.winds@gmail.com>
6
6
  License-Expression: MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "forgexa-cli"
3
- version = "1.73.2"
3
+ version = "1.75.0"
4
4
  description = "Forgexa CLI — command-line client and AI agent runtime for the Forgexa platform"
5
5
  requires-python = ">=3.9"
6
6
  license = "MIT"
File without changes
File without changes