Commit Graph
9 Commits
Author SHA1 Message Date
Liang Jiaqing 3c5c99fd6d chore: replace alarming warning with neutral "(无文本输出)" in feishu display 2026-05-09 19:51:35 +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
hanshou101 dece612853 fix(fsapp): rollover oversized Feishu task cards (#209) 2026-05-02 14:54:46 +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
Xinyi Wang a6644d580c 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.
2026-04-24 04:20:16 -03:00
weijia b34cffe801 feat(fsapp): render agent run as one continuously-updating Feishu card (#131)
Rework the Feishu frontend so each user turn renders as a single
collapsible task card that patches itself in place, replacing the
dq-based streaming path that produced many fragmented messages.

- One _TaskCard per turn; hook reacts to summary / exit_reason events
  from the agent loop and patches the same card.
- Each step is a foldable panel: header shows the summary, expanding
  reveals three sections (auto-hidden when empty):
    * Thinking   - from response.thinking (separate field, not content)
    * Tool Calls - tool name + truncated JSON args
    * Output     - response.content, with protocol tags stripped so
                   the header summary is not duplicated inside
- Final reply rendered as a schema 2.0 markdown card for consistency.
- Code-review pass per code_review_principles.md:
    * _TaskCard owns only stateful card lifecycle (start/step/done/fail)
    * Pure formatting extracted to module-level _build_step_detail and
      _fmt_tool_call (no more reaching into card._private from the hook)
    * Hook is a ~10-line dispatcher
    * Flattened a 4-level nested lambda into a named function
2026-04-22 14:12:51 +08:00
Xinyi Wang d1a491ff3b feat: add continue/new support to chat frontends 2026-04-20 19:27:31 +08:00
YangChen-pro 520550a2b9 Fix /restore path and native log compatibility 2026-04-08 10:16:55 +08:00
Liang Jiaqing 87d557260c refactor: move frontend apps to frontends/ and fix path references 2026-03-22 17:45:20 +08:00