teknium1
3272fb35aa
docs: profile-scope invariant in AGENTS.md — one process serves many profiles; out-of-turn code binds its scope
...
Root AGENTS.md § Code Shape Rules replaces "module-level constants are fine — they cache after
_apply_profile_override() sets HERMES_HOME" (true for `hermes -p x <cmd>`, inverted under the
multiplex gateway and the Desktop/dashboard `serve` backend, where os.environ holds the LAUNCH
profile) with the invariant: a profile = home + secret scope + terminal scope, bound per profile
ACTIVITY, and every execution point with no turn on the stack binds it explicitly. Names the real
seams: gateway/run.py::_profile_runtime_scope, tui_gateway @_profile_scoped +
_session_profile_runtime_scope (+ _profile_runtime_scope_tokens, launch_profile_policy ->
set_multiplex_active), cron/scheduler_provider.py::_profile_cron_scope,
gateway/run_agent_cache.py::_run_release_in_profile_scope, tools/environments/local.py::
served_profile_child_env, agent/memory_provider.py::spawn_context_thread. Adds a routing-table row
for profiles / multiplex / secret scope.
Area AGENTS.md paragraphs, one per seam, for gateway/ (activity-not-turn binding, hooks per
profile, adapter YAML never reaches os.environ, unserved shared-ingress reported via
_note_unserved_secondary_platform + needs_attention at the single writer), tui_gateway/ (RPC
binding is home AND secret AND terminal; HOME-only is half-bound; teardown chokepoint), cron/
(per-home tick lock, ticker scope incl. pre-loop code, kanban notifier routing, worker liveness by
(pid, worker_started_at) fingerprint, descendant fence as a path), hermes_cli/ (DEFAULT_CONFIG
key <-> reader parity, service-install matrix, -p vs multiplex home binding), tools/ (check_fn
reads through get_secret and is cached per hermes_home_key, one env builder per spawn, MCP trust
per profile), plugins/ (lifecycle hooks are bound by the caller; never cache the home from
initialize()), apps/desktop/src/ (pooled serve per (connection, profile); remote topologies),
agent/ (end-of-session flush is caller-bound; set_multiplex_active gates fail-closed).
Corrects the statements the multiplex model made wrong, in the same PR: root module-constant
sentence; hermes_cli "sets HERMES_HOME before any import" (+ cli-internals.md);
ADDING_A_PLATFORM.md §2 raw os.getenv loader (now an _ENV_STEPS row through config.py::_getenv)
and §4 platform_env_map in gateway/run.py (now _PLATFORM_ALLOWLIST_ENV in pairing.py + registry
allowed_users_env); platform_registry.py "may set os.environ (guard with not os.getenv)";
cron/AGENTS.md hardcoded ~/.hermes/cron/.tick.lock; gateway-internals.md agent:main as THE key
format, ~/.hermes/hooks/, single-profile `gateway stop`, plus a new "Multiplexed profiles"
section; tools/AGENTS.md os.getenv check_fn sample; "installed per turn" wording; "one temp
HERMES_HOME" E2E wording; multi-profile-gateways.md intro lists system units, Windows tasks, s6
and the Desktop backend.
2026-09-15 10:59:22 -07:00
..
2026-09-13 09:40:44 -07:00
2026-09-15 05:32:58 -07:00
2026-09-13 05:09:43 -07:00
2026-09-03 03:31:03 -07:00
2026-09-15 06:22:15 -07:00
2026-09-15 20:44:42 +05:30
2026-09-14 09:02:28 -07:00
2026-09-15 04:11:11 -07:00
2026-09-03 15:07:39 -07:00
2026-09-15 04:12:13 -07:00
2026-09-03 15:07:39 -07:00
2026-09-03 02:46:19 -07:00
2026-09-07 06:13:16 -07:00
2026-09-15 04:11:11 -07:00
2026-09-15 04:12:13 -07:00
2026-09-15 03:58:44 -07:00
2026-09-15 03:58:44 -07:00
2026-09-02 21:00:34 -07:00
2026-09-15 10:59:22 -07:00
2026-09-15 20:44:42 +05:30
2026-09-11 03:45:33 +05:30
2026-09-15 20:44:42 +05:30
2026-09-03 13:49:57 -07:00
2026-09-02 20:56:23 -07:00
2026-09-15 04:57:29 -07:00
2026-09-05 18:08:00 +05:30
2026-09-02 22:51:30 -07:00
2026-09-15 04:53:38 -07:00
2026-09-15 04:12:13 -07:00
2026-09-15 20:44:42 +05:30
2026-09-15 04:12:13 -07:00
2026-09-15 04:12:13 -07:00
2026-09-03 13:08:40 -07:00
2026-09-03 13:48:49 -07:00
2026-09-15 20:44:42 +05:30
2026-09-15 06:29:50 -07:00
2026-09-12 22:07:41 -07:00
2026-09-15 03:38:29 -07:00
2026-09-12 22:07:41 -07:00
2026-09-03 13:08:40 -07:00
2026-09-02 21:59:38 -07:00
2026-09-15 06:29:50 -07:00
2026-09-02 20:34:28 -07:00
2026-09-15 04:12:13 -07:00
2026-09-03 02:07:33 -07:00
2026-09-15 04:12:13 -07:00
2026-09-02 21:26:16 -07:00
2026-09-15 06:16:38 -07:00
2026-09-02 23:58:31 -07:00
2026-09-02 23:58:31 -07:00
2026-09-08 03:06:30 -07:00
2026-09-04 00:15:16 -07:00
2026-09-12 08:25:54 -07:00
2026-09-15 04:12:13 -07:00
2026-09-12 08:25:54 -07:00
2026-09-15 04:12:13 -07:00
2026-09-15 06:36:55 -07:00
2026-09-15 04:12:13 -07:00
2026-09-15 06:29:50 -07:00
2026-09-15 04:12:13 -07:00
2026-09-15 14:52:26 +05:30
2026-09-13 20:54:50 -07:00
2026-09-02 21:23:44 -07:00
2026-09-13 14:35:32 -07:00
2026-09-13 05:21:02 -07:00
2026-09-12 22:00:02 -07:00
2026-09-13 14:35:32 -07:00
2026-09-08 13:39:17 -07:00
2026-09-15 04:08:53 -07:00
2026-09-15 20:47:06 +05:30
2026-09-15 04:12:13 -07:00
2026-09-03 13:30:31 -07:00
2026-09-02 23:58:31 -07:00
2026-09-13 20:50:10 -07:00
2026-09-13 05:07:11 -07:00
2026-09-02 21:03:13 -07:00
2026-09-02 15:03:42 -07:00
2026-09-15 06:29:50 -07:00
2026-09-12 08:25:36 -07:00
2026-09-13 20:41:41 -07:00
2026-09-03 00:06:54 -07:00
2026-09-12 16:17:04 -07:00
2026-09-15 10:57:16 -07:00
2026-09-15 06:29:50 -07:00
2026-09-15 05:25:39 -07:00
2026-09-15 00:41:13 +05:30
2026-09-10 01:08:18 -07:00
2026-09-15 06:29:50 -07:00
2026-09-14 08:10:36 -07:00
2026-09-03 09:44:26 -07:00
2026-09-02 20:47:14 -07:00
2026-09-13 05:07:11 -07:00
2026-09-13 05:09:06 -07:00
2026-09-15 04:12:13 -07:00
2026-09-15 05:38:31 -07:00
2026-09-05 16:45:59 +05:30
2026-09-13 05:21:02 -07:00
2026-09-03 00:04:40 -07:00
2026-09-13 05:07:11 -07:00
2026-09-13 09:18:02 -07:00
2026-09-03 14:16:54 -07:00
2026-09-10 01:25:45 -07:00
2026-09-03 00:06:30 -07:00
2026-09-04 00:15:16 -07:00
2026-09-15 04:12:13 -07:00
2026-09-03 13:16:47 -07:00
2026-09-13 05:09:06 -07:00
2026-09-15 05:02:30 -07:00
2026-09-03 00:05:41 -07:00
2026-09-15 12:51:27 +05:30
2026-09-15 04:12:13 -07:00
2026-09-15 04:12:13 -07:00
2026-09-04 07:17:00 -07:00
2026-09-15 04:12:13 -07:00
2026-09-06 05:41:46 -07:00
2026-09-13 20:51:06 -07:00
2026-09-03 17:13:22 -07:00
2026-09-12 21:39:10 -07:00
2026-09-14 08:10:36 -07:00
2026-09-15 20:44:42 +05:30
2026-09-15 04:12:13 -07:00
2026-09-02 20:40:51 -07:00
2026-09-14 16:16:06 -07:00
2026-09-14 16:16:06 -07:00
2026-09-15 03:44:36 -07:00
2026-09-15 04:07:13 -07:00
2026-09-15 04:13:44 -07:00
2026-09-15 04:12:13 -07:00
2026-09-10 01:00:19 -07:00
2026-09-12 15:00:37 +05:30
2026-09-07 00:51:41 -07:00
2026-09-15 03:59:50 -07:00
2026-09-03 00:06:30 -07:00
2026-09-06 07:20:24 -07:00
2026-09-02 20:06:17 -07:00
2026-09-03 00:06:30 -07:00
2026-09-02 21:20:42 -07:00
2026-09-03 00:06:30 -07:00
2026-09-13 05:07:11 -07:00
2026-09-11 03:45:32 +05:30
2026-09-03 17:13:22 -07:00
2026-09-03 13:48:14 -07:00
2026-09-15 03:47:15 -07:00
2026-09-15 06:08:20 -07:00
2026-09-07 14:16:57 -07:00
2026-09-14 16:14:33 -07:00
2026-09-03 13:48:14 -07:00
2026-09-15 06:25:42 -07:00
2026-09-13 05:09:06 -07:00
2026-09-03 17:13:22 -07:00
2026-09-07 06:04:06 -07:00
2026-09-07 04:46:54 -07:00
2026-09-14 16:14:33 -07:00
2026-09-07 04:46:54 -07:00
2026-09-07 04:46:54 -07:00
2026-09-13 05:09:43 -07:00
2026-09-09 12:18:58 -07:00
2026-09-03 13:48:14 -07:00
2026-09-15 06:25:42 -07:00
2026-09-02 20:12:36 -07:00
2026-09-15 04:11:55 -07:00
2026-09-02 20:15:37 -07:00
2026-09-03 09:44:26 -07:00
2026-09-03 09:44:26 -07:00
2026-09-15 04:12:13 -07:00
2026-09-07 05:56:50 -07:00
2026-09-15 04:12:13 -07:00
2026-09-09 10:28:52 -07:00
2026-09-12 08:47:21 -07:00
2026-09-12 08:25:54 -07:00
2026-09-13 16:43:50 -07:00
2026-09-15 04:12:13 -07:00
2026-09-03 15:07:39 -07:00
2026-09-15 04:12:13 -07:00
2026-09-15 06:29:50 -07:00
2026-09-05 15:02:53 +02:00
2026-09-12 08:34:43 -07:00
2026-09-15 04:12:13 -07:00
2026-09-04 00:15:16 -07:00
2026-09-03 17:13:22 -07:00
2026-09-11 19:50:46 -07:00
2026-09-02 21:44:59 -07:00
2026-09-02 20:50:08 -07:00
2026-09-15 03:38:29 -07:00
2026-09-03 17:13:22 -07:00
2026-09-02 21:44:59 -07:00
2026-09-03 09:44:26 -07:00
2026-09-15 05:34:29 -07:00
2026-09-13 05:07:11 -07:00
2026-09-02 20:51:30 -07:00
2026-09-03 03:31:03 -07:00
2026-09-10 04:22:38 -07:00
2026-09-02 20:51:30 -07:00
2026-09-13 20:54:50 -07:00
2026-09-02 21:54:56 -07:00
2026-09-02 21:54:56 -07:00
2026-09-15 04:12:13 -07:00
2026-09-15 03:39:45 -07:00
2026-09-13 16:43:50 -07:00
2026-09-15 03:46:29 -07:00
2026-09-15 06:29:50 -07:00
2026-09-13 21:06:39 -07:00
2026-09-10 09:11:00 -07:00
2026-09-07 08:08:04 -07:00
2026-09-03 13:48:49 -07:00
2026-09-12 01:35:05 -07:00
2026-09-12 01:35:05 -07:00
2026-09-12 14:05:36 -07:00
2026-09-15 04:47:37 -07:00
2026-09-14 22:01:32 +00:00
2026-09-11 03:45:31 +05:30
2026-09-10 18:11:25 -07:00
2026-09-04 07:17:00 -07:00
2026-09-03 09:44:26 -07:00
2026-09-04 00:15:16 -07:00
2026-09-14 08:10:36 -07:00
2026-09-03 09:44:26 -07:00
2026-09-02 20:40:15 -07:00
2026-09-12 08:24:26 -07:00
2026-09-02 20:40:15 -07:00
2026-09-03 17:13:22 -07:00
2026-09-02 20:19:57 -07:00
2026-09-02 21:57:39 -07:00
2026-09-14 21:00:29 -07:00
2026-09-13 05:07:11 -07:00
2026-09-03 14:00:59 -07:00
2026-09-09 04:38:01 -07:00
2026-09-12 07:57:13 -07:00
2026-09-14 21:00:29 -07:00
2026-09-15 04:12:13 -07:00
2026-09-03 00:09:39 -07:00
2026-09-15 10:48:49 +05:30
2026-09-15 10:48:49 +05:30
2026-09-09 04:38:01 -07:00
2026-09-09 04:38:01 -07:00
2026-09-03 09:44:26 -07:00
2026-09-15 04:12:13 -07:00
2026-09-11 03:45:31 +05:30
2026-09-12 08:27:53 -07:00
2026-09-13 14:33:11 -07:00
2026-09-15 06:22:15 -07:00
2026-09-06 05:34:01 -07:00
2026-09-15 06:22:15 -07:00
2026-09-15 04:44:09 -07:00
2026-09-03 00:06:57 -07:00
2026-09-13 05:08:29 -07:00
2026-09-02 21:07:16 -07:00
2026-09-02 21:07:16 -07:00
2026-09-02 22:55:15 -07:00
2026-09-10 14:56:55 -04:00
2026-09-13 05:07:50 -07:00
2026-09-13 05:07:11 -07:00
2026-09-07 02:09:34 -07:00
2026-09-04 20:24:24 -04:00
2026-09-15 06:36:19 -07:00
2026-09-14 21:18:47 +05:30
2026-09-14 19:49:12 +05:30
2026-09-02 20:47:24 -07:00
2026-09-15 03:44:36 -07:00
2026-09-02 21:00:55 -07:00
2026-09-02 22:39:49 -07:00
2026-09-13 05:07:50 -07:00
2026-09-13 05:07:50 -07:00
2026-09-15 04:52:47 -07:00
2026-09-02 22:25:24 -07:00
2026-09-03 14:00:59 -07:00
2026-09-15 04:12:13 -07:00
2026-09-02 21:07:16 -07:00
2026-09-02 21:07:16 -07:00
2026-09-15 03:46:29 -07:00
2026-09-03 09:44:26 -07:00
2026-09-11 06:24:54 -07:00
2026-09-11 06:24:54 -07:00
2026-09-11 06:24:54 -07:00
2026-09-11 06:24:54 -07:00
2026-09-03 00:06:57 -07:00
2026-09-13 05:21:02 -07:00
2026-09-02 23:59:27 -07:00
2026-09-11 06:37:27 -07:00
2026-09-09 13:30:28 -07:00
2026-09-11 06:24:54 -07:00
2026-09-15 04:12:13 -07:00
2026-09-02 22:39:06 -07:00
2026-09-03 13:33:10 -07:00
2026-09-13 05:32:38 -07:00
2026-09-15 04:12:13 -07:00
2026-09-04 07:17:00 -07:00
2026-09-03 13:33:10 -07:00
2026-09-03 13:33:10 -07:00
2026-09-12 08:25:54 -07:00
2026-09-15 04:12:13 -07:00
2026-09-07 22:25:12 -07:00
2026-09-02 20:43:25 -07:00
2026-09-03 13:08:40 -07:00
2026-09-15 04:12:13 -07:00
2026-09-03 09:44:26 -07:00
2026-09-12 08:25:54 -07:00
2026-09-03 17:13:22 -07:00
2026-09-02 23:04:20 -07:00
2026-09-02 20:59:41 -07:00
2026-09-03 17:13:22 -07:00
2026-09-13 05:08:29 -07:00
2026-09-11 03:45:31 +05:30
2026-09-12 21:47:53 -07:00
2026-09-13 05:21:02 -07:00
2026-09-14 08:10:36 -07:00
2026-09-02 20:43:25 -07:00
2026-09-02 21:36:24 -07:00
2026-09-15 03:53:13 -07:00
2026-09-02 21:34:25 -07:00
2026-09-03 22:00:01 -07:00
2026-09-14 08:10:36 -07:00
2026-09-15 14:52:26 +05:30
2026-09-11 06:24:54 -07:00
2026-09-02 20:43:25 -07:00
2026-09-08 19:52:26 +05:30
2026-09-15 04:12:13 -07:00
2026-09-03 13:22:51 -07:00
2026-09-12 08:34:43 -07:00
2026-09-03 14:16:54 -07:00
2026-09-03 13:10:38 -07:00
2026-09-13 05:07:50 -07:00
2026-09-02 20:38:18 -07:00
2026-09-02 21:31:17 -07:00
2026-09-12 08:25:54 -07:00
2026-09-03 09:44:26 -07:00
2026-09-02 16:34:55 -07:00
2026-09-15 21:57:59 +05:30
2026-09-15 04:11:11 -07:00
2026-09-13 05:08:20 -07:00
2026-09-15 04:08:00 -07:00
2026-09-03 09:44:26 -07:00
2026-09-15 21:57:59 +05:30
2026-09-03 09:44:26 -07:00
2026-09-15 04:13:44 -07:00
2026-09-03 09:44:26 -07:00
2026-09-15 21:57:59 +05:30
2026-09-02 21:49:26 -07:00
2026-09-13 15:41:01 -07:00
2026-09-15 04:12:13 -07:00
2026-09-15 04:12:13 -07:00
2026-09-02 22:12:58 -07:00
2026-09-02 21:28:23 -07:00
2026-09-10 11:48:01 -07:00
2026-09-02 21:28:23 -07:00
2026-09-02 21:28:23 -07:00
2026-09-03 13:20:22 -07:00
2026-09-03 17:13:22 -07:00
2026-09-03 09:44:26 -07:00
2026-09-13 19:19:32 -07:00
2026-09-09 21:16:40 +05:30
2026-09-04 20:24:24 -04:00
2026-09-15 03:40:26 -07:00
2026-09-13 05:07:50 -07:00
2026-09-09 04:38:01 -07:00
2026-09-07 07:11:36 -07:00
2026-09-15 04:37:41 -07:00
2026-09-11 15:28:37 -07:00
2026-09-14 08:10:36 -07:00
2026-09-03 14:21:32 -07:00
2026-09-03 14:21:32 -07:00
2026-09-12 18:35:21 -07:00
2026-09-15 20:44:42 +05:30
2026-09-15 03:46:29 -07:00
2026-09-11 06:37:27 -07:00
2026-09-11 19:50:46 -07:00
2026-09-13 21:30:02 -07:00
2026-09-04 20:24:24 -04:00
2026-09-02 23:08:44 -07:00
2026-09-13 20:55:29 -07:00
2026-09-13 20:55:29 -07:00
2026-09-13 05:07:11 -07:00
2026-09-02 21:54:36 -07:00
2026-09-09 02:36:00 -07:00