Commit Graph
1600 Commits
Author SHA1 Message Date
KokerZhou 758b0667fc feat(docker): preinstall default NLP dictionary 2026-08-28 22:24:13 +08:00
digua e2723cf751 refactor(web): remove Web WASM AI runtime 2026-08-28 14:34:59 +08:00
digua 3fe82e039d release: v0.37.0 v0.37.0 2026-08-28 10:50:43 +08:00
KokerZhou 2bbc3520b3 fix(records): keep resize bound to active pointer 2026-08-28 10:34:54 +08:00
KokerZhou 4446d99213 fix(records): finish resize outside window 2026-08-28 10:34:54 +08:00
KokerZhou 32e71d0f05 fix(records): clamp drawer width to viewport 2026-08-28 10:34:54 +08:00
KokerZhou 997598259c feat(records): make chat record drawer resizable 2026-08-28 10:34:54 +08:00
digua 9009edfeb9 docs(cli): fix Unix socket curl examples 2026-08-28 10:25:51 +08:00
KokerZhou bb36fc5221 docs(cli): secure Unix socket proxy setup 2026-08-28 10:21:39 +08:00
KokerZhou 16808e7403 fix(cli): clarify Unix socket server details 2026-08-28 10:21:39 +08:00
KokerZhou e3c2e8ec58 feat(cli): support Unix domain socket listener 2026-08-28 10:21:39 +08:00
digua b7c38fb228 fix(insight): bound graph look-ahead allocation
Clamp cluster look-ahead values at the shared core boundary so invalid inputs cannot create oversized candidate matrices. Add a regression test that keeps oversized values equivalent to the supported maximum.
2026-08-28 10:18:54 +08:00
digua 4a3a72e736 perf(insight): reduce session graph memory usage 2026-08-28 10:18:54 +08:00
digua 8867cc556e fix(insight): deduplicate remounted time ranges
Treat equivalent session time ranges as the same analytics scope so remounting the selector does not cancel requests or reload Insights, while preserving reloads for real range changes.
2026-08-28 00:20:02 +08:00
digua bc6e70448d fix(insight): invalidate analytics after data changes
Mark the in-memory analysis scope stale after imports and member mutations so returning to Insights reloads fresh statistics without giving up normal tab reuse.
2026-08-28 00:20:02 +08:00
digua 37628302c8 fix(ui): smooth session tab transitions 2026-08-28 00:20:02 +08:00
digua dcee433174 fix(import): preserve fallback message multiplicity
Preserve repeated same-second WeFlow and EchoTrace messages while consuming existing fallback occurrences one for one across overlapping imports and merged sources.
2026-08-27 17:19:06 +08:00
digua af68f13d09 fix(import): avoid deduplicating WeFlow local IDs 2026-08-27 17:19:06 +08:00
digua a50827f42a fix(analysis): preserve SQL Lab analytics
Track SQL Lab usage from the nested More tab after resolving its persisted selection. Remove the obsolete top-level lab mapping so Debug visits are not misclassified.
2026-08-27 16:28:42 +08:00
digua 5aa330147b feat(analysis): rename lab and move debug tools 2026-08-27 16:28:42 +08:00
digua e75bb1e556 fix(ai): handle stream failure follow-ups 2026-08-26 22:42:13 +08:00
Sanssssssssssssssss dc07519bc0 fix(ai): refresh conversations after stream errors
中文:模型失败回合落库后刷新会话列表,避免新会话只在重载后出现。

English: Refresh the conversation list after persisted stream errors so new chats appear without a reload.
2026-08-26 22:23:21 +08:00
Sanssssssssssssssss 702311cf96 fix(ai): preserve stream errors through completion
中文:错误流的 done 只终止传输,不再覆盖错误状态或误报发送成功。

English: Treat done as stream termination after an error, preserving the error phase and returning failed sends correctly.
2026-08-26 22:23:21 +08:00
digua cb7ba1f3cc fix(ai): refresh memory source parent after compression
Capture the conversation active message when the agent turn completes so an automatically persisted compression summary becomes the expected parent for the pending user message. Add an integration regression covering summary persistence, memory creation, message-pair persistence, and source linking.
2026-08-26 22:23:04 +08:00
digua 63c5cc2b46 fix(ai): keep memory provenance through long turns
Remove the wall-clock expiry from in-flight memory provenance so long agent investigations can still link memories to their source messages. Clean up completed turns without memory changes immediately and retain changed turns until the client consumes them.
2026-08-26 22:23:04 +08:00
digua f4017b0adf feat(ai): link memories to source messages 2026-08-26 22:23:04 +08:00
digua cc240c85f5 fix(ai): limit editing to latest turn
Keep compression summaries before the in-flight question and let the Node runtime validate and atomically replace only the terminal question-answer round.
2026-08-26 21:48:10 +08:00
digua f35e41ca70 test(ai): use supported module mock exports
Use Node's namedExports option so the optional Jieba regression test remains valid under the current node:test type definitions.
2026-08-26 21:48:10 +08:00
digua 9378029acb fix(ai): persist edited turns atomically
Replace the edited user message, old assistant response, and regenerated response in one SQLite transaction. This prevents a failed replacement insert from leaving a partially rewritten conversation.
2026-08-26 21:48:10 +08:00
Sanssssssssssssssss 893f1c05ec fix(ai): persist conversation turns atomically
中文:将用户与助手消息合并为单事务写入,失败时不再留下孤儿消息或误报成功。

English: Persist user and assistant messages in one transaction so failures leave no orphaned turn or false success.
2026-08-26 21:11:35 +08:00
Sanssssssssssssssss 0126b56648 fix(ai): keep equal-timestamp compression boundaries intact
中文:避免同秒消息跨摘要边界,防止已压缩内容重复回放或后续消息丢失。

English: Keep equal-timestamp messages on one boundary side so compressed content is not replayed and later messages remain visible.
2026-08-26 21:06:01 +08:00
digua 4d6acc97e5 fix(ai): harden global memory relevance ranking
Use dependency-independent Chinese tokenization, preserve prompt capacity for the highest relevance match, and handle short symbolic and numeric terms without distorting bounded recall.
2026-08-26 13:46:58 +08:00
digua 4b405b8114 feat(ai): rank global memories by relevance 2026-08-26 13:46:58 +08:00
Sanssssssssssssssss 333c913de0 fix(ai): isolate credentials for colliding config names / 隔离同名配置凭据
中文:同名 LLM 配置此前会覆盖同一 auth profile;现在按稳定 config ID 隔离,并保留旧 profile 恢复。

English: LLM configs with the same name previously overwrote one auth profile; new profiles are scoped by stable config ID while legacy restoration remains compatible.
2026-08-26 09:22:35 +08:00
digua c69a927615 fix(ai): keep global memory always enabled
Remove the proactive-memory preference and its cross-platform runtime plumbing so memory behavior has one clear contract. Normalize away the obsolete setting and keep source type limited to provenance.
2026-08-24 22:35:47 +08:00
digua 77c4dec9e6 fix(ai): enforce current-turn memory scopes
Share entities resolved during one Agent run so natural-language subject changes can safely use memory. Validate entity memory scope before permanent deletion to prevent stale IDs from deleting another subject's memory.
2026-08-24 22:35:47 +08:00
digua 85bf46b168 feat(ai): add self memory management 2026-08-24 22:35:47 +08:00
digua 2a4ab0d2ae feat(contacts): show AI memories in contact details 2026-08-24 22:35:47 +08:00
digua db582d852e feat(ai): preload selected entity memories 2026-08-24 22:35:47 +08:00
digua 04916041b4 fix(ai): bind memory tools to current entity selection 2026-08-24 22:35:47 +08:00
digua 833e503d3f feat(ai): add global memory management panel 2026-08-24 22:35:47 +08:00
digua 2938c42f9f feat(ai): expose global memory management api 2026-08-24 22:35:47 +08:00
digua ed8ab84b4b feat(ai): integrate memory with global agent 2026-08-24 22:35:47 +08:00
digua bdc61d1b10 feat(ai): add shared global memory service 2026-08-24 22:35:47 +08:00
digua 8d7b3337d0 fix(ai): bind inspection cursors to time filters
Include the normalized time-filter request in structural-inspection fingerprints while retaining the cursor's resolved absolute range, so stable relative pagination works but changed filters are rejected.
2026-08-24 00:25:35 +08:00
digua 326610a25f fix(ai): stabilize relative cross-chat ranges
Interpret recent-day filters as complete local calendar days and persist the first resolved range in structural-inspection cursors so pagination remains stable across clock and date changes.
2026-08-24 00:25:35 +08:00
digua f9ba12e535 fix(ai): harden cross-chat analysis results
Resolve private ranking display names, apply privacy preprocessing consistently across cached recaps and structural labels, and bound model-visible overview payloads to the configured tool budget.
2026-08-24 00:25:35 +08:00
digua 05d9b34f30 chore(ai): finalize global statistics integration 2026-08-24 00:25:35 +08:00
digua 207c41afaa feat(ai): expose cached global activity summaries 2026-08-24 00:25:35 +08:00
digua dff4f4dfa8 feat(ai): support ranged cross-chat overviews 2026-08-24 00:25:35 +08:00