8000 session names/titles · Issue #48 · subinium/agf · GitHub
[go: up one dir, main page]

Skip to content

session names/titles #48

Open
Open

Description

@rooty0

Following up on this.

I can work on that if you don't mind:

You're right that this leaves Cursor and Claude visually inconsistent in the list — Cursor shows a title, Claude shows the user prompt. I'd rather treat that as its own cross-agent UX discussion (summaries ordering / [-cycle semantics across all agents, not just Cursor)

I'd also like to add another feature to show session names/titles for every agent in the settings, similar to what we currently have for show_recap.

Please advise

Activity

  1. subinium commented on Jun 11, 2026

    @subinium
    Owner

    @rooty0 Yes please — happy to have you take this. Here's the direction I'd like, building on what v0.11.3 shipped:

    Data model: give Session an explicit title: Option<String> (mirrored in CachedSession), instead of smuggling the title into summaries[0] the way the Cursor scanner does today. recap already set the precedent for a per-agent optional field.

    Scanners: populate title only where the agent has a native one — Cursor moves its store.db name there (the first-user-prompt extraction stays in summaries), OpenCode has a session title in its session-info JSON, Claude Code can derive one from its {"type":"summary"} JSONL lines. Everything else stays None.

    Display + setting: show_titles: bool, default true — that preserves the Option-1 behavior Cursor already ships and extends it cross-agent. Follow the show_recap pattern exactly: serde-defaulted field in Settings, handled in save_editable, plus a toggle row in the help screen. When on and a title exists, the title renders as the list line, and [ / ] cycling treats it as position 0 followed by the prompt summaries — prompts stay one keypress away. When off: today's prompt-first behavior everywhere. Precedence when on: title > recap (Claude, when show_recap) > summaries.

    Search: include the title in the fuzzy haystack the same way summaries are included.

    Cache: #[serde(default)] on the new CachedSession field; once #51 lands you won't need a CACHE_VERSION bump — the binary-version mismatch already forces the upgrade rescan.

    One ask: keep the first PR to the title plumbing + Cursor migration + the toggle so it's easy to review; other scanners as follow-ups.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      0