mateclaw/mateclaw-server/src/main/java/vip/mate
倪程伟 f6156f6093 feat(webchat): expose agent-bound wiki pages to API-Key callers
Add GET /api/v1/channels/webchat/wiki/pages mirroring /skills, so
downstream integrators can build a [[slug]] picker UI that points the
LLM at specific wiki pages. The picker token format is the universal
Obsidian/Wikipedia wikilink convention; the LLM consumes [[slug]] via
the existing wiki_read_page(slug=...) tool, so no agent-runtime changes
are needed.

- AgentBindingResolver.getBoundKbIds(agentId): three-state mirror of
  getBoundSkillIds. null = no rows (fall through to workspace-wide KBs),
  Set.of() = explicitly scoped to zero KBs, non-empty = explicit scope.
- WebChatController.listWikiPages: API Key + visitorToken auth chain,
  agentId workspace anti-escalation, visibility excludes pageType=
  synthesis (LLM intermediate artifacts), 100-page cap forces keyword
  filter, response carries only display-level metadata.
- WebChatWikiPageView DTO: kbId/kbName/slug/title/summary/pageType;
  content/embedding/sourceRawIds deliberately stay admin-console-only.
- WikiTool.wiki_read_page @Tool description: document the [[slug]]
  convention so the LLM treats each token as a wiki-page reference.
- WebChatWikiPageListTest: 8 cases covering happy path, keyword filter,
  synthesis exclusion, anti-escalation, auth failures, cap behavior,
  and the no-binding → workspace-wide fallback.

Closes #381.
2026-06-20 07:21:07 +08:00
..
acp feat(workspace,system): add @RequireGlobalAdmin and gate admin-only controllers 2026-05-15 10:18:10 +08:00
activity feat(workspace,system): add @RequireGlobalAdmin and gate admin-only controllers 2026-05-15 10:18:10 +08:00
agent feat(webchat): expose agent-bound wiki pages to API-Key callers 2026-06-20 07:21:07 +08:00
approval polish(approval-grants-ui): show granter name, fix note cell rendering, tighten layout 2026-05-27 15:09:11 +08:00
audit feat(webchat): audit visitor-side writes via AuditEventService.recordAs (epic #355 PR 7) 2026-06-18 06:33:17 +08:00
auth fix(approval): three minor issues surfaced by end-to-end testing 2026-05-27 14:08:12 +08:00
channel feat(webchat): expose agent-bound wiki pages to API-Key callers 2026-06-20 07:21:07 +08:00
common feat(agent): deterministic Markdown normalization for final answers (#275) 2026-06-07 19:10:53 +08:00
config docs(security): correct generated-file TTL comment (7 days, not 10 min) 2026-06-17 23:21:08 +08:00
cron fix(cron): restore ShedLock DB-time for dialects that support it 2026-06-14 10:44:52 +08:00
dashboard fix(dashboard): count tool calls from assistant.metadata, not role=tool rows 2026-05-24 22:58:02 +08:00
datasource feat(db): support KingbaseES (人大金仓) domestic database (#324) 2026-06-14 10:30:09 +08:00
doc feat(docs): expose bundled help docs via in-app viewer 2026-06-15 07:48:49 +08:00
exception fix(exception): return 405 for HttpRequestMethodNotSupportedException 2026-06-19 06:20:59 +08:00
goal feat(agent): loop-engineering robustness — goal continuation, plan re-plan, stall detection 2026-06-17 06:37:08 +08:00
hook feat(hook): HMAC-SHA-256 body signing for outbound webhooks 2026-05-02 15:41:13 +08:00
i18n fix(i18n): stop logging missing-key noise for optional tool descriptions 2026-05-19 20:06:38 +08:00
llm feat(webchat): expose agent-bound wiki pages to API-Key callers 2026-06-20 07:21:07 +08:00
memory feat(memory): bound always-on memory growth with injection budget, consolidation, and file ceilings 2026-06-17 11:04:19 +08:00
notification feat(ui): surface pending approvals + stuck agents as sidebar badges 2026-05-15 10:17:30 +08:00
planning refactor(db): drop @TableLogic on all entities, purge soft-deleted rows 2026-04-18 23:31:48 +08:00
plugin feat(db): support KingbaseES (人大金仓) domestic database (#324) 2026-06-14 10:30:09 +08:00
skill feat(tool): add execute_code for running agent-authored code (#257) 2026-06-09 08:05:50 +08:00
stt feat(stt): route OpenAI Whisper provider to any OpenAI-compatible endpoint (#76) 2026-05-09 13:57:52 +08:00
system feat(dashboard): show the connected database on the dashboard 2026-06-15 08:47:53 +08:00
task feat(task): generic one-shot Callable runner with parent-conv cancel 2026-05-16 14:51:04 +08:00
tool feat(docs): expose bundled help docs via in-app viewer 2026-06-15 07:48:49 +08:00
trigger fix(feishu): decouple trigger ingest from the Lark WS dispatch thread (#208) 2026-06-09 09:17:26 +08:00
tts fix(wiki): backend hardening + batch delete UI 2026-04-13 15:37:12 +08:00
wiki feat(webchat): expose agent-bound wiki pages to API-Key callers 2026-06-20 07:21:07 +08:00
workflow fix(workflow): pre-check unique name on create/rename, return 409 instead of 500 (Fixes Gitee #IJPYWA) 2026-05-26 23:35:04 +08:00
workspace fix(conversation): use notLikeLeft to avoid over-broad malformed-id filter 2026-06-19 06:20:59 +08:00
MateClawApplication.java feat(db): support KingbaseES (人大金仓) domestic database (#324) 2026-06-14 10:30:09 +08:00