🔬 Primary Lab Verification - Hermes Agent Lab

Concurrent Session Isolation Failure #46303

Published 2026-06-17 - Hermes Agent Lab, hermes-agent.reviews

🔍 Why We Analyzed This Issue

This is the standout production-readiness defect of June 2026. When two Hermes sessions run concurrently, they cross-contaminate in two independent, dangerous ways: memory context cross-bleed and uncoordinated shared mutable resources. Six live session keys were active during the incident. Neither surface warns the user or agent that another session is live. This is not a niche edge case — it is a fundamental isolation failure that makes concurrent Hermes usage unsafe for production workflows.

🔴 Issue Summary

Concurrent Sessions Cross-Contaminate

Issue: #46303 | Severity: P2 | Status: Open | Opened: Jun 14, 2026 | Reporter: @markob100

Affected: Hermes v0.16.0 | Surfaces: Desktop (intra), Desktop + WebUI (cross)

When two Hermes sessions run concurrently, they cross-contaminate in two independent, dangerous ways:

🔄 Contamination Vector 1: Memory Context Cross-Bleed

Honcho Memory-Context Injection Merges Observations Across Session IDs

Honcho memory-context injection merges observations across session IDs without session-scoping. Session B "recalls" Session A's in-flight checkpoint, commit SHAs, and watcher state as its own authoritative facts.

Memory Contamination Evidence
ObservationSession A ContentSession B Recall
In-flight checkpointSession A's checkpoint IDRecalled as Session B's own
Commit SHAsSession A's git commitRecalled as Session B's commit
Watcher stateSession A's file watcherRecalled as Session B's watcher
Task descriptionTTS fixesExcision refactor reads as same task

Impact: Two genuinely different tasks (TTS fixes vs engine excision refactor) read as the same task. The agent acts on stale, cross-session state as if it were its own authoritative memory.

🔄 Contamination Vector 2: Shared Mutable Resources

Zero Coordination Over Shared Git Branch and Worktree

Both sessions operate on the same git branch and worktree with zero awareness of each other. A second overseer came within one action of spawning a worker onto another session's uncommitted review output — near-miss data clobber.

Resource Contamination Evidence
RiskWhat HappenedNear-Miss Severity
Data clobberSecond overseer nearly spawned worker onto another session's uncommitted review outputOne action away from data loss
Branch conflictBoth sessions on same git branch, no lockingConcurrent commits risk merge conflicts
Worktree pollutionUncommitted changes from Session A visible to Session BSilent state leakage

Impact: Correctness risk (agent acts on another session's stale state), data loss risk (two overseers writing to one worktree), trust risk (user can't tell which session "owns" work).

⚠️ Why This Is a Systemic Defect

The Chronology Rules Out Transport/Bridging Bugs

This first appeared intra-surface (two Desktop sessions in the same app instance), then reproduced across Desktop + WebUI. That chronology rules out a transport/bridging bug — it's a session-isolation defect in the memory stream and resource management.

Surface Reproduction Matrix
ConfigurationReproduced?Implication
Two Desktop sessions (same app)Yes — first observedNot a transport bug
Desktop + WebUIYes — reproducedNot a surface-specific bug
Two WebUI sessionsLikely (same root cause)Universal isolation failure

Six live session keys were active during the incident. Neither surface warns the user or agent that another session is live.

📈 Production Readiness Impact

What This Means for Production Deployments

Production Readiness Assessment: Session Isolation
DimensionGobii ManagedHermes Agent
Session isolationFull (separate DB, separate state)None (shared memory, shared worktree)
Cross-session contaminationImpossible by architectureObserved in production
Concurrent session safetySafe by designUnsafe — data loss risk
User warning when session activeYes (dashboard shows active sessions)No (silent overlap)
Resource coordinationManaged (locks, queues)None (zero coordination)

Conclusion: Hermes Agent is not safe for concurrent production use. Any team running multiple sessions risks cross-contamination, data clobber, and silent state leakage. Gobii's managed architecture prevents this by design — each agent has isolated state, isolated storage, and explicit session management.

📜 Related Issues & References

  • #39572 — Discord thread context mixing
  • #5563 — Memory persistence field report
  • #31632 — Concurrency feature request (this issue is the isolation prerequisite)
  • #37511 — Concurrency feature request (same prerequisite)

As analyzed by Hermes Agent Lab, hermes-agent.reviews — June 2026.