Skip to content

Sync Hermes session titles with the T3 Agent sidebar#3

Merged
eimexdev merged 2 commits into
mainfrom
agent/hermes-title-sync
Jul 24, 2026
Merged

Sync Hermes session titles with the T3 Agent sidebar#3
eimexdev merged 2 commits into
mainfrom
agent/hermes-title-sync

Conversation

@eimexdev

@eimexdev eimexdev commented Jul 24, 2026

Copy link
Copy Markdown
Owner

Summary

  • make Hermes the authoritative title source for T3 Agent conversations
  • route sidebar renames through Hermes and project accepted canonical titles back into T3
  • publish /title and Hermes automatic titles into the sidebar, with reconnect/list reconciliation
  • disable generic T3 first-turn title generation for Hermes threads while retaining the provisional first-message label
  • document the ownership and failure semantics

Verification

  • focused contracts, bridge client, lifecycle, adapter callback, and provider command reactor tests
  • full Hermes plugin suite: 31 passed
  • typechecks for contracts, client runtime, server, and web
  • isolated browser verification of the sidebar rename flow
  • independent Standards and Spec review passes

Operational note

The live Hermes plugin installation and running T3 Agent instance were not modified or restarted. Plugin installation against a real Hermes instance is intentionally deferred until after review/merge.

Summary by CodeRabbit

  • New Features

    • Added support for renaming Hermes-backed conversation titles directly from the sidebar.
    • Hermes now publishes session title changes and keeps conversation titles synchronized across the app.
    • Added automatic title reconciliation after startup or reconnection to restore missed updates.
  • Bug Fixes

    • Prevented provisional titles from being overwritten by T3’s automatic title generation for Hermes conversations.
    • Failed Hermes title changes no longer alter the displayed local title.

@eimexdev
eimexdev merged commit 81aab94 into main Jul 24, 2026
6 of 11 checks passed
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L labels Jul 24, 2026
@coderabbitai

coderabbitai Bot commented Jul 24, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: c35d5709-f302-405d-bfce-db7a4203967d

📥 Commits

Reviewing files that changed from the base of the PR and between 7b0344a and af7734b.

📒 Files selected for processing (21)
  • CONTEXT.md
  • apps/server/src/orchestration/Layers/ProviderCommandReactor.test.ts
  • apps/server/src/orchestration/Layers/ProviderCommandReactor.ts
  • apps/server/src/provider/Layers/HermesAdapter.test.ts
  • apps/server/src/provider/Layers/HermesAdapter.ts
  • apps/server/src/provider/hermes/HermesBridgeClient.test.ts
  • apps/server/src/provider/hermes/HermesBridgeClient.ts
  • apps/server/src/provider/hermes/HermesBridgeRegistry.ts
  • apps/server/src/provider/hermes/HermesConversationLifecycle.test.ts
  • apps/server/src/provider/hermes/HermesConversationLifecycle.ts
  • apps/server/src/ws.ts
  • apps/web/src/components/Sidebar.tsx
  • apps/web/src/components/SidebarV2.tsx
  • apps/web/src/hooks/useRenameThreadTitle.ts
  • docs/architecture/t3-agent.md
  • integrations/hermes/t3agent/adapter.py
  • integrations/hermes/t3agent/tests/test_adapter.py
  • packages/client-runtime/src/state/server.ts
  • packages/contracts/src/hermesBridge.test.ts
  • packages/contracts/src/hermesBridge.ts
  • packages/contracts/src/rpc.ts

📝 Walkthrough

Walkthrough

Hermes session titles are added as authoritative thread-title projections. The change introduces title-update contracts, adapter synchronization, server-side rename and reconciliation flows, Hermes-specific first-turn handling, and web sidebar routing through a dedicated rename hook.

Changes

Hermes title ownership

Layer / File(s) Summary
Title and rename contracts
packages/contracts/src/hermesBridge.ts, packages/contracts/src/rpc.ts, packages/client-runtime/src/state/server.ts
Adds session-title bridge schemas, conversation rename types, lifecycle error operations, and the hermesConversationRename RPC.
Hermes title update bridge
integrations/hermes/t3agent/adapter.py, apps/server/src/provider/hermes/..., apps/server/src/provider/Layers/HermesAdapter.ts
Adds title update ingress, canonical title publication, polling after successful turns, bridge client support, and callback-to-thread metadata events.
Lifecycle rename and reconciliation
apps/server/src/provider/hermes/HermesConversationLifecycle.ts, apps/server/src/ws.ts, apps/server/src/orchestration/Layers/ProviderCommandReactor.ts
Adds serialized Hermes renames, title projection reconciliation, server RPC wiring, startup reconciliation, and suppression of generated first-turn titles for Hermes threads.
Web rename routing
apps/web/src/hooks/useRenameThreadTitle.ts, apps/web/src/components/Sidebar*.tsx
Routes sidebar renames through Hermes in agent mode and local metadata updates in other modes.

Estimated code review effort: 4 (Complex) | ~60 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Sidebar
  participant WebRuntime
  participant Server
  participant HermesBridge
  participant Hermes
  Sidebar->>WebRuntime: renameThreadTitle(threadId, title)
  WebRuntime->>Server: hermes.conversation.rename
  Server->>HermesBridge: updateSessionTitle
  HermesBridge->>Hermes: POST /v1/sessions/title
  Hermes-->>HermesBridge: canonical title response
  HermesBridge-->>Server: accepted or rejected result
  Server-->>WebRuntime: rename result
  Hermes->>HermesBridge: session.title.updated
  HermesBridge->>Server: thread.metadata.updated
Loading
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch agent/hermes-title-sync

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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

Labels

size:L vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant