forgexa-cli 1.25.2__tar.gz → 1.25.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 (27) hide show
  1. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/PKG-INFO +1 -1
  2. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli/__init__.py +1 -1
  3. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli/daemon.py +30 -6
  4. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli.egg-info/PKG-INFO +1 -1
  5. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/pyproject.toml +1 -1
  6. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/README.md +0 -0
  7. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli/_build_config.py +0 -0
  8. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli/_local_bind.py +0 -0
  9. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli/agent_core.py +0 -0
  10. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli/autoupgrade.py +0 -0
  11. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli/main.py +0 -0
  12. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli/py.typed +0 -0
  13. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli.egg-info/SOURCES.txt +0 -0
  14. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli.egg-info/dependency_links.txt +0 -0
  15. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli.egg-info/entry_points.txt +0 -0
  16. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli.egg-info/requires.txt +0 -0
  17. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli.egg-info/top_level.txt +0 -0
  18. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/setup.cfg +0 -0
  19. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/tests/test_auth_and_runtime_commands.py +0 -0
  20. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/tests/test_autoupgrade.py +0 -0
  21. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/tests/test_check_command.py +0 -0
  22. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/tests/test_expiry_warnings_and_revoke.py +0 -0
  23. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/tests/test_local_bind_commands.py +0 -0
  24. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/tests/test_runtime_credentials.py +0 -0
  25. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/tests/test_session_credentials.py +0 -0
  26. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/tests/test_silent_install.py +0 -0
  27. {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/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.25.2
3
+ Version: 1.25.3
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.25.2"
2
+ __version__ = "1.25.3"
@@ -909,7 +909,7 @@ except (ImportError, ModuleNotFoundError):
909
909
  # DAEMON_VERSION is the protocol/logic version of the daemon code.
910
910
  # Kept in sync with pyproject.toml version via bump-version.sh.
911
911
  # CLIENT_TYPE identifies which packaging/distribution this daemon runs in.
912
- DAEMON_VERSION = "1.25.2"
912
+ DAEMON_VERSION = "1.25.3"
913
913
 
914
914
 
915
915
  def _detect_client_type() -> str:
@@ -10118,8 +10118,10 @@ class RuntimeDaemon:
10118
10118
  await git("checkout", "--detach", base_ref, cwd=workspace_path)
10119
10119
 
10120
10120
  # A shallow single-branch clone only tracks its configured baseline
10121
- # refspec. Fetch the source branch explicitly before resolving it.
10122
- if not source_commit_sha and source_branch:
10121
+ # refspec. Always fetch the source branch explicitly: a frozen SHA
10122
+ # may already be known by the server but still be absent from this
10123
+ # worktree's object database.
10124
+ if source_branch:
10123
10125
  try:
10124
10126
  source_remote_ref = f"refs/remotes/origin/{source_branch}"
10125
10127
  await git(
@@ -10130,9 +10132,10 @@ class RuntimeDaemon:
10130
10132
  timeout=settings.GIT_FETCH_TIMEOUT,
10131
10133
  project_key=_proj_key,
10132
10134
  )
10133
- source_commit_sha = (
10134
- await git("rev-parse", source_remote_ref, cwd=workspace_path)
10135
- ).strip()
10135
+ if not source_commit_sha:
10136
+ source_commit_sha = (
10137
+ await git("rev-parse", source_remote_ref, cwd=workspace_path)
10138
+ ).strip()
10136
10139
  except RuntimeError:
10137
10140
  pass
10138
10141
  if not source_commit_sha:
@@ -10150,6 +10153,27 @@ class RuntimeDaemon:
10150
10153
  )
10151
10154
  return
10152
10155
 
10156
+ try:
10157
+ await git(
10158
+ "cat-file", "-e", f"{source_commit_sha}^{{commit}}",
10159
+ cwd=workspace_path,
10160
+ )
10161
+ except RuntimeError:
10162
+ await _report(
10163
+ {
10164
+ "merge_outcome": "precheck_failed",
10165
+ "failure_code": "source_commit_unavailable",
10166
+ "ai_resolution_notes": (
10167
+ "Cannot fetch frozen source commit SHA "
10168
+ f"{source_commit_sha} for "
10169
+ f"{source_branch or 'the configured source branch'}"
10170
+ ),
10171
+ },
10172
+ status="failed",
10173
+ error="Cannot resolve source commit SHA",
10174
+ )
10175
+ return
10176
+
10153
10177
  # Attempt the merge.
10154
10178
  try:
10155
10179
  await git(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: forgexa-cli
3
- Version: 1.25.2
3
+ Version: 1.25.3
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.25.2"
3
+ version = "1.25.3"
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