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.
Treat the persisted side position as debug-only at runtime so upgraded users retain a visible header entry while their original preference remains available when debug mode is enabled again.
Give the transition container and panes a definite height so asynchronously loaded relationship canvases initialize against the full available viewport.
Reapply the camera projection whenever the detail safe area changes so closing the panel removes its stale view offset without resetting the user's camera.
Create the CDP target on a blank page and reset the session playback marker before retained samples so warmups cannot turn splash timing into reload timing.
Defer one-shot background initialization when the presentation request discovers authentication is required, so preferences, LLM state, and sessions initialize only after a successful login.
Remove the one-time close prompt and remembered-choice path so Windows close behavior is always explicit and predictable. New installations now minimize to the system tray by default, while users can still choose to quit from settings.
Compress oversized browser history in model-sized stages so switching to a smaller model can recover. Bound the recent-history fallback when summarization fails without deleting persisted messages.
Avoid matching OpenAI-compatible model IDs across providers. Use an 8K fallback so automatic compression runs before unknown providers reject long conversations.
Limit prereleases to desktop artifacts, keep stable releases gated on CLI success, and start Docker publishing as soon as the npm package is available.
Close the uncached readonly adapter after every Desktop export so Windows can delete the session without restarting. Add regression coverage for the successful export lifecycle.
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.
Carry owner metadata through merge exports when every source agrees and the owner resolves to a merged member. Drop conflicting or unmappable owner identifiers.
QCE exports can mix UIN and UID namespaces while exposing only observed senders. Keep owner metadata unset across TypeScript, chunked, and native parser paths unless it can be mapped safely.
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.
Forward the selected keywords through the shared HTTP route without persistent caching, keep large templates out of the request URL, and reject empty keyword sets before building a regular expression. Ignore superseded analysis responses so rapid keyword changes cannot restore stale rankings or loading state.
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.
Remove the one-off synthetic streaming import benchmark and its script-only tests now that the performance investigation and results have been finalized.
Preserve batch support through telemetry, forward item-scoped progress across Desktop and CLI Web, and retain original backend failure details for diagnostics and unfinished results.
Measure message transaction boundaries separately so final commits are included in message write diagnostics without double counting callback work. Accumulate intermediate and final WAL checkpoint durations in the checkpoint phase.
Run benchmarks in isolated GC-enabled workers, report sparse RSS samples accurately, and hash canonical imported output. Require the Rust Native WeFlow kernel and reject any measured import that falls back to TypeScript so timing and memory baselines remain comparable.