Conversation
…#8) Add three related features to improve session card readability: - Auto-title: derive display_name from first user message (~5 words) when not manually locked - Live preview: show latest agent activity (tool calls, assistant text) as a collapsible line with chevron expand for last 3 messages - Lock toggle: lock/unlock button next to title to freeze auto-updates Backend: new display_name_locked and last_activity_preview DB columns, watcher now generates titles/previews and broadcasts via WebSocket, SessionPatch extended with display_name_locked field. Frontend: lock button, preview line with expand/collapse, role badges in expanded view. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
8 tasks
Unit Test Coverage
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
The preview line was falling back to task_description when last_activity_preview was null, duplicating text already shown in the card body. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Notification hook events (e.g., "Claude is waiting for your input") were clobbering task_description, causing cards to show stale notification text even when the session was actively working. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Long sessions (1000+ entries) were only fetching the last 200, causing user prompts from earlier in the conversation to be missing from the transcript view. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace simple word truncation with claude -p --model haiku subprocess for intelligent 3-5 word titles. Titles regenerate every 10 user messages so they evolve with the session. Includes per-session dedup guard to prevent spawning multiple claude processes for the same session. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Simplify LLM title trigger to only fire when display_name is empty. The previous "every 10 messages" logic would trigger for all sessions at once when file positions reset on restart. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace LLM-based title generation with branch-aware heuristic. Cleans up branch names by stripping prefixes (feature/, fix/, etc.) and ticket IDs, then converts kebab-case to Title Case. Examples: - feature/PROJ-42-fix-auth-bug → "Fix Auth Bug" - feat/add-dark-mode → "Add Dark Mode" - fix/CIT-357-table-inline-filters → "Table Inline Filters" Falls back to truncated first user message when branch is unhelpful. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
File positions were stored in-memory only, so every server restart caused the watcher to re-read ALL JSONL files from the beginning, creating duplicate sessions and flooding the dashboard (142+ sessions). Now saves positions to the settings table after each file is processed and restores them on startup. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
display_nameauto-derived from git branch name (cleaned up) or first user message when not lockedChanges
server/db.py: Adddisplay_name_lockedandlast_activity_previewcolumnsserver/watcher.py: Add_generate_auto_title()(branch-aware),_extract_activity_preview()helpers; wire into_process_file_changes()with WebSocket broadcast; persist file positions to DBserver/routes/api.py: ExtendSessionPatchwithdisplay_name_lockedfieldserver/hooks.py: Stop Notification events from clobberingtask_descriptionpublic/js/dashboard.js: Lock button, preview line with expand/collapse,toggleLock()andtogglePreview()methodspublic/js/terminal.js: Increase transcript fetch limit from 200 to 1000public/css/style.css: Styles for lock button, preview line, expanded view, role badgestests/: 17 new tests (watcher helpers, API lock toggle, DB columns) + e2e fixTest plan
pytest— 255 unit tests passed, 0 failedCloses #8
🤖 Generated with Claude Code