Repository navigation
fix(terminal): title Claude Code and Cursor CLI cards after their conversation - #900
Merged
Merged
Conversation
…versation A new Claude Code session is spawned without --name: the flag marks the name as the user's, and Claude Code then never writes the ai-title the card is titled from (measured on 2.1.306). Left alone it names itself after its directory and a random suffix, distinct within a checkout, but writes that name nowhere lich reads, so lich publishes no second name for it until a /rename or a fork puts one on record. terminal.Start loses its unused name argument, and native/lichclient moves with it. Cursor CLI files a generated title in the meta.json beside a chat's store.db; lich reads it on the stop report, as it already did for Kiro (title_filed.go). Crush's gap is written down. Tests changed because the contract did: Start no longer takes a caller's name, a new Claude session is unnamed, and a Claude peer with nothing recorded has no roster name.
Merged
2 tasks done
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
A survey of the session title across all eight providers found Claude Code and Codex cards no longer titled, Cursor CLI titleable, and Crush not reliably so. This PR fixes the lich side; the Codex and oh-my-pi fixes are in lichdotdev/lich-plugin.
--name. The flag marks the name as the user's (nameSource: "user"), and a session named that way never writesai-title(measured on 2.1.306; no transcript on disk from 2.1.245 on holds both). Unnamed, Claude Code names itself<dir>-<2 chars>, distinct within one checkout (measured with three sessions in one directory), but writes that name only to~/.claude/sessions/<pid>.json. Sorelay.RosterNameOfreturns no second name for a Claude session with nothing on record, instead of a derived one its own roster never shows. A fork is still named, and a/renameis still honoured.terminal.Startdrops its name argument, which no caller used any more;native/lichclientmoves with it.open_sessionsays "It answers to X." when there is no second name (newOpenedSessionLabelOnly, all seven locales).meta.jsonbeside the chat'sstore.db; lich reads it on the stop report, alongside Kiro (title_kiro.gobecomestitle_filed.go).docs/ceilings.mdanddocs/hooks/session-title.md; the README provider table gains a "card names itself after the conversation" row in every language.Tests changed because the contract did:
Startno longer takes a caller's name, a new Claude session is unnamed, and a Claude peer with nothing recorded has no roster name.Test plan
gofmt -l .,go vet ./...,go test ./...(backend)native/:gofmt -l .,go vet ./...,go test ./...--name:ai-titleonly without, roster names distinct withoutmeta.jsontitlewithin 4 s of the first prompt in the TUI