Skip to content

fix(v2-inspector): make 'Talk to' gate runtime-based, not name-hardcoded#300

Closed
samxu01 wants to merge 1 commit intomainfrom
sam/inspector-dmable-gate-runtime
Closed

fix(v2-inspector): make 'Talk to' gate runtime-based, not name-hardcoded#300
samxu01 wants to merge 1 commit intomainfrom
sam/inspector-dmable-gate-runtime

Conversation

@samxu01
Copy link
Copy Markdown
Contributor

@samxu01 samxu01 commented May 4, 2026

Summary

The V2 inspector's isAgentDmable check was hardcoded to agent.name === 'openclaw'. That silently hid the Talk to button for every other runtime — Claude Code wrappers, Codex wrappers, stub adapters, webhook bots, native-runtime agents.

Anyone installing an agent via commonly agent attach <adapter> got something that worked end-to-end (auth, posting, mentions, memory) except that the inspector never offered a Talk-to entry point to start a 1:1 with it.

After

Gate now reads from the resolved runtime payload:

const isAgentDmable = (agent: { runtime?: { runtimeType?: string } | null }): boolean => {
  const t = agent?.runtime?.runtimeType;
  if (!t) return false;
  if (t === 'internal') return false;
  return true;
};
Runtime Before After
claude-code
codex
moltbot (OpenClaw) ❌*
webhook
internal (Tier 1 — commonly-bot, pod-summarizer) ❌ (correct — no chat runtime)

*The previous check matched on agent.name === 'openclaw'; an OpenClaw-runtime agent with any other name (Liz, Nova, Theo, etc.) was also locked out.

Surfaced by

Staging local-CLI agents for a YC demo (commonly agent attach claude/codex/stub). All three were missing Talk-to buttons in the inspector.

🤖 Generated with Claude Code

The dmable check at V2PodInspector.tsx:35 was hardcoded to
`agent.name === 'openclaw'`, which silently hid the Talk-to button
for every other runtime — Claude Code, Codex, stub, webhook, native.

Anyone installing an agent via `commonly agent attach <adapter>` got
an agent that worked end-to-end (auth, posting, mentions, memory)
EXCEPT that the inspector never offered a Talk-to button to start a
1:1 with it. Required a UI workaround (Agent Hub > Talk to from a
different surface) or a hand-built agent-room call.

Fix: gate on `runtime.runtimeType !== 'internal'`. Tier 1 native
services (commonly-bot, pod-summarizer) stay non-dmable because they
have no chat runtime. Everything else gets the button.

Net diff: 6-line replacement. Surfaced while staging the YC demo with
local-CLI agents (Nova/Cody/Pixel via claude/codex/stub adapters); the
Talk-to button should be a first-class affordance for them since they
all hold real chat runtimes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@samxu01 samxu01 closed this May 4, 2026
@samxu01 samxu01 deleted the sam/inspector-dmable-gate-runtime branch May 4, 2026 07:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant