Skip to content

Fix missing titles on existing GUI conversations - #852

Open
yxlyx wants to merge 1 commit into
mainfrom
fix/830-session-titles
Open

Fix missing titles on existing GUI conversations#852
yxlyx wants to merge 1 commit into
mainfrom
fix/830-session-titles

Conversation

@yxlyx

@yxlyx yxlyx commented Sep 10, 2026

Copy link
Copy Markdown
Collaborator

What changed

  • Recognize both user-text content forms when saving session titles, skip empty and peer-injected content, and discard stale placeholders on resume.
  • Recover legacy GUI titles consistently across listing, search, and opening a conversation. Invalidate cached recovery when the saved file changes.
  • Add regression and edge-case coverage for persistence, malformed and image-only messages, Unicode boundaries, cache rewrites, and API consistency.

Why

Existing conversations could be saved as "Untitled session" because the title fallback ignored structured user text. Correcting persistence prevents new occurrences; display-time recovery repairs existing entries without rewriting conversations or replacing named titles. Legacy reads remain bounded, and malformed or oversized files retain their saved fallback.

Verification

Desktop unit tests and production build passed. The complete tier-1 pre-push checks passed.

Fixes #830.

Structured user text was omitted from the saved-title fallback, leaving active chats labeled Untitled session. Read both text forms, skip empty and injected content, and discard stale placeholders on resume.

Recover legacy GUI titles without rewriting saved conversations or replacing named titles. Bound legacy reads and invalidate cached recovery when the file changes. Cover persistence, malformed content, Unicode boundaries, cache rewrites, and list/read consistency with regression tests.
@justrach

Copy link
Copy Markdown
Owner

Follow-up that keeps this commit (author credit) and unblocks the red checks: #859.

zig 0.17 rejects ** next to ++ in the UTF-8 wrap fixtures, so every check on this head failed to compile. #859 rewrites those fixtures with memset + slices. It does not force-push this branch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Existing GUI chats stay labeled Untitled session

2 participants