Skip to content

E2E Integration Test with OpenClaw and OpenClaw Plugin #20

@kfallah

Description

@kfallah

Claude summary:

E2E OpenClaw integration test: We want a test that exercises the real claas-feedback plugin
through OpenClaw (chat → plugin caches context → /feedback → proxy cache lookup → CLaaS
distillation), rather than reimplementing the plugin logic in Python, so we can catch regressions
in the actual production code path.

Why it's hard: OpenClaw's HTTP gateway (/v1/chat/completions) doesn't fire the message_received
plugin hook, so the plugin's context cache stays empty and /feedback always returns "No recent
conversation found." The only way to trigger the hooks is through a real Telegram channel, which
means switching OpenClaw to webhook mode and mocking the Telegram Bot API.

What we built and where it broke: We created a mock Telegram API server (Python, self-signed cert,
DNS-redirected via Docker extra_hosts) and a compose test overlay. The full pipeline worked —
both plugin hooks fired, sendMessage was captured by the mock, model responded correctly. Two
blockers remain: (1) the Tinker proxy cold-starts on first inference (tokenizer download >120s),
needing a warm-up step, and (2) OpenClaw's plugin config schema (openclaw.plugin.json) silently
strips unrecognized keys, so feedbackBatchSize: 1 never reaches the plugin — the schema needs all
config fields declared.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions