Commit Graph
736 Commits
Author SHA1 Message Date
Shen Hao a044f2e0a2 fix(tui): /scheduler reflects running state and supports stop via untick (bug4)
Before: /scheduler picker always showed an empty selection, so reflect/*.py
and frontends/*app*.py services that were already running could neither be
identified nor stopped from the TUI.  Re-running /scheduler started another
instance instead of toggling the existing one.

This change keeps discovery in the shared slash_cmds module and wires both
TUIs through the same helpers (parity rule from tui_frontend_sop):

* frontends/slash_cmds.py
  - running_service_ids(): inspect hub.pyw subprocess registry and return the
    set of currently-running service ids (reflect/* and frontends/*app*).
  - stop_service(sid): graceful terminate via the same registry, idempotent.
  - list_launchable_services() result is unchanged; callers read running set
    separately so the picker can decorate labels without leaking state into
    discovery.

* frontends/tuiapp_v2.py, frontends/tui_v3.py
  - Picker now pre-checks the running set and appends an i18n " · running"
    tag to those labels so the user can SEE what is up and untick to stop.
  - On submit we diff picked vs running -> (starts, stops); empty diff is a
    no-op with a clear breadcrumb.  Confirm card lists both sides.
  - MultiChoiceList (v2) no longer early-returns on empty labels for picker
    callbacks, so unticking the last running service still fires on_select
    (single-select dialogs retain the legacy guard).
  - Full bilingual i18n: scheduler.running_tag / no_change / diff.start /
    diff.stop added to both en/zh tables.

Smoke: py_compile clean on all three files; manual /scheduler round-trip
(start A, reopen picker -> A pre-checked, untick A -> stop A) verified on
both v2 and v3.
2026-05-27 16:38:57 +08:00
Shen Hao d3c633de83 fix(tui): v3 /scheduler confirm card -> ask_user-style (no checkmarks, Esc rolls back to picker preserving selection, full i18n) 2026-05-27 15:43:47 +08:00
Shen Hao 4accdd9427 fix(tui): v2 /scheduler confirm card -> ask_user-style (no ✅, Esc rolls back to picker via msg.on_cancel) 2026-05-27 15:41:21 +08:00
Shen Hao 6885e8dc55 fix(tui): hide cron advisory from v2 scheduler picker 2026-05-27 15:12:59 +08:00
Liang Jiaqing fa8d7d6271 fix(llmcore): robust _fix_messages — defensive .get, dedup tool_results, clean orphan results from first user msg 2026-05-27 13:46:29 +08:00
Liang Jiaqing ea70729a9a llmcore: bump claude-cli UA to 2.1.152, add context-mgmt/effort betas, Stainless headers, refine fake_cc system injection 2026-05-27 13:32:43 +08:00
LJQ 65e77e0422 Merge pull request #496 from shenhao-stu:fix/tui-frontend-polish
fix(tui): polish continue picker and prevent stash freeze
2026-05-27 10:36:20 +08:00
LJQ 7c5c62d48a Merge pull request #495 from shenhao-stu:feat/slash-command-bundle
feat(tui): add shared slash-command bundle with hub-aligned /scheduler launcher
2026-05-27 10:36:13 +08:00
LJQ 9530e26665 Merge pull request #493 from shenhao-stu:main
fix(llmcore): add Cloudflare 520-527 to _stream_with_retry _RETRYABLE set
2026-05-27 10:36:03 +08:00
Liang Jiaqing 50eff8e4a1 Fix desktop bridge startup loading flow 2026-05-27 09:37:03 +08:00
Shen Hao 9cfe021707 fix(tui): support cross-platform stash shortcut 2026-05-27 06:51:54 +08:00
Shen Hao 90b909b325 Fix TUI v2 picker rendering and stash latency 2026-05-27 06:07:42 +08:00
Shen Hao 5f38b64151 Polish TUI v3 scheduler and command handling 2026-05-27 06:07:42 +08:00
Shen Hao dfd7829d83 Harden continue session listing and restore parsing 2026-05-27 06:07:42 +08:00
Shen Hao 5ba14e9765 Add shared frontend slash command helpers 2026-05-27 06:07:41 +08:00
Shen Hao ab9804f264 fix(scheduler): align /scheduler picker with hub.pyw + add commit-answer confirm
The /scheduler picker previously listed only reflect/*.py (skipping just
underscore-prefixed files), so it leaked goal_mode/agent_persona and missed
the frontend apps that hub.pyw's launcher shows. It also started tasks via
`python reflect/X.py` instead of the canonical `agentmain.py --reflect`.

- slash_cmds.py: add list_launchable_services() + start_service() that mirror
  hub.pyw discover_services() exactly (EXCLUDES goal_mode/chatapp_common/tuiapp,
  reflect tasks via agentmain.py --reflect, frontend *app*.py incl. streamlit).
- tuiapp_v2.py / tui_v3.py: /scheduler now shows the full hub.pyw service set
  (reflect + frontend) and, after the multi-select Enter, requires a second
  commit-answer confirmation before anything is actually launched.

Parity verified at runtime: list_launchable_services() == discover_services().
2026-05-27 05:46:53 +08:00
Shen Hao 665d00cfb5 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 4aae5d59bb 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 108a19293d 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
Shen Hao 0908335c78 fix(llmcore): add Cloudflare 520-527 to _stream_with_retry _RETRYABLE set 2026-05-26 23:28:01 +08:00
AspasZhang 1c9f141ecd chore: update WeChat group 19 QR code image (#492) 2026-05-26 17:29:16 +08:00
Jiaqing Liang 976699a0cc Add salient mining SOP to L4 memory 2026-05-26 12:32:54 +08:00
Jiaqing Liang ae03ceba40 fix: force UTF-8 output for PowerShell code_run 2026-05-26 12:16:30 +08:00
YooooEX e308f1d876 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 65438cda38 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 b49cb7eb11 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 2670cb458f 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 54bc23a2a0 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 90a151bc08 refactor: hive_sop restructure, GrabWindowBg, ui_detect unified API, worker rule9, incubator_sop 2026-05-26 10:02:51 +08:00
Jiaqing Liang 1eb8c4c78c fix mykey path, add inject-prompt button, harden reload_mykeys 2026-05-25 13:29:12 +08:00
LJQ a33b225967 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 96f73d2c60 fix(qqapp):Change message type to Markdown message(msg_type-2)) 2026-05-24 21:16:05 +08:00
LJQ 27db2f6bbf 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 22762f18ce fix: add from __future__ import annotations for Python <3.10 compat 2026-05-24 16:09:40 +08:00
LJQ a941a6d394 Merge pull request #468 from FroStorM/main
a simplified, user-friendly version of GenericAgent
2026-05-23 15:18:21 +08:00
FroStorM 060b96251e Add link to A3Agent workbench repository
a simplified, user-friendly version of GenericAgent
2026-05-23 15:08:57 +08:00
LJQ a28eb9ffd8 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 2ad51d76f7 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 1a8abc4fda keychain: store SecretStr in _d for deep repr masking 2026-05-22 10:21:25 +08:00
Liang Jiaqing cc00946fa4 add supergrok_proxy 2026-05-22 10:04:40 +08:00
Jiaqing Liang 2506387f0f chore: remove redundant langfuse_tracing load from llmcore (handled by discover_and_load) 2026-05-21 18:22:47 +08:00
Jiaqing Liang 24d62c0de6 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 17d24f681e Merge pull request #455 from FroStorM/feishu-interface-fix
飞书接口修复
2026-05-21 17:35:47 +08:00
FroStorM 41863429a7 飞书接口修复 2026-05-21 17:26:59 +08:00
Jiaqing Liang e68f7ebbd2 Revert "feat: 更新飞书接口"
This reverts commit ce0ad05d15.
2026-05-21 15:49:38 +08:00
LJQ 421236fc8d Merge pull request #451 from cv70/feat/hook
feat: add agent lifecycle hook trigger mechanism
2026-05-21 14:55:43 +08:00
cv70 3b7e6ab414 feat: add agent lifecycle hook trigger mechanism 2026-05-21 14:33:56 +08:00
LJQ 9b713ed1dd Merge pull request #447 from traderlife8/fix-installation-link
docs: 修复安装文档中的链接路径
2026-05-21 14:09:47 +08:00
traderlife8 4348492795 docs: fix installation link path in installation_zh.md
原链接 installation.zh.md 路径不正确,已更正为 docs/installation.md
2026-05-21 09:52:37 +08:00
benemorphyandbenechen b4eb06f523 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