Commit Graph
607 Commits
Author SHA1 Message Date
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
Liang Jiaqing ffe97347df fix(conductor): restore standalone model selection 2026-08-24 10:09:15 +08:00
abraxas914 dd99c5c3ac refactor(desktop): streamline release qualification tooling 2026-08-24 01:07:43 +08:00
abraxas914 dbdc63c368 docs(desktop): document source provenance and runtime boundaries 2026-08-23 18:15:52 +08:00
abraxas914 f526f4ad5b test(desktop): cover bridge, backup and package contracts 2026-08-23 18:15:52 +08:00
abraxas914andyiqi-017 6cc27a78c8 build(desktop): publish compiled React Desktop 2.0 distribution
Co-authored-by: yiqi-017 <22300246009@m.fudan.edu.cn>
2026-08-23 17:18:25 +08:00
abraxas914 f0d5bc7d44 feat(desktop): integrate Desktop 2.0 runtime services 2026-08-23 17:12:58 +08:00
Liang Jiaqing 30b24ad31d fix(stapp): own stream bubble inside fragment for cross-version rerun safety 2026-08-21 14:21:27 +08:00
Liang Jiaqing b0d270394d fix(stapp): repaint stream host fully each tick for Streamlit 1.62 wrapper reset
Streamlit >=1.62 resets a fragment's outside-container wrapper cursor to 0
on every fragment rerun and GCs children not re-emitted, so incremental
appends (_stream_frozen) lost folded expanders mid-stream. Merge _stream_ls
into the single _stream_fh host and repaint expanders + live tail every
tick; the unconditional write also claims the slot on the initial run
(no 'could not reserve a stable position') and removes the empty
placeholder that pushed the first reply's bubble down.
2026-08-20 22:20:39 +08:00
Liang Jiaqing d6403d9783 ui: idle fragment tick 5s + streamlit>=1.62; fix !!!Error tail check 2026-08-20 12:31:06 +08:00
Liang Jiaqing 3f39e2b980 harden hub put text type check; disable claude context_management 2026-08-15 11:30:46 +08:00
Liang Jiaqing 63f9db74e6 fix(p2p): rebuild socket after signaling loss 2026-08-12 06:54:59 +08:00
Liang Jiaqing 75ac18d478 fix(p2p): keep relay available during direct upgrade 2026-08-12 05:40:30 +08:00
Liang Jiaqing e55e198dc2 refactor(wm): unify turn-summary extraction (<summary> first, else full text, skip empty) across ga/worldline/continue_cmd; fix hinfo delta slicing base for old-tree mixed lineage 2026-08-11 11:50:11 +08:00
Liang Jiaqing a6ea3fa53c fix(conductor): escape raw HTML before marked to block stored XSS
renderMd fed untrusted chat/log into marked → innerHTML; strip '<' so
scripts/on* payloads cannot navigate (e.g. /login?from=/scriptText).
Markdown links and bare URLs remain intact.
2026-08-11 08:31:03 +08:00
Liang Jiaqing 4e92d5d88d p2p: split peer_timeout(120s) from direct_timeout(15s) so pairing code stays usable for its full TTL 2026-08-09 00:19:44 +08:00
Liang Jiaqing 8f9732ec0c hub: /api/peers incremental via psig (unchanged list -> {same:1}, ~68% less relay bytes) 2026-08-08 14:31:41 +08:00
Liang Jiaqing d426d45e9b hub: incremental polling (since= skeleton delta, nt rewind marker, seg ?off tail fetch) to cut relay traffic 2026-08-08 12:20:15 +08:00
Liang Jiaqing 0c54d5c0bc stapp: unify hub input path via _inject_prompt (single entry for user/auto/hub) 2026-08-08 12:20:15 +08:00
LJQ d946498bcf Merge pull request #725 from dd3xp/main2
Add desktop workspace copy and switch action
2026-08-07 08:53:55 +08:00
yanghang 5aec9a75b6 fix(tui): release agent workers on close 2026-08-06 23:27:55 +08:00
Liang Jiaqing 7083b9377e p2p_ws_client: X25519 raw-bytes compat shim for old cryptography builds 2026-08-06 15:44:40 +08:00
Liang Jiaqing 89a8ab717a hub: optional P2P phone pairing sidecar (hub_p2p) + p2p_ws_client peer_left self-heal (watch peer_left -> close -> fresh handshake on reconnect) 2026-08-06 15:07:07 +08:00
yiqi-017 9e56a95ac8 desktop: add workspace copy and switch action
Add a user-triggered desktop action to copy the current GA workspace to a chosen location and verify the bridge actually switches there before reporting success.
2026-08-03 20:31:16 +08:00
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
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
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
Liang Jiaqing 6bed654dce feat: improve conductor files and runtime handling 2026-07-31 21:56:27 +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
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
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 a1f7368f81 feat: wechat conductor forwarding mode with /switch 2026-07-25 13:39:39 +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