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
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
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
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
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
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
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
6646e91585
feat(goal): built-in tools for agent-driven goal management
2026-05-21 14:43:20 +08:00
matevip
ce74a0ae48
feat(goal): graph topology + evaluation node wired into ReAct + Plan-Execute
2026-05-21 14:43:13 +08:00
matevip
ac6c8a18e3
feat(goal): persistent cross-turn goal with self-evaluation scaffolding
2026-05-21 14:43:01 +08:00
matevip
51e6542a5a
feat(channel/qq): add scan-to-bind onboarding via QQ Open Platform Lite portal
2026-05-20 21:47:49 +08:00
matevip
b26bca1584
fix(qq): handle non-Map data in DISPATCH events ( #185 )
2026-05-20 21:47:43 +08:00
matevip
2d3afa6550
feat(sessions): paginate admin list, add back-nav, redesign with depth
2026-05-20 20:58:05 +08:00
matevip
82540a5fcb
docs(conversation): bilingualize ConversationService comments (en/zh)
2026-05-20 20:57:53 +08:00
matevip
6a4318c268
fix(channel): IM conversations respect per-conversation model selection ( #183 )
2026-05-20 17:49:03 +08:00
倪程伟
d7378273b2
fix(llm): classify "network connection error" as retryable SERVER_ERROR ( #179 )
...
Some providers (notably SiliconFlow) return "network connection error" in the response body when their backend is overloaded or the upstream model connection is disrupted. classifyError() had no pattern for this string, so it fell through to UNKNOWN (non-retryable), surfacing the raw error to the user on the first failure instead of running the exponential-backoff recovery. Adds the pattern to the SERVER_ERROR classifier and a friendly message mapping in extractUserFriendlyError(); bumps MAX_RETRIES from 5 to 10 so sustained wiki batch load can ride out provider flaps without surfacing an error to the channel user.
Closes #178
2026-05-20 16:49:54 +08:00
matevip
43136fc663
fix(channel): sweep orphan tool rows + guard rules; scope rule name to channel
2026-05-20 16:35:57 +08:00
matevip
12ff190392
feat(feishu): transcribe inbound voice messages via SttService
2026-05-20 16:35:46 +08:00
matevip
6b4456043e
fix(feishu): outbound generated-file URLs become native attachments
2026-05-20 16:01:03 +08:00
matevip
6b397a10ed
feat(feishu): inbound file/audio/video download — SDK path + cache push
2026-05-20 15:53:40 +08:00
matevip
71e08b015e
sync: Feishu approval card 5-chain hotfix — verified end-to-end in production
2026-05-20 15:24:47 +08:00
matevip
090bb64c6a
sync: Feishu channel-native tool provider + DbRuleGuardian generic guard
2026-05-20 12:29:29 +08:00
matevip
85d7ee23c4
sync: ChannelToolProvider SPI + node-local reconcile framework for channel-native tools
2026-05-20 12:18:51 +08:00
matevip
a9fa8e7fb1
sync: interactive approval card on Feishu via Schema-2.0 button + card.action callback
2026-05-20 12:05:47 +08:00
matevip
3554da8dbc
sync: inject sender context into agent prompt + Feishu DONE ack hook
2026-05-20 11:51:58 +08:00
matevip
35f010d7a1
sync: Feishu CardKit streaming-card adapter via cardkit/v1 SDK
2026-05-20 11:37:12 +08:00
matevip
0e1b8ca564
sync: componentized media upload SPI + Feishu SDK-backed file sender
2026-05-20 11:23:33 +08:00
matevip
5cc567a689
refactor(llm): downgrade embedding connectivity test failure log to warn
2026-05-20 10:58:21 +08:00
matevip
eb827d8cc5
fix(feishu): three small follow-ups from the post-merge audit
2026-05-20 10:58:15 +08:00
倪程伟
2e4f88c612
fix(llm): switch slash-bearing modelId from path variable to query parameter ( #177 )
...
Closes #174
Model identifiers like 'Qwen/Qwen3-Embedding-8B' or
'Pro/deepseek-ai/DeepSeek-V3' carry forward slashes that Spring MVC
decodes from %2F before path matching, so even with the frontend's
encodeURIComponent the request never reaches the handler and 404s out.
The two affected endpoints take modelId as a request param instead:
DELETE /{providerId}/models/{modelId} -> DELETE /{providerId}/models?modelId=...
POST /{providerId}/models/{modelId}/test -> POST /{providerId}/models/test?modelId=...
modelApi.removeProviderModel / testModel in the UI follow suit, passing
the id via axios params so axios handles the URL encoding consistently.
providerId stays as a path variable — provider ids are kebab-case and
never contain slashes.
2026-05-20 10:22:44 +08:00
倪程伟
461f81ccb5
fix(llm): add @Slf4j and log embedding test failures with full stack trace ( #176 )
...
Closes #175
ModelConfigController.testEmbedding() previously caught and stringified
the exception's getMessage() into the response body without writing
anything to the server log. Operators investigating an Embedding test
failure saw only the truncated client-side message — root causes like
the DashScope-native vs OpenAI-compat routing bug (#166 ) or the
requireApiKey gap (#167 ) were invisible server-side.
Add @Slf4j to the controller and log.error the full stack trace
alongside the failing modelId, so future Embedding test regressions are
diagnosable from the server log without redeploying with debug
breakpoints.
2026-05-20 10:18:48 +08:00
matevip
3340885da3
fix(llm): skip chat-style probe for embedding-prefix models in DashScope discovery
2026-05-20 10:14:25 +08:00
matevip
58c53687e5
fix(llm): purge mate_model_config tombstones (V118)
2026-05-20 10:14:19 +08:00
matevip
a6b5e3b515
refactor(llm): extract testable embedding protocol routing + drop dead fromProviderId
2026-05-20 10:14:12 +08:00
matevip
70a599e403
fix(embedding): use NoopApiKey for keyless OpenAI-compatible providers
2026-05-20 10:14:05 +08:00
matevip
2f90052430
refactor(channel): drop dead require_mention block in checkAccess
2026-05-20 10:13:59 +08:00
matevip
8d91197a46
refactor(feishu): drop dead helper, allow configurable card header, tidy regex
2026-05-20 10:13:53 +08:00
matevip
56ab7b3095
fix(feishu): fall back to text when Interactive Card payload exceeds Feishu limit
2026-05-20 10:13:47 +08:00