倪程伟
3d8d266e3b
fix(skill): enforce agent skill bindings in skill meta-tools at runtime ( #265 )
...
The skill meta-tools (listAvailableSkills, readSkillFile, listSkillFiles, load_skill, runSkillScript) queried the full skill catalog without checking the calling agent's bindings, so an agent scoped to a subset of skills could still read, load, or execute any skill via direct tool calls. Resolve the agent's bound skill ids from the tool context and filter/deny accordingly: a null binding set means no restriction (backward compatible), a non-null set (including empty) restricts access to that set — matching the system-prompt catalog filtering.
Closes #264
2026-06-07 17:30:41 +08:00
倪程伟
29fcfb5572
fix(wiki): surface scan errors and fix Chinese path handling in Docker ( #260 )
...
Surface directory-scan failures to the user via toast and render ScanResult.errors[]; expose MATE_WIKI_ALLOWED_SOURCE_ROOTS as a Docker env entry with blank-entry filtering in the path validator; set C.UTF-8 locale in the runtime image so non-ASCII file names decode correctly during scans.
Fixes #259
2026-06-07 16:18:49 +08:00
matevip
808047d723
feat(proxy): global outbound HTTP/SOCKS proxy with settings page ( #109 )
...
Add a single global-proxy switch that routes the backend's outbound traffic
through a configured HTTP/HTTPS/SOCKS proxy, for deployments that cannot reach
overseas APIs directly or must use a unified egress.
- ProxyManager installs the proxy via a default ProxySelector (honored by
java.net.http and HttpURLConnection), the proxy system properties, and a
--proxy-server arg for the browser tool; restores direct egress when
disabled. One switch covers LLM, web search, media generation, channels,
MCP and the browser.
- SOCKS applies to the HttpURLConnection-based egress only; the java.net.http
LLM/streaming path uses an HTTP proxy, and the UI states this.
- New Settings -> Network Proxy page: enable toggle, address, bypass list,
test-connection, and a coverage summary. Config stored as key/value in
mate_system_setting (no migration).
refs #109
2026-06-07 16:12:02 +08:00
matevip
7894a50067
fix(tool): emit absolute download URLs for streaming-generated files ( #164 )
...
Streaming chat ran render tools on an async thread with no bound request,
so download links lost their host and arrived without a domain. Resolve the
host on the request thread and carry it through ChatOrigin/ToolContext;
falls back to a configurable public-base-url, then a relative path.
2026-06-07 15:03:48 +08:00
matevip
86670312e4
release: v1.5.0
2026-06-05 07:53:15 +08:00
matevip
76c6504527
fix(llm): preferred provider now drives primary model selection — per-provider model resolution + unconfigured-provider skip
2026-06-04 07:36:31 +08:00
matevip
b22462105c
test(agent): exercise real capability gate in ProviderRouter primary-selection tests
2026-06-03 23:39:19 +08:00
倪程伟
5746bcf8cc
feat(agent): 偏好提供商作为主模型选择依据 ( #223 )
...
偏好提供商从「仅 capability 触发」改为两轮筛选,使 Agent 偏好提供商能决定主模型选择;并在 Agent 显式配置 modelName 时优先 honour,不被偏好提供商覆盖。
Closes #222
2026-06-03 23:33:14 +08:00
matevip
6445f082a6
fix(tool): qualify Entry type in GeneratedFileCache LRU to fix compile error ( closes #250 )
2026-06-03 23:21:31 +08:00
matevip
3883b68cca
fix(goal): drop score gate, bill failed evaluator calls, fix Evaluator SPI + tool prompt + bootstrap cap
2026-06-03 21:19:27 +08:00
matevip
a756da7817
test(goal): rewrite evaluator tests for bootstrap/verdict modes
2026-06-03 21:19:27 +08:00
matevip
77196acbcd
test(goal): checklist codec + service coverage; final internal-ref sweep
2026-06-03 21:19:27 +08:00
matevip
c5ccce8ebc
feat(goal): deterministic completion + remaining-criteria followup + auto-followup gates
2026-06-03 21:19:26 +08:00
matevip
0fc8579a3e
feat(goal): persist checklist end-to-end + GoalResponse wire DTO
2026-06-03 21:19:26 +08:00
matevip
b65887f93d
feat(goal): dual-mode checklist evaluator with structured output + Evaluator SPI
2026-06-03 21:19:26 +08:00
matevip
cd1c66fc0e
feat(goal): structured checklist data model — criteria column, criterion records, dual-carrier evaluation result
2026-06-03 21:19:26 +08:00
matevip
c92bfa1f12
fix(mcp): raise default tool read timeout from 30s to 60s ( #247 )
2026-06-03 09:47:18 +08:00
matevip
9f02a0a221
fix(agent): unbreak DashScope tool calls, sharpen error class, rebalance plan triage (refs #246 )
2026-06-03 08:38:48 +08:00
matevip
18f3675fd3
docs(api): align workflow & trigger endpoint reference with actual controllers ( #248 )
2026-06-03 07:32:20 +08:00
matevip
48611a6f4d
feat(memory): per-owner memory isolation with owner_key + visibility scope ( #235 )
2026-06-02 17:04:06 +08:00
matevip
40ce1c67ac
fix(tool): persist generated files to disk so download links survive restart and 10-min window ( #243 )
2026-06-01 21:35:53 +08:00
matevip
1388b6eec8
feat(wiki): add wiki_update_page (in-place edit) and wiki_stale_pages tools
2026-05-31 08:00:19 +08:00
matevip
e18e0f1029
feat(wiki): per-agent pageType permission config API and pending-approval recording
2026-05-31 07:59:48 +08:00
matevip
7363ee8668
feat(wiki): pipeline definition CRUD/YAML API, run query API, page-created trigger
2026-05-31 07:59:41 +08:00
matevip
c627f898ec
feat(wiki): pluggable ingest-source SPI + source-watcher status API
2026-05-31 07:59:34 +08:00
matevip
ea0ace1e49
feat(wiki): propagate staleness when a fact page is updated during ingest
2026-05-31 07:59:27 +08:00
matevip
55cf2a8458
feat(wiki): wire layer derivation and fact-dependency persistence into ingest
2026-05-31 07:59:20 +08:00
matevip
8e8c1e34c7
feat(wiki): inject pageType profile into route/create/merge prompts + content templates
2026-05-31 07:59:13 +08:00
matevip
551321b542
fix(wiki): make pageType permission service a mandatory dependency
2026-05-31 07:58:59 +08:00
matevip
6583aa1e42
fix(wiki): close symlink TOCTOU and size-bypass in scan; single-read binary hash
2026-05-31 07:58:17 +08:00
matevip
aac04cdfa4
fix(wiki): re-ingest modified binary files via content-hash detection
2026-05-31 07:58:10 +08:00
matevip
f0cbfc913e
fix(wiki): default source-path validation to fail-closed in production profile
2026-05-31 07:58:04 +08:00
matevip
4ffe7026d2
fix(wiki): block per-file symlink escape and stop sourcePath clobbering
2026-05-31 07:57:57 +08:00
matevip
f3a335f4f6
fix(wiki): re-ingest modified text files via content-hash change detection
2026-05-31 07:57:50 +08:00
matevip
4c56df2ed3
fix(wiki): add fail-closed option for empty source-path allow-list
2026-05-31 07:57:44 +08:00
matevip
56b49e9cbf
fix(wiki): apply metadata and fire pipeline trigger on all ingest save paths
2026-05-31 07:57:37 +08:00
matevip
3a781ef0d9
test(wiki): cross-feature end-to-end domain scenario
2026-05-31 07:57:31 +08:00
matevip
8b4e1a12f9
feat(wiki): scheduled single-owner source-directory watcher
2026-05-31 07:57:25 +08:00
matevip
cc8c9cf951
feat(wiki): knowledge-layer filter on wiki search
2026-05-31 07:57:18 +08:00
matevip
ad1f5b4a15
feat(wiki): fire count-threshold pipeline triggers after ingest
2026-05-31 07:56:58 +08:00
matevip
526a361488
feat(wiki): restricted Skill pipeline step executor
2026-05-31 07:56:51 +08:00
matevip
15a8b2d73c
feat(wiki): LLM pipeline step executor via model routing
2026-05-31 07:56:45 +08:00
matevip
85f5df394b
feat(wiki): page-type count-threshold trigger for pipelines
2026-05-31 07:56:38 +08:00
matevip
5278568594
test(wiki): drop unnecessary @DirtiesContext from new E2E tests
2026-05-31 07:56:31 +08:00
matevip
6e0e62556f
feat(wiki): pipeline run orchestration with pluggable step executors
2026-05-31 07:56:24 +08:00
matevip
c3388c3f1e
feat(wiki): pipeline runtime schema — definitions, runs, step runs
2026-05-31 07:56:17 +08:00
matevip
66e4788226
feat(wiki): fact/experience dependency graph and stale propagation engine
2026-05-31 07:56:10 +08:00
matevip
28284fbcac
feat(wiki): layered-knowledge schema — layer, dependency table, stale columns
2026-05-31 07:55:55 +08:00
matevip
7a79fe93d0
test(wiki): isolate profile/metadata E2E tests from the shared file DB
2026-05-31 07:55:44 +08:00
matevip
16a7aadbcd
feat(wiki): unified source-path validation with symlink resolution and allowed roots
2026-05-31 07:54:48 +08:00