Commit Graph
343 Commits
Author SHA1 Message Date
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 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 85bf46b168 feat(ai): add self memory management 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 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 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
digua 277edaff96 feat(ai): rank group sessions globally 2026-08-24 00:25:35 +08:00
digua 6d64333675 feat(ai): rank private contacts globally 2026-08-24 00:25:35 +08:00
digua 75eff70e23 feat(ai): improve cross-chat evidence retrieval 2026-08-24 00:25:35 +08:00
digua 6c07610778 fix(ai): align cross-chat relative time ranges 2026-08-24 00:25:35 +08:00
digua a6557608c6 fix(ai): harden shared interaction analysis
Keep shared-interaction evidence, pagination, and token truncation accurate while bounding anchor inputs, proximity scans, contact discovery, and reply aggregation. Resolve participants across all imported history and isolate damaged database candidates without changing the final analysis tree.
2026-08-23 16:19:57 +08:00
digua d79e4733dd feat(ai): inspect shared contact interactions 2026-08-23 16:19:57 +08:00
digua 10e0825578 fix(ai): harden contact session inspection
Use the all-history contact snapshot and validate raw session candidates inside the cancellable scan loop. Bound model-visible structural results to the configured token budget while preserving full tool details and continuation metadata.
2026-08-22 20:29:40 +08:00
digua f26c6f6eba feat(ai): inspect contact activity across sessions 2026-08-22 20:29:40 +08:00
digua 36b26a78f5 feat(ai): add global analysis workspace 2026-08-22 18:01:22 +08:00
digua dc3bd82c90 fix(ai): enforce cross-chat execution budgets
Count complete tool payloads with the runtime tokenizer so Chinese evidence respects the configured model context budget.\n\nResolve contact sources incrementally with cancellation checks and targeted member lookups to keep long cross-chat investigations responsive.
2026-08-22 17:09:23 +08:00
digua 5d5355d4f1 fix(ai): bound cross-chat candidate discovery
Make unscoped candidate preparation honor cancellation and wall-time limits before message scanning. Enumerate database files lazily, retain only the newest eligible sessions, and resolve owners without loading full member statistics.
2026-08-22 17:09:23 +08:00
digua d1a6c711fe feat(ai): add isolated cross-chat agent 2026-08-22 17:09:23 +08:00
digua 812440c565 fix(ai): resolve contacts across all history
Use the all-history contacts snapshot when translating stable contact references into cross-chat scopes, so older source sessions are not silently excluded from historical analysis.
2026-08-22 07:43:31 +08:00
digua 831861a993 feat(ai): add cross-chat analysis service 2026-08-22 07:43:31 +08:00
digua 71a5636392 fix(ai): update entity refs with edited messages
Replace message content and structured user entity references in one database statement. Treat omitted references as an explicit clear so edited prompts cannot replay stale identities.
2026-08-22 00:31:32 +08:00
digua 4f6bd0188b fix(ai): restrict entity refs to user messages
Prevent generic assistant or summary writes from persisting structured entity references. Keep compressed-summary references on the dedicated internal path and ignore malformed assistant references during replay and compression.
2026-08-22 00:31:32 +08:00
digua ccad122e45 feat(ai): persist global conversations 2026-08-22 00:31:32 +08:00
digua 6d22f5d5fb feat(ai): refine chat process experience 2026-08-19 18:49:20 +08:00
digua 2d58fd8c62 fix(ai): track parallel tool lifecycles
Keep the shared runtime in tool_running until every concurrent call finishes. Route renderer progress and completion by toolCallId so one result cannot hide another active tool.
2026-08-18 17:27:48 +08:00
digua 2e624f6beb feat(ai): stream tool execution progress 2026-08-18 17:27:48 +08:00
digua cf1aee9e5b refactor(ai): upgrade pi runtime and define execution semantics 2026-08-18 17:27:48 +08:00
digua dea6eb8f0d fix(ai): lock agent runtime contracts 2026-08-18 17:27:48 +08:00
digua 7907435cff feat(navigation): apply plugin layout 2026-08-18 14:29:38 +08:00
digua b5816be99f feat(navigation): add shared layout storage 2026-08-18 14:29:38 +08:00
digua 47299a94cb feat(cli): make clb web the primary web command 2026-08-12 12:47:00 +08:00
digua 35492a0ec6 fix(topics): tolerate conflicting message assignments 2026-08-11 11:44:20 +08:00
digua 2747a9f1d0 feat(owner): exclude sessions without current user 2026-08-11 10:38:05 +08:00
digua 8e90434032 feat(insight): add cross-chat time investment 2026-08-10 22:20:38 +08:00
digua 7c81d19d39 fix(topics): synchronize progress and highlights 2026-08-10 16:52:19 +08:00