From fd46d6154315320de1a2d5f9b47993c440c076fe Mon Sep 17 00:00:00 2001 From: Liang Jiaqing Date: Thu, 23 Apr 2026 23:44:50 +0800 Subject: [PATCH 1/9] fix: SSE tool_call streaming compat for non-standard index/id, MockToolCall handle list args & None fallback; sop: CDP bringToFront note --- llmcore.py | 10 +++++++--- memory/tmwebdriver_sop.md | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/llmcore.py b/llmcore.py index 675e4e2..f290884 100644 --- a/llmcore.py +++ b/llmcore.py @@ -243,9 +243,13 @@ def _parse_openai_sse(resp_lines, api_mode="chat_completions"): text = delta["content"]; content_text += text; yield text for tc in (delta.get("tool_calls") or []): idx = tc.get("index", 0) - if idx not in tc_buf: tc_buf[idx] = {"id": tc.get("id") or '', "name": "", "args": ""} - if tc.get("function", {}).get("name"): tc_buf[idx]["name"] = tc["function"]["name"] + has_name = bool(tc.get("function", {}).get("name")) + if idx not in tc_buf: + if has_name or not tc_buf: tc_buf[idx] = {"id": tc.get("id") or '', "name": "", "args": ""} + else: idx = max(tc_buf) + if has_name: tc_buf[idx]["name"] = tc["function"]["name"] if tc.get("function", {}).get("arguments"): tc_buf[idx]["args"] += tc["function"]["arguments"] + if tc.get("id") and not tc_buf[idx]["id"]: tc_buf[idx]["id"] = tc["id"] usage = evt.get("usage") if usage: _record_usage(usage, api_mode) blocks = [] @@ -672,7 +676,7 @@ class MockFunction: class MockToolCall: def __init__(self, name, args, id=''): - arg_str = json.dumps(args, ensure_ascii=False) if isinstance(args, dict) else args + arg_str = json.dumps(args, ensure_ascii=False) if isinstance(args, (dict, list)) else (args or '{}') self.function = MockFunction(name, arg_str); self.id = id class MockResponse: diff --git a/memory/tmwebdriver_sop.md b/memory/tmwebdriver_sop.md index d758893..823f779 100644 --- a/memory/tmwebdriver_sop.md +++ b/memory/tmwebdriver_sop.md @@ -37,6 +37,7 @@ fetch('PDF_URL').then(r=>r.blob()).then(b=>{ ## Chrome后台标签节流 - 后台标签中`setTimeout`被Chrome intensive throttling延迟到≥1min/次,扩展脚本中避免依赖setTimeout轮询 +- 某些SPA页面需CDP `Page.bringToFront`切到前台才会加载数据 ## CDP桥(tmwd_cdp_bridge扩展) ⭐首选 扩展路径:`assets/tmwd_cdp_bridge/`(需安装,含debugger权限) From 8065c0d759ab5cc191462ea3916153f7bc8979e0 Mon Sep 17 00:00:00 2001 From: wellsoren Date: Fri, 24 Apr 2026 01:50:09 +0800 Subject: [PATCH 2/9] =?UTF-8?q?style:=20=E9=87=8D=E6=9E=84=E5=B9=B6?= =?UTF-8?q?=E4=BC=98=E5=8C=96=20qtapp=20=E6=A1=8C=E9=9D=A2=E7=AA=97?= =?UTF-8?q?=E5=8F=A3=E6=A0=B7=E5=BC=8F=E4=B8=8E=E4=BA=A4=E4=BA=92=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontends/qtapp.py | 356 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 316 insertions(+), 40 deletions(-) diff --git a/frontends/qtapp.py b/frontends/qtapp.py index ce69c34..3d5de07 100644 --- a/frontends/qtapp.py +++ b/frontends/qtapp.py @@ -16,6 +16,7 @@ from PySide6.QtWidgets import ( QScrollArea, QFrame, QTextEdit, QStackedWidget, QListWidget, QListWidgetItem, QSizePolicy, QFileDialog, QSplitter, QTextBrowser, QApplication, QMessageBox, + QMenu, QLineEdit, ) from PySide6.QtCore import ( Qt, QTimer, QPoint, QPointF, QByteArray, QSize, @@ -251,7 +252,6 @@ class FloatingButton(QWidget): # ── Toggle panel ────────────────────────────────────── def _toggle(self): - from PySide6.QtCore import QDateTime now = QDateTime.currentMSecsSinceEpoch() if now - self._last_toggle_ms < 500: # 500 ms debounce return @@ -319,9 +319,11 @@ _SVG_COPY = '' _SVG_BOT = '' _SVG_SEND = '' -_SVG_PLUS = '' _MD_CSS = """ body { color: #e4e4e7; font-family: "Arial", "Microsoft YaHei", sans-serif; font-size: 13px; line-height: 1.6; font-weight: 400; } @@ -702,6 +703,48 @@ class _MsgRow(QWidget): self._label.setHtml(_md_to_html(text)) self._adjust_browser_height() + def highlight(self, keyword: str): + """Apply highlight and return keyword's y position in document, or None.""" + if not keyword or not self._text: + return None + kw_lower = keyword.lower() + text_lower = self._text.lower() + if kw_lower not in text_lower: + return None + if self._role == "user": + escaped = self._text.replace("&", "&").replace("<", "<").replace(">", ">") + kw_esc = keyword.replace("&", "&").replace("<", "<").replace(">", ">") + highlighted = escaped.replace(kw_esc, f'{kw_esc}') + self._label.setText(highlighted) + self._label.adjustSize() + return 0 # plain text, keyword at top + else: + from PySide6.QtGui import QTextDocument, QTextCursor, QTextCharFormat + doc = self._label.document() + cursor = QTextCursor(doc) + flags = QTextDocument.FindFlags(0) + fmt = QTextCharFormat() + fmt.setBackground(QColor(251, 191, 36, 90)) + fmt.setForeground(QColor(251, 191, 36)) + keyword_y = None + while True: + cursor = doc.find(keyword, cursor, flags) + if cursor.isNull(): + break + cursor.mergeCharFormat(fmt) + if keyword_y is None: + keyword_y = self._label.cursorRect(cursor).y() + self._adjust_browser_height() + return keyword_y + + def clear_highlight(self): + if self._role == "user": + self._label.setText(self._text) + self._label.adjustSize() + else: + self._label.setHtml(_md_to_html(self._text)) + self._adjust_browser_height() + class _TabButton(QPushButton): _STYLE = """ @@ -787,8 +830,7 @@ class ChatPanel(QWidget): p = QPainter(self) p.setRenderHint(QPainter.Antialiasing) path = QPainterPath() - path.addRoundedRect(0.5, 0.5, self.width() - 1.0, self.height() - 1.0, - 20.0, 20.0) + path.addRect(0.5, 0.5, self.width() - 1.0, self.height() - 1.0) grad = QLinearGradient(0, 0, 0, self.height()) grad.setColorAt(0.0, QColor(20, 20, 28, 228)) grad.setColorAt(1.0, QColor(10, 10, 14, 242)) @@ -798,8 +840,7 @@ class ChatPanel(QWidget): def resizeEvent(self, event): path = QPainterPath() - path.addRoundedRect(0, 0, float(self.width()), float(self.height()), - 20.0, 20.0) + path.addRect(0, 0, float(self.width()), float(self.height())) self.setMask(QRegion(path.toFillPolygon().toPolygon())) super().resizeEvent(event) @@ -821,6 +862,7 @@ class ChatPanel(QWidget): self._stack.addWidget(self._build_sop_page()) # 2 self._stack.addWidget(self._build_settings_page())# 3 root.addWidget(self._stack) + root.addWidget(self._build_statusbar()) # Now that _stack exists, activate the first tab self._switch_tab(0) @@ -836,35 +878,94 @@ class ChatPanel(QWidget): ly.setContentsMargins(16, 0, 10, 0) ly.setSpacing(8) - # Status dot - dot = QLabel("●") - dot.setStyleSheet(f"color: {C['green']}; font-size: 9px;") - dot.setFixedWidth(12) - ly.addWidget(dot) + # Search button + search_btn = QPushButton() + search_btn.setIcon(_svg_icon("search", _SVG_SEARCH, "#a1a1aa")) + search_btn.setIconSize(QSize(16, 16)) + search_btn.setFixedSize(26, 26) + search_btn.setCursor(QCursor(Qt.PointingHandCursor)) + search_btn.setStyleSheet(""" + QPushButton { background: transparent; border: none; border-radius: 13px; } + QPushButton:hover { background: rgba(63,63,70,0.6); } + """) + search_btn.clicked.connect(self._toggle_search) + self._search_btn = search_btn + ly.addWidget(search_btn) - # Title - t = QLabel("GenericAgent") - t.setStyleSheet("color: #f4f4f5; font-weight: 700; font-size: 14px;") - ly.addWidget(t) + # Search widget (hidden by default) + self._search_widget = QWidget() + self._search_widget.hide() + sw_ly = QHBoxLayout(self._search_widget) + sw_ly.setContentsMargins(0, 0, 0, 0) + sw_ly.setSpacing(6) - # Model badge - self._model_badge = _Badge(self._model_name()) - ly.addWidget(self._model_badge) + self._search_input = QLineEdit() + self._search_input.setPlaceholderText("搜索当前对话和历史...") + self._search_input.setFixedHeight(26) + self._search_input.setStyleSheet(f""" + QLineEdit {{ + background: rgba(32,32,38,0.9); + border: 1px solid {C['border'].name()}; + border-radius: 13px; + color: {C['text']}; + font-size: 13px; + padding: 0 10px; + }} + QLineEdit::placeholder {{ color: {C['muted']}; }} + """) + self._search_input.setFixedWidth(200) + self._search_input.textChanged.connect(self._on_search_changed) + self._search_input.installEventFilter(self) + sw_ly.addWidget(self._search_input) - self._streaming_badge = _StreamingBadge() - ly.addWidget(self._streaming_badge) + close_search = QPushButton("×") + close_search.setFixedSize(26, 26) + close_search.setCursor(QCursor(Qt.PointingHandCursor)) + close_search.setStyleSheet(""" + QPushButton { background: transparent; color: #71717a; border: none; font-size: 16px; } + QPushButton:hover { color: #a1a1aa; } + """) + close_search.clicked.connect(self._hide_search) + sw_ly.addWidget(close_search) + ly.addWidget(self._search_widget) ly.addStretch() + # Minimize button + mini = QPushButton("\uE949") + mini.setFixedSize(26, 26) + mini.setCursor(QCursor(Qt.PointingHandCursor)) + mini.setStyleSheet(""" + QPushButton { background: rgba(63,63,70,0.6); color: #a1a1aa; + border: none; border-radius: 13px; font-family: "Segoe MDL2 Assets"; font-size: 9px; } + QPushButton:hover { background: rgba(63,63,70,0.9); color: white; } + """) + mini.clicked.connect(self.hide) + ly.addWidget(mini) + + # Maximize button + maxi = QPushButton("\uE739") + maxi.setFixedSize(26, 26) + maxi.setCursor(QCursor(Qt.PointingHandCursor)) + maxi.setStyleSheet(""" + QPushButton { background: rgba(63,63,70,0.6); color: #a1a1aa; + border: none; border-radius: 13px; font-family: "Segoe MDL2 Assets"; font-size: 9px; } + QPushButton:hover { background: rgba(63,63,70,0.9); color: white; } + """) + maxi.clicked.connect(self._toggle_maximize) + self._maxi_btn = maxi + ly.addWidget(maxi) + # Close button - close = QPushButton("×") + close = QPushButton("\uE8BB") close.setFixedSize(26, 26) + close.setCursor(QCursor(Qt.PointingHandCursor)) close.setStyleSheet(""" QPushButton { background: rgba(63,63,70,0.6); color: #a1a1aa; - border: none; border-radius: 13px; font-size: 15px; font-weight: bold; } + border: none; border-radius: 13px; font-family: "Segoe MDL2 Assets"; font-size: 9px; } QPushButton:hover { background: rgba(220,38,38,0.85); color: white; } """) - close.clicked.connect(self.hide) + close.clicked.connect(lambda: (self.close(), QApplication.instance().quit())) ly.addWidget(close) # Drag @@ -873,6 +974,111 @@ class ChatPanel(QWidget): bar.mouseReleaseEvent = self._tb_release return bar + def _toggle_search(self): + if hasattr(self, "_search_visible") and self._search_visible: + self._hide_search() + else: + self._show_search() + + def _show_search(self): + self._search_visible = True + self._search_btn.setFixedSize(0, 0) + self._search_widget.show() + self._search_input.setFocus() + self._search_input.selectAll() + + def _hide_search(self): + self._search_visible = False + self._search_btn.setFixedSize(26, 26) + self._search_widget.hide() + self._search_input.clear() + self._clear_all_highlights() + if self._stack.currentIndex() == 1: + self._reset_history_items_style() + + def _hide_search_if_no_focus(self): + if not self._search_input.hasFocus(): + self._hide_search() + + def _on_search_changed(self, text): + if not text.strip(): + self._clear_all_highlights() + return + keyword = text.strip() + current_tab = self._stack.currentIndex() + + if current_tab == 0: + self._search_current_chat(keyword) + elif current_tab == 1: + self._search_history(keyword) + + def _clear_all_highlights(self): + for i in range(self._msg_layout.count() - 1): + w = self._msg_layout.itemAt(i).widget() + if isinstance(w, _MsgRow): + w.clear_highlight() + + def _search_current_chat(self, keyword: str): + first_found = None + first_keyword_y = None + for i in range(self._msg_layout.count() - 1): + w = self._msg_layout.itemAt(i).widget() + if isinstance(w, _MsgRow): + if keyword.lower() in w._text.lower(): + kw_y = w.highlight(keyword) + if first_found is None: + first_found = w + first_keyword_y = kw_y + else: + w.clear_highlight() + # 滚动到第一个匹配项(使用关键词在文档内的实际位置) + if first_found: + self._scroll_to_widget(first_found, first_keyword_y or 0) + + def _scroll_to_widget(self, w, keyword_y=0): + self._user_scrolled_up = True + self._msg_container.layout().activate() + QApplication.processEvents() + + sb = self._scroll.verticalScrollBar() + vp_h = self._scroll.viewport().height() + keyword_screen_y = w.y() + keyword_y + target = keyword_screen_y - vp_h // 3 + target = max(0, min(target, sb.maximum())) + sb.setValue(target) + QApplication.processEvents() + self._scroll.viewport().repaint() + + def _search_history(self, keyword: str): + kw_lower = keyword.lower() + for i in range(self._hist_list.count()): + item = self._hist_list.item(i) + session = item.data(Qt.UserRole) + messages = session.get("messages", []) if session else [] + content_text = " ".join([m.get("content", "") for m in messages if isinstance(m.get("content"), str)]) + match = kw_lower in content_text.lower() + item.setHidden(not match) + if match: + item.setBackground(QColor(251, 191, 36, 50)) + item.setForeground(QColor(251, 191, 36)) + else: + item.setBackground(QColor(0, 0, 0, 0)) + item.setForeground(QColor(255, 255, 255)) + + def _reset_history_items_style(self): + for i in range(self._hist_list.count()): + item = self._hist_list.item(i) + item.setHidden(False) + item.setBackground(QColor(0, 0, 0, 0)) + item.setForeground(QColor(255, 255, 255)) + w = self._hist_list.itemWidget(item) + if w: + w.setStyleSheet( + f"background: rgba(35,35,42,0.6); color: {C['text']};" + " border: 1px solid #3f3f46; border-radius: 8px;" + " padding: 8px 12px; margin: 2px 0;" + ) + def _tb_press(self, e): if e.button() == Qt.LeftButton: self._drag_pos = e.globalPosition().toPoint() - self.pos() @@ -884,6 +1090,68 @@ class ChatPanel(QWidget): def _tb_release(self, _e): self._drag_pos = None + def _toggle_maximize(self): + if self.isMaximized(): + self.showNormal() + self._maxi_btn.setText("☐") + else: + self.showMaximized() + self._maxi_btn.setText("❐") + + # ── status bar ───────────────────────────────────────────────────────────── + def _build_statusbar(self) -> QWidget: + bar = QWidget() + bar.setFixedHeight(24) + bar.setStyleSheet("background: transparent;") + ly = QHBoxLayout(bar) + ly.setContentsMargins(16, 0, 10, 0) + ly.setSpacing(8) + + # Status dot + dot = QLabel("●") + dot.setStyleSheet(f"color: {C['green']}; font-size: 9px;") + dot.setFixedWidth(12) + ly.addWidget(dot) + + # Model name (clickable to show model list) + self._model_badge = QLabel(self._model_name()) + self._model_badge.setStyleSheet("color: #a1a1aa; font-size: 11px;") + self._model_badge.setCursor(QCursor(Qt.PointingHandCursor)) + self._model_badge.mousePressEvent = lambda e: self._show_model_menu(e) + ly.addWidget(self._model_badge) + + self._streaming_badge = _StreamingBadge() + ly.addWidget(self._streaming_badge) + + ly.addStretch() + return bar + + def _show_model_menu(self, _e): + menu = QMenu(self._model_badge) + menu.setStyleSheet(f""" + QMenu {{ + background: {C['panel'].name()}; + border: 1px solid {C['border'].name()}; + padding: 4px 0; + }} + QMenu::item {{ + color: {C['text']}; + padding: 6px 20px 6px 12px; + font-size: 12px; + }} + QMenu::item:selected {{ + background: rgba(63,63,70,0.6); + }} + """) + for i, client in enumerate(self.agent.llmclients): + try: + name = client.name or "未知" + except Exception: + name = "未知" + act = menu.addAction(f"{name} #{i + 1}") + act.triggered.connect(lambda _, idx=i: self._do_switch_to(idx)) + menu.exec(QCursor.pos()) + # ── tab bar ─────────────────────────────────────────────────────────────── def _build_tabbar(self) -> QWidget: bar = QWidget() @@ -931,6 +1199,9 @@ class ChatPanel(QWidget): self._stack.setCurrentIndex(idx) for i, btn in enumerate(self._tabs): btn.setChecked(i == idx) + # 切换标签时关闭搜索框 + if hasattr(self, '_search_visible') and self._search_visible: + self._hide_search() if idx == 1: self._refresh_history() if idx == 2: @@ -977,7 +1248,7 @@ class ChatPanel(QWidget): wrap = QWidget() wrap.setStyleSheet("background: transparent;") ly = QVBoxLayout(wrap) - ly.setContentsMargins(20, 6, 20, 14) + ly.setContentsMargins(20, 6, 20, 0) ly.setSpacing(0) self._chips_row = QWidget() @@ -1006,7 +1277,7 @@ class ChatPanel(QWidget): self._input = QTextEdit() self._input.setFixedHeight(64) - self._input.setPlaceholderText("给助手发送消息...") + self._input.setPlaceholderText("给助手发送消息... Enter发送,Shift+Enter换行") self._input.setStyleSheet(f""" QTextEdit {{ background: transparent; color: {C['text']}; @@ -1294,6 +1565,9 @@ class ChatPanel(QWidget): ok = False try: reply = backend.ask("你好", stream=False) + # 兼容生成器函数(NativeClaudeSession.ask是生成器) + if hasattr(reply, '__iter__') and not isinstance(reply, str): + reply = ''.join(str(b) for b in reply if isinstance(b, str)) text = str(reply).strip() if reply else "" ok = len(text) > 0 and not text.startswith("Error") and not text.startswith("[") print(f"[HealthCheck] Backend #{idx} {type(backend).__name__}/{backend.model}: {'OK' if ok else 'FAIL'} -> {text[:60]}") @@ -1304,14 +1578,20 @@ class ChatPanel(QWidget): backend.raw_msgs = [m for m in backend.raw_msgs if m.get("prompt") != "你好"] self._health_results[idx] = ok - # ── event filter (Enter key in text edit) ───────────────────────────────── + # ── event filter (Enter key in text edit, Escape to close search) ────────── def eventFilter(self, obj, event): - from PySide6.QtCore import QEvent - if obj is self._input and event.type() == QEvent.KeyPress: - if event.key() in (Qt.Key_Return, Qt.Key_Enter): + if event.type() == QEvent.KeyPress: + if obj is self._search_input and event.key() == Qt.Key_Escape: + self._hide_search() + return True + if obj is self._input and event.key() in (Qt.Key_Return, Qt.Key_Enter): if not (event.modifiers() & Qt.ShiftModifier): self._handle_send() return True + # 搜索框失焦时关闭搜索 + if event.type() == QEvent.FocusOut and obj is self._search_input: + # 延迟关闭,等待点击事件处理完毕 + QTimer.singleShot(50, self._hide_search_if_no_focus) return super().eventFilter(obj, event) def _on_text_changed(self): @@ -1480,10 +1760,8 @@ class ChatPanel(QWidget): def _scroll_bottom(self): if self._user_scrolled_up: return - QTimer.singleShot(60, lambda: ( - self._scroll.verticalScrollBar().setValue( - self._scroll.verticalScrollBar().maximum() - ) + QTimer.singleShot(60, lambda: self._scroll.verticalScrollBar().setValue( + self._scroll.verticalScrollBar().maximum() )) # ── inject (autonomous mode) ─────────────────────────────────────────────── @@ -1513,6 +1791,9 @@ class ChatPanel(QWidget): self._rebuild_messages() self._switch_tab(0) self._update_token_usage() + search_text = self._search_input.text().strip() + if search_text: + QTimer.singleShot(50, lambda: self._search_current_chat(search_text)) def _delete_selected(self): item = self._hist_list.currentItem() @@ -1551,7 +1832,7 @@ class ChatPanel(QWidget): def _refresh_sop(self): self._sop_list.clear() file_icon = _svg_icon("sop_file_item", _SVG_FILE, C["muted"]) - for path in sorted(glob.glob("memory/*.md")): + for path in sorted(glob.glob(os.path.join(os.path.dirname(os.path.dirname(__file__)), "memory", "*.md"))): name = os.path.basename(path) size = os.path.getsize(path) it = QListWidgetItem(name) @@ -1589,10 +1870,6 @@ class ChatPanel(QWidget): self._msg_layout.insertWidget(self._msg_layout.count() - 1, lbl) self._scroll_bottom() - def _do_switch_model(self): - nxt = (self.agent.llm_no + 1) % len(self.agent.llmclients) - self._do_switch_to(nxt) - def _do_stop(self): self.agent.abort() self._poll_timer.stop() @@ -1722,7 +1999,6 @@ def main(): _last_trigger = [0.0] def idle_check(): - import time if not panel.autonomous_enabled: return now = time.time() From f516c52a720b0ac8171ad12650ec97896493c81e Mon Sep 17 00:00:00 2001 From: YooooEX Date: Fri, 24 Apr 2026 09:01:49 +0800 Subject: [PATCH 3/9] feat(tgapp): stream MarkdownV2 replies with draft fallback and file segments (#135) --- frontends/tgapp.py | 320 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 251 insertions(+), 69 deletions(-) diff --git a/frontends/tgapp.py b/frontends/tgapp.py index 4d1324f..398b750 100644 --- a/frontends/tgapp.py +++ b/frontends/tgapp.py @@ -1,91 +1,275 @@ -import os, sys, re, threading, asyncio, queue as Q, socket, time +import os, sys, re, threading, asyncio, queue as Q, socket, time, random sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) _TEMP_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 'temp') from agentmain import GeneraticAgent try: from telegram import BotCommand + from telegram.constants import ChatType, MessageLimit, ParseMode from telegram.ext import ApplicationBuilder, MessageHandler, filters, ContextTypes + from telegram.helpers import escape_markdown from telegram.request import HTTPXRequest except: print("Please ask the agent install python-telegram-bot to use telegram module.") sys.exit(1) -from chatapp_common import HELP_TEXT, TELEGRAM_MENU_COMMANDS, format_restore +from chatapp_common import ( + FILE_HINT, + HELP_TEXT, + TELEGRAM_MENU_COMMANDS, + clean_reply, + extract_files, + format_restore, + split_text, + strip_files, +) from continue_cmd import handle_frontend_command, reset_conversation from llmcore import mykeys agent = GeneraticAgent() agent.verbose = False +agent.inc_out = True ALLOWED = set(mykeys.get('tg_allowed_users', [])) -_TAG_PATS = [r'<' + t + r'>.*?' for t in ('thinking', 'summary', 'tool_use')] -_TAG_PATS.append(r'.*?') +_DRAFT_HINT = "thinking..." +_STREAM_SUFFIX = " ⏳" +_STREAM_SEGMENT_LIMIT = max(1200, MessageLimit.MAX_TEXT_LENGTH - 256) +_QUEUE_WAIT_SECONDS = 1 +_MD_TOKEN_RE = re.compile( + r"(`{3,})([A-Za-z0-9_+-]*)\n([\s\S]*?)\1" + r"|\[([^\]]+)\]\(([^)\n]+)\)" + r"|`([^`\n]+)`" + r"|\*\*([^\n]+?)\*\*" + r"|(?\1', s) - s = re.sub(r'(?\1', s) - s = re.sub(r'`([^`]+)`', r'\1', s) - return s -def _to_html(t): +def _visible_segments(text): + text = (text or "").strip() + return split_text(text, _STREAM_SEGMENT_LIMIT) if text else [] + +def _resolve_files(paths): + files, seen = [], set() + for fpath in paths: + if not os.path.isabs(fpath): + fpath = os.path.join(_TEMP_DIR, fpath) + if fpath in seen or not os.path.exists(fpath): + continue + files.append(fpath) + seen.add(fpath) + return files + + +def _escape_pre(text): + return escape_markdown(text or "", version=2, entity_type="pre") + +def _escape_code(text): + return escape_markdown(text or "", version=2, entity_type="code") + +def _escape_link_target(text): + return escape_markdown(text or "", version=2, entity_type="text_link") + +def _to_markdown_v2(text): + if not text: + return "" parts, pos = [], 0 - for m in re.finditer(r'(`{3,})(?:\w*\n)?([\s\S]*?)\1', t): - parts.append(_inline_md(_html.escape(t[pos:m.start()]))) - parts.append('
' + _html.escape(m.group(2)) + '
') - pos = m.end() - parts.append(_inline_md(_html.escape(t[pos:]))) - return ''.join(parts) + for match in _MD_TOKEN_RE.finditer(text): + parts.append(escape_markdown(text[pos:match.start()], version=2)) + if match.group(1): + lang = re.sub(r"[^A-Za-z0-9_+-]", "", match.group(2) or "") + code = _escape_pre(match.group(3) or "") + header = f"```{lang}\n" if lang else "```\n" + parts.append(f"{header}{code}\n```") + elif match.group(4) is not None: + label = escape_markdown(match.group(4), version=2) + target = _escape_link_target(match.group(5)) + parts.append(f"[{label}]({target})") + elif match.group(6) is not None: + parts.append(f"`{_escape_code(match.group(6))}`") + elif match.group(7) is not None: + parts.append(f"*{escape_markdown(match.group(7), version=2)}*") + elif match.group(8) is not None: + parts.append(f"_{escape_markdown(match.group(8), version=2)}_") + pos = match.end() + parts.append(escape_markdown(text[pos:], version=2)) + return "".join(parts) + +def _is_not_modified_error(exc): + return "not modified" in str(exc).lower() + +class _TelegramStreamSession: + def __init__(self, root_msg): + self.root_msg = root_msg + self.private_chat = getattr(getattr(root_msg, "chat", None), "type", "") == ChatType.PRIVATE + self.can_use_draft = self.private_chat + self.draft_id = _make_draft_id() + self.live_msg = None + self.raw_text = "" + self.files = [] + self.sent_segments = 0 + self.active_display = "" + + async def prime(self): + if self.can_use_draft and await self._send_draft(_DRAFT_HINT): + self.active_display = _DRAFT_HINT + return + await self._upsert_live_message(_DRAFT_HINT) + self.active_display = _DRAFT_HINT + + async def add_chunk(self, chunk): + if not chunk: + return + self.raw_text += chunk + await self._refresh(done=False, send_files=False) + + async def finalize(self, full_text=None, send_files=True): + if full_text is not None: + self.raw_text = full_text + await self._refresh(done=True, send_files=send_files) + + async def finish_with_notice(self, notice): + if self.raw_text.strip(): + await self.finalize(send_files=False) + await self._reply_text(notice) + return + if self.live_msg is not None: + await self._edit_text(self.live_msg, notice) + self.live_msg = None + self.active_display = "" + return + await self._reply_text(notice) + self.active_display = "" + + async def _refresh(self, done, send_files): + cleaned = clean_reply(self.raw_text) if self.raw_text.strip() else "" + self.files = _resolve_files(extract_files(cleaned)) + body = strip_files(cleaned) + if done and not body and self.files: + body = "已生成附件" + elif done and not body: + body = "..." + segments = _visible_segments(body) + finalized_target = len(segments) if done else max(len(segments) - 1, 0) + while self.sent_segments < finalized_target: + await self._finalize_segment(segments[self.sent_segments]) + self.sent_segments += 1 + if done: + if send_files: + await self._send_files() + return + active_text = segments[-1] if segments else _DRAFT_HINT + await self._stream_active(active_text) + + async def _stream_active(self, text): + display = (text or _DRAFT_HINT).strip() or _DRAFT_HINT + if display != _DRAFT_HINT: + display = display + _STREAM_SUFFIX + if display == self.active_display: + return + if self.can_use_draft and await self._send_draft(display): + self.active_display = display + return + await self._upsert_live_message(display) + self.active_display = display + + async def _finalize_segment(self, text): + final_text = (text or "").strip() or "..." + if self.live_msg is not None: + await self._edit_text(self.live_msg, final_text) + self.live_msg = None + else: + await self._reply_text(final_text) + self.active_display = "" + if self.can_use_draft: + self.draft_id = _make_draft_id() + + async def _send_files(self): + for fpath in self.files: + if fpath.lower().endswith((".png", ".jpg", ".jpeg", ".gif", ".webp")): + try: + with open(fpath, "rb") as fp: + await self.root_msg.reply_photo(fp) + except Exception: pass + else: + try: + with open(fpath, "rb") as fp: + await self.root_msg.reply_document(fp) + except Exception: pass + + async def _send_draft(self, text): + try: + await self.root_msg.reply_text_draft( + self.draft_id, + _to_markdown_v2(text), + parse_mode=ParseMode.MARKDOWN_V2, + ) + return True + except Exception as exc: + if _is_not_modified_error(exc): + return True + print(f"[TG draft fallback] {type(exc).__name__}: {exc}", flush=True) + self.can_use_draft = False + self.draft_id = _make_draft_id() + return False + + async def _reply_text(self, text): + markdown = _to_markdown_v2(text) + try: + return await self.root_msg.reply_text(markdown, parse_mode=ParseMode.MARKDOWN_V2) + except Exception as exc: + if _is_not_modified_error(exc): + return None + return await self.root_msg.reply_text(text) + + async def _edit_text(self, msg, text): + markdown = _to_markdown_v2(text) + try: + updated = await msg.edit_text(markdown, parse_mode=ParseMode.MARKDOWN_V2) + except Exception as exc: + if _is_not_modified_error(exc): + return msg + updated = await msg.edit_text(text) + return updated if hasattr(updated, "edit_text") else msg + + async def _upsert_live_message(self, text): + if self.live_msg is None: + self.live_msg = await self._reply_text(text) + else: + self.live_msg = await self._edit_text(self.live_msg, text) + async def _stream(dq, msg): - last_text = "" - while True: - await asyncio.sleep(3) - item = None - try: - while True: item = dq.get_nowait() - except Q.Empty: pass - if item is None: continue - raw = item.get("done") or item.get("next", "") - done = "done" in item - show = _clean(raw) - if len(show) > 4000: - # freeze current msg, start a new one - try: msg = await msg.reply_text("(continued...)") - except Exception: pass - last_text = "" - show = show[-3900:] - display = show if done else show + " ⏳" - if display != last_text: - try: await msg.edit_text(_to_html(display), parse_mode='HTML') - except Exception: - try: await msg.edit_text(display) - except Exception: pass - last_text = display - if done: - files = re.findall(r'\[FILE:([^\]]+)\]', show[-1000:]) - for fpath in files: - if not os.path.isabs(fpath): fpath = os.path.join(_TEMP_DIR, fpath) - if os.path.exists(fpath): - if fpath.lower().endswith(('.png','.jpg','.jpeg','.gif','.webp')): - try: await msg.reply_photo(open(fpath,'rb')) - except Exception: pass - else: - try: await msg.reply_document(open(fpath,'rb')) - except Exception: pass - show = re.sub(r'\[FILE:[^\]]+\]', '', show) - if show.strip(): - try: await msg.edit_text(_to_html(show), parse_mode='HTML') - except Exception: - try: await msg.edit_text(show) - except Exception: pass - break + session = _TelegramStreamSession(msg) + await session.prime() + try: + while True: + try: + first = await asyncio.to_thread(dq.get, True, _QUEUE_WAIT_SECONDS) + except Q.Empty: + continue + items = [first] + try: + while True: + items.append(dq.get_nowait()) + except Q.Empty: + pass + done_item = next((item for item in items if "done" in item), None) + if done_item is not None: + await session.finalize(done_item.get("done", "")) + break + chunk = "".join(item.get("next", "") for item in items if item.get("next")) + if chunk: + await session.add_chunk(chunk) + except asyncio.CancelledError: + await session.finish_with_notice("⏹️ 已停止") + except Exception as exc: + print(f"[TG stream error] {type(exc).__name__}: {exc}", flush=True) + await session.finish_with_notice(f"❌ 输出失败: {exc}") + def _normalized_command(text): - parts = (text or '').strip().split(None, 1) + parts = (text or "").strip().split(None, 1) if not parts: return '' head = parts[0].lower() @@ -105,10 +289,9 @@ async def handle_msg(update, ctx): uid = update.effective_user.id if ALLOWED and uid not in ALLOWED: return await update.message.reply_text("no") - msg = await update.message.reply_text("thinking...") - prompt = f"If you need to show files to user, use [FILE:filepath] in your response.\n\n{update.message.text}" + prompt = f"{FILE_HINT}\n\n{update.message.text}" dq = agent.put_task(prompt, source="telegram") - task = asyncio.create_task(_stream(dq, msg)) + task = asyncio.create_task(_stream(dq, update.message)) ctx.user_data['stream_task'] = task async def cmd_abort(update, ctx): @@ -139,9 +322,8 @@ async def handle_photo(update, ctx): await file.download_to_drive(os.path.join(_TEMP_DIR, fpath)) caption = update.message.caption prompt = f"[TIPS] 收到图片temp/{fpath}\n{caption}" if caption else f"[TIPS] 收到图片temp/{fpath},请等待下一步指令" - msg = await update.message.reply_text("thinking...") dq = agent.put_task(prompt, source="telegram") - task = asyncio.create_task(_stream(dq, msg)) + task = asyncio.create_task(_stream(dq, update.message)) ctx.user_data['stream_task'] = task async def handle_command(update, ctx): From f334994ab6ecab238b14e95420d1a069972ea85c Mon Sep 17 00:00:00 2001 From: Liang Jiaqing Date: Fri, 24 Apr 2026 09:29:12 +0800 Subject: [PATCH 4/9] =?UTF-8?q?fix:=20thinking=E9=9D=9E=E7=A9=BA=E6=97=B6?= =?UTF-8?q?=E4=B8=8D=E5=86=8D=E8=AF=AF=E5=88=A4=E4=B8=BA=E7=A9=BA=E5=93=8D?= =?UTF-8?q?=E5=BA=94=E8=A7=A6=E5=8F=91=E9=87=8D=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ga.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ga.py b/ga.py index 0aa87a0..869f8ee 100644 --- a/ga.py +++ b/ga.py @@ -441,7 +441,8 @@ class GenericAgentHandler(BaseHandler): 当模型在一轮中未显式调用任何工具时,由引擎自动触发。 二次确认仅在回复几乎只包含/和一段大代码块时触发。''' content = getattr(response, 'content', '') or "" - if not response or not content.strip(): + thinking = getattr(response, 'thinking', '') or "" + if not response or (not content.strip() and not thinking.strip()): yield "[Warn] LLM returned an empty response. Retrying...\n" return StepOutcome({}, next_prompt="[System] Blank response, regenerate and tooluse") if len(content) > 100 and ('未收到完整响应 !!!]' in content[-100:] or '!!!Error: [SSL:' in content[-100:]): From 12c2fe1f7907aa8aede01068ec6202fcb4bc9bf8 Mon Sep 17 00:00:00 2001 From: Liang Jiaqing Date: Fri, 24 Apr 2026 10:00:15 +0800 Subject: [PATCH 5/9] add uv install guide & pyproject.toml; unify error prefix to !!!Error: --- README.md | 28 ++++++++++++++++++++++++++++ llmcore.py | 14 +++++++------- pyproject.toml | 40 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 75 insertions(+), 7 deletions(-) create mode 100644 pyproject.toml diff --git a/README.md b/README.md index d9e5149..4fa8ef5 100644 --- a/README.md +++ b/README.md @@ -89,6 +89,20 @@ cp mykey_template.py mykey.py python launch.pyw ``` +#### Method 2: uv (for experienced Python users) + +If you prefer a modern Python workflow, GenericAgent also provides a minimal `pyproject.toml`: + +```bash +git clone https://github.com/lsdefine/GenericAgent.git +cd GenericAgent +uv pip install -e ".[ui]" # Core + GUI dependencies +cp mykey_template.py mykey.py +python launch.pyw +``` + +> GenericAgent is meant to grow its environment through the Agent itself, not by pre-installing every possible package. + Full guide: [GETTING_STARTED.md](GETTING_STARTED.md) --- @@ -293,6 +307,20 @@ cp mykey_template.py mykey.py python launch.pyw ``` +#### 方法二:uv 快速安装(熟悉 Python 的用户) + +如果你习惯现代 Python 工作流,GenericAgent 也提供了一个最小化的 `pyproject.toml`: + +```bash +git clone https://github.com/lsdefine/GenericAgent.git +cd GenericAgent +uv pip install -e ".[ui]" # 核心 + GUI 依赖 +cp mykey_template.py mykey.py +python launch.pyw +``` + +> GenericAgent 更推荐由 Agent 在使用中自举环境,而不是预先手动装完整依赖。 + 完整引导流程见 [GETTING_STARTED.md](GETTING_STARTED.md)。 📖 新手使用指南(图文版):[飞书文档](https://my.feishu.cn/wiki/CGrDw0T76iNFuskmwxdcWrpinPb) diff --git a/llmcore.py b/llmcore.py index f290884..2a84677 100644 --- a/llmcore.py +++ b/llmcore.py @@ -148,7 +148,7 @@ def _parse_claude_sse(resp_lines): elif evt_type == "error": err = evt.get("error", {}) emsg = err.get("message", str(err)) if isinstance(err, dict) else str(err) - warn = f"\n\n[SSE Error: {emsg}]"; break + warn = f"\n\n!!!Error: SSE {emsg}"; break if not warn: if not got_message_stop and not stop_reason: warn = "\n\n[!!! 流异常中断,未收到完整响应 !!!]" elif stop_reason == "max_tokens": warn = "\n\n[!!! Response truncated: max_tokens !!!]" @@ -211,7 +211,7 @@ def _parse_openai_sse(resp_lines, api_mode="chat_completions"): elif etype == "error": err = evt.get("error", {}) emsg = err.get("message", str(err)) if isinstance(err, dict) else str(err) - if emsg: content_text += f"Error: {emsg}"; yield f"Error: {emsg}" + if emsg: content_text += f"!!!Error: {emsg}"; yield f"!!!Error: {emsg}" break elif etype == "response.completed": usage = evt.get("response", {}).get("usage", {}) @@ -522,7 +522,7 @@ class BaseSession: if block.get('type', '') == 'tool_use': tu = {'name': block.get('name', ''), 'arguments': block.get('input', {})} yield f'{json.dumps(tu, ensure_ascii=False)}' - if not content.startswith("Error:"): self.history.append({"role": "assistant", "content": [{"type": "text", "text": content}]}) + if not content.startswith("!!!Error:"): self.history.append({"role": "assistant", "content": [{"type": "text", "text": content}]}) return _ask_gen() if stream else ''.join(list(_ask_gen())) class ClaudeSession(BaseSession): @@ -537,7 +537,7 @@ class ClaudeSession(BaseSession): if r.status_code != 200: raise Exception(f"HTTP {r.status_code} {r.content.decode('utf-8', errors='replace')[:500]}") return (yield from _parse_claude_sse(r.iter_lines())) or [] except Exception as e: - yield (err := f"Error: {e}") + yield (err := f"!!!Error: {e}") return [{"type": "text", "text": err}] def make_messages(self, raw_list): msgs = [{"role": m['role'], "content": list(m['content'])} for m in raw_list] @@ -621,7 +621,7 @@ class NativeClaudeSession(BaseSession): elif b.get("type") == "thinking": yield "" return content_blocks except Exception as e: - yield (err := f"Error: {e}") + yield (err := f"!!!Error: {e}") return [{"type": "text", "text": err}] def ask(self, msg): @@ -635,7 +635,7 @@ class NativeClaudeSession(BaseSession): try: while True: yield next(gen) except StopIteration as e: content_blocks = e.value or [] - if content_blocks and not (len(content_blocks) == 1 and content_blocks[0].get("text", "").startswith("Error:")): + if content_blocks and not (len(content_blocks) == 1 and content_blocks[0].get("text", "").startswith("!!!Error:")): self.history.append({"role": "assistant", "content": content_blocks}) text_parts = [b["text"] for b in content_blocks if b.get("type") == "text"] content = "\n".join(text_parts).strip() @@ -891,7 +891,7 @@ class MixinSession: return self._cur_idx def _raw_ask(self, *args, **kwargs): base, n = self._pick(), len(self._sessions) - test_error = lambda x: isinstance(x, str) and (x.startswith('Error:') or x.startswith('[Error:')) + test_error = lambda x: isinstance(x, str) and x.lstrip().startswith(('!!!Error:', '[Error:')) for attempt in range(self._retries + 1): idx = (base + attempt) % n gen = self._orig_raw_asks[idx](*args, **kwargs) diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..277f5db --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,40 @@ +# AI install hint: choose deps by OS/env + needed ui/bot. do NOT install all. +# minimal core first; missing packages can be installed on demand. + +[project] +name = "genericagent" +version = "0.1.0" +description = "Minimalist self-evolving autonomous agent framework" +readme = "README.md" +requires-python = ">=3.10,<3.14" +license = { text = "MIT" } +dependencies = [ + "requests>=2.28", + "beautifulsoup4>=4.12", + "bottle>=0.12", + "simple-websocket-server>=0.4", +] + +[project.optional-dependencies] +# select extras, not all. match current task/env. +# examples: .[ui] for GUI, bot deps only if bot needed. +ui = [ + "streamlit>=1.28", + "pywebview>=4.0", +] +all-frontends = [ + "python-telegram-bot>=20.0", + "qq-botpy>=1.0", + "pycryptodome>=3.19", + "qrcode>=7.4", + "lark-oapi>=1.0", + "wecom-aibot-sdk>=1.0", + "dingtalk-stream>=1.0", +] + +[build-system] +requires = ["setuptools>=68.0"] +build-backend = "setuptools.build_meta" + +[tool.setuptools] +py-modules = [] \ No newline at end of file From be2386661d0f1db9038aeea2b8a9a189b7544117 Mon Sep 17 00:00:00 2001 From: AspasZhang <24210980075@m.fudan.edu.cn> Date: Fri, 24 Apr 2026 11:08:20 +0800 Subject: [PATCH 6/9] docs: update WeChat community group QR codes (remove 6&10, add 11) --- README.md | 6 ++---- assets/images/wechat_group11.jpg | Bin 0 -> 183238 bytes 2 files changed, 2 insertions(+), 4 deletions(-) create mode 100644 assets/images/wechat_group11.jpg diff --git a/README.md b/README.md index 4fa8ef5..c3c1751 100644 --- a/README.md +++ b/README.md @@ -205,10 +205,9 @@ You're also welcome to join our **GenericAgent Community Group** for discussion,
- - +
WeChat Group 6
WeChat Group 6 QR Code
WeChat Group 8
WeChat Group 8 QR Code
WeChat Group 9
WeChat Group 9 QR Code
WeChat Group 10
WeChat Group 10 QR Code
WeChat Group 11
WeChat Group 11 QR Code
@@ -493,10 +492,9 @@ GenericAgent 通过**分层记忆 × 最小工具集 × 自主执行循环**完
- - +
微信群 6
微信群 6 二维码
微信群 8
微信群 8 二维码
微信群 9
微信群 9 二维码
微信群 10
微信群 10 二维码
微信群 11
微信群 11 二维码
diff --git a/assets/images/wechat_group11.jpg b/assets/images/wechat_group11.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d9a3069fbeb7ea8e397640424d987a83bf690f68 GIT binary patch literal 183238 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%0D_3Ud;OP@ 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

OoVS@q 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

?^kohdhX%UqUvdk0EqQIU;I{4)Te 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 literal 0 HcmV?d00001 From a6644d580c48c661bcdef52d781a22b644c78701 Mon Sep 17 00:00:00 2001 From: Xinyi Wang <90703326+ViviqwerAsd@users.noreply.github.com> Date: Fri, 24 Apr 2026 04:20:16 -0300 Subject: [PATCH 7/9] feat(fsapp): add /llm command support for model switching - Add /llm command to list available models - Add /llm [n] command to switch to specific model - Improve /status command to show current LLM info with emoji indicators - Update /help text to include /llm command - Unify command parsing logic using parts and op variables This brings fsapp.py (Feishu/Lark) frontend in line with other chat frontends (QQ, DingTalk, WeCom) that already support all slash commands. --- frontends/fsapp.py | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/frontends/fsapp.py b/frontends/fsapp.py index 515b24e..cce08fb 100644 --- a/frontends/fsapp.py +++ b/frontends/fsapp.py @@ -588,18 +588,32 @@ def handle_command(open_id, cmd, chat_id=None): send_message(chat_id, content, receive_id_type="chat_id") else: send_message(open_id, content) - if cmd == "/stop": + parts = (cmd or "").split() + op = (parts[0] if parts else "").lower() + if op == "/stop": if open_id in user_tasks: user_tasks[open_id]["running"] = False agent.abort() _send_cmd_response("正在停止...") - elif cmd == "/new": + elif op == "/new": _send_cmd_response(reset_conversation(agent)) - elif cmd == "/help": - _send_cmd_response("命令列表:\n/stop - 停止当前任务\n/status - 查看状态\n/restore - 恢复上次对话历史\n/continue - 列出可恢复会话\n/continue [n] - 恢复第 n 个会话\n/new - 开启新对话并清空当前上下文\n/help - 显示帮助") - elif cmd == "/status": - _send_cmd_response(f"状态: {'空闲' if not agent.is_running else '运行中'}") - elif cmd == "/restore": + elif op == "/help": + _send_cmd_response("命令列表:\n/stop - 停止当前任务\n/status - 查看状态\n/llm - 查看当前模型列表\n/llm [n] - 切换到第 n 个模型\n/restore - 恢复上次对话历史\n/continue - 列出可恢复会话\n/continue [n] - 恢复第 n 个会话\n/new - 开启新对话并清空当前上下文\n/help - 显示帮助") + elif op == "/status": + llm = agent.get_llm_name() if agent.llmclient else "未配置" + _send_cmd_response(f"状态: {'🔴 运行中' if agent.is_running else '🟢 空闲'}\nLLM: [{agent.llm_no}] {llm}") + elif op == "/llm": + if not agent.llmclient: + return _send_cmd_response("❌ 当前没有可用的 LLM 配置") + if len(parts) > 1: + try: + agent.next_llm(int(parts[1])) + return _send_cmd_response(f"✅ 已切换到 [{agent.llm_no}] {agent.get_llm_name()}") + except Exception: + return _send_cmd_response(f"用法: /llm <0-{len(agent.list_llms()) - 1}>") + lines = [f"{'→' if cur else ' '} [{i}] {name}" for i, name, cur in agent.list_llms()] + _send_cmd_response("LLMs:\n" + "\n".join(lines)) + elif op == "/restore": try: restored_info, err = format_restore() if err: @@ -610,7 +624,7 @@ def handle_command(open_id, cmd, chat_id=None): _send_cmd_response(f"已恢复 {count} 轮对话\n来源: {fname}\n(仅恢复上下文,请输入新问题继续)") except Exception as e: _send_cmd_response(f"恢复失败: {e}") - elif cmd.startswith("/continue"): + elif op == "/continue" or cmd.startswith("/continue"): _send_cmd_response(handle_continue_frontend(agent, cmd)) else: _send_cmd_response(f"未知命令: {cmd}") From 888ce2f9bbe65cec9db9264fa68b3fb01a593ef0 Mon Sep 17 00:00:00 2001 From: Liang Jiaqing Date: Fri, 24 Apr 2026 17:24:09 +0800 Subject: [PATCH 8/9] fix(pyproject): correct dingtalk-stream version constraint (>=0.20, was >=1.0 which does not exist on PyPI) --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 277f5db..5ac0326 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,7 +29,7 @@ all-frontends = [ "qrcode>=7.4", "lark-oapi>=1.0", "wecom-aibot-sdk>=1.0", - "dingtalk-stream>=1.0", + "dingtalk-stream>=0.20", ] [build-system] From ee899d4dd58dbb854d35f2eb0e2d7880f00de7a2 Mon Sep 17 00:00:00 2001 From: Liang Jiaqing Date: Fri, 24 Apr 2026 17:30:48 +0800 Subject: [PATCH 9/9] fix(tgapp): remove hardcoded proxy default, use mykey.py config instead The proxy was hardcoded to http://127.0.0.1:2082 which breaks for users without a local proxy (e.g. international users with direct access). Now defaults to None; users who need a proxy can set it in mykey.py. --- frontends/tgapp.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontends/tgapp.py b/frontends/tgapp.py index 398b750..c222c6b 100644 --- a/frontends/tgapp.py +++ b/frontends/tgapp.py @@ -371,7 +371,7 @@ if __name__ == '__main__': sys.stdout = sys.stderr = _logf print('[NEW] New process starting, the above are history infos ...') threading.Thread(target=agent.run, daemon=True).start() - proxy = mykeys.get('proxy', 'http://127.0.0.1:2082') + proxy = mykeys.get('proxy', None) # set 'proxy' in mykey.py if needed, e.g. 'http://127.0.0.1:2082' print('proxy:', proxy) async def _error_handler(update, context: ContextTypes.DEFAULT_TYPE):