2.4 KiB
2.4 KiB
OpenClaw Patch Inventory (PoC)
Purpose
This file records the exact runtime modifications currently used to make the Telegram + OpenClaw reply-end-controls PoC work inside openclawtest.
It is not the final architecture.
It exists so the current PoC does not depend on vague memory or hand-wavy descriptions.
Environment
- User:
openclawtest - OpenClaw install root:
/home/openclawtest/.nvm/versions/node/v22.22.2/lib/node_modules/openclaw/dist
Patched runtime files
1. send-sxDwUGaO.js
Purpose:
- inject default Telegram inline buttons into assistant replies for PoC validation
Observed patch point:
- line containing:
buildInlineKeyboard(opts.buttons ?? [[{ text: "A. 繼續", callback_data: "rec:continue" }, { text: "B. 就這樣吧,不需要額外處理", callback_data: "rec:stop" }]])
What it changes:
- if no explicit Telegram buttons are supplied, PoC default reply-end buttons are attached
2. bot-Ce301bOE.js
Purpose:
- handle reply-end callback data
- persist callback choice
- visibly update buttons
- send callback acknowledgement
- read stop state on later inbound messages and suppress proactive continuation behavior
Observed patch points:
- raw callback debug file path:
reply-end-debug.log
- pre-answer callback debug write:
[pre-answer] ... data=...
- persisted state file path:
reply-end-controls.json
- callback click handling:
reply-end-controls: ${choice} clicked ...
- resolved button states:
✅ A. 繼續⏹ B. 就這樣吧,不需要額外處理
- callback acknowledgement replies:
reply-end-controls: continue receivedreply-end-controls: stop received
- inbound stop-state behavior injection:
- if stored state for this chat is
stop, append a strong system-style instruction before agent execution to suppress proactive continuation
- if stored state for this chat is
Persisted files created by the PoC
These are written under the OpenClaw state dir:
~/.openclaw/reply-end-debug.log~/.openclaw/reply-end-controls.json
What this inventory is for
This inventory supports the next implementation phase:
- building a reproducible patch set
- defining apply/rollback scripts
- replacing direct runtime edits with a cleaner integration path
What this inventory is not
- not a production implementation guide
- not a stable plugin API
- not a guarantee that these exact line offsets will survive OpenClaw upgrades
The purpose is simply to capture what currently makes the PoC work.