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
81915ccfae
feat(tool): read_file can page through an oversized single line via startColumn ( #190 )
2026-05-21 22:27:09 +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
ac6c8a18e3
feat(goal): persistent cross-turn goal with self-evaluation scaffolding
2026-05-21 14:43:01 +08:00
matevip
85d7ee23c4
sync: ChannelToolProvider SPI + node-local reconcile framework for channel-native tools
2026-05-20 12:18:51 +08:00
matevip
35f010d7a1
sync: Feishu CardKit streaming-card adapter via cardkit/v1 SDK
2026-05-20 11:37:12 +08:00
matevip
58c53687e5
fix(llm): purge mate_model_config tombstones (V118)
2026-05-20 10:14:19 +08:00
matevip
db16ff02a5
chore: drop external project name references from code comments
2026-05-20 08:09:43 +08:00
matevip
a828de1306
feat(skill): add skill-authoring builtin + retarget node-inspect-debugger to Electron/Vite
2026-05-20 08:09:34 +08:00
matevip
0a57cb3358
fix(workspace): harden workspace create and delete
2026-05-19 20:06:44 +08:00
matevip
4cd21056a0
feat(skill): automatic lifecycle archival for idle skills
2026-05-19 09:55:59 +08:00
matevip
33a40ad9d9
feat(wiki): support HTML, Excel, PowerPoint and CSV raw materials
2026-05-18 21:57:43 +08:00
matevip
d53d66abe3
feat(chat): per-conversation model selection ( #150 )
2026-05-18 16:27:27 +08:00
matevip
75107ac815
feat(llm): native Gemini chat builder, Nano Banana image gen, xAI/Grok provider
2026-05-18 10:00:55 +08:00
matevip
7fb47390af
feat(chat): pin, multi-select delete and agent filter for conversations ( #144 )
2026-05-17 09:25:02 +08:00
matevip
e97433cfc5
fix(i18n): add localized descriptions for document tools
2026-05-17 08:14:16 +08:00
matevip
e647f1d6cf
fix(cron): isolate scheduled-job runs from shared conversation ( #142 )
2026-05-17 07:58:10 +08:00
matevip
fb2f847c81
fix(docs): mirror root docs into classpath so readMateClawDoc serves them
2026-05-16 17:34:30 +08:00
matevip
56a226a8c7
chore(db): index agent+filename and task conv+status read paths
2026-05-16 14:51:36 +08:00
matevip
3b9b4d79d5
feat(skill): scope skill catalog and runtime by workspace ( #135 )
2026-05-15 20:01:25 +08:00
matevip
51b5eceb7d
feat(context): preserve spill markers across compaction phases, persist enriched boundary, broadcast compact_status SSE ( #110 )
2026-05-13 08:50:28 +08:00
matevip
86a6829102
feat(executor): retention sweep and per-conversation purge for tool-result spill files
2026-05-13 08:50:22 +08:00
matevip
8f49b0ec92
fix(executor): spill raw tool result before falling back to inline truncate
2026-05-13 08:49:56 +08:00
matevip
0b321dc903
fix(skill): repair zip install losses + persist scripts/refs to canonical store ( #104 )
2026-05-12 17:20:00 +08:00
matevip
026afa2ba5
feat(wiki): optional JSON Schema on json-format transformations
2026-05-12 14:35:31 +08:00
matevip
465a727be2
feat(wiki): record per-run token usage so operators can see what each template burns
2026-05-12 14:35:17 +08:00
matevip
e911af2192
feat(wiki): JSON output mode — structured transformation output for programmatic downstream
2026-05-12 14:11:02 +08:00
matevip
90936dba4f
feat(wiki): cross-material transformation aggregator — map-reduce all runs of a template into one KB page
2026-05-12 14:10:54 +08:00
matevip
4c8a42b0e2
feat(wiki): seed 7 workspace-wide transformation templates aligned with enterprise scenarios
2026-05-12 14:10:32 +08:00
matevip
bee39cc420
feat(wiki): page-level embedding so synthesis pages enter semantic search
2026-05-12 14:10:23 +08:00
matevip
bae9f68261
feat(wiki): user-defined transformation templates with optional auto-save to synthesis pages
2026-05-12 10:49:58 +08:00
matevip
27f614d48a
feat(wiki): enrich chunk embedding input with raw title and structural metadata
2026-05-12 08:44:26 +08:00
matevip
dac3f5be20
fix(extract): trigger OCR when text extraction returns unreadable bytes
2026-05-12 08:44:20 +08:00
matevip
071ccff9bf
feat(tool): add render_html_image to deliver HTML artifacts as native IM images
2026-05-12 07:11:35 +08:00
matevip
b74176ef66
refactor(agent): tighten template pre-binding contract and prune product-assistant skills
2026-05-12 07:11:29 +08:00
matevip
201e510b17
feat(agent): pre-bind skills and tools when applying an agent template
2026-05-12 07:11:19 +08:00
matevip
f0d6755469
chore(seed): rename three default digital employees to role-titled names
2026-05-11 21:45:39 +08:00
matevip
08fcab12d1
fix(deploy): drop DASHSCOPE_API_KEY requirement so Docker boots with no LLM key configured ( #99 )
2026-05-11 20:44:31 +08:00
matevip
a1ca7ab534
chore(skill): mark 5 heavyweight bundled skills as optional
2026-05-11 17:40:30 +08:00
matevip
e6fd39f6ba
fix(agent): raise parallel delegation timeout to 300s for thinking models
2026-05-11 17:23:26 +08:00
matevip
f25f910a82
feat(skill): support optional: true frontmatter for off-by-default bundled skills
2026-05-11 17:22:30 +08:00
matevip
6d5fb595d3
fix(agent): harden digital-employee isolation across creation, skill binding and prompt catalog
2026-05-11 16:10:28 +08:00
matevip
ae4d432ee2
fix(security): root-cause guards against blank tool guard rule rows
2026-05-10 08:27:42 +08:00