docs(reliability): record live agent.wait blocker evidence
This commit is contained in:
@@ -89,7 +89,30 @@ This is the highest-leverage remaining open reliability item because it affects
|
||||
- Targeted validation for this follow-up passed:
|
||||
- `pnpm -C external/openclaw-upstream test -- --run src/commands/agent.test.ts src/gateway/server-methods/agent-wait-dedupe.test.ts src/gateway/server-methods/server-methods.test.ts`
|
||||
- result: passed (`81 tests` across `3` files).
|
||||
- Remaining open item: no second live hot-swap/runtime repro was attempted in this pass, so the new `agent.wait` fix is validated by exact code-path inspection plus focused tests, not yet by another live gateway run.
|
||||
- Follow-up live runtime verification on 2026-03-13 showed the current `agent.wait` fix did **not** close the live path yet.
|
||||
- patched gateway launched directly from source on loopback with channels skipped:
|
||||
- command: `OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 pnpm exec tsx src/index.ts gateway run --port 18902 --bind loopback --auth none --allow-unconfigured`
|
||||
- log evidence: `2026-03-13T18:52:10.743+00:00 [gateway] agent model: openai-codex/gpt-5.3-codex`
|
||||
- live repro used a fresh default-model session and an oversized in-memory payload over `GatewayClient` (not CLI argv):
|
||||
- session key: `agent:main:subagent:agent-wait-gpt53-live-source-1773427981586`
|
||||
- run id: `gwc-live-agent-wait-gpt53-source-1773427981614`
|
||||
- payload chars: `880150`
|
||||
- start result: `{"runId":"gwc-live-agent-wait-gpt53-source-1773427981614","status":"accepted","acceptedAt":1773427981959}`
|
||||
- wait result: `{"runId":"gwc-live-agent-wait-gpt53-source-1773427981614","status":"ok","endedAt":1773427984243}`
|
||||
- same session's terminal assistant message still recorded a real provider failure:
|
||||
- `provider: "openai-codex"`
|
||||
- `model: "gpt-5.3-codex"`
|
||||
- `stopReason: "error"`
|
||||
- `errorMessage: "Codex error: {\"type\":\"error\",\"error\":{\"type\":\"invalid_request_error\",\"code\":\"context_length_exceeded\",\"message\":\"Your input exceeds the context window of this model. Please adjust your input and try again.\",\"param\":\"input\"},\"sequence_number\":2}"`
|
||||
- earlier temporary gateway runs reinforced the same mismatch:
|
||||
- stale dist gateway repro run `gwc-live-agent-wait-gpt53-1773427893583` also returned `status:"ok"` while transcript stopReason remained `error`
|
||||
- temp `gpt-5.4` session repro on the same temp gateway returned `status:"error"`, but only because that runtime reported `FailoverError: Unknown model: openai-codex/gpt-5.4`; that is useful as transport sanity, but **not** the canonical live semantics proof
|
||||
- Most likely remaining code-path gap (high-confidence from source inspection):
|
||||
- `src/commands/agent.ts` only applies the new fallback correction when `!lifecycleEnded`
|
||||
- `lifecycleEnded` is set as soon as any inner lifecycle callback reports `phase:"end"` or `phase:"error"`
|
||||
- `src/gateway/server-methods/agent-job.ts` immediately caches/resolves `phase:"end"` as terminal `status:"ok"`
|
||||
- so if an inner embedded lifecycle emitter still reports `phase:"end"` for a run whose final assistant message later has `stopReason:"error"`, `agent.wait` will still resolve `ok` before the dedupe/result-meta rescue path matters
|
||||
- likely next target: identify the inner lifecycle emitter that is still producing `phase:"end"` on this direct gateway path and either convert that event to `phase:"error"` for terminal assistant failures or make `agent.wait` prefer final dedupe/result-meta over earlier lifecycle `end` when both exist for the same run
|
||||
- Side assessment on unrelated dirty upstream work: the `/subagents log` UX diff in `src/auto-reply/reply/commands-subagents/action-log.ts` + `shared.ts` is logically coherent and passed `pnpm test -- --run src/auto-reply/reply/commands.test.ts` (`44 tests`), but it is still out-of-scope for this reliability pass because there is no dedicated coverage for the new tool-only log behavior and it would muddy the focused branch.
|
||||
|
||||
## Constraints
|
||||
|
||||
Reference in New Issue
Block a user