3.7 KiB
reply-end-controls - Pluginization Status Report
- Date: 2026-05-13
- Status: in progress
Summary
The project has moved beyond a one-off Telegram/OpenClaw PoC and is now in an active pluginization transition.
It is not yet a clean installable plugin package, but it is also no longer just a pile of undocumented runtime edits.
The project now has enough structure to support continued convergence toward a reusable integration path.
What has already been pluginized or partially pluginized
1. Shared configuration source
The project now has a single repo-owned config source:
config/reply-end-controls.json
This centralizes:
- callback data
- button labels
- resolved button labels
- acknowledgement text
- stop-policy text
Both repo-side runtime helpers and the apply script now read from this source.
2. Reusable core modules
The project already contains reusable logic for:
- state model
- callback normalization
- policy behavior
- file-backed store behavior
These live under:
src/core/
3. Adapter layer foundations
The project now includes:
src/adapters/openclaw.tssrc/adapters/openclaw-state-file.tssrc/runtime/openclaw-telegram-bridge.ts
This means OpenClaw-specific behavior is no longer entirely trapped inside ad hoc runtime patch descriptions.
4. PoC runtime helper extraction
Telegram PoC behavior has already been captured into reusable helper code:
- default button generation
- resolved button rendering
- acknowledgement reply text
- stop-state inbound text shaping
5. Reproducible patch flow
The project now has:
scripts/apply-openclaw-poc-patch.shscripts/rollback-openclaw-poc-patch.sh
The apply/rollback flow has been validated against a pristine extracted openclaw@2026.5.7 package.
What is still not pluginized enough
1. Live OpenClaw runtime still uses inline patch behavior
Even though repo-side modules now exist, the live openclawtest runtime still depends on patched OpenClaw distribution files.
That means the behavior is reproducible, but not yet cleanly consumed from the repo at runtime.
2. Telegram callback behavior is still wired through patched runtime code
The callback path has been proven, but it is still implemented as a runtime patch rather than a clean runtime integration seam.
3. Stop policy is still injected as text
The PoC successfully alters later behavior using a stop-state instruction, but the implementation is still based on injected text policy rather than a more explicit first-class runtime policy hook.
4. Acceptance still has manual UI steps
The project has repeatable scripts, but acceptance is still partly human-driven because Telegram UI behavior must be observed directly.
Current maturity assessment
The project is currently at this maturity level:
- more than a PoC patch experiment
- less than a true installable plugin package
- suitable for continued structured development
- suitable for another agent to continue work with clear repo-side ownership points
Recommended next work
Priority 1
Reduce runtime inline logic by replacing more hardcoded patch content with repo-side helper ownership.
Priority 2
Make apply/rollback/verify feel more like a supported integration workflow than an engineering exercise.
Priority 3
Document exactly which remaining runtime behaviors are still inline and what their intended repo-side owners are.
Final judgment
Pluginization is underway and meaningfully advanced, but not complete.
The project has crossed from:
- undocumented patch success
to:
- structured PoC
- reusable repo-side modules
- shared config source
- reproducible patch workflow
The remaining work is real, but it is now focused and understandable rather than exploratory.