hermes-agent/gateway
Shannon Sands 22aadaa56f fix(gateway): source external precedence from refresh inputs, not value equality
Reworks the refresh path to use explicit external-managed names supplied by
gateway orchestration, instead of trying to infer ownership transitions from
env var value equality.

Changes:
- KeystoreClient.inject_env() now accepts external_managed_names for force
  refreshes.
- Gateway refresh computes external-managed names from .env for the current
  cycle and passes them into keystore injection.
- Revocation now clears deleted keystore-backed vars only when they are not
  externally managed this cycle.

Regression coverage added for:
- external replacement with different value surviving delete+refresh
- external replacement with the SAME value surviving delete+refresh
- deleted keystore secret being revoked when no external source replaces it

Validation: 140 targeted tests passing
2026-03-29 08:38:29 +10:00
..
platforms refactor: consolidate ~/.hermes directory layout with backward compat (#3610) 2026-03-28 15:22:19 -07:00
__init__.py Enhance CLI with multi-platform messaging integration and configuration management 2026-02-02 19:01:51 -08:00
channel_directory.py chore: remove ~100 unused imports across 55 files (#3016) 2026-03-25 15:02:03 -07:00
config.py feat(telegram): auto-discover fallback IPs via DoH when api.telegram.org is unreachable (#3376) 2026-03-27 04:03:13 -07:00
delivery.py chore: remove ~100 unused imports across 55 files (#3016) 2026-03-25 15:02:03 -07:00
hooks.py chore: remove ~100 unused imports across 55 files (#3016) 2026-03-25 15:02:03 -07:00
mirror.py chore: remove ~100 unused imports across 55 files (#3016) 2026-03-25 15:02:03 -07:00
pairing.py refactor: consolidate ~/.hermes directory layout with backward compat (#3610) 2026-03-28 15:22:19 -07:00
run.py fix(gateway): source external precedence from refresh inputs, not value equality 2026-03-29 08:38:29 +10:00
session.py fix: gateway token double-counting — use absolute set instead of increment (#3317) 2026-03-26 19:13:07 -07:00
status.py refactor: consolidate get_hermes_home() and parse_reasoning_effort() (#3062) 2026-03-25 15:54:28 -07:00
sticker_cache.py chore: remove ~100 unused imports across 55 files (#3016) 2026-03-25 15:02:03 -07:00
stream_consumer.py fix: handle message length overflow in streaming mode (#1783) 2026-03-17 11:00:52 -07:00