# Verifying OpenRouter Override Menus and Pruned Local Fleets

## When this matters

Use this when a user asks to:
- curate the `/model` or `/models` OpenRouter menu
- verify that specific OpenRouter ids appear in Hermes
- prune the local `custom:local` fleet and ensure removed models disappear from menus

## Key lesson

Do **not** verify OpenRouter picker changes with `get_catalog()` alone.

`get_catalog(force_refresh=True)` refreshes the main manifest cache, but the actual provider-specific picker list can be replaced by `model_catalog.providers.<provider>.url`. For OpenRouter, Hermes resolves the picker through:

- `hermes_cli.model_catalog.get_curated_openrouter_models()`
- which calls `_get_provider_block("openrouter")`
- which first checks `_fetch_provider_override("openrouter")`

So if `config.yaml` contains:

```yaml
model_catalog:
  providers:
    openrouter:
      url: file:///home/rurouni/.hermes/cache/openrouter_override.json
```

then the effective menu comes from that local file, **not** from the remote catalog returned by `get_catalog()`.

## Correct verification path

1. Inspect the override source configured in `config.yaml`.
2. Read the override JSON directly.
3. Verify the effective Hermes picker list with:

```python
from hermes_cli.model_catalog import get_curated_openrouter_models
print(get_curated_openrouter_models())
```

If this returns the expected ids, the `/model` picker should reflect them.

## Local fleet pruning pattern

When pruning a multi-model local setup, update all three layers:

1. `~/.hermes/scripts/models.py` — source of truth for local model names/ports/services
2. `~/.hermes/config.yaml` → `custom_providers[local].models` — what Hermes exposes in the picker
3. `/etc/systemd/system/llama-server*.service` — remove/disable obsolete units so stale services do not linger

Then verify with:

- `python3 ~/.hermes/scripts/models.py`
- YAML readback of `custom_providers`
- `find /etc/systemd/system -name 'llama-server*.service'`
- live service state via `systemctl is-active ...`

## Durable takeaway

For Hermes model-menu work, always verify the **effective loader path**, not just the edited file you expect Hermes to use.