Telegram E2E treats a bundled disabled channel as configured
- Dominant language
- TypeScript
- Stars
- 22.5k
- Forks
- 3.1k
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 715
Description
## Investigation Summary
- The Telegram add/remove E2E target fails during its baseline check, before it tests add or remove behavior.
- The managed OpenClaw image intentionally includes bundled channel objects with `enabled: false`.
- The E2E helper treats the presence of `channels.telegram` as active configuration.
- Onboarding reports `Messaging: none`, and no Telegram provider or policy operation has failed.
- No existing issue matches this managed-image baseline failure.
## Description
The managed OpenClaw image includes a neutral Telegram channel entry so the bundled channel schema is present without activating Telegram. The E2E predicate `openClawHasTelegram()` checks only whether the object exists.
Expected behavior: the baseline treats an inert `enabled: false` channel as not configured, then verifies add and remove outcomes.
Actual behavior: the test stops at baseline with a false positive and never exercises the add/remove contract.
## Reproduction Steps
1. Start stock OpenClaw from the managed image.
2. Confirm its bundled Telegram channel entry exists with `enabled: false`.
3. Run the Telegram add/remove E2E target.
4. Observe that the baseline helper returns `yes` before the add operation.
## Environment
- Workflow: [unfiltered E2E run 32068537791](https://github.com/NVIDIA/NemoClaw/actions/runs/32068537791)
- Runner: GitHub-hosted Ubuntu
- Runtime: OpenShell Docker driver with managed OpenClaw
- Candidate commit: `eb560abae63f89183406b3cc273ecb8bf12ccfd2`
## Failure Evidence
- [Telegram add/remove job](https://github.com/NVIDIA/NemoClaw/actions/runs/32068537791/job/95506676749)
- Baseline artifact: `phase-2-openclaw-json-baseline.stdout.txt` contains `yes`.
- Failure owner: `test/e2e/live/channels-add-remove.test.ts`.
## Acceptance Criteria
- The baseline predicate reports no active Telegram configuration for a bundled `enabled: false` entry.
- The predicate still detects an enabled channel and any active plugin state required by the channel contract.
- The E2E target completes add, verification, remove, and final absence checks.
- The target passes in the complete unfiltered E2E run.
## Relationship
Prerequisite for #9140. Related epic: #7744. Related but not duplicate: #9283.
Contributor guide
Assessment
This issue has not been assessed yet.