matevip
d629c945ee
fix(wiki): return the new page id from the create-page tool
2026-05-19 20:06:33 +08:00
matevip
57ca69d674
fix(wiki): return HTTP 404 for missing knowledge bases and pages
2026-05-19 20:06:27 +08:00
matevip
c1b878b7e1
fix(agent): fail over to backup providers when the primary is rate-limited
2026-05-19 20:06:21 +08:00
matevip
95ce1bae24
docs(agent): describe binding-service helpers functionally
2026-05-19 16:53:24 +08:00
matevip
d1b7e76f5b
fix(tool): support top-level await in the browser eval action
2026-05-19 16:53:18 +08:00
matevip
c6d51f8ced
fix(wiki): resolve an agent's own knowledge base before shared ones
2026-05-19 16:53:12 +08:00
matevip
b0d9bde664
fix(agent): clamp DashScope max_tokens to the provider's 8192 ceiling
2026-05-19 16:53:06 +08:00
matevip
3d643f909d
feat(skill): typed wrapper tools for declared script entrypoints
2026-05-19 09:56:39 +08:00
matevip
31d4d014ed
fix(skill): normalize runSkillScript JSON args
2026-05-19 09:56:33 +08:00
matevip
4cd21056a0
feat(skill): automatic lifecycle archival for idle skills
2026-05-19 09:55:59 +08:00
matevip
fb4206e356
fix(wiki): count only the latest job per raw in KB failure stats
2026-05-18 22:00:36 +08:00
matevip
33a40ad9d9
feat(wiki): support HTML, Excel, PowerPoint and CSV raw materials
2026-05-18 21:57:43 +08:00
倪程伟
b763022810
fix(feishu): add handler for im.chat.member.bot.added_v1 event
...
Register a no-op handler for the bot-added-to-chat event on the Feishu WebSocket EventDispatcher. Without it, adding the bot to a group chat raises HandlerNotFoundException and drops the long connection. Mirrors the existing reaction-event handlers. Fixes #153 .
2026-05-18 17:46:28 +08:00
matevip
cda001b818
fix(workflow): generate runnable drafts — snake_case names, correct output refs
2026-05-18 17:35:00 +08:00
matevip
4cf991851b
fix(workflow): keep the editor canvas and status correct after publish
2026-05-18 17:34:53 +08:00
matevip
d53d66abe3
feat(chat): per-conversation model selection ( #150 )
2026-05-18 16:27:27 +08:00
matevip
0ff8da0caa
fix(llm): stop MODEL_NOT_FOUND from evicting the whole provider ( #150 )
2026-05-18 16:27:20 +08:00
matevip
3157dde1f4
fix(memory): route long-term memory edits to the file being edited ( #148 )
2026-05-18 11:28:01 +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
a88edbdd07
refactor(llm): decouple model construction from the agent graph layer ( #147 )
2026-05-18 07:47:49 +08:00
matevip
b3e8d1e283
fix(chat): return 401/403 not 500 for chat auth and ownership failures
2026-05-17 17:56:03 +08:00
matevip
ff3e5b42f5
fix(memory): resolve morning-card user id from the JWT username
2026-05-17 17:55:56 +08:00
matevip
84d809f52b
fix(wiki): show live page count in knowledge base list and detail
2026-05-17 17:55:29 +08:00
matevip
401c413a77
fix(chat): return 403 not 500 for conversation access failures
2026-05-17 17:55:21 +08:00
matevip
ce33c1c652
feat(llm): add UI to configure embedding models from any provider ( #79 )
2026-05-17 09:25:09 +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
18df97a8e6
fix(agent): scope MCP tools to explicit per-agent selection ( #117 )
2026-05-17 09:24:56 +08:00
matevip
8c1eef00f2
build(deps): upgrade backend libraries and migrate to OpenPDF 3 package
2026-05-17 08:14:11 +08:00
matevip
e647f1d6cf
fix(cron): isolate scheduled-job runs from shared conversation ( #142 )
2026-05-17 07:58:10 +08:00
matevip
b4add8b139
fix(agent): keep wiki tools available to skill-bound agents ( #143 )
2026-05-16 23:00:45 +08:00
matevip
033854a3ff
fix(feishu): restore reaction-event no-op handlers dropped by an over-eager dedup revert
2026-05-16 17:39:19 +08:00
matevip
819c5d5c50
docs(memory): drop external-project attribution from javadoc
2026-05-16 17:30:49 +08:00
matevip
c8d908078a
style(feishu): write reaction-handler comment in English
...
Project convention: all code comments must be in English.
2026-05-16 15:34:02 +08:00
倪程伟
a386b31e9b
fix(feishu): register no-op handlers for reaction events ( #140 )
...
The Feishu SDK EventDispatcher had no handler registered for im.message.reaction.created_v1 / deleted_v1, so adding or removing an emoji reaction raised HandlerNotFoundException and logged an ERROR stack trace. Register no-op handlers to silently ignore these events.
2026-05-16 15:28:59 +08:00
matevip
f56f4b059a
fix(workspace): reject impossible calendar dates in memory snapshot import
2026-05-16 14:51:52 +08:00
matevip
69fb03968b
fix(agent): expose memory-search and async-delegation tools to skill-bound agents
2026-05-16 14:51:47 +08:00
matevip
725fdd1e0f
feat(workspace): memory snapshot export and import with whitelist
2026-05-16 14:51:25 +08:00
matevip
81c6488a3c
feat(tool): async sub-agent delegation with attribution gate
2026-05-16 14:51:20 +08:00
matevip
419ee57cc8
feat(agent): structured compaction on prompt-too-long preserves prefix
2026-05-16 14:51:14 +08:00
matevip
b9c0ead024
feat(workspace): keyword search across agent memory files
2026-05-16 14:51:09 +08:00
matevip
d90591fa35
feat(task): generic one-shot Callable runner with parent-conv cancel
2026-05-16 14:51:04 +08:00
matevip
82594878a0
refactor(ui): fold the live runtime view into the Employees page
2026-05-16 14:50:58 +08:00
matevip
c320aab1ba
fix(skill): synthesize SKILL.md body for ACP-derived virtual skills ( #136 )
2026-05-16 14:50:51 +08:00
matevip
130dfd5278
fix(skill): synthesize SKILL.md for MCP-derived virtual skills ( #136 )
2026-05-16 14:50:46 +08:00
matevip
51c922f395
fix(cron): include agent-less cron jobs in dashboard run views ( #134 )
2026-05-15 20:56:21 +08:00
matevip
3b9b4d79d5
feat(skill): scope skill catalog and runtime by workspace ( #135 )
2026-05-15 20:01:25 +08:00
matevip
38b1af11cd
docs(skill): tighten skill_manage tool description to disambiguate from record_lesson
2026-05-15 15:21:28 +08:00
matevip
a4b8c00eba
fix(orm): make updateTime auto-fill unconditional so rows actually move on update
2026-05-15 15:21:23 +08:00
matevip
1d1a818513
fix(skill): persist version on patch and rescan synchronously after edit/patch ( #129 )
2026-05-15 15:12:07 +08:00
matevip
26df2c94d0
fix(rbac): let viewers read active model so they can actually chat
2026-05-15 10:19:03 +08:00
matevip
9fc2e5f04f
feat(memory,dashboard,channel,cron): raise read endpoints out of viewer
2026-05-15 10:18:20 +08:00
matevip
3ba22b99f3
feat(workspace,system): add @RequireGlobalAdmin and gate admin-only controllers
2026-05-15 10:18:10 +08:00
matevip
bba9975749
feat(llm,datasource): gate model/provider/oauth/datasource endpoints to admin
2026-05-15 10:18:03 +08:00
matevip
41f3408209
feat(skill,tool,plugin): gate skill/tool/plugin endpoints by workspace role
2026-05-15 10:17:56 +08:00
matevip
f4964bc6d8
feat(workspace): return memberRole on list and add access endpoint
2026-05-15 10:17:49 +08:00
matevip
65dd4c1f49
fix(skill): cascade-delete agent-skill bindings on skill removal ( #127 )
2026-05-15 10:17:41 +08:00
matevip
eb6badeb61
feat(ui): surface pending approvals + stuck agents as sidebar badges
2026-05-15 10:17:30 +08:00
matevip
adf5d93975
fix(wiki): align HTTP status with R envelope and harden config + edit paths
2026-05-14 23:01:00 +08:00
matevip
1bba59fc7e
fix(skill): encode bridge virtual ids in the top two bits
2026-05-14 18:18:21 +08:00
matevip
139a478bcd
fix(skill): give CJK-only MCP/ACP names a stable id-based slug
2026-05-14 18:18:15 +08:00
matevip
d1be02985c
fix(agent): collapse model-predicted tool results that the actual tool replaced
2026-05-14 15:44:03 +08:00
matevip
f0f97232a8
fix(agent): pre-tool no-claim system rule + correct write/edit approval docs
2026-05-14 14:59:32 +08:00
matevip
bf3f4af913
fix(agent): structured tool-call replay + final-answer-only content ( #120 )
2026-05-14 07:46:30 +08:00
matevip
2bca55f5b4
fix(tool-guard): friendly duplicate rule-id rejection and client-side name/pattern validation ( #88 )
2026-05-13 09:55:30 +08:00
matevip
aed559d1cf
docs(agent): update head-guard call-site comment to match the order-sensitive forward scan
2026-05-13 09:05:17 +08:00
matevip
1ea90c25cb
fix(agent): make head-orphan repair order-sensitive — a later same-id assistant does not redeem an earlier orphan
2026-05-13 09:03:16 +08:00
matevip
bff57924d6
fix(agent): repair head-side orphan tool responses on the pagination cut
2026-05-13 09:03:10 +08:00
matevip
af56763156
fix(context): keep the latest summary even when its row sits outside the recent window; include summaryId in compact_status
2026-05-13 08:50:42 +08:00
matevip
faf7f98358
feat(context): consume compact_status on the frontend; load history from latest boundary; backfill summaryId
2026-05-13 08:50:35 +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
7015d1513c
feat(context): anchor the first user message after compaction so long tasks remember the original goal
2026-05-13 08:50:15 +08:00
matevip
37894a6978
fix(context): never compact across a split tool_call ↔ tool_response pair
2026-05-13 08:50:08 +08:00
matevip
ae3d27922d
fix(context): preserve raw older tool results instead of rewriting them to a lossy summary
2026-05-13 08:50:02 +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
2ef806aa64
chore(deps): bump Spring AI 1.1.5 -> 1.1.6 and Spring AI Alibaba 1.1.2.2 -> 1.1.2.3
2026-05-13 07:39:27 +08:00
matevip
cc5d7d5ad0
fix(agent): auto-include enabled MCP tools in effective allowlist ( #108 )
2026-05-12 21:24:36 +08:00
matevip
aded30bbb1
feat(agent): auto-redirect skill-as-tool calls to readSkillFile
2026-05-12 17:20:19 +08:00
matevip
5789a28e19
feat(skill): boost newly installed skills + teach LLM to widen the catalog search
2026-05-12 17:20:09 +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
691d2b867b
fix(agent): hide disabled agents from the chat picker and reject chat calls against them ( #105 )
2026-05-12 14:53:14 +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
a5b952050c
feat(wiki): reverse-citation extractor — bind synthesis pages to the exact source chunks they cite
2026-05-12 14:10:47 +08:00
matevip
e1759e0e3c
feat(wiki): page-input transformations — run a template against an existing page
2026-05-12 14:10:40 +08:00
matevip
bee39cc420
feat(wiki): page-level embedding so synthesis pages enter semantic search
2026-05-12 14:10:23 +08:00
matevip
8d01efbbb1
fix(agent): sanitize streamed tool-call arguments to valid JSON
2026-05-12 11:25:58 +08:00
matevip
62c9776b01
feat(wiki): clean conversational preamble and code fences from transformation output
2026-05-12 11:25:50 +08:00
matevip
f04ea58c8d
feat(wiki): cancel a running transformation and re-run any past run
2026-05-12 11:25:44 +08:00
matevip
ef6ad1b91a
feat(wiki): expose per-template model picker in the transformations modal
2026-05-12 11:25:38 +08:00
matevip
4098346fb7
fix(wiki): strip file extensions when deriving transformation page slugs
2026-05-12 11:25:32 +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
srant1
5f77434953
fix(llm): activate default model after OpenAI OAuth and gate provider checks by enabled
...
OAuth token save now promotes the first available chat model when no usable default exists. Default-model resolution and provider availability checks require Provider.enabled=true alongside credentials, so disabled Providers no longer return stale defaults. /models/enabled drops the single-Provider hard-code so OpenAI OAuth and other enabled chat models surface in selectors. Docker exposes the 1455 PKCE callback via MATECLAW_OAUTH_OPENAI_CALLBACK_BIND_HOST (default 127.0.0.1) and a port mapping; deployment mode stays Host-driven.
2026-05-12 09:58:30 +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