Commit Graph
719 Commits
Author SHA1 Message Date
Shen Hao fc74f2a7f4 feat(tui-v3): wire slash bundle + multi-select scheduler menu
Hook the slash_cmds bundle into tui_v3: register the commands in the
palette, add the prompt-injection dispatch and the /scheduler launcher.
Extend the in-house _show_menu with an opt-in multi_select mode
(Space toggles, Enter submits) so /scheduler can start several reflect
tasks at once, plus the matching command tips.
2026-05-27 05:30:46 +08:00
Shen Hao 7c00108053 feat(tui-v2): wire slash command bundle into the Textual TUI
Hook the slash_cmds bundle into tuiapp_v2: register the commands in the
COMMANDS palette and dispatch table, add the prompt-injection handlers
(/update /autorun /morphling /goal /hive) and the /scheduler picker
(multi-select reflect tasks via the existing multi_choice picker), plus
the matching command tips.
2026-05-27 05:30:46 +08:00
Shen Hao 63c61560b2 feat(tui): add slash_cmds bundle (prompt-injection + scheduler helpers)
Introduce frontends/slash_cmds.py, a shared bundle backing the new
slash commands for both Textual (v2) and curses (v3) frontends.

Provides prompt builders for /update /autorun /morphling /goal /hive
(each injects a concise, imperative directive into the agent prompt)
and the reflect-task discovery/launch helpers used by /scheduler.
2026-05-27 05:30:46 +08:00
AspasZhang 17ba44fed9 chore: update WeChat group 19 QR code image (#492) 2026-05-26 17:29:16 +08:00
Jiaqing Liang 0d4705e633 Add salient mining SOP to L4 memory 2026-05-26 12:32:54 +08:00
Jiaqing Liang fce7238391 fix: force UTF-8 output for PowerShell code_run 2026-05-26 12:16:30 +08:00
YooooEX f758d1a200 fix: support review command in Telegram frontend
Wire the existing /review handler into tgapp so Telegram users can invoke in-session code review, including help responses and streamed agent execution.
2026-05-26 12:09:04 +08:00
slowlyo a9b1dcce98 fix: ga scripts prefer project .venv over system python
Prefer project virtualenv Python in ga launchers to avoid PEP 668/system Python issues, falling back to PATH python when no venv exists.
2026-05-26 12:03:14 +08:00
hao yang 2f2905dfee feat: prefer pwsh over powershell in code_run on Windows
Use pwsh when available for better UTF-8 and modern PowerShell behavior, with fallback to legacy powershell.
2026-05-26 11:52:25 +08:00
Kailigithub efb91b930c fix: correct subagent_sop.md references to subagent.md
Align .gitignore and plan_sop.md with the actual memory/subagent.md file. Closes #482.
2026-05-26 11:49:39 +08:00
w286554018 73e555c1ec fix: wrap _turn_end_hooks iteration with list()
Prevent RuntimeError when a turn-end hook mutates _turn_end_hooks during callback iteration.
2026-05-26 11:47:04 +08:00
Liang Jiaqing 9e72234222 refactor: hive_sop restructure, GrabWindowBg, ui_detect unified API, worker rule9, incubator_sop 2026-05-26 10:02:51 +08:00
Jiaqing Liang ab0919cfa7 fix mykey path, add inject-prompt button, harden reload_mykeys 2026-05-25 13:29:12 +08:00
LJQ 552c5c07e6 Merge pull request #475 from skydog221/main
fix(qqapp):Change message type to Markdown message(msg_type-2))
2026-05-25 09:28:24 +08:00
skydog221 bb656b189e fix(qqapp):Change message type to Markdown message(msg_type-2)) 2026-05-24 21:16:05 +08:00
LJQ c7f7fd305a Merge pull request #473 from Jeason00011/fix/cost-tracker-py39-compat
fix: Python <3.10 compat for cost_tracker.py
2026-05-24 16:14:20 +08:00
Jeason00011 96faa1ba21 fix: add from __future__ import annotations for Python <3.10 compat 2026-05-24 16:09:40 +08:00
LJQ 89f41ff19c Merge pull request #468 from FroStorM/main
a simplified, user-friendly version of GenericAgent
2026-05-23 15:18:21 +08:00
FroStorM f618623cc6 Add link to A3Agent workbench repository
a simplified, user-friendly version of GenericAgent
2026-05-23 15:08:57 +08:00
LJQ 76cf036931 Merge pull request #462 from nianyucatfish/feat/tui-v3-improvements
feat(tui_v3): bring v2 parity to scrollback-first TUI
2026-05-23 11:03:52 +08:00
yanghang cf3fbf3be7 feat(tui_v3): v2 feature parity — export/fold/ask_user/plan card + inline i18n
scrollback-first tui_v3 rounds out v2 parity across this session:

- /export: v2-aligned subcommands (clip/file/all/legacy); clip writes to the
  real OS clipboard via existing copy() (pbcopy/clip.exe/wl-copy/xclip/xsel);
  picker→file prefills an editable filename
- tool-call folding: per-turn fold ported from v2 fold_turns; Ctrl+O toggles;
  incremental repaint folds turn N the moment turn N+1 marker streams in
- ask_user: focus-cycle model (↑↓ moves between candidates and the input box,
  caret hidden on candidate focus); multi-select is checkbox-only with no
  input box; [x]/[ ] ASCII checkboxes instead of Unicode ballot glyphs
- plan card: v2 _refresh_planbar port — 5-row budget, current-step line,
  complete/placeholder states with grace periods, mtime-cached reads
- attachments: bracketed-paste, image/file placeholders, multi-line paste
  aligned to v2 behaviour
- i18n: zh/en layer merged inline (was a separate tui_v3_i18n.py) so the
  frontend ships as one drop-in module

pyproject: add prompt_toolkit + pillow to the `ui` extra.
2026-05-23 02:15:13 +08:00
Liang Jiaqing 1d0dd4e7b2 keychain: store SecretStr in _d for deep repr masking 2026-05-22 10:21:25 +08:00
Liang Jiaqing fff2af9c26 add supergrok_proxy 2026-05-22 10:04:40 +08:00
Jiaqing Liang 6b7ebaaecd chore: remove redundant langfuse_tracing load from llmcore (handled by discover_and_load) 2026-05-21 18:22:47 +08:00
Jiaqing Liang 795d2d51a2 fix: ensure mykey.py is always importable from llmcore
- Add sys.path.append for llmcore's own directory as fallback
- Remove dead variable _imp_err
- Distinguish missing mykey vs import failure with clear error messages
2026-05-21 18:17:53 +08:00
LJQ 7e88373fea Merge pull request #455 from FroStorM/feishu-interface-fix
飞书接口修复
2026-05-21 17:35:47 +08:00
FroStorM df525560f7 飞书接口修复 2026-05-21 17:26:59 +08:00
Jiaqing Liang 57ffece04e Revert "feat: 更新飞书接口"
This reverts commit ce0ad05d15.
2026-05-21 15:49:38 +08:00
LJQ ee660fa044 Merge pull request #451 from cv70/feat/hook
feat: add agent lifecycle hook trigger mechanism
2026-05-21 14:55:43 +08:00
cv70 e0e7487409 feat: add agent lifecycle hook trigger mechanism 2026-05-21 14:33:56 +08:00
LJQ 5eeba94a77 Merge pull request #447 from traderlife8/fix-installation-link
docs: 修复安装文档中的链接路径
2026-05-21 14:09:47 +08:00
traderlife8 19d080a6fc docs: fix installation link path in installation_zh.md
原链接 installation.zh.md 路径不正确,已更正为 docs/installation.md
2026-05-21 09:52:37 +08:00
benemorphyandbenechen c8a9ab4b1c fix: 中文版自主行动相关按钮修复 (#442)
* 加入高危命令黑名单 Add  high-risk command blacklist

* GenericAgent Agent System Design Overview

* Subagent 集群监控,Subagents Monitor

* remove desing overview html

* skill_learn_from_cases — 案例驱动技能学习 CLI 工具

* skill_learn_from_cases — 案例驱动技能学习 CLI 工具 v001

* skill_learn_from_cases — 案例驱动技能学习 CLI 工具 v002

* skill_learn_from_cases — 案例驱动技能学习 CLI 工具 v003

* skill_learn_from_cases — 案例驱动技能学习 CLI 工具 v005

* skill_learn_from_cases 案例驱动技能学习 CLI 工具 v006

* skill_learn_from_cases 案例驱动技能学习 CLI 工具 v007

* skill\_learn\_from\_cases   案例驱动技能学习 CLI 工具 v008

* skill_learn_from_cases   案例驱动技能学习 CLI 工具 v009

* skill_learn_from_cases v010

* skill_learn_from_cases v 011

* earn_skill_from_cases v000

* fix:[开始空闲自主行动]按钮点击无反应

* 修复点击[开始空闲自主行动]按钮,无反应问题

* clean fork 0515

* clean051502

* 自主行动相关按钮修复

* learn_skill_from_cases v000

* cleaned again

---------

Co-authored-by: benechen <13817895035@126.com>
2026-05-20 21:04:50 +08:00
LJQ 350b660850 Merge pull request #441 from YinZT1/feat/tui-scrollback
feat(tui): scrollback-first TUI rewrite (tui_sb)
2026-05-20 20:51:12 +08:00
LJQ a1056a436b Merge pull request #444 from FroStorM/feat/update-feishu-interface-v2
feat: 更新飞书接口
2026-05-20 20:48:28 +08:00
Yanis 8536f242ab feat(tui): per-terminal color profile for cross-terminal parity
macOS Terminal.app quantises truecolor to its nearest 256 slot (so
#5e6ad2 lavender lands on slot 62 #5f5fd7, visibly more blue) and
renders \x1b[2m as a heavy multiply instead of a gentle blend, producing
the "blue border + heavy shadow" against iTerm's identical code.

Branch on TERM_PROGRAM: iTerm keeps its truecolor accent and \x1b[2m
dim; Apple_Terminal switches to pinned 256-slot accent (105) and an
explicit mid-gray (244) for dim. Box border (146) was already 256-slot
so it carries unchanged.
2026-05-20 18:35:56 +09:00
Yanis 6c55e260cc feat(tui): block-based history for proper resize reflow
Replace _history_lines (pre-rendered) with _blocks (source + kind) so
_repaint_screen can re-render every chip, banner, user panel at the
current width. \x1b[3J wipes scrollback on resize/Ctrl+L so the entire
conversation reflows, not just the visible viewport.

SIGWINCH delivery via self-pipe + select() — PEP 475 auto-retry on
os.read makes signal-driven InterruptedError unreliable under iTerm
split panes, so a dedicated pipe wakes the loop deterministically.

Streaming tracks a single _streaming_block whose source grows monotonically
through safe-position commits; mid-stream resize re-renders both the
committed source and the volatile live_tail.
2026-05-20 18:35:24 +09:00
Yanis 9a1910fb20 feat(tui): scrollback TUI v3 with rendering fixes 2026-05-20 17:34:55 +09:00
FroStorM 7da6a076d4 feat: 更新飞书接口 2026-05-20 16:26:01 +08:00
LJQ 7c8ac7334a Merge pull request #431 from szdtzpj/codex/issue-428-429-tg-inline-selection
[codex] feat(tg): add inline selection menus
2026-05-20 14:13:34 +08:00
LJQ 7d66c86746 Merge pull request #434 from windcat2333/fix/wechat-stop-and-auth-396-416
fix: 微信 /stop 中止检测 + AuthExpired 处理 + 配置向导改进
2026-05-20 13:54:31 +08:00
Liang Jiaqing 64f408ba71 goal_mode: 重写3-4条prompt(控制论驱动的exploit/explore双模+多观测器) 2026-05-20 11:14:26 +08:00
WindCat 964f51dacb fix(configure_mykey): 备份命名标准化 + 保留既有 LLM 配置 2026-05-19 22:59:57 +08:00
WindCat cf129162d5 chore: remove webbrowser popup on QR login — terminal-only display 2026-05-19 22:37:13 +08:00
WindCat e5b976e238 fix: configure_mykey now runs WeChat iLink QR scan instead of skipping 2026-05-19 22:34:55 +08:00
WindCat 86a36e1e8c fix: /stop abort detection (#396) + AuthExpired handling (#416) 2026-05-19 22:27:35 +08:00
szdtzpj 70aaa11656 feat(tg): add inline selection menus 2026-05-19 16:06:37 +08:00
nianyucatfish b5f094baab feat(tui v2): selection/paste/scroll/reload polish (#424)
Eight independent fixes accumulated since the last batch, all landing in
tuiapp_v2.py:

1. Code-block selection offset: _align_md_renders's is_centered heuristic
   tripped on any code line indented >=4 spaces (Python's default), stripping
   the indent from the source string so the visible selection and the copied
   text disagreed. Add wide_lead >= 2*nt0_lead guard — only Rich's H1 centering
   (wide_lead ~ width/2) crosses it, code lines never do.

2. Blockquote-continuation selection offset: Rich re-emits `▌ ` on every
   wrapped visual line of a quote, but the wide-render carries the marker
   only once. Strip the marker as a decoration prefix (counts as indent, not
   content) and switch the wrap-accumulator to account for the per-break
   eaten space — both pre-existing code-block wraps and blockquotes now map
   correctly.

3. Streaming ANSI garbage: while a turn is streaming, the tail text segment
   was rendered with `Text(content, style=C_FG)` instead of `Text.from_ansi`.
   SGR codes from the model/tool output would render as literal `[31m`
   glyphs and only resolve after `m.done` flipped or a resize forced a
   remount via the Markdown path. Switch the two streaming fast paths to
   Text.from_ansi — O(n) scan, no Markdown parse, colors honored live.

4. continue picker LIMIT removed: tuiapp's own `LIMIT = 20` truncated the
   /continue picker even though list_sessions() always builds the full list.
   Show everything; header now reads "选择要恢复的会话 (N 条)".

5. Long-paste rescue + user echo elision: Windows Terminal yanks window
   focus when its >=5KiB paste-warning dialog pops, leaving focused=None
   after the user confirms; Textual then routes the Paste event to the App
   bubble instead of InputArea, and the paste appears to do nothing. Add a
   GenericAgentTUI._on_paste forwarder that refocuses #input and replays the
   event into InputArea._on_paste. Separately, on submit, elide user-side
   display of very long pastes (head 10 / tail 5 / `⋯ 省略 N 行 ⋯`); the
   agent still receives the full content via expand_placeholders.

6. mykey.py hot reload: load_llm_sessions() already had mtime-gated reload
   plumbing, but it only ran on Agent.__init__ / next_llm / list_llms — so
   editing mykey.py mid-session required restart. Two triggers added:
   on_input_area_submitted now calls load_llm_sessions() before sending
   (cheap mtime check; rebuilds on change), and a new /reload-keys command
   forces a sweep across every session (resetting llmcore._mykey_mtime
   per-iteration so the cache doesn't short-circuit later sessions).

7. Resize / sidebar toggle no longer jumps to bottom: _remount_current_session
   used to unconditionally scroll_end after rebuilding. Capture scroll_y +
   "was at bottom?" first; stick to bottom only if the user was already there,
   otherwise restore the prior scroll_y so resizes don't yank the user away
   from what they were reading.

8. Markdown table cells wrap instead of ellipsizing: Rich's Markdown
   TableElement passes no `overflow` to Table.add_column, so the default
   "ellipsis" hides long cell content with `…` on narrow widths. Patch
   TableElement.__rich_console__ on import to pass overflow="fold".
2026-05-19 09:30:16 +08:00
AspasZhang 6257fb15e8 chore: update WeChat group QR code from 18 to 19 (#419) 2026-05-19 07:32:45 +08:00
Liang Jiaqing 0db730d948 add morphling_sop to tracked files; add goal hive execution note 2026-05-18 21:10:20 +08:00