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.
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/PKG-INFO +1 -1
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli/__init__.py +1 -1
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli/daemon.py +30 -6
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli.egg-info/PKG-INFO +1 -1
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/pyproject.toml +1 -1
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/README.md +0 -0
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli/_build_config.py +0 -0
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli/_local_bind.py +0 -0
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli/agent_core.py +0 -0
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli/autoupgrade.py +0 -0
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli/main.py +0 -0
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli/py.typed +0 -0
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli.egg-info/SOURCES.txt +0 -0
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli.egg-info/dependency_links.txt +0 -0
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli.egg-info/entry_points.txt +0 -0
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli.egg-info/requires.txt +0 -0
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/forgexa_cli.egg-info/top_level.txt +0 -0
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/setup.cfg +0 -0
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/tests/test_auth_and_runtime_commands.py +0 -0
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/tests/test_autoupgrade.py +0 -0
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/tests/test_check_command.py +0 -0
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/tests/test_expiry_warnings_and_revoke.py +0 -0
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/tests/test_local_bind_commands.py +0 -0
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/tests/test_runtime_credentials.py +0 -0
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/tests/test_session_credentials.py +0 -0
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/tests/test_silent_install.py +0 -0
- {forgexa_cli-1.25.2 → forgexa_cli-1.25.3}/tests/test_upgrade_observability.py +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"""forgexa-cli — Forgexa command-line client."""
|
|
2
|
-
__version__ = "1.25.
|
|
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.
|
|
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.
|
|
10122
|
-
|
|
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
|
-
|
|
10134
|
-
|
|
10135
|
-
|
|
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(
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|