Skip to content

th-d5b446: rename conversations from the daemon PWA sidebar - #183

Merged
brentrager merged 1 commit into
th-c89c2a-smooth-daemonfrom
th-d5b446-rename-ui
Jul 9, 2026
Merged

th-d5b446: rename conversations from the daemon PWA sidebar#183
brentrager merged 1 commit into
th-c89c2a-smooth-daemonfrom
th-d5b446-rename-ui

Conversation

@brentrager

Copy link
Copy Markdown
Contributor

Problem

The daemon PWA sidebar (pearl th-d5b446, PR #181) lists conversations but there's no way to rename one. Pairs with the server-side auto-title + rename_conversation (smooth-operator PR #213) so auto-generated titles surface here and users can override them.

Solution

  • Sidebar rename affordance — each row gains a hover pencil icon (and double-click the row) that opens an inline text input in place of the title. Enter commits, Esc or blur cancels. Row styling mirrors the existing Aurora-Glass look; the pencil is overlaid as a sibling of the resume button (never nested inside it).
  • Optimistic + reconciled — the row title updates immediately, then the server's canonical (sanitized) title is reconciled onto it from the rename_conversation reply ({conversationId, title}), discriminated from create-session / history replies by carrying a title with no sessionId/messages.
  • useOperator hook gains renameConversation(id, title) → sends {action:'rename_conversation', requestId, conversationId, title} (trimmed; empty is a no-op client-side, and the server rejects empty too).

Files

  • crates/smooth-web/web/src/operator.tsrenameConversation + reply reconciliation
  • crates/smooth-web/web/src/App.tsx — Sidebar row rename UI

Verification

pnpm exec tsc --noEmit clean; pnpm build:web succeeds; oxlint on the changed files introduces zero new findings (6 = 6 vs the base branch — the img-element / underscore-dangle / &&-expr warnings are all pre-existing).

Do not merge — leaving this for @brentrager to integrate + deploy the daemon. Base is the epic branch th-c89c2a-smooth-daemon, not main.

Pearl: th-d5b446

🤖 Generated with Claude Code

Each sidebar row gets a rename affordance — a hover pencil icon (or
double-click the row) opens an inline input in place of the title; Enter
commits, Esc/blur cancels. The row updates optimistically, then reconciles
to the server's canonical (sanitized) title from the rename_conversation
reply.

Adds renameConversation(id, title) to the useOperator hook, sending the
server's rename_conversation WS action. Pairs with the server-side
auto-title + rename (th-d5b446).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Jul 9, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: fea4b06

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@smooai/smooth Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@brentrager
brentrager merged commit 3b8f2f9 into th-c89c2a-smooth-daemon Jul 9, 2026
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.

1 participant