mirror of
https://github.com/alibaba/open-code-review.git
synced 2026-08-21 06:34:29 +00:00
|
Some checks are pending
Deploy Pages / deploy (push) Blocked by required conditions
CI / test (push) Waiting to run
CI / windows (push) Waiting to run
CI / cross-compile (amd64, darwin) (push) Waiting to run
CI / cross-compile (amd64, windows) (push) Waiting to run
CI / cross-compile (arm64, darwin) (push) Waiting to run
CI / cross-compile (arm64, linux) (push) Waiting to run
CI / cross-compile (arm64, windows) (push) Waiting to run
CodeQL Advanced / Analyze (go) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Deploy Pages / build (push) Waiting to run
* fix(agent): name the main-loop stop trigger in item failure reasons StopEmptyRounds and StopCompression previously collapsed into the same "main task stopped before completing" string as StopNone, so a failed item's manifest could not say whether the model spun without usable tool results or the context outgrew its compression threshold. In --format json runs the progress lines that name the trigger are discarded, which made the manifest reason the only diagnostic that leaves a CI runner — and it said the same thing for every stop. Keep the unknown failure class (the taxonomy has no fitting category) but give each stop its own reason, mirroring the StopMaxRounds precedent. Fixes #842 * fix(llmloop): share the main-loop stop reason with the scan path PR #855 named the empty-round and compression stops in the diff-review manifest reason, but two gaps remained. A MainLoopStop constant added later would fall through classifyMainLoopStop's default and inherit the collapsed "main task stopped before completing" text without failing a test — the exact shape of #842, reintroduced by the next enum addition. classifyMainLoopStop now keys only on StopMaxRounds for the budget class and delegates every reason to MainLoopStop.Reason(), whose own default names the unrecognized value. internal/scan discarded the MainLoopStop entirely and hardcoded a second opaque sentence. Scan sessions opt out of the run manifest, so that string is their whole diagnostic: warningsForOutput only drops scan_subtask_error warnings when a manifest exists, and under --format json the [ocr] progress lines that would say which exit fired are discarded. It now appends the shared Reason(), keeping the prefix that resume records and existing warnings match on. MainLoopStop also gains String(), so a stop no longer formats as a bare integer in telemetry, logs and test failure messages. Tests pin String() and Reason() for every stop, assert neither collides across stops, and fail when a constant is added past StopCompression — the prompt to give it its own case. The scan warning test now requires the trigger to be named rather than only that the task did not complete. --------- Co-authored-by: Fanzzzd <fanzzzd@users.noreply.github.com> Co-authored-by: kite <lizhengfeng.lzf@alibaba-inc.com> |
||
|---|---|---|
| .. | ||
| agent | ||
| config | ||
| delegate | ||
| diff | ||
| gitcmd | ||
| llm | ||
| llmloop | ||
| mcp | ||
| model | ||
| pathutil | ||
| release | ||
| scan | ||
| session | ||
| stdout | ||
| suggestdiff | ||
| telemetry | ||
| tool | ||
| viewer | ||