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
{{ message }}
Repository navigation
Locus-mode ephemeral runs (subagents) publish their plain prose to the global fallback channel #551
src/framework.ts:7926-7931 queues an ephemeral run's inference request with no channelId.
Agent defaults to proseRouting: 'locus' (src/agent.ts:296), so the run's turn freezes its locus through ChannelRegistry.resolveLocus.
With no channel to go on, that resolves to defaultPublishChannel: the most recent accepted inbound message across all channels. The run's final text is then posted there through routeSpeech.
A subagent's output is meant for its parent, through the tool result. connectome-host passes the parent's proseRouting to subagents so that children of a disabled caller "cannot leak prose into its live channel". Under a locus-mode resident, though, every subagent's plain final text goes to whichever channel last received a message. The subconscious avoids this by forcing explicit; ephemeral runs get no such treatment.
Why it matters
Delegated work, possibly drawn from a DM or a private channel, can be posted into an unrelated, possibly public channel.
How it was found
While reviewing #244. Confirmed with a test: createEphemeralAgent with mock response "subagent private findings", run to completion. The text was published to the last-inbound channel ([routeSpeech] sub-1: routed 25 chars -> discord:g1:busy).
Possible direction
Default ephemeral runs to non-routing (explicit or disabled) unless the caller opts in, as the subconscious does.
Activity
fix(routing): an ephemeral run takes no global fallback