Files
reply-end-controls/reports/openclaw-patch-inventory.md

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 received
    • reply-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

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.