Repository navigation
Conversation
|
问题是真的:Stop 只走 WebSocket,并且本地会乐观把回合标成 done。补 HTTP cancel、等服务端回执再结束,方向对。 当前与 |
ea5953b to
168f186
Compare
|
@jubaoliang 已按意见处理,麻烦复核:
fork PR 的工作流需要审批才会运行,烦请批准后跑一遍 CI;若复核无问题,麻烦合并到 |
d2885a8 to
ded4854
Compare
|
@jubaoliang 已 rebase 到最新拉取的 验证如实说明:首轮 PR 描述已更新验证范围。请按你的节奏测试,后续我会继续跟进 develop 并及时 rebase。 |
ded4854 to
d9032fe
Compare
|
@jubaoliang 同步到新 |
43d886f to
7eea801
Compare
cfcc978 to
e0e1e84
Compare
e0e1e84 to
1222424
Compare
|
@jubaoliang 这个是自己用得最多的:点停止前端会把回合乐观标成完成,帧也照收,其实服务端还没取消完。 按你说的,rebase 和不相关的测试修都处理了,现在只剩取消链路本身——HTTP 发起取消,等服务端回执再结束。刚跟着最新 develop 又推了一版。 正文最底下有修复前后的验证截图,麻烦再审一遍。 |
ffd82b8 to
9eea919
Compare
9eea919 to
f95a3bb
Compare
Summary
Fixes #803 for ordinary running Dashboard turns.
POST /agents/{agent_id}/threads/{thread_id}/cancelendpoint using the existing thread ownership check and synchronous cancellation entry.requested: trueacknowledges that the cancellation entry was called, not that the task has already stopped. This does not address queued tasks, HITL, exact earlier-turn cancellation, rollback of external side effects, or Harness-internal cancellation (#805). Legacy WebSocket cancel and disconnect behavior are unchanged.Target branch
develop(feature / fix — default)main(release/*orhotfix/*only)Type of change
Test plan
ec70e5f4: the Unreleased changelog conflict was resolved, the functional patch kept its stable patch-id, andgit diff --checkpassed. Earlier local WebSocket integration 21 passed, stop-button tests 10 passed, and dashboard build passed. The latest Linux / Windows result is shown in GitHub Checks.developat963cb140(headd9032fe9): functional diff unchanged; WebSocket integration 21 passed, cancellation Vitest 10 passed, andnpm run buildpassed.developat728ca521,make all PYTEST_JOBS=2passed Ruff, formatting and mypy; the full backend run had 3713 passed, 18 skipped, 1 failed. The failure was the existingtest_process_exit_after_commit_keeps_last_fragmentsubprocess exceeding its 20-second timeout while multiple suites were running.6f7815bb(headded4854e), the timeout test passed alone without code or timeout changes.make lint typecheckpassed;uv run pytest tests/integration/test_chat_ws.py tests/unit/i18n -n 2 -qpassed (91 passed).npm run buildpassed, including TypeScript checking and the production build.The full local run above was not green; its sole timeout passed in isolation. The unchanged
chatStore.tsalso has the sameno-extra-boolean-castESLint error as cleandevelop; no unrelated lint fix is included. Local checks used macOS / Python 3.14. Final-head Linux/Windows CI and maintainer testing are tracked separately; real-LLM/manual refresh-and-stop testing is not claimed.Reproduction evidence (before / after)
Turn running, dashboard without a live WebSocket: on
developPOST /agents/{id}/threads/{tid}/cancel→ 404 and the turn keeps streaming; on this branch it returns200 {"requested": true}and the turn terminates (idle re-post honestly reportsrequested: false).Before (
develop@4667bd7b):After (this branch):
Checklist
CHANGELOG.md(if user-facing)