Commit Graph
319 Commits
Author SHA1 Message Date
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
digua 73601ebe26 fix(topics): coordinate session lifecycle across runtimes 2026-08-10 16:52:19 +08:00
digua e00b74a330 fix(summary): preserve generated summary correctness 2026-08-10 16:52:19 +08:00
digua 6b87e0796d fix(topics): harden generation and snapshot reuse 2026-08-10 16:52:19 +08:00
digua 3b6a00ad18 feat(memory): add AI-generated chat topics 2026-08-10 16:52:19 +08:00
digua 3c55352d4b fix(summary): track source message coverage 2026-08-10 16:52:19 +08:00
digua d6877c27fd fix(memory): keep index load failures non-destructive
Show a retry-only state when summary index reads fail so transient errors cannot expose the full rebuild action and erase summaries. Also align newly added implementation comments with repository style.
2026-08-09 18:44:40 +08:00
digua ed7360f8ac feat(memory): add linked chat records view 2026-08-09 18:44:40 +08:00
digua 73dca90a51 refactor: inline trivial single-use helpers 2026-08-09 14:04:34 +08:00
digua 5e8d1caf30 perf(sessions): reuse validated overview cache on startup 2026-08-08 21:47:47 +08:00
digua 17320045dc feat(ai): enable automatic context compression 2026-08-07 15:35:29 +08:00
digua b569293846 fix(import): stabilize QQ automatic session matching
Match ownerless QQ exports safely across UID and UIN drift, preserve merged message scopes through single and batch imports, and apply only sender mappings proven by overlapping platform message IDs. Reject incomplete group mappings to avoid member identity corruption.
2026-08-05 22:16:24 +08:00
digua f0d4fdeeb3 fix(merge): preserve valid session identity metadata
Carry owner metadata through merge exports when every source agrees and the owner resolves to a merged member. Drop conflicting or unmappable owner identifiers.
2026-08-05 22:16:24 +08:00
digua c883e6ab47 fix(merge): isolate ambiguous private exports
Keep one-member private exports source-local until exact message overlap proves they belong to the same chat. This prevents unrelated outgoing-only chats from losing messages when platform IDs collide.
2026-08-05 17:02:09 +08:00
digua 691293b46f fix(merge): preserve messages during deduplication
Carry platform and reply IDs through merge and shared import paths so stable IDs drive deduplication.

Keep unrelated chats isolated, bridge only verified overlapping sources, and backfill stable IDs onto retained fallback copies.
2026-08-05 17:02:09 +08:00
digua d5f34af445 refactor(parser): standardize format identifiers 2026-08-04 17:29:09 +08:00
digua 3e080d21c4 perf(import): avoid loading existing messages for dedup 2026-08-03 18:45:00 +08:00
digua 883fa0896d docs(search): record FTS removal benchmarks 2026-08-03 17:28:19 +08:00
digua 256e93605a refactor(database): remove legacy session FTS 2026-08-03 17:28:19 +08:00
digua ef4f8de74d refactor(search): stop maintaining session FTS 2026-08-03 17:28:19 +08:00
digua 50a390b2de refactor(search): use LIKE and dense retrieval 2026-08-03 17:28:19 +08:00
digua 1e339875e1 fix(import): ignore AppleDouble database sidecars 2026-08-01 17:00:09 +08:00
digua bdfe4bbeb5 test(runtime): improve shared behavior coverage 2026-08-01 16:41:30 +08:00
digua 7bdd1fe751 fix(runtime): harden migration and cleanup safety 2026-08-01 16:41:30 +08:00
digua 69a2b981c7 fix(logging): preserve preload polling errors
Record background preload polling failures with the original Error and clarify that logging review severity and tests should follow user impact rather than mechanical rules.
2026-08-01 13:19:41 +08:00