Skip to content

feat: add conversation retitle mod - #79

Merged
carenthomas merged 2 commits into
mainfrom
just-cameron/retitle-conversation-mod
Aug 21, 2026
Merged

carenthomas merged 2 commits into
mainfrom
just-cameron/retitle-conversation-mod

Conversation

@just-cameron

Copy link
Copy Markdown
Contributor

Overlord (agent-c2adbf5c-8419-4211-8cd8-3740db164974)

Summary

  • Add the official @letta-ai/retitle-conversation package.
  • Register an approval-gated retitle_conversation tool through the scoped conversation mod API.
  • Add user documentation, agent semantics, focused tests, and the official catalog entry.

Why

This repository did not provide an official agent-callable package for conversation titles. This package gives agents a narrow way to update a missing, generic, or stale title.

Behavior and limits

The tool calls ctx.conversation.updateTitle() for the current conversation. It requires Letta Code >=0.30.21 and has no configuration or external dependencies.

The tool does not rename conversations automatically. It requires approval in permission modes that enforce approval. It does not run in parallel with other tool mutations.

The tool replaces terminal controls, bidirectional text controls, and unsafe invisible separators. It rejects empty, invisible-only, and longer-than-100-code-point titles.

Security and recovery

The package mutates only the current conversation title. It does not read conversation history, files, environment variables, or secrets. It does not start subprocesses or call fetch. The host persists the title through the conversation API.

Users can recover from mod startup or tool failures with letta --no-mods or LETTA_DISABLE_MODS=1 letta.

Validation

  • npm test --prefix packages/retitle-conversation — 7 tests passed.
  • All package test scripts passed.
  • npm run validate — package manifests and catalogs passed.
  • npm pack --dry-run --json — only the declared package files are included.
  • Isolated local install with the source Letta Code CLI — package installed and listed with the tools capability.
  • bun test src/mods/conversation-handle.test.ts src/cli/app/conversation-title-sync.test.ts in Letta Code — 8 host API tests passed.
  • Independent adversarial review found incomplete Unicode control filtering. The follow-up commit covers the missing controls and invisible-only titles.

A live stored-conversation mutation was not repeated with the packaged copy. The host API tests cover persistence and active interface refresh for ctx.conversation.updateTitle().

just-cameron and others added 2 commits August 21, 2026 11:11
Letta Code (agent-c2adbf5c-8419-4211-8cd8-3740db164974)

Add an approval-gated tool that updates the current conversation title through the scoped mod API, with input normalization, focused tests, and user and agent documentation.

👾 Generated with [Letta Code](https://letta.com)

Co-Authored-By: Letta Code <noreply@letta.com>
Letta Code (agent-c2adbf5c-8419-4211-8cd8-3740db164974)

Cover all Unicode bidirectional controls and reject titles without visible content while preserving joiners in normal text.

👾 Generated with [Letta Code](https://letta.com)

Co-Authored-By: Letta Code <noreply@letta.com>
@just-cameron
just-cameron marked this pull request as ready for review August 21, 2026 18:18
@carenthomas
carenthomas merged commit a60a505 into main Aug 21, 2026
1 check passed
@carenthomas
carenthomas deleted the just-cameron/retitle-conversation-mod branch August 21, 2026 18:28
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