Expose the backend-supported max reasoning level in the /effort picker and document its protocol mappings.
Co-Authored-By: GenericAgent <bot@gaagent.ai>
- response.incomplete/response.failed now record usage, emit truncation marker
and stop cleanly instead of being misread as ConnectionError (retry storm)
- collect response.reasoning_text.delta/.done into thinking content blocks
- non-stream Responses JSON: parse reasoning items and failed/incomplete status
Closes#683 — switching to a session whose agent is still
streaming left the viewport pinned near the user's last message
instead of jumping to the latest draft. Mirror the existing
refreshEmptyState(sess); scrollBottom(true) pattern from
sibling render paths so setActiveSession lands at the bottom.
Allow GenericAgent to start with empty mykey, watch subscription
portal writes via list_llms, and app-rerun so sidebar LLM select
refreshes without a manual click. Also harden mykey reimport and
note the fastest tmwebdriver autofill login path.
c921bad tightened blank-turn detection by stripping <thinking>/<summary>
and treating meta-only replies as empty. That is too aggressive for the
main agent loop (summary-only / thinking-only turns get forced retries).
Keep desktop_bridge behavior; only revert ga.py core path.
When OS revokes master stdout, bare print() raises BrokenPipeError and aborts WS handle before tab registration, causing stale web_scan data and extension reconnect loops. Mirror ga.py safe_print across TMWebDriver log sites.
Closes#672
The agent's default cwd is the temp/ subdirectory, where git resolves
'-- <file>' pathspecs relative to cwd. Fed the root-relative paths that
'git diff --name-only' prints, 'git checkout upstream/main -- <file>'
fails with "pathspec did not match", breaking the working-tree
reconcile steps of /update. The prompt now tells the agent to run every
git command from the repo root (_ROOT), in both EN and ZH.
Co-authored-by: Shen Hao <shenhao-stu@users.noreply.github.com>
Hard-delete path can preserve the first K history messages, insert a "..." gap, and strip dangling tool_use at the cut. Default 0 keeps previous behavior.
Add maxlen_multiplier derived from context_win (capped 3x); drives per-tool
truncation caps and history compression interval. WebScan uses half-increment
growth to avoid saturating its 35000 base. Docs updated for the new coupling.