forgexa-cli 1.23.0__tar.gz → 1.23.2__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 (21) hide show
  1. {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/PKG-INFO +1 -1
  2. {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/forgexa_cli/__init__.py +1 -1
  3. {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/forgexa_cli/daemon.py +40 -6
  4. {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/forgexa_cli.egg-info/PKG-INFO +1 -1
  5. {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/pyproject.toml +1 -1
  6. {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/README.md +0 -0
  7. {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/forgexa_cli/_build_config.py +0 -0
  8. {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/forgexa_cli/autoupgrade.py +0 -0
  9. {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/forgexa_cli/main.py +0 -0
  10. {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/forgexa_cli/py.typed +0 -0
  11. {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/forgexa_cli.egg-info/SOURCES.txt +0 -0
  12. {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/forgexa_cli.egg-info/dependency_links.txt +0 -0
  13. {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/forgexa_cli.egg-info/entry_points.txt +0 -0
  14. {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/forgexa_cli.egg-info/requires.txt +0 -0
  15. {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/forgexa_cli.egg-info/top_level.txt +0 -0
  16. {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/setup.cfg +0 -0
  17. {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/tests/test_auth_and_runtime_commands.py +0 -0
  18. {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/tests/test_autoupgrade.py +0 -0
  19. {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/tests/test_check_command.py +0 -0
  20. {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/tests/test_silent_install.py +0 -0
  21. {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/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.23.0
3
+ Version: 1.23.2
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.23.0"
2
+ __version__ = "1.23.2"
@@ -557,7 +557,7 @@ except (ImportError, ModuleNotFoundError):
557
557
  # DAEMON_VERSION is the protocol/logic version of the daemon code.
558
558
  # Kept in sync with pyproject.toml version via bump-version.sh.
559
559
  # CLIENT_TYPE identifies which packaging/distribution this daemon runs in.
560
- DAEMON_VERSION = "1.23.0"
560
+ DAEMON_VERSION = "1.23.2"
561
561
 
562
562
 
563
563
  def _detect_client_type() -> str:
@@ -10178,10 +10178,15 @@ class RuntimeDaemon:
10178
10178
  self._record_merge_job(merge_job_id, str(input_ctx.get("project_id") or ""))
10179
10179
 
10180
10180
  async def _report(result: dict, status: str = "completed", error: str = ""):
10181
+ result = dict(result)
10182
+ if source_commit_sha and not result.get("source_commit_sha"):
10183
+ result["source_commit_sha"] = source_commit_sha
10181
10184
  payload = {"status": status, "output_result": result}
10182
10185
  if error:
10183
10186
  payload["error"] = error[:1000]
10184
- payload["failure_code"] = result.get("merge_outcome", "merge_failed")
10187
+ payload["failure_code"] = result.get(
10188
+ "failure_code", result.get("merge_outcome", "merge_failed")
10189
+ )
10185
10190
  try:
10186
10191
  await conn.client.post(f"{reporter_url}/complete", json=payload, timeout=15)
10187
10192
  except Exception:
@@ -10224,7 +10229,13 @@ class RuntimeDaemon:
10224
10229
  )
10225
10230
 
10226
10231
  # Fetch latest refs.
10227
- await git("fetch", "origin", cwd=workspace_path)
10232
+ await git(
10233
+ "fetch",
10234
+ "origin",
10235
+ cwd=workspace_path,
10236
+ timeout=settings.GIT_FETCH_TIMEOUT,
10237
+ project_key=_proj_key,
10238
+ )
10228
10239
 
10229
10240
  # Determine base SHA: use recorded base, else default branch HEAD.
10230
10241
  if base_integration_sha:
@@ -10238,14 +10249,37 @@ class RuntimeDaemon:
10238
10249
  # Detach HEAD to the base, creating a clean starting point for the candidate.
10239
10250
  await git("checkout", "--detach", base_ref, cwd=workspace_path)
10240
10251
 
10241
- # Resolve source SHA from branch name if not already a SHA.
10252
+ # A shallow single-branch clone only tracks its configured baseline
10253
+ # refspec. Fetch the source branch explicitly before resolving it.
10242
10254
  if not source_commit_sha and source_branch:
10243
10255
  try:
10244
- source_commit_sha = (await git("rev-parse", f"origin/{source_branch}", cwd=workspace_path)).strip()
10256
+ source_remote_ref = f"refs/remotes/origin/{source_branch}"
10257
+ await git(
10258
+ "fetch",
10259
+ "origin",
10260
+ f"+refs/heads/{source_branch}:{source_remote_ref}",
10261
+ cwd=workspace_path,
10262
+ timeout=settings.GIT_FETCH_TIMEOUT,
10263
+ project_key=_proj_key,
10264
+ )
10265
+ source_commit_sha = (
10266
+ await git("rev-parse", source_remote_ref, cwd=workspace_path)
10267
+ ).strip()
10245
10268
  except RuntimeError:
10246
10269
  pass
10247
10270
  if not source_commit_sha:
10248
- await _report({"merge_outcome": "conflict_needs_human"}, status="failed", error="Cannot resolve source commit SHA")
10271
+ await _report(
10272
+ {
10273
+ "merge_outcome": "precheck_failed",
10274
+ "failure_code": "source_commit_unavailable",
10275
+ "ai_resolution_notes": (
10276
+ "Cannot resolve source commit SHA for "
10277
+ f"{source_branch or 'the configured source branch'}"
10278
+ ),
10279
+ },
10280
+ status="failed",
10281
+ error="Cannot resolve source commit SHA",
10282
+ )
10249
10283
  return
10250
10284
 
10251
10285
  # Attempt the merge.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: forgexa-cli
3
- Version: 1.23.0
3
+ Version: 1.23.2
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.23.0"
3
+ version = "1.23.2"
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