matevip
aac04cdfa4
fix(wiki): re-ingest modified binary files via content-hash detection
2026-05-31 07:58:10 +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
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
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
16a7aadbcd
feat(wiki): unified source-path validation with symlink resolution and allowed roots
2026-05-31 07:54:48 +08:00
matevip
eb63ce4865
feat(wiki): validate and persist structured page metadata on ingest
2026-05-31 07:54:41 +08:00
matevip
b50e384e0d
feat(wiki): inject KB pageType profile into the batch-create prompt
2026-05-31 07:54:34 +08:00
matevip
bea48bcf89
feat(wiki): pageType profile CRUD API and service operations
2026-05-31 07:54:27 +08:00
matevip
7cd9971596
feat(wiki): schema validator for structured page metadata
2026-05-31 07:54:20 +08:00
matevip
7f4987c30a
feat(wiki): resolve effective pageType profile per KB with built-in default
2026-05-31 07:54:13 +08:00
matevip
368797e619
feat(wiki): add KB-scoped pageType profile table and page metadata columns
2026-05-31 07:54:06 +08:00
matevip
ec47d19bf8
feat(wiki): gate wiki write/mutate tools by pageType permission
2026-05-31 07:53:59 +08:00
matevip
502b8406a6
feat(wiki): per-agent pageType read permission gate for wiki tools
2026-05-31 07:53:48 +08:00
matevip
7e9f2ee54c
fix(memory): prefer recalled personal memory over knowledge base for user/project questions
2026-05-29 18:03:13 +08:00
lichuan
bd02734d61
feat(agent): add knowledge base binding tab to agent editor ( #237 )
...
Agents now have a per-agent primary wiki KB stored on
mate_agent.primary_kb_id. KBs remain workspace-shared — selecting one in
the agent editor only chooses the default wiki target for that agent, it
does not change the KB's ownership or visibility.
Backend
- AgentEntity: add primary_kb_id field (FieldStrategy.ALWAYS so the UI
can clear it back to "no primary")
- AgentController#update: switch body to Map<String, Object> so we can
tell "field missing" apart from "explicit null" via containsKey, then
convertValue back to AgentEntity
- WikiKnowledgeBaseService:
- new resolvePrimaryKb(agentId): prefers agent.primary_kb_id when it
points to a workspace-visible KB; falls back to legacy
kb.agent_id marker, then to most-recently-updated workspace KB
- listByAgentId now returns the full workspace set (KBs are
workspace-shared under the new model)
- update(id, name, description) no longer touches agent_id
- WikiController: new GET /knowledge-bases/bindable for the UI picker;
PUT /knowledge-bases/{id} no longer reads agentId
- WikiKnowledgeBaseEntity: add FieldStrategy.ALWAYS on embeddingModelId
and configContent so explicit nulls actually unbind/clear instead of
being silently skipped by MyBatis-Plus's NOT_NULL default
- Migrations V129 (H2 + MySQL): add primary_kb_id column + index, backfill
from legacy kb.agent_id, MySQL uses INFORMATION_SCHEMA guard +
PREPARE/EXECUTE for idempotency
- WikiKnowledgeBaseServiceTest: 13 cases, all passing
Frontend
- Agents.vue: new "Knowledge Base" tab, radio-select bindable KBs
- API: listBindableKBs() + Agent.primaryKbId typed string | number | null
- IDs handled as strings throughout (Snowflake-safe)
- i18n keys for the new tab in zh-CN and en-US
2026-05-29 06:00:52 +08:00
matevip
0e01b2b526
feat(wiki): chat-rendered wikilinks navigate via cross-KB lookup
2026-05-28 09:25:58 +08:00
matevip
af9928bf54
fix(wiki): case-only rename portability + SpringBootTest regression suite
2026-05-28 08:18:01 +08:00
matevip
296c91d6da
fix(wiki): cascade + scan must not null content/summary via FieldStrategy.ALWAYS
2026-05-28 08:17:42 +08:00
matevip
a71c49d374
feat(wiki): analyze-stage slug whitelist + code-aware enrich applier
2026-05-28 08:17:27 +08:00
matevip
16eac232c4
feat(wiki): cascade delete + rename to keep wikilinks consistent
2026-05-28 08:17:19 +08:00
matevip
105b075f13
feat(wiki): slug-first prompt contract and same-batch link safety
2026-05-28 08:17:13 +08:00
matevip
2b3c068db9
feat(wiki): broken-link lint with job-based async scan
2026-05-28 08:17:04 +08:00
matevip
66d3d90ea9
feat(wiki): slug-first wikilink resolution and safe DOM postprocess
2026-05-28 08:16:56 +08:00
matevip
ee04340742
feat(wiki): expose per-raw progress in processing-status
2026-05-28 08:16:50 +08:00
matevip
d8dedbeda3
fix(wiki): processing-status reads truth from page table, self-heals drift
2026-05-28 08:16:40 +08:00
matevip
ff2620dfcf
fix(wiki): harden kbName/kbId routing — ambiguous fail-closed, kbId param, prompt cleanup ( #224 )
2026-05-26 14:31:07 +08:00
matevip
d2b23c049c
fix(wiki): let agents reach every visible KB via kbName + wiki_list_kbs ( #224 )
2026-05-26 13:53:32 +08:00
matevip
b09a220ec7
fix(tool): enforce workspace boundary on shell commands and file metadata tools
2026-05-25 16:26:16 +08:00
matevip
c0f9d1d9fb
test(wiki): add adversarial HTML normalization tests and harden skeleton-tag handling
2026-05-19 21:23:13 +08:00
matevip
9ffe7aa399
fix(wiki): strip script/style/nav/footer text from HTML-typed material
2026-05-19 21:23:07 +08:00
matevip
651d53050e
fix(workspace): return 403 instead of 500 for cross-workspace access
2026-05-19 20:06:50 +08:00
matevip
d629c945ee
fix(wiki): return the new page id from the create-page tool
2026-05-19 20:06:33 +08:00
matevip
57ca69d674
fix(wiki): return HTTP 404 for missing knowledge bases and pages
2026-05-19 20:06:27 +08:00
matevip
c6d51f8ced
fix(wiki): resolve an agent's own knowledge base before shared ones
2026-05-19 16:53:12 +08:00
matevip
fb4206e356
fix(wiki): count only the latest job per raw in KB failure stats
2026-05-18 22:00:36 +08:00
matevip
33a40ad9d9
feat(wiki): support HTML, Excel, PowerPoint and CSV raw materials
2026-05-18 21:57:43 +08:00
matevip
0ff8da0caa
fix(llm): stop MODEL_NOT_FOUND from evicting the whole provider ( #150 )
2026-05-18 16:27:20 +08:00
matevip
84d809f52b
fix(wiki): show live page count in knowledge base list and detail
2026-05-17 17:55:29 +08:00
matevip
3b9b4d79d5
feat(skill): scope skill catalog and runtime by workspace ( #135 )
2026-05-15 20:01:25 +08:00
matevip
3ba22b99f3
feat(workspace,system): add @RequireGlobalAdmin and gate admin-only controllers
2026-05-15 10:18:10 +08:00
matevip
adf5d93975
fix(wiki): align HTTP status with R envelope and harden config + edit paths
2026-05-14 23:01:00 +08:00
matevip
026afa2ba5
feat(wiki): optional JSON Schema on json-format transformations
2026-05-12 14:35:31 +08:00
matevip
465a727be2
feat(wiki): record per-run token usage so operators can see what each template burns
2026-05-12 14:35:17 +08:00
matevip
e911af2192
feat(wiki): JSON output mode — structured transformation output for programmatic downstream
2026-05-12 14:11:02 +08:00
matevip
90936dba4f
feat(wiki): cross-material transformation aggregator — map-reduce all runs of a template into one KB page
2026-05-12 14:10:54 +08:00
matevip
a5b952050c
feat(wiki): reverse-citation extractor — bind synthesis pages to the exact source chunks they cite
2026-05-12 14:10:47 +08:00
matevip
e1759e0e3c
feat(wiki): page-input transformations — run a template against an existing page
2026-05-12 14:10:40 +08:00
matevip
bee39cc420
feat(wiki): page-level embedding so synthesis pages enter semantic search
2026-05-12 14:10:23 +08:00
matevip
62c9776b01
feat(wiki): clean conversational preamble and code fences from transformation output
2026-05-12 11:25:50 +08:00
matevip
f04ea58c8d
feat(wiki): cancel a running transformation and re-run any past run
2026-05-12 11:25:44 +08:00
matevip
ef6ad1b91a
feat(wiki): expose per-template model picker in the transformations modal
2026-05-12 11:25:38 +08:00
matevip
4098346fb7
fix(wiki): strip file extensions when deriving transformation page slugs
2026-05-12 11:25:32 +08:00
matevip
bae9f68261
feat(wiki): user-defined transformation templates with optional auto-save to synthesis pages
2026-05-12 10:49:58 +08:00
matevip
27f614d48a
feat(wiki): enrich chunk embedding input with raw title and structural metadata
2026-05-12 08:44:26 +08:00
matevip
f7c1af80a4
fix(wiki): preserve user-owned files when deleting directory-scanned raws ( #84 )
2026-05-09 17:15:57 +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
96840b0126
chore: bump version to 1.3.0-SNAPSHOT
2026-05-08 15:02:08 +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
eb64556636
fix(wiki): skip per-turn retrieval for continuation messages + drop weak tail hits
2026-05-04 20:54:44 +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
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
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
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
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
4a15027a98
feat(wiki): download original raw material file
2026-04-26 20:46:52 +08:00
matevip
0d78beb44f
fix(wiki): batch-create per-slug retry — recover unparseable JSON, bump to 2 attempts
2026-04-26 20:37:09 +08:00
matevip
30e7e67bb6
feat(wiki): LLM-narrated overview section with debounced regen + Recent Updates list + scaffold self-heal
2026-04-26 19:53:12 +08:00
matevip
e2df16893e
fix(wiki): smaller batch-create + resume button for partial generation
2026-04-26 18:42:27 +08:00
matevip
0b55d5a227
feat(agent): Utf8SseEmitter + returnDirect end-to-end chain test
2026-04-26 08:32:44 +08:00
matevip
6474d0e6be
feat(wiki): normalized relation boost + reason in search results
2026-04-25 19:02:34 +08:00
matevip
a1e40d6eae
feat(wiki): enrich batch — N pages per LLM call
2026-04-25 19:02:34 +08:00
matevip
ca4c447250
feat(wiki): enrich prompt knows what's already linked
2026-04-25 19:02:34 +08:00
matevip
8ef523f953
feat(wiki): archived pages drawer in Wiki UI
2026-04-25 19:02:33 +08:00