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
matevip
c2aecf18ef
feat(agent,llm): multimodal sidecar routing for unsupported attachments ( #87 )
2026-05-09 16:41:26 +08:00
matevip
52e06afec4
feat(llm,tool/image): dashscope-compat provider + media-gen test profile
2026-05-09 06:28:38 +08:00
matevip
2a803d2904
fix(trigger): honest fireCount + last_error via DispatchResult
2026-05-08 15:06:28 +08:00
matevip
844a64ad37
fix(workflow): hard-delete + blank-draft compile + canvas blank pane
2026-05-08 15:05:53 +08:00
matevip
d87ed0365a
feat(workflow): add foundational schema for workflow runtime
2026-05-08 15:03:34 +08:00
matevip
0357c9891d
feat(wiki): user-initiated cancel for in-progress raw material processing ( #72 )
2026-05-08 15:03:10 +08:00
matevip
96840b0126
chore: bump version to 1.3.0-SNAPSHOT
2026-05-08 15:02:08 +08:00
matevip
023f0cfb06
fix(conversation): render image/video/audio attachment markers for LLM ( #66 )
2026-05-07 17:13:17 +08:00
matevip
76f5b3ca94
feat(wiki): user-initiated cancel for in-progress raw material processing ( #72 )
2026-05-07 16:32:35 +08:00
matevip
c82bf4d18f
feat(tool/document): generate xlsx, pptx, pdf documents from markdown
2026-05-07 13:59:28 +08:00
matevip
bf2ffbd62b
feat(llm,ui): add Xiaomi MiMo provider and wire icons for xiaomi-mimo / hunyuan-3d / opencode
2026-05-07 08:18:07 +08:00
matevip
845b5bb1b1
feat(mcp): stable prefixed callback names and persisted per-server tool cache
2026-05-07 08:17:30 +08:00
matevip
f5d25509bb
fix(db): use Java charset name UTF-8 in JDBC URL instead of utf8mb4
2026-05-06 22:58:29 +08:00
matevip
da6fa5089d
fix(persistence): prevent assistant message loss from column truncation and JDBC charset
2026-05-06 15:18:34 +08:00
matevip
c1c2525d0e
feat(llm): seed Zhipu and Aliyun coding-plan subscription providers
2026-05-05 13:06:33 +08:00
matevip
704c6317e3
feat(llm): live model discovery for ChatGPT OAuth provider
2026-05-05 13:06:19 +08:00
matevip
2ab0bd000b
fix(chat): suppress duplicate assistant row on force-recycle
2026-05-05 10:39:54 +08:00
matevip
be2235a493
feat(llm): OAuth device authorization grant for ChatGPT remote deploy
2026-05-05 10:39:47 +08:00
matevip
be1fc86836
feat(agents): pixelart icons, per-role colors, runtime identity merge, locale templates
2026-05-04 15:26:02 +08:00
matevip
2a8f6774e7
feat(agents): role/goal/backstory profile, employee-card tagline, 5 career templates
2026-05-04 15:25:53 +08:00
matevip
42d406ffc8
fix(agent): drop brittle output policing, add evidence-grounded long-task safeguards
2026-05-04 11:55:44 +08:00
matevip
3d50b9c132
feat(skill): catalog sort + usage stats
2026-05-04 11:55:35 +08:00
matevip
68e1c6f50d
fix(skill): harden ckjia skill binding and virtual dedup
2026-05-03 20:32:23 +08:00
matevip
dfe186f928
docs(skill): rewrite ckjia-shopping output format around pre-rendered markdownLink/priceTag
2026-05-03 17:16:05 +08:00
matevip
292da11ead
docs(skill): force ckjia-shopping output to include real purchase URL + structured price/platform/history block
2026-05-03 17:15:59 +08:00
matevip
551f2994a0
fix(skill): drop dependencies.tools from ckjia-shopping (MCP tools aren't in mate_tool table)
2026-05-03 17:15:54 +08:00
matevip
78fcbc5415
fix(seed): V85 ckjia mcp url -> ckjia-ai default /sse direct (gateway routing left for prod)
2026-05-03 17:15:45 +08:00
matevip
3de48f0bb4
fix(seed): V85 ckjia mcp url must include /ai/ gateway prefix (StripPrefix=1)
2026-05-03 17:15:39 +08:00
matevip
327a70dad4
chore(skill): switch ckjia-shopping icon to ckjia_app_icon.png (1024x1024 RGBA, sharper at retina)
2026-05-03 17:15:10 +08:00
matevip
d1099f1524
chore(skill): rename ckjia-shopping display to '参考价 - 比价购物' (matches CKJIA brand)
2026-05-03 17:14:54 +08:00
matevip
5f125364e9
fix(skill): parseIconValue accepts site-absolute paths + restore ckjia-shopping nameZh/nameEn/tags
2026-05-03 17:14:43 +08:00
matevip
a1927bbfe4
fix(flyway): V85 ckjia mcp seed must supply explicit id (Snowflake bypassed by Flyway)
2026-05-03 17:14:37 +08:00
matevip
848a3991f5
fix(flyway): disable placeholder-replacement so V85 ckjia seed's ${ENV_VAR} survives intact
2026-05-03 17:14:31 +08:00
matevip
c07048f258
feat(skill,mcp): ckjia-shopping skill bundle + same-name dedup against bridged MCP/ACP virtual skills
2026-05-03 17:14:19 +08:00
matevip
29d2d49d25
fix(wiki): widen mime_type to VARCHAR(255) so Office uploads don't blow the column
2026-05-02 23:11:40 +08:00
matevip
5e936fd50a
feat(wiki): hot cache rebuild engine — LLM updater, scheduler, conversation-end listener
2026-05-02 21:45:55 +08:00
matevip
a8f0998c24
feat(wiki): hot cache storage skeleton — table, entity, value object, read service
2026-05-02 21:45:43 +08:00
matevip
062b5169fa
fix(llm): drop bogus qwen3-plus seed and gate enable_search to supporting models (issue #53 )
2026-05-02 19:40:03 +08:00
matevip
4dc280a3d1
feat(wiki): wire image uploads to vision-in pipeline
2026-05-02 19:04:39 +08:00
matevip
088ffcaee1
feat(wiki): add image-to-text vision SPI with DashScope provider
2026-05-02 19:04:32 +08:00
matevip
b26a4ee4d1
feat(wiki): add SHA-256 keyed image caption cache
2026-05-02 19:04:25 +08:00
matevip
4f96a46900
feat(system): add runtime-toggleable feature flag store
2026-05-02 19:04:12 +08:00
matevip
d0706239ea
feat(wiki): add mate_wiki_relation cache table for page-to-page edges
2026-05-02 19:04:06 +08:00
matevip
bc417d00ef
chore: neutralize internal references in code comments and migrations
2026-05-02 15:42:10 +08:00
matevip
3c33422a08
feat(auth): personal access tokens for headless / CI integration
2026-05-02 15:41:34 +08:00
matevip
55f4ba1195
feat(llm): per-Model HTTP read-timeout override
2026-05-02 15:40:59 +08:00
matevip
2cd51743d1
feat(cron): distributed lock for multi-instance cron firing
2026-05-02 15:40:31 +08:00
matevip
92bd8e9b6e
feat(agent): re-enable per-Agent model override
2026-05-02 15:40:24 +08:00
matevip
c4f2117a23
fix(agent): tolerate LLM-mangled tool names
2026-05-02 15:39:49 +08:00
DayByDay
f9fda29170
feat(i18n): add zh-CN err.llm.model_not_supported message
...
Adds the missing Chinese translation for the DashScope native protocol guard error key thrown by ModelDiscoveryService.assertModelIdAcceptable.
2026-05-02 10:38:55 +08:00