Skip to content

feat(sessions): auto-generate chat titles and a return recap - #3646

Draft
alan-bentley-pgh wants to merge 2 commits into
kagent-dev:mainfrom
alan-bentley-pgh:alan-bentley-pgh/autoChatTitle
Draft

alan-bentley-pgh wants to merge 2 commits into
kagent-dev:mainfrom
alan-bentley-pgh:alan-bentley-pgh/autoChatTitle

Conversation

@alan-bentley-pgh

@alan-bentley-pgh alan-bentley-pgh commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

🤖 written by Claude (start)

Closes #3645

What this changes

  • A chat is now named from its first turn, if it has no name yet.
  • A chat of 3 or more turns gets a one or two sentence recap. It shows when the reader returns after 3 minutes away.
  • Both use the agent's own model from the Go ADK. Other runtimes keep the first-message title and show no recap.
  • The runtime keeps a turn open for up to 8s after the answer, so the recap can be stored before it suspends.
  • Two commits, so the recap can be reverted alone.

The recap is one model call after each turn from the third, with no off switch yet. A per-agent setting could follow.

Testing

  1. Install this branch and create an agent on the Go ADK with a real model.
  2. Start a chat. After the first reply, the sidebar title becomes a short summary.
  3. Rename the chat, then send another message. The name stays.
  4. Send a third message. The reply may stay on "Answering…" for a few seconds while the recap is stored.
  5. Leave the chat pane alone for 3 minutes, then move the pointer. A recap card appears.
  6. Dismiss it with the X, or send a message. It goes away.

🤖 Generated with Claude Code


🤖 written by Claude (end)

@github-actions github-actions Bot added the enhancement New feature or request label Nov 11, 2026
@alan-bentley-pgh

This comment has been minimized.

@alan-bentley-pgh

This comment has been minimized.

alan-bentley-pgh

This comment was marked as resolved.

The Go ADK starts a title call when a session's first turn begins and
writes it just before the final event, through a new SetSessionNameIfEmpty
RPC. The write only applies while the name is empty, so a rename always
wins. A slow or failed call leaves the first-message title in place.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Signed-off-by: Alan Bentley <alanbentleypgh@gmail.com>
@alan-bentley-pgh
alan-bentley-pgh force-pushed the alan-bentley-pgh/autoChatTitle branch from 6373ef5 to ec732c2 Compare November 11, 2026 19:56
alan-bentley-pgh

This comment was marked as resolved.

After a turn of a session with three or more turns, the Go ADK writes a
short recap through a new SetSessionRecap RPC while the reply is already
sent. Cleanup waits for it before the task settles, and the next request
cancels it. The chat shows the stored recap in a labelled card once the
reader returns after three minutes away.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Signed-off-by: Alan Bentley <alanbentleypgh@gmail.com>
@alan-bentley-pgh
alan-bentley-pgh force-pushed the alan-bentley-pgh/autoChatTitle branch from ec732c2 to 2610969 Compare November 11, 2026 20:08
alan-bentley-pgh

This comment was marked as resolved.

@alan-bentley-pgh

alan-bentley-pgh commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor Author

Before and after, on real chats against a live model. main is before, this PR is after.

  • Sidebar title: the first message becomes a short generated title.
  • Recap card: after 3 turns and a 3 minute absence, a recap appears. The X closes it.

No query, index or schema changes, so no benchmark.

summary-reel-v4.mp4

Screenshots

Before: sidebar title is the first message before-title
After: generated sidebar title after-title
Before: no recap before-recap
After: recap card with dismiss after-recap

🤖 written by Claude

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

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE] Auto-generate chat titles and a return recap

1 participant