fix(telegram): warn on selected quote tool-progress caveat#73495
Conversation
Greptile SummaryThis PR adds an Confidence Score: 5/5Safe to merge — read-only doctor scan over already-loaded config, no runtime path changes, comprehensive test coverage. No P0 or P1 findings. All logic is tested, including per-account inheritance and edge cases. The No files require special attention. Reviews (3): Last reviewed commit: "test(active-memory): remove stale async ..." | Re-trigger Greptile |
|
Codex review: needs maintainer review before merge. Summary Reproducibility: yes. Current main source shows selected Telegram quote replies disable the answer preview stream, and existing tests already distinguish that path from current-message replies that keep preview streaming. Next step before merge Security Review detailsBest possible solution: Land this PR or an equivalent Telegram-owned guardrail after normal CI, keeping runtime delivery unchanged and treating any separate progress-message fallback as a future product change. Do we have a high-confidence way to reproduce the issue? Yes. Current main source shows selected Telegram quote replies disable the answer preview stream, and existing tests already distinguish that path from current-message replies that keep preview streaming. Is this the best way to solve the issue? Yes. Docs plus a Telegram doctor warning are the narrowest maintainable fix for the silent doc/runtime mismatch; sending separate progress messages while preserving native selected quote replies would be a larger behavior change. What I checked:
Likely related people:
Remaining risk / open question:
Codex review notes: model gpt-5.5, reasoning high; reviewed against d0497d13d18e. |
2a207aa to
4508fbd
Compare
Addressed: Option A. Imported Option B (config-time validation of account record keys) was not done in this PR; it is out of scope for the doc/runtime-mismatch fix and would touch broader Telegram channel schema validation. Worth a separate issue if the maintainers want defense-in-depth. Force-pushed the fix on commit |
Same concern Greptile P1 raised (#73495 review thread on
PR body uses Your snapshot was against |
16977fe to
7deac62
Compare
|
Rebased on |
d59b44d to
4fa38d5
Compare
|
@greptileai please re-review latest head Current follow-up state:
The previous visible Greptile 5/5 summary points at older commit |
|
Update after code review: The issue is narrower than “replyToMode disables tool progress.” Telegram only loses the short Best fix: keep runtime behavior unchanged for now. Add a Telegram-owned Runtime fallback to separate progress messages is a larger product change and should be separate. |
150ed76 to
0035831
Compare
…xclusion Document that channels.telegram.streaming.preview.toolProgress requires channels.telegram.replyToMode: 'off'. Quote-reply requires the final message reference at send time, which is incompatible with preview-edit streaming, so the two features are mutually exclusive on Telegram. Adds: - Note callout in docs/channels/telegram.md after the existing toolProgress guidance, explaining the exclusion and how to restore visibility. - Cross-link bullet in docs/concepts/streaming.md pointing to the Telegram channel doc for the full note. Surfaces a doc/runtime gap that has been silent since v2026.4.22.
0035831 to
847c0c0
Compare
|
Landed via rebase onto
Thanks @GodsBoy! |
Summary
channels.telegram.replyToMode != "off"(doc/runtime mismatch) #73487 by documenting the Telegram selected-quote caveat and surfacing it throughopenclaw doctor.Problem
The original report was framed as
replyToModedisabling Telegram tool-progress preview. Current code is narrower:extensions/telegram/src/bot-message-dispatch.tsonly skips the answer draft preview whenreplyToMode !== "off"and the inbound context includes selected quote text. In that selected/native quote path,answerLane.streamis not created, sostreaming.preview.toolProgresscannot render the shortWorking...preview lines for that turn.Current-message replies without selected quote text still keep preview streaming. That runtime behavior is covered by existing dispatch tests and remains unchanged.
What Changed
extensions/telegram/src/doctor.ts.listTelegramAccountIds(cfg)plusmergeTelegramAccountConfig(cfg, accountId)so top-level defaults, emptyaccounts: {}, and per-account inheritance match runtime account resolution.replyToModeis not"off", and block streaming has not already taken over delivery.replyToModeincompatibility.accounts: {}, merged account config, opt-out viastreaming.preview.toolProgress: false, preview-off, and block-streaming cases.What Did Not Change
No runtime fallback was added. Sending separate progress messages while preserving native Telegram selected-quote replies would be a product behavior change and should be handled separately if desired.
Validation
pnpm exec oxfmt --check --threads=1 extensions/telegram/src/doctor.ts extensions/telegram/src/doctor.test.ts docs/channels/telegram.md docs/concepts/streaming.md CHANGELOG.mdpnpm test extensions/telegram/src/doctor.test.tsgit diff --checkOPENCLAW_TESTBOX=1 pnpm check:changedontbx_01kqq6akq82kq7m0r4q925v6fmNote:
pnpm config:docs:checkcurrently reports generated config baseline drift without modifying files. This PR does not touch config schema/help surfaces.Security Impact
NoNoNoNo