Commit Graph
100 Commits
Author SHA1 Message Date
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
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
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
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
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 3b50a722c9 feat(ai): add cross-chat statistics facts 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 17553ccd23 fix(ai): ignore stale context estimates
Only apply context-token estimates that still belong to the latest active global conversation request.
2026-08-22 20:00:03 +08:00
digua 5d63fc4d92 fix(ai): stabilize conversation composer state
Preserve unsent drafts until a message is accepted and while browsing global conversations. Keep CJK IME composition events flowing through the mention editor.
2026-08-22 20:00:03 +08:00
digua a201ef8c11 feat(ai): unify conversation interactions 2026-08-22 20:00:03 +08:00
digua 7d32e1d7ed fix(ai): cancel stale conversation restoration
Carry one selection generation across the complete session restoration flow so delayed list or history requests cannot override a newer restoration, user selection, or draft.
2026-08-22 18:42:22 +08:00
digua 982965b44a fix(ai): preserve sidebar keyboard navigation
Keep the collapse toggle focusable in both states, provide localized accessible labels, and remove the hidden conversation panel from the keyboard focus order while collapsed.
2026-08-22 18:42:22 +08:00
digua 17c1f0ba57 fix(ai): guard session conversation restoration
Prevent an unmounted ChatExplorer from synchronizing its restored conversation into a newly opened session route or clearing the new page's restoration state.
2026-08-22 18:42:22 +08:00
digua 714baa54e4 feat(ai): unify conversation navigation 2026-08-22 18:42:22 +08:00
digua f03b203d39 fix(ai): stabilize global workspace interactions
Poll contact preparation only while the contact picker is active and refresh the current query when returning from group search. Guard conversation loading with per-session generations so stale async completions cannot replace the latest selection.
2026-08-22 18:01:22 +08:00
digua 5c40a37572 fix(ai): stabilize global workspace initialization
Align contact selection with the all-history snapshot used by entity resolution. Stop async page initialization and route synchronization after navigation away.
2026-08-22 18:01:22 +08:00
digua d0e61da9a2 fix(ai): scope background task return state 2026-08-22 18:01:22 +08:00
digua 36b26a78f5 feat(ai): add global analysis workspace 2026-08-22 18:01:22 +08:00
digua fbcc0f299f fix(ai): budget cross-chat entity results
Keep full entity resolution details available to the application while bounding the model-visible payload with the runtime tokenizer. Preserve coverage and truncation metadata, prioritize usable scopes fairly, and cap ambiguity hints to avoid duplicate unbounded source lists.
2026-08-22 17:09:23 +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 f9b87c00ee release: v0.36.2 2026-08-20 11:00:51 +08:00
digua 9725510c4a fix(ranking): announce leaderboard loading to screen readers
The shared loading placeholder hid the dots from assistive tech and
left the status region empty. Add the existing common loading label
as visually hidden text.
2026-08-20 00:33:17 +08:00
digua 39ccc63a39 feat(ranking): keep overall ranking cards aligned while loading
Show each leaderboard section in its final card shell during fetch,
with a shared dots placeholder instead of stacked spinners and a
jumping layout.
2026-08-20 00:33:17 +08:00
digua e5f35e2b2b fix(ranking): refresh every chart after a shared avatar clip
Circular clipping is deduped across ranking charts, but completion
used to bump only the instance that started the job. Other mounted
charts kept showing initials until an unrelated rerender.
2026-08-19 23:26:38 +08:00
digua 553c059604 feat(ranking): show member avatars on group leaderboards
Render circular member avatars on ranking lists, person-based charts,
hot-repeat originators, and catchphrase rows. Look up avatars from the
member table instead of bloating ranking queries, and clip ECharts
photos so they match the HTML lists.
2026-08-19 23:26:38 +08:00
digua dd2d5dd39f fix(ai): keep failed process visible and scope chat prose
Completed error segments stay expanded with a failed label, and the 16px reading size applies only to full-size chat answers so compact markdown previews keep their own sizing.
2026-08-19 18:49:20 +08:00
digua 4eb522f3f6 fix(ai): drop queued stream text after stop
Stop generation now cancels the text batcher instead of flushing it, and queued deltas are ignored once the assistant message is no longer streaming.
2026-08-19 18:49:20 +08:00
digua 428ca42a59 feat(ai): polish message bubble and action row
Tighten user bubbles, mute action icons, and show timestamps after the buttons on hover with a date when the message is not from today.
2026-08-19 18:49:20 +08:00
digua 349510edf6 feat(ai): polish chat interface and loading 2026-08-19 18:49:20 +08:00
digua d53a99359b perf(ai): optimize long conversation rendering 2026-08-19 18:49:20 +08:00
digua c44180ca11 feat(ai): unify expandable process details 2026-08-19 18:49:20 +08:00
digua 236dd9bbc0 feat(ai): refine chat response presentation 2026-08-19 18:49:20 +08:00
digua 6d22f5d5fb feat(ai): refine chat process experience 2026-08-19 18:49:20 +08:00
digua 9fa79b5d9f feat(ai): refine streaming process display 2026-08-19 18:49:20 +08:00
digua f3041f682f feat(ai): refine chat process experience 2026-08-19 18:49:20 +08:00
digua 39afeffbcd release: v0.36.1 2026-08-18 17:54:36 +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 c2382b77f2 build(cli): target skill validators for Node 22 2026-08-18 17:27:48 +08:00
digua 163ef41118 docs(cli): align Node runtime requirements 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 0b3d7c7ce9 feat(navigation): keep layout customization internal 2026-08-18 17:27:48 +08:00
digua 4a9801226f fix(desktop): support pnpm 11 packaging 2026-08-18 15:32:16 +08:00
digua a54af007ae feat(navigation): add layout editor 2026-08-18 14:29:38 +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 0f46352b8d feat(plugin): migrate time investment plugin 2026-08-18 14:29:38 +08:00
digua b00959fd5f feat(plugin): add annual summary plugin foundation 2026-08-18 14:29:38 +08:00
digua 2142a35a49 docs: add implementation principles 2026-08-12 13:45:10 +08:00
digua 47299a94cb feat(cli): make clb web the primary web command 2026-08-12 12:47:00 +08:00
digua c6db9f0c4c chore(tooling): upgrade to pnpm 11 2026-08-12 10:29:56 +08:00
digua dfabc4f087 fix(electron): recover from incompatible data directory 2026-08-12 10:00:12 +08:00
digua e482a675a0 fix(electron): defer update dialogs until app is active 2026-08-12 10:00:12 +08:00
digua 22938e4922 chore(relationships): translate renderer comments
Keep newly added documentation and inline comments in English to match the shared codebase convention.
2026-08-12 00:49:59 +08:00
digua d5ad36dee6 fix(relationships): keep filtered galaxy edges restrained
Use one ambient edge budget and opacity across graph scopes so filtered views do not become denser or brighter than the panorama.
2026-08-12 00:49:59 +08:00
digua c13f885eee feat(relationships): refine galaxy depth and focus 2026-08-12 00:49:59 +08:00
digua bcaa19c27b release: v0.36.0 2026-08-11 14:18:26 +08:00