Commit Graph

515 Commits

Author SHA1 Message Date
matevip
3f289da6b7 feat(tool/image,video): image edit support + new DashScope models (#75) 2026-05-08 22:05:06 +08:00
matevip
1605146931 fix(workflow/draftgen): teach prompt Pebble logical operator syntax 2026-05-08 15:09:29 +08:00
matevip
2804905500 fix(workflow,trigger): template preview-compile + 3 alpha consistency cleanups 2026-05-08 15:09:14 +08:00
matevip
2416d603c4 fix(workflow,trigger): generator triggerDrafts loop closure + 5 paper cuts 2026-05-08 15:09:06 +08:00
matevip
826c20639a feat(workflow): natural-language → workflow draft generator + agent tool 2026-05-08 15:08:58 +08:00
matevip
dcf1f56944 fix(workflow,trigger): fan_out isolation + workspace spoof + approval→resume bridge + payload strict + draft clear 2026-05-08 15:08:41 +08:00
matevip
3ed540e6eb feat(workflow,trigger): async dispatch + GC schedulers + trigger list polish 2026-05-08 15:07:55 +08:00
matevip
ed64cda043 fix(workflow): PublishContext arg order + drop workspace-agnostic agent fallback 2026-05-08 15:07:32 +08:00
matevip
231724d6a9 feat(agent,trigger): wire agent_lifecycle as a real event source 2026-05-08 15:07:18 +08:00
matevip
dae74cf26c feat(channel,trigger): wire channel_message + content_match event sources 2026-05-08 15:07:11 +08:00
matevip
87727414d5 feat(workflow,trigger): wire workflow_completion as a real event source 2026-05-08 15:06:53 +08:00
matevip
e3af03645b feat(workflow): wire await_approval into the approval inbox 2026-05-08 15:06:46 +08:00
matevip
2a803d2904 fix(trigger): honest fireCount + last_error via DispatchResult 2026-05-08 15:06:28 +08:00
matevip
dac774f15e feat(workflow): trigger workspace isolation + step property editor + custom dialogs 2026-05-08 15:06:16 +08:00
matevip
844a64ad37 fix(workflow): hard-delete + blank-draft compile + canvas blank pane 2026-05-08 15:05:53 +08:00
matevip
20884c1773 feat(workflow): payload fs fallback for medium-size payloads 2026-05-08 15:05:28 +08:00
matevip
e09c62b529 feat(trigger): match pattern_json before fan-out + periodic sync 2026-05-08 15:05:20 +08:00
matevip
05a2caa47c fix(workflow): tighten workspace isolation across CRUD / run / resume 2026-05-08 15:05:13 +08:00
matevip
67c0efe8ae feat(workflow): add publish API + workflow / trigger REST controllers 2026-05-08 15:04:55 +08:00
matevip
ce08b311d3 feat(trigger): add event ingest pipeline with dedup / rate limit / bot-self 2026-05-08 15:04:48 +08:00
matevip
54b12f5270 feat(trigger): add cron trigger engine with lamport coordination 2026-05-08 15:04:41 +08:00
matevip
67279bb9c9 feat(workflow): add write_memory adapter with four merge strategies 2026-05-08 15:04:33 +08:00
matevip
7c3c68bcfe feat(workflow): add dispatch_channel adapter for multi-channel delivery 2026-05-08 15:04:26 +08:00
matevip
48559343e2 feat(workflow): add await_approval pause / resume to the runtime 2026-05-08 15:04:16 +08:00
matevip
4e457c2e8b feat(workflow): add linear runtime for the four base step modes 2026-05-08 15:04:07 +08:00
matevip
3065d095fd feat(workflow): add publish-time compiler for the linear step DSL 2026-05-08 15:03:53 +08:00
matevip
f3b1cba6dc fix(conversation): render image/video/audio attachment markers for LLM (#66) 2026-05-08 15:03:42 +08:00
matevip
d87ed0365a feat(workflow): add foundational schema for workflow runtime 2026-05-08 15:03:34 +08:00
matevip
91e93e8831 feat(wiki): circuit-breaker for failing embedding provider (#72) 2026-05-08 15:03:19 +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
2af2620b4c fix(tool/mcp): split full URL into base + endpoint for HTTP transports (#70) 2026-05-08 15:03:03 +08:00
matevip
d13637f778 fix(skill/mcp): preserve Chinese MCP server names in zh-CN skill list (#65) 2026-05-08 15:02:56 +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
b63d83a596 feat(wiki): circuit-breaker for failing embedding provider (#72) 2026-05-07 16:39:39 +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
274aeb7695 fix(tool/mcp): split full URL into base + endpoint for HTTP transports (#70) 2026-05-07 14:39:27 +08:00
matevip
c830dd902c fix(skill/mcp): preserve Chinese MCP server names in zh-CN skill list (#65) 2026-05-07 14:25:32 +08:00
matevip
c82bf4d18f feat(tool/document): generate xlsx, pptx, pdf documents from markdown 2026-05-07 13:59:28 +08:00
matevip
a65aaa7aa4 fix(tool/extract): route xlsx/pptx extraction directly through Tika 2026-05-07 13:59:20 +08:00
matevip
ad1264ff51 fix(skill): refuse mutating MCP/ACP virtual skills and hide their card-level edit affordance 2026-05-07 08:18:00 +08:00
matevip
5cb82ed8f8 feat(agent,mcp): validate tool bindings on save and keep returnDirect raw-name config working 2026-05-07 08:17:53 +08:00
matevip
9adcc0a2a8 feat(skill,tool): expose MCP-derived skills and tools through the agent picker endpoints 2026-05-07 08:17:38 +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
d58fd0c3fd fix(task): gate every worker completion branch with isConversationCanceled 2026-05-06 17:40:47 +08:00
matevip
01c8765c96 fix(task): cancel running async workers on conversation delete to prevent orphan writes 2026-05-06 16:45:31 +08:00
matevip
bf8a533b19 fix(approval): clear in-memory pendingMap on conversation delete via domain event 2026-05-06 16:45:23 +08:00
matevip
73d69c1dfe fix(conversation): cascade-clean orphan rows on conversation delete 2026-05-06 16:45:16 +08:00
matevip
0665a6be09 fix(mcp): expand JVM system properties in stdio args/env/cwd 2026-05-05 15:21:20 +08:00
matevip
fd05c3c9e1 fix(llm): record token usage on ChatGPT OAuth chat turns 2026-05-05 15:21:14 +08:00
DayByDay
a77f632c0a
fix(mcp): support Java system property placeholders in env expansion
Resolve ${user.home} and other JVM system properties in MCP server env, headers, and cwd — previously only OS env vars were expanded, causing the filesystem MCP server to fail on Windows where $HOME isn't set.
2026-05-05 14:54:54 +08:00
matevip
10fe511d48 chore(mcp): revert McpClientManager polish to enable PR #60 merge
Temporarily restore McpClientManager.java to its pre-#60 state so the
contributor's PR can squash-merge cleanly with their authorship preserved.
The args-expansion follow-up will land as a separate commit right after.
2026-05-05 14:53:58 +08:00
matevip
609da7029f fix(mcp): expand JVM system properties in stdio args/env/cwd 2026-05-05 14:46:08 +08:00
matevip
bbf978ed89 fix(image): handle data: URLs and broadcast sync image-gen completion 2026-05-05 13:06:53 +08:00
matevip
66510c96fa fix(image): set stream=true on ChatGPT OAuth /codex/responses request 2026-05-05 13:06:46 +08:00
matevip
80cb3c84eb fix(agent): decouple framework recursion limit from per-agent max_iterations 2026-05-05 13:06:40 +08:00
matevip
0f388382a2 feat(image): gpt-image-2 generation through ChatGPT subscription OAuth 2026-05-05 13:06:26 +08:00
matevip
704c6317e3 feat(llm): live model discovery for ChatGPT OAuth provider 2026-05-05 13:06:19 +08:00
matevip
bf7bc73f5f fix(llm): JSON body + 403/404 status mapping for OpenAI device code 2026-05-05 13:06:11 +08:00
matevip
e9a11f8db4 fix(chat): persist empty assistant turns 2026-05-05 11:12:45 +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
eb64556636 fix(wiki): skip per-turn retrieval for continuation messages + drop weak tail hits 2026-05-04 20:54:44 +08:00
matevip
2e0ff8f90f fix(agent): unblock multi-role parallel delegation + propagate force-stop 2026-05-04 20:54:38 +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
DayByDay
1aa7787ced
fix(mcp): clear stale MCP connection errors
Update MCP server status with an explicit wrapper so successful reconnects can persist lastError=null while keeping updateTime refreshed.
2026-05-04 14:16:43 +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
6fe9b6e5f7 fix(llm): skip Ollama auto-discovery network probe when provider disabled 2026-05-03 20:32:17 +08:00
matevip
7d02841d1d fix(chat): per-event SSE ids for safe reconnect dedup + queue race recovery 2026-05-03 19:57:06 +08:00
matevip
a2c96946e3 fix(repetition-detector): catch markdown-list duplication separated by transition paragraph 2026-05-03 17:15:33 +08:00
matevip
a5e7f82a69 fix(cron): self-heal missing tasks_<wsId> conversation row before saving messages 2026-05-03 17:15:25 +08:00
matevip
74edc09b2b feat(backstage): admin runtime console for live agent visibility + force-recycle 2026-05-03 17:15:17 +08:00
matevip
66f09a968a feat(chat-stream): streaming UX overhaul + multi-agent stability layer 2026-05-03 17:15:02 +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
03a82ece93 fix(wiki): retry route LLM call once with strict-JSON correction when first response isn't JSON 2026-05-03 09:12:51 +08:00
matevip
912a6336d3 fix(wiki): also remove the upload file from disk when a raw material is deleted 2026-05-03 09:12:44 +08:00
matevip
b0ca4c06d4 fix(wiki): cascade-delete pages + chunks when a raw material is removed 2026-05-03 09:12:32 +08:00
matevip
41ed929882 fix(wiki): deterministic, health-aware chat-LLM fallback 2026-05-02 23:31:48 +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
c60fc4cf83 feat(wiki): one-hop chat-LLM fallback when the primary provider is wedged 2026-05-02 21:46:22 +08:00
matevip
ac654f3957 feat(wiki): add Zhipu GLM-V and Volcano Doubao vision providers 2026-05-02 21:46:15 +08:00
matevip
2ae8758cd1 feat(wiki): admin endpoints for hot cache — get / regenerate / reset 2026-05-02 21:46:02 +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
93807d85ef feat(wiki): inject KB hot cache into agent system prompt via MemoryProvider SPI 2026-05-02 21:45:49 +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
44ea8c784b fix(wiki): skip vision pipeline entirely when wiki.ocr.enabled is off 2026-05-02 19:05:05 +08:00
matevip
f910d762a3 feat(wiki): feature-flag toggle UI + defer extracted_text cache when vision unavailable 2026-05-02 19:04:58 +08:00
matevip
bcefe43234 feat(wiki): inline image refs in search results + click-to-zoom lightbox 2026-05-02 19:04:51 +08:00
matevip
51995275bd feat(wiki): caption inline PDF images via the vision-in pipeline 2026-05-02 19:04:45 +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
6f0ead162e feat(wiki): instrument compile / relation / retrieval with WikiMetrics 2026-05-02 19:04:19 +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
19b82cdc2a feat(wiki): add WikiMetrics gateway for compile/relation/retrieval/vision 2026-05-02 19:03:59 +08:00
matevip
bc417d00ef chore: neutralize internal references in code comments and migrations 2026-05-02 15:42:10 +08:00
matevip
2246df9d09 fix(agent): allow PUT modelName=null to revert to global default 2026-05-02 15:42:04 +08:00
matevip
cbc34a12c9 docs(mcp): align /tools javadoc with HTTP 200 + biz-code convention 2026-05-02 15:41:53 +08:00
matevip
a8d94681e5 fix(auth): suppress tokenHash from PAT JSON responses 2026-05-02 15:41:47 +08:00
matevip
9411dfff7b fix(auth): move PersonalAccessTokenMapper under repository/ for @MapperScan 2026-05-02 15:41:41 +08:00
matevip
3c33422a08 feat(auth): personal access tokens for headless / CI integration 2026-05-02 15:41:34 +08:00
matevip
4522dfaebc feat(channel): MediaPathGuard utility for unified media validation 2026-05-02 15:41:27 +08:00
matevip
ab62f26ae0 feat(delegate): inherit parent conversation context into child agent 2026-05-02 15:41:20 +08:00
matevip
22231e28a7 feat(hook): HMAC-SHA-256 body signing for outbound webhooks 2026-05-02 15:41:13 +08:00
matevip
25e93c4a89 feat(cron): suppressAgentReply flag for silent cron jobs 2026-05-02 15:41:06 +08:00
matevip
55f4ba1195 feat(llm): per-Model HTTP read-timeout override 2026-05-02 15:40:59 +08:00
matevip
0c7554212b feat(mcp): GET /mcp/servers/{id}/tools surfaces discovered tools 2026-05-02 15:40:53 +08:00
matevip
311cad7ea6 feat(agent): cap tool_calls per single LLM response 2026-05-02 15:40:45 +08:00
matevip
82ed239b5b feat(shell-tool): honor user $SHELL on POSIX 2026-05-02 15:40:38 +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
b0f5dadbe6 fix(feishu): default-on image download for vision pipelines 2026-05-02 15:40:17 +08:00
matevip
fcab47ffb9 fix(feishu): split long messages instead of silent truncate 2026-05-02 15:40:11 +08:00
matevip
eaacb3a78f fix(agent): include tools schema in context-window budget 2026-05-02 15:40:03 +08:00
matevip
c2ebe51f63 fix(plan): per-step wall-clock timeout (default 10 min) 2026-05-02 15:39:57 +08:00
matevip
c4f2117a23 fix(agent): tolerate LLM-mangled tool names 2026-05-02 15:39:49 +08:00
matevip
ba167e09f4 perf(skill): startup snapshot + builtin scan skip + prompt slim-down 2026-05-02 00:12:39 +08:00
matevip
f0fbca803c feat(skill): wizard multi-file bundle + secret store + starter library 2026-05-01 22:39:23 +08:00
matevip
28c3b0e62f feat(model3d): Tencent Hunyuan 3D provider — Pro/Rapid action routing + <model-viewer> preview 2026-05-01 22:39:13 +08:00
matevip
e3ab06d57c feat(generative): unified async pipeline + live SSE delivery for music/video/image 2026-05-01 20:15:20 +08:00
matevip
1f368336de fix(wecom): listener identity dedup + cancel ghost reconnect on self-initiated close 2026-05-01 20:15:13 +08:00
matevip
e5dff7acb1 fix(acp): detect keychain OAuth hijack on claude-code 'Request not allowed' 2026-05-01 20:15:01 +08:00
matevip
3d0797787b fix(agent): align skill tool whitelist with real @Tool method names + restore globally-promised tools 2026-05-01 20:14:56 +08:00
matevip
888200e1cd feat(acp): visual env editor with per-endpoint key suggestions 2026-05-01 20:14:49 +08:00
matevip
5e6764ecf1 fix(skill): tool-gate whitelist + markdown link host normalization
When an agent had any skill bound, the runtime tool gate was silently
hiding @Tool beans that aren't declared in any skill manifest, even
though the global system prompts (SOUL.md / "Web Search Capability" /
"File Reading Guidelines") explicitly tell the LLM these tools are
available. Result: the model would call search / renderDocx / read_file
/ etc., hit "Tool not found", then either give up or fall back to
unhelpful behaviour (e.g. dumping markdown text instead of producing a
.docx download).

This commit:

- Adds universally-promised, agent-wide tools to SYSTEM_LEVEL_TOOLS so
  they bypass the manifest restriction: document/media generation
  (renderDocx*, image_generate, music_generate, video_generate),
  global capability tools the system prompt mentions (search,
  browser_use, read_file / write_file / edit_file /
  execute_shell_command, detect_file_type, extract_*_text,
  readMateClawDoc), skill discovery siblings (listSkillFiles,
  listAvailableSkills), and the delegate triplet (delegateToAgent,
  delegateParallel, listAvailableAgents).

- Fixes 5 entries in the prior whitelist whose names did not match
  any real @Tool bean and were therefore silently dead:
    read_workspace_file   -> read_workspace_memory_file
    write_workspace_file  -> write_workspace_memory_file
    list_workspace_files  -> list_workspace_memory_files
    delegate_agent        -> delegateToAgent
    datetime              -> getCurrentDate / getCurrentDateTime / getCurrentTime
  Also adds the missing edit_workspace_memory_file.

- In the chat markdown renderer, strips any hallucinated
  https?://<host> prefix from /api/v1/files/generated/<id> download
  links before building the <a href>. Multiple LLMs have been
  observed prepending bogus hosts when echoing tool-returned download
  URLs back to the user, breaking the click. One-line defensive
  normalization independent of which model is in use.

Verified end-to-end on a previously-broken agent: search / browser_use
/ execute_shell_command / renderDocx all dispatch correctly now and
the final markdown link is a clean same-origin path. 36 whitelist
entries cross-checked against real @Tool method names.
AgentBindingServiceTest green.
2026-05-01 12:24:25 +08:00
matevip
efb91796fb feat(skill): pixelarticons icon library + picker component 2026-05-01 09:52:12 +08:00
matevip
f8069b1b5d fix(skill): /skills/counts includes virtual MCP rows in MCP and All badges 2026-05-01 09:51:58 +08:00
matevip
7dd70ecd2f feat(activity): real pagination + frosted-glass styling 2026-05-01 09:51:07 +08:00
matevip
b321d5792e fix: address review comments (4 items) 2026-05-01 09:50:53 +08:00
matevip
b759eb8719 feat(skill): MCP-Skill bridge + system tool dedup + Lessons i18n 2026-05-01 09:50:45 +08:00
matevip
f8524bf122 fix(skill): blank Tools / Features / Memory detail tabs 2026-05-01 09:50:32 +08:00
matevip
0b6d9faaf3 feat(skill): type=acp delegates to ACP endpoint 2026-05-01 09:50:18 +08:00
matevip
b8ce36f6cd feat(activity): three-source merged feed + detail drawer 2026-05-01 09:50:11 +08:00
matevip
e74f273ae2 feat(skill): card surface — Source / Used-by / Lessons count 2026-05-01 09:49:51 +08:00
matevip
442ffa9c9e fix(skill): clean separation of install / uninstall / hard-delete 2026-05-01 09:49:44 +08:00
matevip
7ca568c69b fix(skill): knowledge wrappers + provider routing + feature gates 2026-05-01 09:49:37 +08:00
matevip
38b66a2416 fix(cron): dedup scheduled jobs + connection pool guard (issue #50) 2026-05-01 09:49:30 +08:00
matevip
020a87ee7e feat(skill): ACP integration for external coding agents 2026-05-01 09:49:22 +08:00
matevip
f0991f543f feat(skill): skill template gallery + author wizard MVP 2026-05-01 09:49:14 +08:00
matevip
359600c77f feat(skill): per-skill LESSONS.md + self-evolution v1 2026-05-01 09:49:07 +08:00
matevip
d927521d51 feat(skill): install/uninstall split + Requirements API + provider router 2026-05-01 09:48:59 +08:00
matevip
688b37b652 feat(skill): features matrix + effective-tool expansion 2026-05-01 09:48:39 +08:00
matevip
323ba1b82e feat(skill): manifest schema + parser (additive) 2026-05-01 09:48:32 +08:00
matevip
4f3276b9e6 fix(skill): mark docs-only vs scripts+docs in Available Skills prompt (issue #49) 2026-04-30 18:04:11 +08:00
matevip
46ac58500c fix(skill): correct pagination total and sort order on SkillMarket (issue #48) 2026-04-30 17:45:02 +08:00