646 Commits
Author SHA1 Message Date
ljq 73f71a4987 Keep lifespan regression test local instead of tracked 2026-11-04 15:14:54 +08:00
ljq 58198f74d6 Fix Hub FastAPI lifespan startup and shutdown 2026-11-04 14:59:29 +08:00
Liang Jiaqing 38085e0a38 修复重连时界面闪回(宽限期保留会话行, 与 GAndroid 同步) 2026-11-04 13:55:36 +08:00
Liang Jiaqing f47403a33a p2p: 组 UUID 并入会话密钥 HKDF salt,防信令中间人(仅 group 路径,旧1v1不变) 2026-11-03 19:34:20 +08:00
Liang Jiaqing 1438254cda fix(p2p): 并集路由先 unquote 再按 @hub 拆名(webui 编码成 %40 导致 offline 骨架屏); pclink.js baseOf/hasPid 兼容 @hub 2026-11-03 17:19:15 +08:00
Liang Jiaqing 56547d36ac p2p: HubUnion — hubs in one UUID room form a union API (name@hub, /api/hubs, POST /api/sessions {"hub"}); legacy 1v1 only on lowest-named hub; merge phone p2p_ws_client fixes; update wechat group image 2026-11-03 16:42:15 +08:00
ljq 9f358ea7f4 Rename service launcher to service_manager.pyw 2026-11-03 15:39:04 +08:00
Liang Jiaqing f462eabac7 p2p: on-demand pair connections via lobby call; hub_p2p single Group + /p2p/open + idle reclaim 2026-11-02 19:42:52 +08:00
Liang Jiaqing fede1b248f p2p: multi-hub/multi-customer group (lobby member list + per-pair P2PSocket rooms); hub exposes /p2p/hubs 2026-11-02 19:18:21 +08:00
Liang Jiaqing aab769f601 hub: clarify WEB_PORT is localhost-only; remote access via hub_p2p 2026-11-02 18:03:18 +08:00
Liang Jiaqing 29c93b83c4 hub_p2p: reconnect pacing - fast reconnect only after stable (>=30s) session, exp backoff 1..60s for instant drops/failures, hard cap 8 attempts/60s (avoid signal per-IP 429 storm) 2026-11-02 17:30:03 +08:00
Liang Jiaqing 5ec4b12b63 ga: map Bash/PowerShell tool calls to code_run; conductor: restrict CORS/WS origin & trusted host to localhost; mem SOP: prune stale facts, L2 keeps file pointers 2026-11-02 10:11:21 +08:00
Liang Jiaqing d4c2c54027 conductor: re-inject principles every turn (fix not stopping after dispatch); push last user msg as <user_last_msg>, GET /chat only when N>1 2026-10-31 11:16:18 +08:00
Liang Jiaqing eaba500314 conductor: wrap user text in <user_msg> to separate it from framework instruction 2026-10-30 23:25:17 +08:00
Liang Jiaqing 8bbdfd89c7 conductor: fix no POST /chat reply - put reply instruction back into [用户消息] event line 2026-10-30 23:21:47 +08:00
Liang Jiaqing a7f55b8442 conductor: tag pushed user messages with [用户消息] 2026-10-30 10:34:48 +08:00
Liang Jiaqing 5dee7f4bd3 conductor: push unread user msgs into prompt (mark read after turn), identity in sys prompt, expose subagent llm/log 2026-10-30 10:16:02 +08:00
Liang Jiaqing 694d3e3aaf refactor(conductor): clarify strategic delegation prompt 2026-10-23 10:45:24 +08:00
Liang Jiaqing e6b1bcec92 hub: spawn lightweight phone sessions and close via existing put 2026-10-20 18:11:25 +08:00
Liang Jiaqing 326354bad3 hub: keep saved pairing waiting while phone is offline 2026-10-20 10:08:35 +08:00
Liang Jiaqing eaa2e6f14b Route Hub model switches through desktop state notifications 2026-10-19 13:17:25 +08:00
Liang Jiaqing 84ec7d55af Reuse independent conductor and scheduler without owning their lifecycle 2026-10-19 10:54:38 +08:00
Liang Jiaqing 4e8029f20e Limit pending restoration to sessions reloaded from storage 2026-10-19 10:40:35 +08:00
Liang Jiaqing 4f5a928a6e Preserve replay step boundaries for GA and Hub clients 2026-10-19 10:34:29 +08:00
Liang Jiaqing e92ef58488 Restore desktop sessions lazily into GA; use disposable output projection 2026-10-19 10:18:15 +08:00
Liang Jiaqing e6ed9b3f4d Remove obsolete desktop deferred model binding tests 2026-10-19 09:42:48 +08:00
Liang Jiaqing 5b48e7b300 Connect desktop GA instances to Hub with shared submit and cancel paths 2026-10-18 15:44:36 +08:00
Liang Jiaqing 9b3aff4358 Remove desktop global model default and preserve GA constructor selection 2026-10-18 09:15:16 +08:00
Liang Jiaqing a2eb5414c2 Store desktop session metadata only and replay MR or L4 history 2026-10-17 13:20:04 +08:00
Liang Jiaqing 2ba5529060 fix: synchronize live model reload and preserve config selection 2026-10-16 19:46:04 +08:00
Liang Jiaqing 250a7c2790 ci: assemble GA source deployments from standalone desktop components 2026-10-16 13:43:12 +08:00
Liang Jiaqing 62bdce49f0 fix(bridge): remove desktop static file dependency 2026-10-16 11:55:59 +08:00
Liang Jiaqing 5a4b6fa7a4 chore(desktop): keep only private desktop placeholder 2026-10-16 11:38:19 +08:00
Liang Jiaqing a5979eac50 fix: track applied mykeys snapshot per agent 2026-10-16 09:30:02 +08:00
Liang Jiaqing 24f7d6a0dc refactor(conductor): manage model selection in agent memory only 2026-10-15 21:34:28 +08:00
Liang Jiaqing 8b7d4e0a82 stapp: drop index= on keyed LLM selectbox; session-state-only avoids streamlit default-value warning spam on every rerun 2026-10-13 11:19:50 +08:00
Liang Jiaqing e29587dfb8 stapp: keep sidebar LLM widget state in sync with external (hub/phone) channel switch; stale session_state silently rolled it back 2026-10-13 10:17:01 +08:00
Liang Jiaqing 418c28a7bb stapp: fold long answers - last 50 steps individual, older grouped per 30 with lazy-load toggle + TOC 2026-09-30 17:52:52 +08:00
Liang Jiaqing a275570fc6 stapp: unbound starlette ws send queue (500-msg cap caused fake disconnect -> stuck RUNNING) 2026-09-30 17:52:52 +08:00
Liang Jiaqing 9dcbf5adf0 hub: persist token to temp/.hub_token; add intervene/keyinfo inject op + hub.call/peers helper 2026-09-29 09:28:08 +08:00
nianyucatfish e86ca723a9 fix(tui): polish rendering, history preview, and copy behavior (#816)
* fix(tui): repaint composer after macOS input

* feat(tui): add compact conversation history

* fix(tui): repaint messages after streaming and scroll

* fix(tui): polish history focus and scrollbar styling
2026-09-22 23:42:24 +08:00
Liang Jiaqing 86171aec3c hub_p2p: exponential backoff (1->60s) with jitter on reconnect failure; avoid thundering herd after relay restart 2026-09-11 10:18:38 +08:00
Liang Jiaqing 24aeead78c p2p_ws_client: fast-fail reconnect (ws ping 15/10s; Signal.expect aborts on closed/error instead of waiting full timeout) 2026-09-11 10:18:38 +08:00
Liang Jiaqing 4913a6162b hub: switch LLM channel (op llm / GET llms, POST llm) via agent.list_llms/next_llm only 2026-09-11 10:18:38 +08:00
Liang Jiaqing 7fa5fa4ec0 fix: prevent WeChat polling from consuming chat input 2026-09-02 08:20:28 +08:00
YI QI LIMandabraxas914 efb3bc6ad1 feat(desktop): compiled React Desktop 2.0 v0.2.1 renderer update (#787)
* fix(desktop): expose explicit backup capabilities

* fix(desktop): align titlebar controls with native metrics

* release(desktop): prepare portable v0.2.1

* build(desktop): rebuild compiled dist from source 4a67226

Rebuild the compiled-only React Desktop 2.0 renderer from abraxas914/GenericAgent
main @4a67226, carrying the v0.2.1 iterations that PR #784 was closed to await:
live turn-timer persistence across session switch, Mixin image-to-path fallback,
folder drag-drop, per-turn duration, and image-thumbnail repair.

- dist/**: regenerated 98 manifest assets + entry HTML
- build-provenance.json: sourceCommit -> 4a67226, manifest sha256 recomputed
- verify-compiled-dist.mjs: expectedSourceCommit -> 4a67226
- dist/README.md: provenance source commit updated
- desktop_bridge.py, test_bridge_origin_security.py: synced to 4a67226
- core (agentmain.py, llmcore*, src/**, public/**) remains zero-diff vs upstream

---------

Co-authored-by: abraxas914 <abraxas345589144233@outlook.com>
2026-08-30 14:21:51 +08:00
Liang Jiaqing 17d9f4d873 fix(wechatapp): avoid evaluating Win creationflags on Linux
_start_conductor built DETACHED_PROCESS/CREATE_NEW_PROCESS_GROUP before the
os.name=='nt' branch, causing AttributeError and crashing Conductor autostart
on Ubuntu. Keep those flags Windows-only; Linux uses start_new_session.
2026-08-27 21:44:07 +08:00
yiqi-017 bb4b2ca974 feat(desktop): refresh compiled React Desktop 2.0 distribution
Rebuild the compiled renderer from abraxas914/GenericAgent source
commit 9fe5d69b85cfad8778ace84b6f69bc75f9e0d392, refreshing:

- New-chat default model tag: the selected-model badge in Settings
  and the composer now read '新会话默认' / 'New chat default'.
- Model selectors display the configured profile name (备注名) so the
  same model served by different providers is distinguishable.
- desktop_bridge: syncing mixin llm_nos references when a profile is
  renamed, preventing orphan references in the mixin config.
- Release publisher sets GH_REPO so 'gh release create' resolves the
  target repository without checking out source, satisfying the
  publisher security contract while fixing the prerelease step.

Provenance and verifier updated to the new source commit and the
LF-normalized content manifest (98 generated assets).
2026-08-25 18:00:43 +08:00
Liang Jiaqing 13eef203f7 fix(stats): compute decode TPS at stream end 2026-08-25 11:36:25 +08:00
Liang Jiaqing 3327a6c88b fix stream recovery and runtime metrics 2026-08-25 10:16:19 +08:00