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.
- {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/PKG-INFO +1 -1
- {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/forgexa_cli/__init__.py +1 -1
- {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/forgexa_cli/daemon.py +40 -6
- {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/forgexa_cli.egg-info/PKG-INFO +1 -1
- {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/pyproject.toml +1 -1
- {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/README.md +0 -0
- {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/forgexa_cli/_build_config.py +0 -0
- {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/forgexa_cli/autoupgrade.py +0 -0
- {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/forgexa_cli/main.py +0 -0
- {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/forgexa_cli/py.typed +0 -0
- {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/forgexa_cli.egg-info/SOURCES.txt +0 -0
- {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/forgexa_cli.egg-info/dependency_links.txt +0 -0
- {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/forgexa_cli.egg-info/entry_points.txt +0 -0
- {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/forgexa_cli.egg-info/requires.txt +0 -0
- {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/forgexa_cli.egg-info/top_level.txt +0 -0
- {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/setup.cfg +0 -0
- {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/tests/test_auth_and_runtime_commands.py +0 -0
- {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/tests/test_autoupgrade.py +0 -0
- {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/tests/test_check_command.py +0 -0
- {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/tests/test_silent_install.py +0 -0
- {forgexa_cli-1.23.0 → forgexa_cli-1.23.2}/tests/test_upgrade_observability.py +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"""forgexa-cli — Forgexa command-line client."""
|
|
2
|
-
__version__ = "1.23.
|
|
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.
|
|
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(
|
|
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(
|
|
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
|
-
#
|
|
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
|
-
|
|
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(
|
|
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.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|