Liang Jiaqing
2ba5529060
fix: synchronize live model reload and preserve config selection
2026-10-16 19:46:04 +08:00
Liang Jiaqing
7fb22a2f85
ci: remove main repository workflows; CI belongs to Desktop
2026-10-16 19:07:41 +08:00
Liang Jiaqing
f7cadb6087
fix: infer shell commands when code_run type is empty
2026-10-16 14:04:14 +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
e4e610d6a1
docs: simplify mykey templates with quick-start configs first
2026-10-14 19:10:27 +08:00
Liang Jiaqing
f7e4cc5a84
fix: retry malformed DSML endings when no tool was called
2026-10-14 19:10:26 +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
6e0c54f6ec
docs: refresh WeChat group 23 QR code
2026-10-11 13:55:25 +08:00
Liang Jiaqing
f308ee7eb0
memory distill prompt rework; bump claude-cli UA 2.1.280; subagent hub note; memory_cleanup L3 audit principles
2026-09-30 17:52:52 +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
c91387136a
reflect: support module-level LLM to select backend by name before each trigger
2026-09-29 09:28:08 +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
Liang Jiaqing
9d1add7780
docs: update WeChat community QR code to group 23
2026-09-19 09:57:28 +08:00
Liang Jiaqing
1b6442fe4f
prompt: constitution#3 dedupe (3-failure rule already in RULES); remember tool requires task success/checkpoint
2026-09-14 11:42:59 +08:00
Liang Jiaqing
f07bfc57a2
abort(): register live socket at urllib3 request() so Force Stop wakes recv() even while waiting for response headers (was only after headers via active_response)
2026-09-14 11:39:06 +08:00
Liang Jiaqing
96be94586f
docs: update verified default vision backend
2026-09-14 10:21:54 +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
0fd024bf8c
llmcore: TTFT = first SSE event (count hidden thinking); default context_win 38000 / cut interval 8
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
71cf559fab
fix: str() session_id/tab_id; bump UA to 2.1.251; trim subagent.md
2026-09-02 08:20:29 +08:00
Liang Jiaqing
7fa5fa4ec0
fix: prevent WeChat polling from consuming chat input
2026-09-02 08:20:28 +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
LJQ
8ea9533651
Merge pull request #779 from abraxas914/codex/react-desktop-v2-update-0827
...
feat(desktop): refresh compiled React Desktop 2.0 distribution
2026-08-25 18:29:05 +08:00
Liang Jiaqing
3d62523d40
fix(abort): force-wake blocked stream recv via socket _real_close; interruptible retry backoff
2026-08-25 15:55:34 +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
0c235a8068
perf: make history trimming linear
2026-08-24 13:09:31 +08:00
Liang Jiaqing
9e68c20ee9
ci(desktop): preserve LF for release byte gates
2026-08-24 12:28:17 +08:00
Liang Jiaqing
3deca04540
fix: remove stale star history & fix gaagent.ai link in license section
2026-08-24 12:26:38 +08:00
Liang Jiaqing
ffe97347df
fix(conductor): restore standalone model selection
2026-08-24 10:09:15 +08:00
LJQ
fb91ec22fa
Merge pull request #776 from abraxas914/codex/react-desktop-v2-upstream-final
...
feat(desktop): integrate compiled React Desktop 2.0
2026-08-24 09:52:43 +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
LJQ
f6928e0101
Merge pull request #751 from ZYDMYHZ/feat/api-key-header
...
feat(llmcore): support api_key_header override for NativeClaudeSession
2026-08-20 10:52:02 +08:00
LJQ
6d2cf09264
docs: refresh WeChat group 22 QR code
...
Merge PR #769 : replace the expired WeChat group 22 QR image while preserving the existing README reference.
2026-08-17 15:00:33 +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
f06d550380
fix(ga): only treat short </summary>-only replies as incomplete
...
Long replies ending with </summary> were false-positive retried.
Also relax L1 insight RULES: drop hard es/win32gui/git-loop mandates.
2026-08-13 10:19:48 +08:00
Liang Jiaqing
e519734ab0
fix(tmwd): show real WS status on badge, click-through + lower opacity
2026-08-13 07:54:14 +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
4570a63466
fix(llmcore): retry OpenAI response.failed overload like Claude
...
HTTP 200 SSE/body overload/rate-limit now raises ConnectionError via
shared _raise_if_retryable_overload so _stream_with_retry can backoff.
Covers OpenAI error/response.failed/json failed; Claude error reuses helper.
2026-08-10 16:17:42 +08:00
Liang Jiaqing
308153b1c9
reflect: hub connect for put_task; llmcore: softer trim interval, rate-limit as ConnectionError, slower backoff; L3: no project-specific facts
2026-08-10 14:02:51 +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
Liang Jiaqing
0c2b3e0d51
tune prompt tags, raise context_win defaults, simplify code_run schema desc
...
- ga: blank/incomplete/max_tokens retries use [ERROR]; summary tip [TIPS]; turn checkpoints [DANGER]
- llmcore: default context_win 30k->35k, deepseek 70k->80k
- tools_schema: shorten code_run.script description
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
LJQ
2757bdd8ef
Merge pull request #735 from nianyucatfish/fix/tui-agent-worker-cleanup
...
fix(tui): release agent workers on close
2026-08-06 23:50:51 +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
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
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
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
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
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
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
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
Jiaqing Liang
5b0b8ead6e
chore: stop tracking local model instruction files
...
Ignore assets/glm52_instruction.txt and assets/gpt55_instruction.txt
so local customizations stay out of the repo.
2026-07-13 17:00:59 +08:00
Jiaqing Liang
0700e57597
feat: add trim_keep_prefix to keep leading messages on hard trim
...
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.
2026-07-13 16:03:40 +08:00
Jiaqing Liang
5e31b4d59a
docs(project_mode): clarify cwd is ./temp to avoid nested temp/ paths
2026-07-13 15:11:43 +08:00
Liang Jiaqing
b298cc1b72
refactor: make MixinSession a routed session facade
2026-07-13 11:30:13 +08:00
Liang Jiaqing
8553e98723
feat: scale tool-output limits with context_win
...
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.
2026-07-13 09:55:52 +08:00