dsh-agy-link 0.4.20 → 0.4.21
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.
- package/CHANGELOG.md +9 -0
- package/dist/index.js +8 -6
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.4.21 (2026-08-27)
|
|
4
|
+
|
|
5
|
+
- **Fixed: Silent `agy exited with code 1` Hid the Real Cause (发送消息无回复、只见 exit 1).**
|
|
6
|
+
- **Field report**: a user session log showed every turn failing with the bare message `agy exited with code 1` (code PROCESS_EXIT, empty stderr, zero tokens) — each attempt ran ~7–10s, failed once, retried once, failed again, and the UI never surfaced WHY (no reply text at all).
|
|
7
|
+
- **Root cause of the blindness (verified live against agy 1.1.22)**: agy reports its failure as a `result` envelope on **stdout** (`{"event":"result",...,"status":"ERROR","error":"<human-readable reason>"}`) and exits 1 with EMPTY stderr — e.g. an invalid model/effort pairing fails instantly with `--model gemini-3.7-flash requires --effort (available: low, medium, high)`. The adapter's non-zero-exit branch dropped that envelope entirely: rate-limit-shaped errors were still classified (the classifier already read `lastResultError`), but any OTHER failure degraded to the bare exit-code line with no cause.
|
|
8
|
+
- **Fix**: the PROCESS_EXIT failure message now prefers the stdout envelope's error text (falling back to the stderr tail). Same error code and retry policy; users finally see agy's own reason, e.g. `agy exited with code 1: upstream request failed while generating` or `…: --model gemini-3.7-flash requires --effort (available: low, medium, high)`.
|
|
9
|
+
- **Diagnostics unaffected**: `/agy doctor` (`~/.dsh/agy-link/diagnostics/doctor-*.md`) still carries the full redacted raw stdout tail for deeper incidents.
|
|
10
|
+
- Regression test pins the exact silent-failure shape (stdout envelope + exit 1 + empty stderr) via a new `exit-error` fake-agy mode.
|
|
11
|
+
|
|
3
12
|
## 0.4.20 (2026-08-27)
|
|
4
13
|
|
|
5
14
|
- **Fixed: Primary Account Quota Fetched With a STALE Token (主账号刷新/同步拿的值不对).**
|
package/dist/index.js
CHANGED
|
@@ -2430,12 +2430,14 @@ var AgyAdapter = class extends LlmAdapter {
|
|
|
2430
2430
|
message: "Google Antigravity quota / rate limit reached: " + bestMsg
|
|
2431
2431
|
};
|
|
2432
2432
|
} else if (!consumable) {
|
|
2433
|
-
if (outcome.code !== 0)
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2433
|
+
if (outcome.code !== 0) {
|
|
2434
|
+
const detail = parser.stats.lastResultError ?? (outcome.stderrTail !== "" ? brief(outcome.stderrTail) : "");
|
|
2435
|
+
failure = {
|
|
2436
|
+
kind: "error",
|
|
2437
|
+
code: Err.PROCESS_EXIT,
|
|
2438
|
+
message: "agy exited with code " + outcome.code + (detail !== "" ? ": " + detail : "")
|
|
2439
|
+
};
|
|
2440
|
+
} else if (parser.stats.lastResultError) failure = {
|
|
2439
2441
|
kind: "error",
|
|
2440
2442
|
code: Err.AGY_ERROR,
|
|
2441
2443
|
message: "agy reported an error: " + parser.stats.lastResultError
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-agy-link",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.21",
|
|
4
4
|
"description": "Google Antigravity (agy CLI) models for DeepSeek Harness — stream Gemini/Claude/GPT-OSS subscriptions into DSH with thinking, tool activity, token usage and in-GUI Google OAuth login.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|