Skip to content

feat: last-message preview, idle indicator, and rename UX polish#47

Open
researchoor wants to merge 1 commit intodnakov:mainfrom
researchoor:feat/local-session-nicknames
Open

feat: last-message preview, idle indicator, and rename UX polish#47
researchoor wants to merge 1 commit intodnakov:mainfrom
researchoor:feat/local-session-nicknames

Conversation

@researchoor
Copy link
Copy Markdown
Contributor

@researchoor researchoor commented Mar 20, 2026

Summary

  • Last-message preview: cache last assistant message per session (UserDefaults) and show as one-line preview on session list — same pattern as iMessage. Populated when a thread is opened; persists across app restarts.
  • Idle indicator: show muted dot on completed session rows instead of invisible spacer.
  • Rename UX: pre-fill rename dialog with current session title for easier editing.
  • Live Activity guard: prevent background wake from updating Live Activity for already-completed sessions.

Reworked per feedback — dropped the local-only nicknames approach. Rename uses the existing thread/name/set server-side API (already wired up via ServerManager.renameThread), so names sync across devices.

Changed files

File Change
LocalSessionLastMessage.swift New: on-device cache for last assistant message per session
ServerManager.swift Guard Live Activity updates for completed sessions
SessionsModel.swift Orchestrate last-message cache updates outside observation tracking
SessionsScreen.swift Last-message preview row, idle dot, pre-filled rename draft
project.pbxproj Add new file to project

Known limitation

Last-message preview requires opening a thread at least once to populate the cache. Once openai/codex#15350 ships last_assistant_message in thread/list, the cache can be replaced with the server field.

Verification

  1. Build: xcodebuild -project apps/ios/Litter.xcodeproj -scheme Litter -configuration Debug -destination 'platform=iOS Simulator,name=iPhone 17 Pro' build
  2. Open a session → go back to list → verify last-message preview appears
  3. Long-press session → Rename → verify title pre-filled and rename persists server-side
  4. Completed sessions show muted idle dot

🤖 Generated with Claude Code

@dnakov
Copy link
Copy Markdown
Owner

dnakov commented Mar 22, 2026

i think we should just be using the app-server way to rename the thread, no?

- Cache last assistant message per session (UserDefaults) and show as
  one-line preview on the session list — same pattern as iMessage
- Show muted idle dot on completed session rows instead of invisible spacer
- Pre-fill rename dialog with current session title for easier editing
- Guard Live Activity background updates for already-completed sessions

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@researchoor researchoor force-pushed the feat/local-session-nicknames branch from 9ce3853 to 7bfeedd Compare March 22, 2026 19:49
@researchoor researchoor changed the title feat: local-only session nicknames feat: last-message preview, idle indicator, and rename UX polish Mar 22, 2026
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.

2 participants