Commit Graph

1260 Commits

Author SHA1 Message Date
taobig
2090d09704 fix(goal): preserve continuation instructions and verified progress
Keep autonomous prompts separate from persisted user messages while retaining
conversation history and queued user attachment routing. Carry verified
checklist evidence across segments and evaluate only changed criteria.

Cancel model streams without interrupting checkpoint database writes. Fence
late worker admission during shutdown, persist accepted queued messages and
attachments, and leave interrupted execution leases recoverable.

Add regressions for prompt selection, cumulative evidence, cancellation I/O,
queued input durability and shutdown recovery. Verify 250 focused tests,
200 real General Assistant conversation rounds, 12 checkpoints across 13
autonomous segments, and pause/resume/disconnect/restart boundaries.
2026-08-26 06:17:05 -04:00
taobig
2fa2e60170 feat(goal): persist continuous execution across bounded turns
- Add a database-backed supervisor with durable scheduling, fenced leases,
  cooldowns, bounded worker concurrency and expired-lease restart recovery.
- Default new goals to persistent execution with zero meaning unlimited
  cumulative budget; preserve legacy goals and explicit positive limits.
- Yield bounded graph segments to the supervisor instead of ending unfinished
  goals at graph-local continuation limits. Require persisted checklist
  evidence before accepting completion, including concurrent criterion edits.
- Share conversation admission across interactive and background execution;
  preserve partial replies, usage and queued user input during interruption.
- Persist Stop and missing-input pauses, respect approval boundaries, and
  commit resume and approval-denial transitions with correct transactions.
- Retry identifiable transient failures with backoff; retain visible pauses
  for budget limits and errors that require review instead of replaying tools.
- Expose owner-authorized execution status and reconnectable scheduling events;
  add H2, MySQL and Kingbase migrations, API types and bilingual documentation.

Validation: 298 focused backend tests passed, including persistence, restart
scheduling, approval races, cancellation, admission and existing runtime tests.
Frontend type checking, bundled-doc parity and ID precision checks passed.
V188 is registered and all three dialects have unique migration versions;
the migration-map audit still reports 95 pre-existing missing registrations.

Scope: single-backend native runtime. Recovery checks existing state before
repeating effects; this does not promise exactly-once external tool execution.
2026-08-26 05:46:15 -04:00
matevip
fb94027038 fix(dsh): isolate runtime child environment 2026-08-26 05:13:55 -04:00
matevip
987bc2001a fix(agent): complete long-form responses reliably 2026-08-24 04:16:57 -04:00
matevip
e88be95cd2 fix: pass workspace context to tool guard (#617) 2026-08-24 02:43:57 -04:00
mateaix
dd7e561e48 fix(agent): harden tool completion and team retries (#606) 2026-08-23 21:43:35 +08:00
matevip
14df331ce6 fix: resolve workspace context for file mutations (#617) 2026-08-21 22:05:26 -04:00
matevip
8d32a60fdb fix(files): restrict generated downloads by workspace (#611) 2026-08-21 06:06:59 -04:00
matevip
bdd51e7b44 fix(conversation): isolate shared conversations (#616) 2026-08-21 05:49:28 -04:00
matevip
c1ba390f25 fix(runtime): scope live admin view to workspace (#615) 2026-08-21 05:03:44 -04:00
matevip
37ddcf185f fix(team): pass lead attachments to workers (#612) 2026-08-21 04:47:03 -04:00
matevip
9ba188b4cb fix(wiki): reject reserved page types (#601) 2026-08-21 02:49:47 -04:00
matevip
770198ba69 fix(team): reject clarifying worker results (#610) 2026-08-20 23:09:22 -04:00
matevip
1eabbb68ac fix(team): allow admins to read completed worker runs (#596) 2026-08-20 03:26:15 -04:00
matevip
656a0b0436 fix(acp): support configurable prompt timeout (#608) 2026-08-20 02:58:09 -04:00
matevip
5b3285c78f fix: expose plugin tools in agent picker (#604) 2026-08-20 02:22:35 -04:00
matevip
e9b3c1697f fix(team): attach generated deliverables from worker replies (#606) 2026-08-20 02:11:48 -04:00
matevip
d1a553ed77 fix(agent): stop repeated plan skill loads (#606) 2026-08-20 01:51:56 -04:00
matevip
281ea53551 fix(models): restore disabled custom providers 2026-08-19 23:16:28 -04:00
matevip
1159dcdbf3 feat(a2a): add agent interoperability protocol support
Add an A2A JSON-RPC endpoint with authenticated message/send, message/stream, tasks/get, and tasks/cancel handling. Expose anonymous minimal Agent Cards while keeping the enabled-agent skills list behind existing Bearer authentication.

Bridge inbound calls into the existing agent runtime, add an in-memory task store with duplicate task rejection, JSON-RPC idempotency snapshots, terminal TTL cleanup, and SSE status/artifact event streaming with heartbeat comments.

Add the call_a2a_agent tool and peer adapter with Agent Card discovery fallback, blocking task polling through tasks/get, event-boundary SSE parsing, response caps, timeout limits, redirect refusal, and private-network SSRF protection.

Wire mateclaw.a2a configuration, document deployment settings in English and Chinese, mirror bundled docs, and cover task storage, JSON-RPC validation, card privacy, lifecycle/cancel behavior, SSE parsing, and outbound guardrails with focused tests.
2026-08-19 05:36:51 -04:00
matevip
a8a0b75bfa fix(dsh): complete cancellable runtime stream lifecycle; make JSON-RPC streaming asynchronous; terminate process trees and inherited pipes; handle cancellation races; propagate usage telemetry; add regression coverage 2026-08-19 04:30:06 -04:00
matevip
5660c72e1a fix(agent): isolate DSH prompt sessions 2026-08-18 05:47:48 -04:00
matevip
98d0bb7780 docs: add DeepSeek Harness integration guides 2026-08-18 05:35:37 -04:00
matevip
473ed5786e feat(agent): integrate DeepSeek Harness runtime 2026-08-18 05:25:22 -04:00
mateaix
d2df5c2797 feat(office): add optional OfficeCLI engine (#583) 2026-08-17 20:28:40 +08:00
mateaix
81c6f4aece fix(chat): gracefully terminate active tool runs
Stopping a conversation previously disposed the outer reactive stream without reliably cancelling synchronous tool callbacks running on worker threads. Shell commands, skill scripts, and Playwright sessions could therefore outlive the visible chat turn.

Propagate cancellation through run-scoped hooks, interrupt active tool execution and parallel batches, terminate subprocess trees, close per-conversation browser sessions, and wait briefly for final stream persistence before acknowledging Stop.

Expose an explicit interrupting state in the chat input to block duplicate stop clicks and show progress, with regression coverage for cancelling an in-flight synchronous tool callback.
2026-08-16 16:26:10 +08:00
mateaix
6e8e7db31e fix(team): make checkpoint evidence idempotent 2026-08-16 15:59:26 +08:00
mateaix
fb7cb6c04a fix: enforce team deliverable completion gates 2026-08-16 15:10:56 +08:00
mateaix
cc0661c07c fix(team): harden checkpoint loops and board recovery 2026-08-16 14:42:39 +08:00
mateaix
3424efc6a7 fix(team): harden long-running collaboration 2026-08-16 13:14:16 +08:00
mateaix
03b6e9d2d8 release: v2.1.0 2026-08-15 17:17:51 +08:00
matevip
0e534476a3 fix: align generateKwargs reserved key readers 2026-08-15 01:37:32 -04:00
NhaNT
265728bab7
fix: forward generateKwargs passthrough keys
Forward unrecognized OpenAI-compatible generateKwargs keys through extraBody while reserving documented provider control keys such as modelsPath.\n\nVerification:\n- cd mateclaw-server && mvn -pl . test -Dtest=OpenAiCompatibleChatModelBuilderTest,ModelDiscoveryServiceTestPromptTest\n- cd mateclaw-ui && node --max-old-space-size=6144 ./node_modules/vue-tsc/bin/vue-tsc.js --noEmit
2026-08-15 01:32:03 -04:00
matevip
9a3b95df53 fix(team): unify Team Run delivery experience (#596) 2026-08-15 00:37:08 -04:00
matevip
f629b04f2a fix(agent): cache runtime tool name lookups 2026-08-14 04:50:13 -04:00
matevip
50c6eb92f9 fix(agent): refresh context previews without MCP hot-path scan 2026-08-14 04:34:51 -04:00
matevip
d1592cc922 fix(team): stabilize runs and compact markdown delivery 2026-08-14 03:25:47 -04:00
matevip
dc3506f748 feat(team): unify team run experience (#596) 2026-08-13 07:00:24 -04:00
matevip
bd35f28dad fix(wiki): preserve knowledge base ids in tool inputs 2026-08-13 04:04:30 -04:00
matevip
c4751ea69c fix(tools): preserve cron job id tool inputs 2026-08-13 04:01:32 -04:00
matevip
7a34f3a502 fix(tools): preserve datasource id tool inputs 2026-08-13 03:58:05 -04:00
matevip
7bf18e6af8 fix(wiki): preserve agent id tool inputs 2026-08-13 03:56:03 -04:00
matevip
b1f3332ae1 fix(memory): preserve remaining agent id tool inputs 2026-08-13 03:53:27 -04:00
matevip
cabff7e498 fix(memory): preserve session search agent id 2026-08-13 03:51:42 -04:00
matevip
06105faa4d fix(memory): preserve agent id in tool inputs 2026-08-13 03:45:57 -04:00
matevip
b8a8aac7f9 fix: preserve agent id precision in memory tools 2026-08-13 03:08:44 -04:00
matevip
ba0e4506b7 feat(browser): harden browser automation reliability 2026-08-12 06:02:36 -04:00
倪程伟
0ae8552f5a
fix(webchat): harden stream cleanup and timeout handling
Normalize stream idle timeout overrides, make WebChat orphan cleanup use exact run handles so stale callbacks cannot mutate replacement runs, and preserve approval replay usage metadata with regression coverage.
2026-08-12 02:08:59 -04:00
matevip
438d8d26ae fix(team): keep task runs in team workspace (#596) 2026-08-11 06:00:00 -04:00
matevip
071fff76ab fix(agent): enforce tool-backed action completion 2026-08-11 05:31:44 -04:00
倪程伟
a11c7ccb52
log(webchat): raise SSE timeout and error lifecycle logs
Raise WebChat SSE timeout and non-benign error lifecycle logs to INFO while keeping routine client disconnects at DEBUG, preserving detach-based subscriber lifecycle semantics.
2026-08-11 03:45:24 -04:00
倪程伟
55cf53b9b4
fix(webchat): detach SSE subscribers and reclaim orphan runs
Use detach rather than complete for WebChat SSE disconnect callbacks, add an orphan-run grace policy for subscriberless active runs, and emergency-save partial assistant output when reclaimed.
2026-08-11 03:42:43 -04:00
倪程伟
e9c08edb3a
fix(webchat): close SSE streams on done or error
Close WebChat subscriber SSE connections when the logical stream reaches done/error, make the emitter timeout configurable, and ensure stale-run eviction closes subscribers instead of leaving clients waiting.
2026-08-11 03:39:56 -04:00
倪程伟
ddb6a837ea
fix(llm): add stream body idle timeout
Apply a Reactor inter-frame idle timeout at the streaming chat chokepoint so half-open provider body streams surface through the normal retry/failover path. Also keep the HTTP timeout documentation accurate and cover the behavior with focused tests.
2026-08-11 03:38:46 -04:00
matevip
7563d2dd19 fix(tts): surface provider response diagnostics (#555) 2026-08-10 22:40:38 -04:00
mateaix
b196dc73fd feat(sessions): add batch deletion (#581) 2026-08-10 22:13:29 +08:00
mateaix
197e697173 fix(stt): repair DashScope audio decoding (#580) 2026-08-10 21:43:02 +08:00
matevip
ce7f0847fb fix(agent): preserve tool use after compaction 2026-08-10 05:39:08 -04:00
mateaix
5e96dade9c fix(llm): preserve numeric tool schemas (#594) 2026-08-09 21:31:42 +08:00
mateaix
763fb554da fix(team): enforce workspace isolation (#593) 2026-08-09 21:00:29 +08:00
mateaix
54eb77d7c7 feat(feishu): show streaming execution progress 2026-08-09 20:34:54 +08:00
mateaix
8dc6c64683 perf(agent): add progressive tool bridge 2026-08-09 19:39:45 +08:00
mateaix
a204e8eec8 fix(self-evolution): harden lifecycle and plan loops 2026-08-09 18:13:24 +08:00
matevip
c72c8b48e4 fix(skill,agent): curation observation anchor, per-skill adoption, and empty plan-summary fallback 2026-08-07 05:12:33 -04:00
matevip
99c18b968a fix(chat): persist planning reasoning, dedupe the plan summary, normalize metadata reads 2026-08-06 07:09:32 -04:00
matevip
e8d5e73825 fix(cron): persist the delivery channel and target when a job is edited 2026-08-06 06:35:26 -04:00
matevip
ed7f6f5c19 feat(chat): add reasoning retention controls and a linear trajectory export 2026-08-06 05:48:28 -04:00
matevip
22c49f3a07 fix(chat): keep every iteration reasoning and render the timeline in emission order 2026-08-06 05:13:09 -04:00
matevip
30560eb7cf fix(chat): classify pre-tool narration by observation count, not iteration budget 2026-08-06 02:39:03 -04:00
matevip
48a7b979df test(skill): use placeholder bodies in credential-redaction fixtures 2026-08-06 01:55:48 -04:00
matevip
e22173a476 feat(skill): close the self-evolution loop — auto-bind, routine mining, curation provenance and restore points 2026-08-06 01:51:22 -04:00
matevip
9dd58053c0 feat(channel): proactive channel-session message push + cron delivery target picker 2026-08-05 05:51:59 -04:00
matevip
4c9394a86f fix(stt): surface endpoint, status and body diagnostics on STT failures (#580) 2026-08-05 04:26:30 -04:00
matevip
fefb3b25b8 feat(chat): live pre-tool narration collapse via segment_kind SSE event 2026-08-04 22:51:12 -04:00
matevip
32dd6e7911 fix(channel): sync-path IM channels stop relaying pre-tool rehearsals verbatim 2026-08-04 22:50:42 -04:00
matevip
8a7a04ee1f refactor(channel): shared provisional-narration tracker as the single supersede authority 2026-08-04 22:50:12 -04:00
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
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