matevip
c36abf38b8
feat(agent): inject stale-ledger reminder when the model stops updating
2026-05-24 23:00:35 +08:00
matevip
8798668524
feat(agent): require ledger discipline in system prompt for multi-step tasks
2026-05-24 23:00:30 +08:00
matevip
9f2fb3db23
feat(agent): echo full ledger snapshot in progress_update tool result
2026-05-24 23:00:24 +08:00
matevip
7736f6b0ab
fix(agent): serialise progress-ledger upsert per conversation
2026-05-24 23:00:17 +08:00
matevip
e953f8be5a
feat(agent): age-based compaction of older tool-response bodies
2026-05-24 23:00:11 +08:00
matevip
05289e6bdb
feat(agent): per-conversation progress ledger to survive context trims
2026-05-24 23:00:03 +08:00
matevip
fe9610dfa6
fix(dashboard): count tool calls from assistant.metadata, not role=tool rows
2026-05-24 22:58:02 +08:00
matevip
8030a41125
fix(api): return 400 on path-variable type mismatch instead of 500
2026-05-24 22:57:51 +08:00
matevip
c49b4a21bb
fix(tool): force markdown-link reply for generated-file downloads
2026-05-24 22:57:41 +08:00
matevip
68effa3f90
fix(tool): retry browser_use eval with async IIFE on top-level return
2026-05-24 22:57:30 +08:00
matevip
c857d6dd45
fix(agent): retry empty LLM completion before treating it as final answer
2026-05-24 22:57:19 +08:00
matevip
481cece733
fix(channel): preserve queued chat inputs across turns
2026-05-24 22:57:08 +08:00
matevip
a9c2d45790
Harden goal approval and workspace flows
2026-05-23 22:55:16 +08:00
matevip
5cd6e841a4
feat(skill): broaden script security scan + GBK zip-import fallback
2026-05-23 22:55:10 +08:00
matevip
4e01c98fc1
docs: add v1.4.0 release notes and update guides for the release
2026-05-23 22:55:03 +08:00
matevip
3fc121c6b7
fix(tool): show runtime names in tools admin
2026-05-23 22:54:57 +08:00
matevip
123d912f84
fix(skill): allow template file access
2026-05-23 09:08:01 +08:00
matevip
cef1730e6e
feat(tool,skill,ui): progressive tool/skill disclosure (load_skill + enable_tool + tier UI)
2026-05-23 09:07:45 +08:00
matevip
773c64bfd7
chore(tool): localize send_file success message and use English Javadoc
2026-05-22 16:32:10 +08:00
倪程伟
f16021690f
feat(tool): add send_file tool for sending existing server files as IM attachments ( #199 )
...
* feat(tool): add send_file tool for sending existing server files as IM attachments
Adds a new built-in tool that reads a file from the server and stashes it
in GeneratedFileCache so the channel adapter (Feishu, DingTalk, etc.)
automatically sends it as a native attachment. This fills the gap where
agents had no way to send existing server files to users — ReadFileTool
only reads text, and render tools only generate new files.
- New SendFileTool with path validation, MIME detection, 20MB limit
- Added "send_file" to tool allowlist in AgentBindingService
- Added i18n error messages (zh-CN + en-US)
* fix(tool): send_file returns URL in scrubber-detectable format
The previous JSON return format caused the LLM to reply with just
"status: sent" without echoing the /api/v1/files/generated/{id} URL.
GeneratedFileScrubber only scans the LLM's final text output, so the
file was never delivered as a native attachment.
Changed to match GeneratedFileLink's format: returns a markdown link
with explicit instructions for the LLM to echo the URL verbatim.
2026-05-22 16:27:53 +08:00
倪程伟
6bf64449bd
fix(channel/feishu): register all IM event handlers to prevent HandlerNotFoundException ( #196 )
...
The Lark SDK throws HandlerNotFoundException for any event type without
a registered handler. This exception is caught internally by the SDK's
WebSocket client, which then sends a 500 response to the Feishu server.
The server may close the connection as a result, and the exception is
swallowed — never reaching the application layer.
Added empty handlers for all remaining IM event types:
- P2MessageReadV1 (read receipts)
- P2MessageRecalledV1 (message recall)
- P2ChatMemberBotDeletedV1 (bot removed from chat)
- P2ChatMemberUserAddedV1 / UserDeletedV1 / UserWithdrawnV1
- P2ChatUpdatedV1 (chat info update)
- P2ChatDisbandedV1 (chat disbanded)
- P2ChatAccessEventBotP2pChatEnteredV1 (bot entered p2p chat)
Also added explicit logback config for com.lark.oapi at WARN level
to ensure SDK internal errors are not silently filtered.
Refs: larksuite/oapi-sdk-java#185
2026-05-22 16:10:05 +08:00
matevip
26bf75fd2f
fix(ui): stop chat content clipping in a narrow message column
2026-05-22 14:09:18 +08:00
matevip
5f571e86a2
feat(agent,ui): multi-level subagent delegation tree
2026-05-22 13:44:01 +08:00
matevip
8bd8a02cd0
feat(agent,ui): nested subagent timeline + always-on plan panel
2026-05-22 09:48:06 +08:00
matevip
66af70388b
fix(goal): give reasoning models enough budget for the evaluator JSON
2026-05-21 22:27:43 +08:00
matevip
2a1b8cbcbf
fix(goal,ui): gate inline prompt by real long-task signal; soften copy
2026-05-21 22:27:33 +08:00
matevip
34175ab94d
fix(goal,ui): guard evaluating flag against the message_complete race
2026-05-21 22:27:25 +08:00
matevip
7d7ea99747
fix(goal): emit goal_evaluated on every GoalEvaluationNode skip path
2026-05-21 22:27:17 +08:00
matevip
81915ccfae
feat(tool): read_file can page through an oversized single line via startColumn ( #190 )
2026-05-21 22:27:09 +08:00
matevip
9e93c52d9a
fix(goal): real evaluator, retry refactor, hardened node + extra edges
2026-05-21 22:27:00 +08:00
matevip
495a5c126d
fix(goal,ui): wire evaluating halo, followup ↻ mark, dedupe system-line icon
2026-05-21 22:26:48 +08:00
matevip
c34e8290ac
feat(goal,ui): inline set-goal prompt, terminal system-line, sidebar dot
2026-05-21 22:26:40 +08:00
matevip
9c5ad29d42
chore(llm): drop unused imports, add XIAOMI_MIMO cross-turn cache tests
2026-05-21 17:24:53 +08:00
倪程伟
7861f603eb
fix(llm): MiMo thinking 模式 reasoning_content 多轮对话兼容修复 ( #189 )
...
MiMo V2 系列在 thinking 模式下,assistant 消息携带 tool_calls 时必须同时包含 reasoning_content,否则提供方返回 400。
- ModelFamily 新增 MIMO_THINKING 族,detect() 添加 mimo* 匹配
- FallbackPolicy 新增 XIAOMI_MIMO(patchCrossTurn=true, patchNonToolCall=true)
- 新增 ReasoningContentCache,按 tool_call_ids 回放真实推理内容
- 缓存作用范围:所有 patchCrossTurn=true 的 thinking provider(MiMo + DeepSeek)
- NodeStreamingChatHelper 流式响应完成后写入缓存
Closes #188
2026-05-21 17:15:35 +08:00
matevip
02407871f4
fix(goal,ui): unwrap R envelope correctly in goal store
2026-05-21 16:26:31 +08:00
matevip
e61b05bba0
fix(tool): read_file no longer returns empty content + infinite retry on oversized single lines ( #190 )
2026-05-21 16:26:24 +08:00
matevip
49d9eccaec
fix(goal,ui): center the avatar logo inside the ring wrapper
2026-05-21 16:26:18 +08:00
matevip
7e1ce66ace
fix(goal,ui): the ring rendered as a square — explicit box-shadow:none
2026-05-21 16:26:11 +08:00
matevip
a910004b3b
feat(agent): digital-employee builder skill to auto-create agents and chain them into a workflow ( #165 )
2026-05-21 16:26:04 +08:00
matevip
892bc652f2
fix(goal,ui): refine ring CSS — 5px breathing gap, same-hue track for layering
2026-05-21 16:25:57 +08:00
matevip
e8ec612ca8
docs: add user guide for the persistent-goal feature
2026-05-21 16:25:50 +08:00
matevip
2b6a4c64c9
fix(agent): add data-fidelity rules to summarizer prompts + fix fallback cut ( #187 )
2026-05-21 15:13:15 +08:00
matevip
03e68d3c74
fix(agent): structure-aware truncation to stop mid-JSON cuts inducing hallucination ( #187 )
2026-05-21 15:13:07 +08:00
matevip
43bbe26ff9
fix(goal,agent): expose goal management tools to every agent by default
2026-05-21 14:44:06 +08:00
matevip
c9e54e820f
fix(goal,ui): live ring update after agent-triggered setGoal / addGoalCriterion
2026-05-21 14:43:59 +08:00
matevip
89f8413db8
test(agent): sync LaneDPerformanceFixesTest with MAX_RETRIES bump
2026-05-21 14:43:52 +08:00
matevip
e61c9d46d3
fix(goal,ui): load active goal on conversation switch
2026-05-21 14:43:46 +08:00
matevip
efce3bc209
fix(goal): pin JSON wire form for GoalStatus to lowercase
2026-05-21 14:43:40 +08:00
matevip
746ade0410
feat(goal): flip enabled flag on, forward completions to long-term memory
2026-05-21 14:43:34 +08:00
matevip
3a0595d5bd
feat(goal,ui): Jobs-cut frontend for persistent goal
2026-05-21 14:43:28 +08:00