204f345816
The name of Hermes' MCP callback for the codex app-server runtime was spelled as a string literal in five places (the server itself, the runtime migration that writes `[mcp_servers.hermes-tools]`, the Kanban worker override launcher, the elicitation auto-accept handler, the display-name stripper and the switch report) and had already drifted once (#111707). Define it once in agent/transports/hermes_tools_mcp_server.py — the module that IS the server and whose module-level imports are stdlib only, so every higher layer (transports, agent/codex_runtime, hermes_cli) can import it without a cycle — and read it everywhere. Two invariant tests in tests/agent/transports/: the worker's `-c mcp_servers.<name>.env.*` overrides only ever target an entry the migration really writes to config.toml (red on the pre-fix base: `{'hermes-mcp'}`), and non-owned launches emit no override at all. Refs #111707