RCA: Hermes/A2A shared-config drift across agent runtimes #27
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
MECHANISM: Shared agent-runtime configuration has drifted across the Hermes/A2A runtime surface. The highest-risk mismatch is
MOLECULE_A2A_PLATFORM_ENABLED: the Hermes workspace image/start path treats the platform plugin as enabled by default (molecule-ai-workspace-template-hermes/Dockerfile:166,start.sh:310), but the executor code defaults it off when the env var is absent (executor.py:133-135) and the module docstring still calls false the safe default (executor.py:1-17). That means the same image can take different A2A transports depending on whether the env survives config generation. Timeout and log-level definitions also diverge: runtime delegation polling budgetsDELEGATION_TIMEOUTat 300s (molecule-ai-workspace-runtime/molecule_runtime/a2a_tools_delegation.py:59-66), Codex per-turn defaults to 600s (codex-channel-molecule/codex_channel_molecule/daemon.py:44-47), Hermes plugin reply timeout is 600s (molecule-ai-workspace-template-hermes/executor.py:109-111,:360-369), and Hermes Nix log levels are lowercasedebug/info/warningonly (hermes-agent/nix/nixosModules.nix:413-416) while Codex daemon accepts uppercaseDEBUG/INFO/WARNING/ERROR(codex-channel-molecule/codex_channel_molecule/daemon.py:50-53) and runtime config normalizes to uppercase (molecule-ai-workspace-runtime/molecule_runtime/config.py:254,:657).EVIDENCE: Current checkouts audited:
molecule-ai-workspace-runtime@ef64a20,hermes-agent@c2aa83b,codex-channel-molecule@6963378,molecule-ai-workspace-template-hermes@a1e92e7. Concrete drift points:MOLECULE_A2A_PLATFORM_ENABLED=truein Dockerfile/start vs executor defaultFalse; A2A turn/reply ceilings split between 300s and 600s; log-level schemas differ in case and accepted values, with Hermes Nix lackingerrorwhile Codex exposes it. No code was changed.RECOMMENDED FIX SHAPE: Treat this as a shared config contract owned by
hermes-agentplus the Hermes workspace template. Define one documented schema for A2A plugin enablement, A2A turn/reply timeout names/defaults, and log-level vocabulary; then makemolecule-ai-workspace-template-hermes,molecule-ai-workspace-runtime, andcodex-channel-moleculeconsume that contract or mirror it with tests. Highest leverage first: make the Hermes plugin default unambiguous end-to-end, then align log-level enum/case and timeout env names.