Teknium
2b4deeb32b
fix(auth): key sibling per-process credential memos by profile home under multiplex
...
Same class as the resolve_nous_access_token memo: three more process-wide
memos carried a credential resolved under one profile's HERMES_HOME override
into another profile's turn for their TTL.
- hermes_cli/nous_billing.py::_token_cache (30s (token, base) memo for the
charge poll loop) was a single unkeyed slot -> dict keyed by
hermes_home_key(); invalidate_cached_token() clears the dict.
- agent/moa_loop.py::_runtime_cache carried api_key/base_url/api_mode keyed
only (provider, model) for 5 min -> (hermes_home_key(), provider, model).
- agent/auxiliary_client.py::_client_cache_key had no profile component, so
callers that omit api_key (pool / Nous auth.json paths) could be handed a
client built with another profile's bearer -> hermes_home_key() leads the key.
WHY hermes_home_key(): it reads the per-turn HERMES_HOME override the
multiplex gateway sets (falling back to the env var), and it is
symlink-stable, so the memo key is exactly the credential home the
resolution itself read from. Profiles stay independent islands; the
default-profile process env never leaks into a secondary's turn.
Tests: one invariant per site, proven red on origin/main.
2026-09-10 18:11:25 -07:00
..
2026-09-07 04:46:04 -07:00
2026-09-10 03:58:37 -07:00
2026-09-10 18:11:25 -07:00
2026-09-06 07:19:21 -07:00
2026-09-11 03:45:33 +05:30
2026-09-03 13:22:51 -07:00
2026-09-10 15:32:47 +05:30
2026-09-03 14:21:52 -07:00
2026-09-03 17:28:02 -07:00
2026-09-07 22:47:33 +05:30
2026-09-03 23:55:56 -07:00
2026-08-31 01:04:11 -07:00
2026-09-10 18:10:48 -07:00
2026-09-10 18:11:25 -07:00
2026-09-10 03:04:51 -07:00
2026-09-10 10:45:57 -07:00
2026-09-07 10:24:17 +02:00
2026-09-04 00:53:42 -07:00
2026-09-03 13:38:36 -07:00
2026-09-03 13:29:35 -07:00
2026-09-01 14:11:55 +05:30
2026-08-28 11:54:33 +05:30
2026-09-10 10:45:57 -07:00
2026-09-07 06:06:46 -07:00
2026-09-03 13:38:36 -07:00
2026-09-10 18:08:16 -07:00
2026-09-09 04:15:27 -07:00
2026-09-02 10:33:43 -07:00
2026-09-08 13:39:01 -07:00
2026-09-09 09:19:57 -07:00
2026-09-10 10:35:07 -07:00
2026-09-11 03:45:33 +05:30
2026-09-09 02:35:41 -07:00
2026-09-09 04:38:01 -07:00
2026-09-09 13:30:28 -07:00
2026-09-01 09:28:01 -07:00
2026-09-03 13:28:22 -07:00
2026-08-31 09:56:43 -07:00
2026-08-31 12:36:33 -07:00
2026-09-07 22:47:33 +05:30
2026-09-10 11:48:01 -07:00
2026-09-02 19:20:44 -07:00
2026-09-03 14:21:52 -07:00
2026-09-02 13:29:46 -07:00
2026-09-06 22:45:31 +05:30
2026-09-03 13:29:55 -07:00
2026-09-04 00:15:16 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 13:28:22 -07:00
2026-09-02 19:53:29 -07:00
2026-09-07 06:09:56 -07:00
2026-09-01 08:36:03 -07:00
2026-09-08 17:13:48 -07:00
2026-09-02 00:44:19 -07:00
2026-09-08 17:13:48 -07:00
2026-08-31 10:05:13 -07:00
2026-09-06 07:19:21 -07:00
2026-08-28 05:45:00 -07:00
2026-09-05 02:31:06 -07:00
2026-08-28 12:20:40 -07:00
2026-09-02 06:19:03 -07:00
2026-09-03 13:12:50 -07:00
2026-09-02 15:03:42 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 05:03:04 +05:30
2026-08-31 09:56:43 -07:00
2026-09-02 15:03:42 -07:00
2026-09-03 13:46:50 -07:00
2026-09-08 02:27:24 +05:30
2026-09-03 02:06:56 +05:30
2026-09-02 15:03:42 -07:00
2026-09-03 16:35:01 -07:00
2026-08-31 09:56:04 -07:00
2026-09-09 18:26:15 +05:30
2026-09-09 10:52:21 -07:00
2026-09-03 13:16:47 -07:00
2026-09-10 10:45:57 -07:00
2026-08-31 10:00:38 -07:00
2026-09-02 17:26:25 -04:00
2026-09-01 09:28:01 -07:00
2026-09-01 09:28:01 -07:00
2026-09-01 09:28:01 -07:00
2026-08-31 10:00:55 -07:00
2026-08-31 10:53:18 -07:00
2026-08-31 10:53:18 -07:00
2026-09-01 11:25:10 -07:00
2026-08-28 12:36:15 -07:00
2026-09-09 18:26:15 +05:30
2026-09-03 13:46:50 -07:00
2026-09-03 15:07:39 -07:00
2026-09-09 09:19:54 -07:00
2026-09-09 13:30:28 -07:00
2026-09-02 17:07:24 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 13:48:49 -07:00
2026-09-10 02:21:16 +05:30
2026-09-03 13:28:22 -07:00
2026-08-31 10:03:34 -07:00
2026-09-03 17:45:53 -07:00
2026-09-04 04:56:11 -07:00
2026-09-04 01:28:31 -07:00
2026-09-04 20:24:24 -04:00
2026-09-09 11:31:10 -07:00
2026-09-03 19:33:28 -07:00
2026-09-03 14:21:52 -07:00
2026-08-31 05:56:18 -07:00
2026-09-03 13:46:50 -07:00
2026-08-31 09:56:04 -07:00
2026-09-03 14:21:52 -07:00
2026-09-07 06:04:23 -07:00
2026-09-03 13:46:50 -07:00
2026-09-02 07:26:52 -07:00
2026-09-03 13:46:50 -07:00
2026-09-09 18:26:15 +05:30
2026-09-03 13:46:50 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 13:46:50 -07:00
2026-09-09 09:19:57 -07:00
2026-09-03 16:35:01 -07:00
2026-09-03 13:46:50 -07:00
2026-08-31 09:58:40 -07:00
2026-09-05 12:21:21 +05:30
2026-09-05 17:00:18 -07:00
2026-09-09 12:20:38 -07:00
2026-09-10 10:27:07 -07:00
2026-09-11 03:45:33 +05:30
2026-09-03 14:21:52 -07:00
2026-09-03 14:21:52 -07:00
2026-09-07 08:23:08 -07:00
2026-09-03 13:12:50 -07:00
2026-09-03 13:12:50 -07:00
2026-09-03 13:12:50 -07:00
2026-09-09 18:25:11 +05:30