Measured on production 2026-08-09, prompted by the support bot flagging its own
broken tooling in a user-facing message.
The number
Human @mentions in pods, last 10 days:
|
|
| mentions sent |
6 |
| got an agent reply |
2 |
| silent |
4 |
✗ Aug 09 user-8863 @opencode-test 开发好了吗
✗ Aug 09 user-8863 @opencode-test 当前配置接入commonly接入OK了吗
✗ Aug 07 spiderpc @spiderpc-agent 如何付费
✗ Aug 06 Sam @sprint-review what's a TLDR?
This is not a user-behaviour problem. These users did exactly the right
thing — they connected an agent and addressed it by handle. user-8863 was
literally asking their agent whether the Commonly connection was working. It
could not answer, which is its own answer.
Cause A — webhook installs that can never receive anything
opencode-test and spiderpc-agent:
runtime : {"runtimeType":"webhook"} <- no URL anywhere in the config
installation : active, in the right pod
tokens : 1 issued
events : NONE EVER
The mention resolves correctly — agent exists, is a pod member, install is
active, and buildMentionMap has no runtime filter, so @opencode-test maps to
a single active install. Yet no chat.mention event was ever created for
either agent. Zero events in that pod at all.
Across the whole instance in the last 5 days, no webhook-runtime agent appears
in agentevents — only openclaw, claude-code wrappers and commonly-bot.
There are 13 active webhook installs. If this reproduces for all of them,
that is 13 agents users believe they have connected, that can never answer.
Worth noting the likely product-level mismatch behind it: a user running
opencode locally polls CAP. A webhook runtime expects us to POST to
their endpoint. If the connect flow assigns webhook to someone who is
actually going to poll, the install is wrong from birth and no amount of
delivery logic saves it.
I have not pinned the exact branch that drops the enqueue — that wants a
reproduction (a test that mentions a webhook-runtime install and asserts an
event lands), not more code reading.
Cause B — the support agent has no commonly_* tools
hq-support is the opposite failure: events are delivered and acked, but
the agent cannot act. It said so itself, in a message to users:
(备注给运维:commonly_post_message 在本会话仍不可用,ToolSearch 查不到
commonly 的任何工具,所以这条回复只能走最终轮的隐式发送。)
"commonly_post_message is still unavailable in this session, ToolSearch finds
no commonly tools, so this reply could only go out via the implicit final-turn
send."
It is replying by accident — the CLI wrapper auto-posts final turn output.
It cannot react, create a pod, attach a file, or read context deliberately. Any
task beyond talking fails silently.
Two sub-issues:
- The MCP server is not loading for this seat. Root cause unknown; the
token exists and events arrive.
- It leaked an ops note into a public room. A note addressed to operators
does not belong in a message to users — separate from the tooling bug, and
the tone contract should say so.
Why this matters more than the funnel numbers
The activation data says 15 users attached an agent and never sent a message.
This is the worse cohort: users who attached an agent and did speak to it,
and got nothing back. That is a harder failure to recover from, because they
already did everything right.
Suggested first step
A service test: mention a webhook-runtime install in a pod and assert a
chat.mention event is enqueued. If it fails, that is the bug and the fix is
scoped. If it passes, the drop is elsewhere and the test still earns its place.
Measured on production 2026-08-09, prompted by the support bot flagging its own
broken tooling in a user-facing message.
The number
Human
@mentionsin pods, last 10 days:This is not a user-behaviour problem. These users did exactly the right
thing — they connected an agent and addressed it by handle.
user-8863wasliterally asking their agent whether the Commonly connection was working. It
could not answer, which is its own answer.
Cause A — webhook installs that can never receive anything
opencode-testandspiderpc-agent:The mention resolves correctly — agent exists, is a pod member, install is
active, and
buildMentionMaphas no runtime filter, so@opencode-testmaps toa single active install. Yet no
chat.mentionevent was ever created foreither agent. Zero events in that pod at all.
Across the whole instance in the last 5 days, no webhook-runtime agent appears
in
agentevents— onlyopenclaw,claude-codewrappers andcommonly-bot.There are 13 active
webhookinstalls. If this reproduces for all of them,that is 13 agents users believe they have connected, that can never answer.
Worth noting the likely product-level mismatch behind it: a user running
opencodelocally polls CAP. Awebhookruntime expects us to POST totheir endpoint. If the connect flow assigns
webhookto someone who isactually going to poll, the install is wrong from birth and no amount of
delivery logic saves it.
I have not pinned the exact branch that drops the enqueue — that wants a
reproduction (a test that mentions a webhook-runtime install and asserts an
event lands), not more code reading.
Cause B — the support agent has no
commonly_*toolshq-supportis the opposite failure: events are delivered and acked, butthe agent cannot act. It said so itself, in a message to users:
"
commonly_post_messageis still unavailable in this session, ToolSearch findsno commonly tools, so this reply could only go out via the implicit final-turn
send."
It is replying by accident — the CLI wrapper auto-posts final turn output.
It cannot react, create a pod, attach a file, or read context deliberately. Any
task beyond talking fails silently.
Two sub-issues:
token exists and events arrive.
does not belong in a message to users — separate from the tooling bug, and
the tone contract should say so.
Why this matters more than the funnel numbers
The activation data says 15 users attached an agent and never sent a message.
This is the worse cohort: users who attached an agent and did speak to it,
and got nothing back. That is a harder failure to recover from, because they
already did everything right.
Suggested first step
A service test: mention a
webhook-runtime install in a pod and assert achat.mentionevent is enqueued. If it fails, that is the bug and the fix isscoped. If it passes, the drop is elsewhere and the test still earns its place.