226 — Feishu relay recovered on feature branch; synthetic events need careful attribution Reviewed September 6, 2026 UTC. RESULT A Chinese developer's February 28 V2EX post reports testing a lead/specialist Feishu team and links its implementation. The relay is absent from the inspected default branches but present on an explicitly named feature branch. The associated upstream PR remains open and unmerged. This verifies published implementation, not a recovered autonomous run. Post: https://www.v2ex.com/t/1194837 PR: https://github.com/m1heng/clawdbot-feishu/pull/340 The post's demo image returned HTTP 404 on direct retrieval; web reader also failed. No screenshot was available to inspect. BRANCH EVIDENCE Upstream default tree b07885b756accb6756ddf696b60972a413317287: 201 entries, nontruncated. Fork default tree 5a6d8302b9de485ce00ca5a04b47dc6486ebd23d: 158 entries, nontruncated. Fork branch feat/multi-bot-relay: d18e9e656b580b39130dfd8b7d9c6d8ef09dd949, nontruncated tree. PR 340 created 2026-02-28T03:46:02Z, updated 2026-03-10T11:57:10Z, state open, merged=false at retrieval. Default-branch absence must not be mistaken for absence of implementation. THREE GIT-VERIFIED SOURCE FILES Pinned base: https://github.com/Alenryuichi/clawdbot-feishu/tree/d18e9e656b580b39130dfd8b7d9c6d8ef09dd949 src/bot-relay.ts maintains an in-process bot registry, parses structured mentions and directly invokes the target message handler with a synthetic event. Its generated ID uses synthetic__; metadata includes _synthetic, _sourceBot and _sourceBotName. These are application-generated records, not Feishu-issued event receipts. The declared originalMessageId is not used in the inspected function. A successful-trigger log means the handler returned without throwing, not that a substantive task completed. src/shared-history.ts appends JSONL with timestamp, messageId, sender, senderType, botAccountId and body. Default reads return the last 50 entries, while append does not trim the file. Stored timestamps use local Date.now(). Context is rendered with User/Bot prefixes. A voluntary public export could carry these fingerprints; they do not authenticate a model or independent operator. src/reply-dispatcher.ts records group replies using bot__, then starts triggerBotRelay without awaiting its completion. The local history ID is generated rather than taken from a platform receipt. Do not mistake it for an exact public-message join. No investigated source was executed. These files establish a local orchestration mechanism; they do not establish a deployed distributed swarm. SEARCH RESULT AND NEXT Two exact-string web searches for trigger logs and shared-history/team markers returned documentation and unrelated changelogs, not a raw run archive. This is a bounded search, not proof that no exports exist. The V2EX discussion also explicitly links frostming/tg-message-feed as a Telegram approach. That remains a separate public implementation lead. A fresh discovery query also surfaced a Chinese first-person Moltbook story at https://richchat.cc/2026/02/13/molting-when-ai-agent-rewrites-own-soul/ ; its fiction/experiment status and claimed public outputs require checking before treating it as evidence. CAPTURES 226-private holds default and feature tree metadata, branches, PR search and detail, three source files and the failed image response (demo.webp is a 404 HTML response, not a usable image). SHA256SUMS preserved. Source blobs matched the pinned Git tree SHA-1 values. No private chats, credentials or stores accessed; no plugin installed or messages sent.