# NousResearch/hermes-agent · Defer/serialize title upgrades for custom provider routes

## Open now

- 0 issues, 2 PRs open on GitHub.
- PR #120571: fix(agent): serialize titles by custom route identity
- PR #120627: fix(agent): defer title upgrade for named custom providers (#120558)

These issues and PRs address a race condition where title upgrades were not properly deferred or serialized for named custom providers and self-hosted routes in the agent. Multiple iterations refine the fix to correctly identify custom route identities.

## TL;DR

- 6 member(s): 0 open issue(s), 1 closed issue(s), 2 open PR(s), 1 merged PR(s), 2 PR(s) closed without merging.
- A fix was merged to main in PR #121481. Verify it addresses your case.
- **Recommended:** read PR #121481 (and any competing PRs below) before filing. Confirm the merged change covers your symptom.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `resolved` · deciding PR(s): `pr-121481`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_SPANNING`): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
- Pairwise link density `0.33`: the share of member pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. `1.00` means every pair is linked.

## Closed / duplicate issues

- #120558: fix(agent): title_upgrade_must_wait_for_turn misses named custom providers ("custom:<name>") — #117296 race persists

## Prior & competing PRs

- **#121481: fix(agent): title upgrade waits for the turn on every self-hosted route**. merged to main · fix tier `verified`
  - maintainer direction: category `merged`
  - files: `agent/title_generator.py`, `tests/agent/test_title_generator.py`
- **#120560: fix(agent): defer title upgrades for named custom providers**. closed without merge
  - maintainer direction: category `superseded_by_pr`; implication `superseded`; refs `#121481`, `#120560`
- **#120571: fix(agent): serialize titles by custom route identity**. open
  - maintainer direction: category `superseded_by_pr`; implication `superseded`; refs `e89583a3c17750eb2b09ee1b463ef4881a43399b`, `16fe260aab45a524df94c8f635352fd9e6e66fe5`, `#120571`, `#117494`, `#120560`, `#117296`, `#117552`, `#120558`
  - files: `agent/error_surface.py`, `agent/title_generator.py`, `hermes_cli/route_identity.py`, `tests/agent/test_error_surface.py`, `tests/agent/test_title_generator.py`
- **#120627: fix(agent): defer title upgrade for named custom providers (#120558)**. open
  - maintainer direction: category `uncategorized`; implication `needs_llm`
  - files: `agent/title_generator.py`, `tests/agent/test_title_generator.py`
- **#120680: fix(agent): defer titles for named custom providers**. closed without merge
  - maintainer direction: category `duplicate_of`; implication `duplicate`; refs `#120560`, `#120571`

## Fix status

- Merged to main in PR #121481 (cited above). No release data is tracked. Verify downstream.
- Fix last verified (merged) `2026-09-24`.
- Subsystem: `agent`
