You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hermes can use the published LCO 1.6.1 MCP surface for indexed-session recall
and approval-gated control of an idle disposable Codex task, but it cannot yet
reliably discover and deliver into the Codex task whose turn is currently
running.
This is distinct from #795. The codex_thread: normalization fix is live and
passed an exact-candidate live-send canary against an idle disposable task.
Verified runtime evidence
Eva's isolated package is 1.6.1.
The active Hermes MCP connection succeeds and discovers 76 configured tools.
The strict Hermes smoke passes the 14 required first-class tools.
The exact 1.6.1 candidate completed one approval-gated live send using a
public codex_thread: reference against an idle disposable task.
In a direct Hermes acceptance run, target selection and dry-run approval
completed, but live lco_codex_send_message returned LIVE_SEND_INTERNAL_ERROR.
A follow-up read-only run could not find the current executing release task
in lco_recent_sessions, reported stale/low-confidence inventory, and had no
active-turn identifier or configured active-thread-state read tool.
Only public-safe aggregate status is retained. No thread identifiers, turn
identifiers, queries, transcripts, paths, credentials, or runtime
configuration are included.
Product gap
lco_codex_send_message starts a new turn and is appropriate for an idle
thread. A running task needs turn/steer, but the current Hermes-first facade
does not provide a reliable current-task discovery plus active-turn handle
flow. The one-shot stdio boundary also cannot be assumed to own the same
active app-server runtime.
Acceptance criteria
Add a public-safe read path that resolves the current active Codex task
from live app-server state without requiring session reindexing.
Expose an opaque, approval-bindable active-turn reference without
leaking raw thread or turn identifiers.
Add one Hermes-first delivery operation that deterministically chooses
new-turn send for idle tasks and safe steer for running tasks, or returns
a specific public-safe blocker before live mutation.
Preserve the fixed never-approve/read-only posture and existing dry-run
audit/hash matching for the exact chosen action.
Prove bidirectional Hermes to LCO to active Codex delivery in an isolated
canary with no Telegram involvement.
Keep all shared evidence free of raw identifiers, prompts, transcripts,
paths, credentials, and runtime configuration.
Cover idle send, running steer, stale active-turn ref, ambiguous target,
and no-current-target behavior.
Dependency and scope
Likely depends on or should be delivered with #787's managed local app-server
daemon transport. This belongs to the deeper native-Hermes/runtime lane, not a
retroactive blocker on the shipped 1.6.1 prefixed-reference hotfix.
Non-goals: Telegram routing, Remote Control enablement, GUI automation,
unattended control, Hermes profile changes, or database refresh as an implicit
side effect.
Summary
Hermes can use the published LCO 1.6.1 MCP surface for indexed-session recall
and approval-gated control of an idle disposable Codex task, but it cannot yet
reliably discover and deliver into the Codex task whose turn is currently
running.
This is distinct from #795. The
codex_thread:normalization fix is live andpassed an exact-candidate live-send canary against an idle disposable task.
Verified runtime evidence
public
codex_thread:reference against an idle disposable task.completed, but live
lco_codex_send_messagereturnedLIVE_SEND_INTERNAL_ERROR.in
lco_recent_sessions, reported stale/low-confidence inventory, and had noactive-turn identifier or configured active-thread-state read tool.
Only public-safe aggregate status is retained. No thread identifiers, turn
identifiers, queries, transcripts, paths, credentials, or runtime
configuration are included.
Product gap
lco_codex_send_messagestarts a new turn and is appropriate for an idlethread. A running task needs
turn/steer, but the current Hermes-first facadedoes not provide a reliable current-task discovery plus active-turn handle
flow. The one-shot stdio boundary also cannot be assumed to own the same
active app-server runtime.
Acceptance criteria
from live app-server state without requiring session reindexing.
leaking raw thread or turn identifiers.
new-turn send for idle tasks and safe steer for running tasks, or returns
a specific public-safe blocker before live mutation.
audit/hash matching for the exact chosen action.
canary with no Telegram involvement.
paths, credentials, and runtime configuration.
and no-current-target behavior.
Dependency and scope
Likely depends on or should be delivered with #787's managed local app-server
daemon transport. This belongs to the deeper native-Hermes/runtime lane, not a
retroactive blocker on the shipped 1.6.1 prefixed-reference hotfix.
Non-goals: Telegram routing, Remote Control enablement, GUI automation,
unattended control, Hermes profile changes, or database refresh as an implicit
side effect.