matevip
547adb30ee
feat(agent): producer-assigned content-kind tag on stream deltas
2026-08-04 22:49:34 -04:00
mateaix
a578c8ef0e
fix(stt): replace DashScope realtime WS replay with synchronous Qwen3-ASR HTTP recognition ( #580 )
2026-08-04 21:53:25 +08:00
matevip
54a2c3c0a3
fix(wecom): drop pre-tool rehearsal narrations from permanent bubbles
2026-08-04 06:14:55 -04:00
matevip
77dd866243
feat(agent): stale-status guard appended to every reasoning system prompt
2026-08-04 03:47:05 -04:00
matevip
29a1edc3b1
fix(chat): supersede pre-tool content segments by structure, not text patterns
2026-08-04 03:46:32 -04:00
matevip
046080d6aa
feat: thinking display overhaul — live think-tag extraction, real durations, default visibility, reconnect and team-note fixes
2026-08-03 05:56:16 -04:00
matevip
679f749959
chore: bump version to 2.1.0-SNAPSHOT
2026-08-03 03:22:32 -04:00
matevip
aeb84784f2
feat(llm): add explicit context windows for GLM-5V-Turbo and the Kimi coding alias
2026-08-03 03:15:19 -04:00
matevip
12c34c32a8
feat(llm): extend the built-in context-window table to the rest of the catalog
2026-08-02 23:59:37 -04:00
matevip
5ba92f3b87
feat(llm): resolve per-model context windows instead of the global 128k default
2026-08-02 23:39:31 -04:00
mateaix
bfd84fd5c3
fix(models): 成员角色可读取自己能绑定的 provider 选项 ( #570 )
...
绑定 Agent 首选 provider 是 member 权限的操作,但唯一能列出 provider 的
GET /api/v1/models 要求全局 admin(它带 base URL、请求参数、liveness 诊断等
连接配置)—— 成员写得了绑定,却读不到可选项。
员工编辑弹窗把这个 admin-only 请求放在没有单独兜底的 Promise.all 里,成员
打开时 403 会让整批请求失败:技能、工具、已有绑定、首选模型链全部加载不出来,
弹出通用加载错误。
新增 GET /api/v1/models/options —— 只返回 provider 的 id 和显示名,viewer
权限,过滤掉未配置项 —— 并让员工编辑弹窗改用它。/api/v1/models 保持全局
admin 限制不变。
2026-08-01 22:12:47 +08:00
mateaix
88660caec8
fix(test): 用生产配置初始化 system-setting 列名缓存
...
TableInfoHelper 写的是 JVM 级静态列名缓存,三个测试用原生 MyBatis Configuration
初始化,默认把属性映射成 camelCase 列名(settingKey 而非 setting_key),后写覆盖
先写,导致同一 surefire fork 内该实体的后续查询全部生成非法 SQL。
表现为 TeamControllerTest 抛 BadSqlGrammarException —— 而它本身并不查库:
R.ok() 通过先前 Spring 上下文测试装上的静态 I18nService 解析消息,后者会读
mate_system_setting 的语言设置。单跑该类通过,全量跑失败。
2026-08-01 20:34:07 +08:00
mateaix
7fb6ba7461
sync: v2.0.0 dev + 落盘文件按天分目录 ( #554 )
...
- 附件 / 生成媒体写入 {conversationDir}/yyyy-MM-dd/{storedName},serve URL 保持平铺
- 读取路径同时探测平铺与日期两种布局,可随时开关 mateclaw.chat.upload.date-folders
- 读取侧强制 storedName 为纯文件名;原始文件名回退取最近修改的匹配
- 修正 Linux / macOS / Windows 的路径与时间戳精度差异
2026-08-01 18:33:24 +08:00
matevip
bdfa8a6f9d
release: v2.0.0
2026-07-31 03:51:45 -04:00
matevip
91c9565f1f
fix(agent): stop stale ledger entries from suppressing repeated status queries
2026-07-31 02:37:27 -04:00
matevip
823efc0c36
feat(memory): surface per-user private memory copies in admin UI and tool results
2026-07-31 01:50:52 -04:00
matevip
ad6b0728e9
fix(channel): stop streaming replies from showing the same text twice
2026-07-29 21:29:48 -04:00
matevip
aaae3bf122
fix(channel): claim each inbound message once so redeliveries stop answering twice
2026-07-29 05:43:01 -04:00
matevip
9bc4741aa7
fix(channel): apply message filters on card streaming paths
2026-07-28 06:31:01 -04:00
matevip
a0f0e85eb6
fix(docker): copy the mem0 plugin POM so the Maven reactor can be built
...
The Dockerfile pre-copies module POMs for layer caching, but the list had
not been updated when mateclaw-plugin-mem0 was added to the root POM's
<modules>. Maven fails while constructing the reactor if a declared module
directory is missing, so `mvn -pl mateclaw-server -am dependency:go-offline`
aborted with "Child module /build/mateclaw-plugin-mem0 does not exist"
before it ever reached dependency resolution — every container build broke.
Copy the missing POM and note that this list must mirror the root POM's
<modules>, even for modules the image never builds. The module only makes
the reactor readable; it stays out of the `-pl mateclaw-server -am` build,
so the image is unchanged in size.
Fixes #566
2026-07-28 05:46:11 -04:00
matevip
fcf5f3960b
fix(agent): stop lossy-truncating retrieval tool results that must arrive whole
...
load_skill returns SKILL.md in full by design — it is the model's behavioral
contract, and pagination by default would let the model silently miss later
mandatory sections. read_file / readSkillFile / load_skill are therefore on
the spill-exclusion list so their output is never replaced by a disk pointer.
The exclusion only covered half the path. In spillRawOrTruncate, an excluded
tool's result came back from persistIfOversized unchanged (no spill), failed
the SPILL_MARKER_PREFIX check, and fell through to truncateToolResult(8000) —
so an 8261-char SKILL.md was hard-cut through the middle and stamped with a
'[TRUNCATED: ... middle omitted]' marker. Weaker models ignore the attached
fidelity note and fabricate the removed span, inventing tool calls against
endpoints the skill never described.
- spillRawOrTruncate now returns retrieval-excluded results raw; the per-turn
aggregate budget stays the backstop.
- Outsized SKILL.md degrades to resumable pagination instead of an unbounded
inline dump. Never a lossy middle-cut.
2026-07-28 05:06:24 -04:00
mateaix
3643aed756
fix(team): gate pending-task auto-claim to the assignee; expose attach in tool schema
2026-07-26 12:35:51 +08:00
mateaix
daa2c8b9ac
docs: 2.0.0 release documentation — agent teams guide, feature doc updates, README and site refresh
2026-07-26 11:58:59 +08:00
mateaix
2ed0d7d04f
feat(memory): thread ownerKey through post-turn sync for per-owner writes
2026-07-26 11:07:04 +08:00
mateaix
f9fcf35dc7
chore(memory): backport bundled Mem0 docs source and align plugin code style with repo conventions
2026-07-26 10:56:27 +08:00
Lcos
396cdb175b
feat(memory): add Mem0 as an optional external plugin memory provider
...
Extend the plugin memory SPI with a three-arg prefetch(agentId, userQuery, ownerKey) default method and forward ownerKey through PluginMemoryBridge, enabling per-owner isolated recall for external providers. Ship mateclaw-plugin-mem0: an optional, zero-extra-dependency plugin that bridges a self-hosted Mem0 service (semantic recall via /memories/search/, async turn sync via /memories/) with full fault isolation — not part of the default stack. Includes 42 tests and bilingual user docs.
2026-07-26 10:52:01 +08:00
mateaix
7fb23e5404
fix(team): fresh event-stream subscriptions deliver live events only, no stale replay
2026-07-26 10:40:17 +08:00
mateaix
b6326daaf8
feat(team): windowed task board — paged terminal columns with true totals and database-side status counts
2026-07-26 10:17:47 +08:00
mateaix
2cbe00a1e7
feat(team): plan-execute leads orchestrate through the task board — hand-off bridge, resume gate and step dependencies
2026-07-25 22:22:38 +08:00
mateaix
c15e51b34b
feat(team): collaboration observability — live event channel, task timeline, prerequisite hand-off and readable validation errors
2026-07-25 19:57:57 +08:00
mateaix
251a3288dd
feat(team): execution hardening, task deliverables and run transcript visibility
2026-07-25 14:32:49 +08:00
matevip
bc867f0cbb
feat(ui): agent teams page with team management, kanban board and role-aware member views
2026-07-24 17:38:44 +08:00
matevip
5e380a1b3c
feat(team): admin REST API for teams, membership and the task board
2026-07-24 17:38:23 +08:00
matevip
8fa10e3769
feat(team): team_tasks tool with role gating and team context injection into agent prompts
2026-07-24 17:38:02 +08:00
matevip
86e65beafe
feat(team): auto-dispatch assigned tasks to member agents and announce settled results to the lead
2026-07-24 17:37:33 +08:00
matevip
626c3a2fae
feat(team): team registry, membership and shared task board with guarded state transitions
2026-07-24 17:37:04 +08:00
matevip
728ed53062
feat(skill): scope agent runtime skill resolution to the conversation workspace
2026-07-24 14:12:08 +08:00
matevip
f715e8ffc0
feat(skill): add workspace-scoped runtime skill resolution overloads
2026-07-24 11:06:37 +08:00
matevip
67301c5f7c
feat(skill): scope skill dedup, name uniqueness and reinstall/uninstall lookup by workspace
2026-07-24 10:27:32 +08:00
matevip
c18ff31ae8
feat(skill): scope skill workspace filesystem paths by workspace to isolate same-named skills
2026-07-24 10:26:57 +08:00
matevip
e294b32542
feat(channel): scope conversation ids by channel to stop cross-workspace bleed
2026-07-23 18:50:10 +08:00
matevip
130112c5bf
fix(ui): read the correct localStorage key for USER-scope always-approve
2026-07-23 14:59:08 +08:00
matevip
e2747df2c5
feat(channel): /model magic command for per-conversation model switching (restore)
2026-07-23 11:49:28 +08:00
matevip
49f7a74386
fix(approval): persist the real pendingId on guard audit rows
2026-07-23 11:46:22 +08:00
matevip
8174006b01
feat(approval): reject dead grant configurations at creation
2026-07-23 11:46:15 +08:00
matevip
be7b236cb5
feat(ui): surface the auto-approve outcome on audit rows with a create-grant shortcut
2026-07-23 11:46:09 +08:00
matevip
aa54058e31
feat(ui): scope-typed pickers and severity-ceiling hints on the auto-approve grant form
2026-07-23 11:45:42 +08:00
matevip
1bb81234d0
feat(approval): classify auto-approve misses and persist the outcome on guard audit rows
2026-07-23 11:44:21 +08:00
mateaix
a4ee953d31
feat(channel): /model magic command for per-conversation model switching
2026-07-22 22:27:34 +08:00
matevip
8f2d76965b
test(channel): cover execution metadata persisted on the IM sync path
2026-07-22 18:10:45 +08:00