Commit Graph
1306 Commits
Author SHA1 Message Date
Liang Jiaqing a1e470bb11 stapp: all_outputs stream + single 1s tick; llmcore: null-safe usage
stapp:
- stream paints agent.all_outputs[-1].outputs (queue is doorbell+done only)
- drop partial_response / mount_main_stream / multi 1s fragments
- one always-on _tick: stream | detached salvage | hub wake | loop/auto
- RUNNING badge projects agent.is_running; history still fold_turns

llmcore:
- coerce null/bad usage token fields to int in _record_usage
  (dict.get default skips explicit JSON null)
2026-08-03 18:16:09 +08:00
Liang Jiaqing c59410855d stapp: soft-import slash cmd modules so main chat runs without them
- wrap chatapp_common/continue_cmd/btw_cmd/export_cmd in one try/ImportError
- guard /new /continue /btw; /export help+all still work via agent.log_path
2026-08-03 16:49:37 +08:00
Liang Jiaqing 284b33216a hub: split bus/panel ports, token-auth the panel
- bus port (19736): WebSocket only, all HTTP returns 404
- panel port (GA_HUB_WEB_PORT, default 19737): token via ?t= or cookie, /ws rejected
- token from GA_HUB_TOKEN or random 6 chars, printed on startup
- drop dead /api/ev HTTP endpoint (zero callers; bus ev goes over WS)
- pet: inline single-instance lock; CJK-aware title width
2026-08-03 16:24:23 +08:00
Liang Jiaqing d8d90eef8c fix: abort sets should_stop before close; llmcore skip retry on user stop; hub serve-on-connect + stapp hub optional 2026-08-03 11:44:34 +08:00
Liang Jiaqing 41e1fcebe8 hub: WS peer hub (frontends/hub.py + hub.html) with composer, busy-reject and abort; stapp adopts hub tasks as real bubbles; agentmain tracks all_outputs/_current_queue 2026-08-02 23:18:35 +08:00
LJQ c8136d05b3 Merge pull request #721 from chenwushuang007-stack/feat/reasoning-effort-max
feat: add max reasoning effort option
2026-08-02 21:26:53 +08:00
chenandGenericAgent 582168ac21 feat: add max reasoning effort option
Expose the backend-supported max reasoning level in the /effort picker and document its protocol mappings.

Co-Authored-By: GenericAgent <bot@gaagent.ai>
2026-08-02 02:58:43 +08:00
HuaYangTian 9355c22d72 fix(llmcore): handle Responses API incomplete/failed terminal events + reasoning_text (#718)
- 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
2026-07-31 23:43:21 +08:00
LJQ bd6eccd37c Merge pull request #710 from Kailigithub/fix/issue-683-scroll-bottom-on-session-switch
fix(desktop): scroll to bottom when switching to active session
2026-07-31 23:36:09 +08:00
LJQ 5a512293a8 Merge pull request #713 from wjl2023/docs/refresh-wechat-group22-qr
docs: refresh WeChat group 22 QR code
2026-07-31 23:35:39 +08:00
Liang Jiaqing 6bed654dce feat: improve conductor files and runtime handling 2026-07-31 21:56:27 +08:00
wjl2023 ff6c6e92e6 docs: refresh WeChat group 22 QR code
The previous wechat_group22.jpg QR has expired. Replace it with a current
scan-to-join image so the README community section stays usable.
2026-07-30 22:01:25 +08:00
Liang Jiaqing b913a89ace stapp: show active model in runtime stats 2026-07-30 00:16:04 +08:00
Liang Jiaqing a3a626af89 stapp: stabilize long-session streaming and add runtime stats 2026-07-29 18:25:46 +08:00
Liang Jiaqing fb9ea53c3a stapp: lazy-render chat history (tail 6 + i18n toggle) to fix gray/RUNNING freeze on long sessions 2026-07-29 12:31:06 +08:00
Liang Jiaqing c8163dcfc3 docs: remove expired WeChat QR codes 2026-07-29 11:48:30 +08:00
Liang Jiaqing ff9a6e6451 docs: refresh WeChat group 22 QR code 2026-07-29 11:42:05 +08:00
Kailigithub b4aeb005b5 fix(desktop): scroll to bottom when switching to active session
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.
2026-07-29 03:09:48 +08:00
鎽不羁andFwind43 555d7bc374 fix: map reasoning_effort max to Claude output_config.effort (#707)
Co-authored-by: Fwind43 <Fwind43@users.noreply.github.com>

Prevents silent downgrade of reasoning_effort=max to medium under fake_cc_system_prompt.
2026-07-28 23:30:00 +08:00
Liang Jiaqing b4597a067b stapp: non-blocking fragment-based stream polling + loop epoch guard; RUNNING badge; conductor SOP subdir hint; agent_loop verbose simplification 2026-07-28 23:15:18 +08:00
Liang Jiaqing 7ffc95823b fix(llmcore): cap retry-after to avoid hanging on oversized values 2026-07-27 20:29:01 +08:00
Liang Jiaqing 5c3fc72da4 fix: drop empty text blocks in _fix_messages to avoid HTTP 400 2026-07-25 21:46:05 +08:00
Liang Jiaqing a1f7368f81 feat: wechat conductor forwarding mode with /switch 2026-07-25 13:39:39 +08:00
Liang Jiaqing 4086d5c858 refactor: tighten working memory tool guidance 2026-07-23 15:30:36 +08:00
Liang Jiaqing 0a54c74924 fix: handle invalid mixin placeholder on model reload 2026-07-23 14:18:37 +08:00
Liang Jiaqing 7fede5a050 feat: improve conductor controls and token import refresh 2026-07-23 13:25:22 +08:00
Liang Jiaqing 733615d889 fix: sticky llm_no on reload, portal UX, mainland install without Git
- agentmain: keep current LLM across mykey hot-reload by backend.name
- stapp: fix DeltaGenerator leak from ternary, update reopen_page wording
- ga_install: mainland mode skips PortableGit, use NJU python mirror + --no-bin
- ga: block start_long_term_update before turn 10
2026-07-22 23:38:10 +08:00
Liang Jiaqing 400c9ef34f feat(stapp): empty-key boot and portal hot-reload wait
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.
2026-07-22 20:33:37 +08:00
Jiaqing Liang 8a75b39bf8 docs(memory): deprecate plan mode and index project mode 2026-07-22 15:48:13 +08:00
Jiaqing Liang 022299a6ab fix(conductor): notify on user chat messages 2026-07-22 15:48:13 +08:00
Jiaqing Liang caa41dd08e refactor(tmwebdriver): remove legacy DOM bridge and guard HTTP origin 2026-07-22 15:48:12 +08:00
Liang Jiaqing 277c4859a4 feat(desktop): optional quick-access helper hook + trim factor
- Probe optional helper availability; show button only if present

- Bridge route for optional helper; i18n + cache bump

- llmcore: maxlen_multiplier factor 0.85->0.75
2026-07-21 11:15:21 +08:00
Liang Jiaqing facbca6b7d feat(stapp): improve missing-key UX and sidebar controls
- Optional helper hook when available; warn reopen if used

- Sidebar cleanup: drop auto_start, tighten hr CSS
2026-07-21 11:15:20 +08:00
Solaris-star e24389eba7 fix: make long-prompt temp files unique under concurrency (#693)
Use pid+nanos for user_prompt temp filename to avoid same-second collisions under concurrent --func / run_subagents.

Fixes #665
2026-07-20 21:54:37 +08:00
LJQ 5802df3d1c Merge pull request #695 from wjl2023/docs/update-wechat-group-qr
docs: update WeChat group QR to group 22
2026-07-20 21:50:19 +08:00
wjl2023 7412816ec6 docs: update WeChat group QR code to group 22
Replace the README community QR with the current WeChat experience group image (wechat_group22.jpg) following the existing numbering convention.
2026-07-20 16:39:19 +08:00
Jiaqing Liang 2b661eb265 chore: update gitignore, memory templates, ga retry logic, llmcore beta parts 2026-07-20 15:38:01 +08:00
LJQ 5d8897ff32 Merge pull request #691 from dd3xp/main
fix(desktop): restore permissive empty-turn handling
2026-07-17 21:54:18 +08:00
dd3xp cbcbf85764 release desktop portable v0.1.8 2026-07-17 03:20:54 -04:00
dd3xp 1080f9ee0a revert desktop strict empty-turn handling 2026-07-17 03:02:28 -04:00
dd3xp d7eae2a8cf release desktop portable v0.1.7 2026-07-16 02:40:25 -04:00
Liang Jiaqing 0c67da2364 revert(ga): restore pre-c921bad empty-response check in do_no_tool
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.
2026-07-15 18:20:06 +08:00
Liang Jiaqing 89632b05e3 Refine execution principles and conductor API wording 2026-07-15 18:15:08 +08:00
LJQ 20eebe7441 Merge pull request #671 from dd3xp/main
Merge desktop fork updates into upstream main
2026-07-14 21:33:44 +08:00
Kailigithub 425ec1a02e fix(tmwebdriver): wrap prints in safe_print to survive stdout revoke (#673)
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
2026-07-14 20:11:55 +08:00
dd3xp 3a30cda63c release desktop portable v0.1.6 2026-07-14 00:54:32 -04:00
dd3xp 5887450e6a Merge upstream main into desktop main 2026-07-14 00:47:12 -04:00
dd3xp a10378b563 improve settings feature descriptions 2026-07-14 00:31:10 -04:00
dd3xp 58cb4cdc7c fix desktop empty turn handling 2026-07-13 23:50:14 -04:00
Shen HaoandShen Hao d1d517f374 fix(slash_cmds): /update pins git commands to the repo root (#681)
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>
2026-07-13 19:28:03 +08:00