scripts/e2e_validate.py — extended with the SessionSource
to_dict/from_dict round-trip check, which proved out commit #4 of the
upstream patch series (plugin-platform-safe deserialization). 8/8
checkpoints pass.
scripts/e2e_real_hermes_subprocess.py — NEW. Spawns a real
`hermes gateway run` subprocess against a tmp HERMES_HOME with the
plugin platform enabled, polls until /a2a/health responds, then POSTs
into /a2a/inbound and asserts a 200 ack. This is the closest reproduction
of production-shape boot we can do without provisioning a workspace +
holding LLM provider creds + having a peer agent online.
The subprocess test caught a real integration bug — self.adapters dict
keyed by mixed types (Platform enum for built-ins, string for plugins)
crashed downstream consumers doing .value. Fix landed upstream:
NousResearch/hermes-agent#18775 commit ece9e34e.