Skip to content

Add title regeneration and improve thread titles - #428

Merged
Tryanks merged 4 commits into
Tryanks:mainfrom
guivieiras:topic/thread-title-regeneration
Sep 15, 2026
Merged

Tryanks merged 4 commits into
Tryanks:mainfrom
guivieiras:topic/thread-title-regeneration

Conversation

@guivieiras

@guivieiras guivieiras commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

Adds Regenerate title to the thread menu in wide and compact layouts. It uses the original request and recent conversation, shows a loading spinner, and preserves the thread's activity timestamp and position. The host tracks pending requests so duplicate clicks across clients share one generation. Failures keep the old title and show an error.

The naming prompt now asks the model to describe the user's main task and leave out instructions about tools or workflow. For example, "Fix QR expiration, use subagents, and open a PR" should produce a title like "Fix QR Link Expiration". It also tells the model to use the language of the user's request, ignoring profile details such as name or timezone.

Before After
Upstream thread menu Thread menu with Regenerate title
Wide loading state Compact loading state
Spinner beside the thread title in the wide sidebar Spinner beside the thread title in the compact list

Captures use a scripted provider. The thread stays below the recent conversation and retains its "1d ago" timestamp after completion.

Validation covers bounded context, stored and cached history, duplicate requests, renamed/deleted threads, failures, and timestamp preservation.

  • Passed: cargo fmt --all --check, cargo build --workspace --locked, cargo test --workspace --locked (1,118 passed, five existing ignored), and cargo machete 0.9.2.
  • Android and Web compile checks passed with RUSTFLAGS='-D warnings'.
  • cargo clippy --workspace --all-targets --locked -- -D warnings reports five existing warnings in command_validation.rs, ui/store/mod.rs, and terminal_drawer.rs; those blocks match upstream.
  • macOS, Windows, and iOS validation is left to CI.

@guivieiras guivieiras changed the title Improve thread titles and add regeneration Add title regeneration and improve thread titles Sep 14, 2026
@guivieiras
guivieiras marked this pull request as ready for review September 14, 2026 04:07
@Tryanks
Tryanks force-pushed the topic/thread-title-regeneration branch from d7b9b67 to e4b995f Compare September 14, 2026 17:12
@Tryanks
Tryanks merged commit 2662c54 into Tryanks:main Sep 15, 2026
6 checks passed
Tryanks added a commit that referenced this pull request Sep 15, 2026
Replace the hand-written Claude catalog (models, option descriptors,
effort special cases, version gates and the [1m]/context-window table)
with the t3code model manifest. A verbatim copy is bundled as the
offline fallback; `list_models` refreshes it from t3code main at most
hourly (5 min back-off, 10 s timeout, 1 MiB cap), caches the last good
copy in the data dir, and skips the network when provider update checks
are disabled. A bundle newer by `updatedAt` outranks the cache, and
invalid data never replaces a usable manifest.

The manifest's `effort` id is translated to `reasoningEffort` at the
boundary; effortMap drives the --effort flag, modelSuffixes the [1m]
suffix, and contextWindowTokens/fixedContextWindowTokens the window a
selection resolves to. Upstream data is adopted wholesale, so some
defaults change (Fable 5.1 effort medium, Sonnet 5 window 200k, Opus 4.7
and 4.8 fixed 1M without a selector, fastMode on Opus 4.5–4.8 and Opus 5).

Also initialises the `title_generating` field in a sidebar test fixture
that no longer compiled after #428.

Co-authored-by: Tryanks <tryanks473@gmail.com>
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