Commit Graph
111 Commits
Author SHA1 Message Date
YooooEX 1b9fe1f539 feat(tgapp): add /btw command handling (#335) 2026-05-11 20:06:04 +08:00
manaskarra ee02e7eba5 fix(tgapp): preserve streaming overflow segments (#330)
Keep Telegram streaming overflow messages tied to the primary live message, reuse them across edits, and delete stale overflow replies when streamed content shrinks.
2026-05-11 09:40:18 +08:00
nianyucatfish 9024af7499 feat(stapp): add /export command (clip/file/all) (#322) 2026-05-09 23:08:20 +08:00
Liang Jiaqing 3c5c99fd6d chore: replace alarming warning with neutral "(无文本输出)" in feishu display 2026-05-09 19:51:35 +08:00
Liang Jiaqing a2f0f0d46a fix(stapp): restore finally abort guard in agent_backend_stream 2026-05-09 18:12:09 +08:00
Shen HaoandClaude Opus 4.7 03d19c9821 feat: add /btw side-question subagent (#317)
Mirrors Claude Code's /btw: ask the agent a quick question without
interrupting the in-flight main task.

- frontends/btw_cmd.py: snapshot backend.history under lock + deepcopy →
  background-thread backend.raw_ask single-turn answer; never writes
  backend.history; never touches task_queue. Reuses backend.raw_ask +
  make_messages, no new LLM instance.
- frontends/chatapp_common.py: register /btw in HELP_COMMANDS; handle
  /btw in AgentChatMixin (sync via asyncio.to_thread); install() at
  module bottom so the slash hook is wired for any frontend that
  imports chatapp_common.
- frontends/stapp.py: persist display_queue + partial_response in
  st.session_state so the streaming bubble survives Streamlit reruns;
  new render_main_stream() helper covers both new tasks and resume;
  /btw branch uses plain st.rerun() (preserves dq) so the main task's
  remaining output renders in a follow-up bubble; non-/btw prompts
  explicitly call agent.abort() to keep the original "submit cancels"
  UX. Strip <summary> meta tags from text segments and drop dangling
  "LLM Running (Turn N) ..." markers in resumed partials to clean up
  the rendered chat.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-09 15:26:05 +08:00
Liang Jiaqing ca79699492 feat(tui): add /clear and /close commands 2026-05-09 14:56:52 +08:00
Liang Jiaqing 639da67916 feat: fsapp reconnect loop, tui branch/rewind, simphtml flow-child fix, sop updates 2026-05-08 15:48:16 +08:00
solopole 2fdbb289ed feat(discord): improve channel activation and progress display (#292) 2026-05-08 11:56:55 +08:00
Liang Jiaqing c7cef56cb2 fix: invalidate panel cache on fold toggle 2026-05-07 22:23:48 +08:00
Liang Jiaqing cc6b3fbee1 tuiapp: cache rendered panels; llmcore: simplify fast_ask 2026-05-07 22:18:25 +08:00
Liang Jiaqing 379b69e0ec refactor: simplify LLM client init with resolve_client; add fast_ask; auto-fold old tasks in TUI 2026-05-07 21:06:14 +08:00
Liang Jiaqing 98e2e3f483 tuiapp: improve session nav (ctrl+arrows), CJK-aware sidebar, README restructure 2026-05-07 18:15:08 +08:00
Liang Jiaqing a9450b1f18 fix(tui): shorten sidebar Q/S to prevent wrapping, add Ctrl+1~9 session switch 2026-05-07 17:41:12 +08:00
Liang Jiaqing d4ab909144 feat: add Textual TUI frontend + minor fixes to agentmain/llmcore/stapp 2026-05-07 17:38:58 +08:00
succ985andsucc985 0148446fab feat(wechat): add persistent typing indicator (#278)
The previous implementation called send_typing once with an empty
typing_ticket, which had no effect. The iLink API requires a valid
typing_ticket obtained from getconfig first.

Changes:
- Add get_typing_ticket() method to fetch ticket via getconfig API
- Replace single send_typing call with continuous typing loop
- Typing refreshes every 2 seconds until agent finishes processing
- Stops cleanly via threading.Event when message handling completes

Co-authored-by: succ985 <succ985@users.noreply.github.com>
2026-05-07 13:11:15 +08:00
Tianye Song fd7bfcd9d3 fix(qqapp): exponential reconnect backoff
Replace fixed 5s sleep with the same backoff pattern already used in
dcapp.py: 5 -> 10 -> 20 -> ... -> 300s, resetting to 5s when a session
survived >=60s. Uses time.monotonic() to avoid clock-jump skew.
2026-05-07 10:29:37 +08:00
LJQ e08d7c7370 Merge pull request #266 from wellsoren/qt-ui-redesign
QT界面持续优化和bug修复
2026-05-06 13:33:36 +08:00
LJQ 04f7158aa7 Merge pull request #274 from yiqi-017/feat/acp-bridge
fix: ACP bridge streaming overlap and truncation
2026-05-06 13:33:07 +08:00
Jiaqing Liang 2d0b8e9648 Improve English UI defaults and task timeout 2026-05-06 13:23:33 +08:00
yiqi-017andClaude Opus 4.6 a7a1487004 fix: use incremental streaming in ACP bridge to prevent text overlap
Switch to inc_out=True mode so queue items are incremental deltas
instead of cumulative text. The old cumulative approach broke when
agentmain's post-processing (</summary>\n\n insertion) shifted offsets,
causing the bridge's delta calculation to produce overlapping or
truncated content.

Now "next" items are forwarded directly, and "done" is only used as
content when no streaming occurred (error fallback).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-06 03:54:09 +08:00
LJQ a0e0cc66d8 Merge pull request #272 from yiqi-017/feat/acp-bridge
feat: add ACP bridge for codeg integration
2026-05-05 18:10:33 +08:00
yiqi-017andClaude Opus 4.6 dfe6bf0709 refactor: move acp bridge to frontends/
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-05 14:28:13 +08:00
Liang Jiaqing f0ff7ee49e remove newtab, add terminal QR, refine task_planning sop 2026-05-04 12:39:41 +08:00
wellsoren 3f712aeb66 Merge branch 'main' of github.com:lsdefine/GenericAgent 2026-05-03 22:25:44 +08:00
Liang Jiaqing 9f3ddec78f /resume prompt优化(v5) + wechatapp去or空占位 + summary截断80 2026-05-03 16:36:48 +08:00
wellsoren 4bbdf8cb26 chore: sync with upstream and update qtapp 2026-05-03 15:35:53 +08:00
wellsoren 5bd947b958 chore: sync with upstream and update qtapp 2026-05-03 14:31:13 +08:00
Liang Jiaqing 2afe4c3e39 feat: auto-inject summary text block when model outputs thinking+tool_use without text; stapp fallback uses content preview 2026-05-03 12:22:05 +08:00
hanshou101 dece612853 fix(fsapp): rollover oversized Feishu task cards (#209) 2026-05-02 14:54:46 +08:00
KailigithubandKailigithub e22bdae74d fix: add Linux CJK font paths for desktop pet bubble text rendering (#248)
Co-authored-by: Kailigithub <Kailigithub@users.noreply.github.com>
2026-05-02 12:32:16 +08:00
tqjason 8bea96614e Fix pet reference in rightMouseDown_ method (#239) 2026-05-01 08:45:51 +08:00
Liang Jiaqing 0e08c31fb9 add official channel disclaimer; fix scroll/wechat-md/llm-msg 2026-05-01 08:41:10 +08:00
Liang Jiaqing d4f8303053 feat: add Discord bot frontend; refine memory SOP index rule 2026-04-29 19:29:36 +08:00
Liang Jiaqing 513fec91fc cleanup: remove NextWillSummary, add supervisor_sop, fix streaming fence protection, tighten L1 rules 2026-04-29 13:29:03 +08:00
Tianye Song 68982c36dc fix(dingtalkapp): exponential reconnect backoff and token fetch retry (#210)
- Reconnect: exponential backoff 5→300s, reset on healthy session ≥60s
- Access token: retry once after 1s before returning None
2026-04-28 20:25:00 +08:00
YooooEX 5e1a788af1 fix(tgapp): handle Telegram stream rate limits 2026-04-28 18:34:36 +08:00
Liang Jiaqing 7070880b4e refactor: extract _stream_with_retry, MixinSession failover on stream abort 2026-04-28 17:54:37 +08:00
YooooEX baf0f27793 feat(tg): stream Telegram responses by turn with summaries (#208) 2026-04-28 12:01:07 +08:00
LJQ 776f4e267d Merge pull request #196 from YooooEX/telegram-polish
feat(tgapp): add ask_user inline candidate menu
2026-04-27 18:51:29 +08:00
LJQ 0ed89ebdeb Merge pull request #198 from voidborne-d/fix/stapp-autonomous-enabled-fragment-rerun
fix(stapp): defend autonomous_enabled init against fragment-only reruns
2026-04-27 18:20:24 +08:00
Liang Jiaqing 78a9414e05 feat: add SSL verify option and enable TG draft 2026-04-27 18:15:57 +08:00
voidborne-d b8ecdc7922 fix(stapp): defend autonomous_enabled init against fragment-only reruns
closes #197
2026-04-27 17:51:32 +08:00
YooooEX 7ef7283fad feat(tgapp): add ask_user inline candidate menu 2026-04-27 16:02:24 +08:00
UnsongK 11442847b0 feat(wecom): upgrade wecom bot to full media + progress streaming (#184)
* feat(wecom): upgrade wecom bot from text-only to full media + progress streaming

- Add image/file message handling with encrypted media download
- Add media upload & send (auto image/file type detection, fallback to text on failure)
- Add real-time per-turn progress streaming via _turn_end_hooks
- Add send_done with automatic file attachment extraction from agent replies
- Add terminal CLI: help/status/stop/exit for runtime control
- Add run stats tracking (received/completed counts)
- Refactor message parsing into shared _accept() method (dedup + auth + register)
- Harden None-safety on body.get(from) and dedup ID fallback
- Move state from module globals to instance attributes

* refactor(wecomapp): parameterize agent & client, remove dead code

- Remove module-level agent creation; inject via constructor
- Make WSClient injectable in start() for testability
- Clean up stale comments and version tag
- Add inline doc for split_limit
2026-04-27 14:13:28 +08:00
weijia db6bf00d0a fix(fsapp): show truncated tail instead of silent "..." fallback (#186)
When model output contains only stripped tags, surface warning + last 300 chars instead of silent "...".
2026-04-26 23:16:43 +08:00
Liang Jiaqing 1d0b86d110 fix: remove inherited HTTPS_PROXY to prevent WeChat long-poll SSL EOF 2026-04-26 22:09:55 +08:00
Liang Jiaqing 13850b85a8 hotreload mykeys, fix SSE residual block, unify context_win, cleanup 2026-04-26 17:46:24 +08:00
Liang Jiaqing 6f1f02eddb wechatapp: add image thumbnail pipeline, UA coverage, refactor turn-based streaming 2026-04-26 17:24:32 +08:00
Liang Jiaqing cd0ce4d9b0 fix: summary提取与fold_turns防误切,强化thinking模型summary输出 2026-04-26 00:01:42 +08:00