fix(telegram): keep disabled progress hidden in verbose mode

Telegram now treats disabled tool progress as authoritative even when /verbose is enabled. Enabled progress and durable/final messages retain existing behavior.

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
Co-authored-by: Jason O'Neal <jason.allen.oneal@gmail.com>
Co-authored-by: 徐金城0668000897 <xu.jincheng@xydigit.com>
This commit is contained in:
Ayaan Zaidi
2026-08-10 09:52:19 +05:30
committed by GitHub
parent 45da07ed20
commit 6626a85dc1
8 changed files with 176 additions and 82 deletions
+74 -74
View File
@@ -1,116 +1,116 @@
4aac17f08825a1e381ff2c19e0a447986353038be9c77943f9cbd3de4573e116 module/account-core
419ac9790cc63052327ed3d727197f583402cc13eb1dc9beb072938ddb70c9f5 module/account-helpers
abe3df6fc59f74c8a0e12aafcde8ef06b0fe8c25a1a6025be9ae4d666cc533a9 module/account-core
fcc4a78acfe1b07f6a9c7f65fcc3467941f21c3783edb3e1d23d1d3a4fb738ea module/account-helpers
71522995185b956a0cc4927a472cc8d1153e5e998874bfd9a750513175174713 module/account-id
46e3736461cd8e238604ba5ad92023c00b1dc28358a27b4349fe5e16cd320719 module/account-resolution
96bcaa5a97445164026eb1a8ae3a7190c8b3bfdfcc1edb10232ee6eaeeac646e module/account-resolution
4fbb1c87e99399f842a20d75d5e35a4b7064a1b7f02115c23f9a2a7cdcfb57ee module/agent-config-primitives
8e78e6ab3e3e76fbf4e5a0c56b38b9ec936aab54b1c09a41c5a3bf9c93da5475 module/agent-harness
8bfacea25437c95d2bd63d0468b10aeabff6249ca7a9495b3227692b7ac4226b module/agent-harness-runtime
0b7384f469aa8a42637203665377f96f4b5f11878b400f1fca2047ed1a8c92b1 module/agent-harness
f86acd7a8497dcee988d85a21124da1c1af7988b302622e4e9c7fa025d85eb35 module/agent-harness-runtime
d6097cfa1b410f4b5267a56a7bd19c2a33fbaf6642683dae6aec68e998e48f6c module/agent-media-payload
c36bfc7abe97c176e888a3bb9fac0c90c96d3070eb9a85663563567e3ddea87e module/agent-runtime
7e39f1161acc4e9e15312b726fa21cba80583af6659a502163e26b0cbf7419bf module/agent-runtime
b57a3cb274a9977c48c5387772df7707e50dde9a6132e532e7367a27225dc142 module/agent-scope-runtime
8fecb210e22bce4532b6ab649b09465f0bd2c857a44abf40db7d683d6491e6da module/allow-from
32e3efc34e4ca59cfb8bf21bcaa50da234821493f51ca41dc681ec39e127aa98 module/allowlist-config-edit
77e6a9f68956ad35faf971b20eb5626b0be145c5ed339128b3d7f2f982303070 module/approval-auth-runtime
d9daa4e9c2907ec47fb6f16546bf54c7adc3c4f7f27986b968e9e4cb338f96af module/approval-client-runtime
0e7edb7b1ebd6e79f3fee98a1b95c5b774060d9e8a458c02abc04df2cacf1ed3 module/approval-delivery-runtime
2572e35200838bff7692c7218566589b2a78c79c07b7679dd051abd980b5f85f module/allowlist-config-edit
380aece9050c46d0660b640602cbf86f01b02394cf5fd5cc51f443502a58d2fb module/approval-auth-runtime
760aafdd2002d633ae954c92e8a8034532f08fba0e54ed7ad15491511913a333 module/approval-client-runtime
7e1c18824145a97a453e44a6e03b26f185b936457c860ca8a96f2a2def88920c module/approval-delivery-runtime
fca9de6851d929547fa3ad91e4501fd2b58cee98dab3ad0a4803b22291501c0a module/approval-gateway-runtime
00583c41e60108630d09a5f6d22404fdc005156026d7f912141f126c5b2d9e37 module/approval-handler-adapter-runtime
e98adbe97ca35fc3a08cd0b60bc8147ea1fc1c3997d23468cc41955cf06e7cb9 module/approval-handler-runtime
5a3224c224d3137133d792b008d3cbe2289f1c20fa9ae8accc29fff5e122827b module/approval-native-runtime
c780434525ebbc108da16cad140af3dd2c8f28fc651796bf3e98d9f2d10ba7fb module/approval-reply-runtime
5a642da623761f811a04aea7ed7f0c907a5c280ebf02770ecb0ef7bd40632b72 module/approval-runtime
0ffc2dcde88e3c45eeb237053f78333401537c09c329228c02884be4714213b8 module/approval-handler-runtime
fbb152e828397f1b7d804471554c7ccb6833fe90e3ac5e5efd6b7dc90d010a71 module/approval-native-runtime
f80b8064a51b5dc4814de28449deec83ab8ed2f40ad9fd15a9052b6c68ab7849 module/approval-reply-runtime
bcb23d2bad37e0d6cefecc60cdd96d97941b8ebb31f552e07d3983a3fe6c1f7b module/approval-runtime
01ca912836b8dec672f705e294f72d346e778557e4c591317d67558ea7669c0b module/archive
d7e53de63b0ac11a266e4abdc18ba6e9401b80309f5c8f5f6a72a00f65dfe3bd module/boolean-param
b11b9d8fb991e26acd6e7efcb96b77635455d2c9b94d0a7e840dbdac94ad5b85 module/channel-actions
9dfbef78e1be47e408a07f546c3c6ddda518b208610fdf79b6b3c1124a6c277c module/channel-config-helpers
f02181e6e2a9da167d0b106ffa8934458ccfc9d3572509cc732c6a7300849829 module/channel-config-helpers
c2cc71d5070b6071c51248b0648d1ad1a9468d3737df890adc77ec02025e8853 module/channel-config-primitives
a6cca5706f3aba6abb2178b175a0986d921ade98c2c05d2a54451e2fb7e16825 module/channel-config-schema
ff8e67527d2c9c4d4b792b3a69c3beb2d3d38558ecec3d1083a8f65a19d0887d module/channel-contract
cdba5e545ad62f1f09ebce98fe6b7d377cfcddb54b543dea464c752af1c2670a module/channel-core
6ef4bf41d687cb45e53530600fcaa3bc3a030e3b88a3676dc68702ac64ad65d4 module/channel-dm-policy
4687d387d96835a999c87c253cb27fa250a440120850280bcb5814717b464a0a module/channel-entry-contract
8b5cd3810460cc85e72b1ca4382005c257336b62626362ba54092c417a62aa0e module/channel-contract
391c7dae1098f887ee6ccf29bc15b2b4418a2280ee88c623de7f54435257e13f module/channel-core
eccb43e6d478bee9ccbc6e76d57006dded896a6a2ae749b68e9b1a599e128898 module/channel-dm-policy
e8b0331142cf153199e6375f8122d1a1e7f34d3f8ee7ddb8c237e049e59b7194 module/channel-entry-contract
47cf8765e76c151ae7d2991d41beca62922a8837c1521e10a3fd23f9992c2d7c module/channel-feedback
981112031c8abfd1084aae87cbfc99f3677092db011cfe6e9bd84b3a66bf8eb9 module/channel-inbound
c45e600724ec739ff3ba77a29ff7d39c64a4ade3083055864ffef85917e91b4e module/channel-inbound
3115366026efa38e07bfe0bfecd483e93454cc7bcad432385139c956777accff module/channel-inbound-debounce
bc59c696ee45fb500d105c619c0ec81b8186bebe99135f23dc818ac16004deb0 module/channel-ingress-runtime
b7928dbfc74c436091ead47f05200a8edf2a6c8bf50ebc3b9382ab8d99766d4b module/channel-lifecycle
41a3c1cbfb690e37983ded136e1d0aefb1c73ebdb21c70ee34528e74e2f187e0 module/channel-lifecycle
0e47457e38d1df0bd572e1408cde2ca6a788b65205f43c585316b5ad3a8f2f16 module/channel-logging
42622a581dd0cd2b1879f1f9263c3a640f7279fedc3d66eee9f5171063b2a4a3 module/channel-message
62d1c8395856b79e3deee1199cb4b6c9fbfa5c38d2f41fe3ba5de50b74cf45f1 module/channel-outbound
e8c6fde792375229d085d9cd5b051954efa5b65ae1e6f1f6bc66828598a8c010 module/channel-pairing
8c3db487145020cda8d1dd1ac40ebb4b3956f44d2644ba1520375a4131c946df module/channel-plugin-common
7eb1691d337a4f56fca881c3350c9594bd54a93f1d4e39b05b455a13902a53ef module/channel-policy
c5a9b3aa4345ff90da02efe914dac6d33ed3d3a2c3a1a0195bd5d6069727f269 module/channel-reply-pipeline
470fadadc7ac509dfd25220345ce2c51cec5878edf3161668a0e64b399d2d50c module/channel-message
3789f7171bd487f6f4a3b812817a7d78b9ac5e15e09887070527131fb3dd698f module/channel-outbound
a074a0e1f35f11ba528c158314e4b4d2c04e24def604ec9ae2ed912c5f8cec9e module/channel-pairing
67627a8a2aa39d4894ff5a28e515df6b5b0d431a63b05e91ec4f2159ebdc9a90 module/channel-plugin-common
31db1bb899aa81d83d9120e7f87e25862f2e2510d1e62c28b2daa5a3aeb6799c module/channel-policy
8a4a9a781f458c679a43bfe4072b3706e81ae722f77fd8f420f44898c94c5541 module/channel-reply-pipeline
482370e60135db9bfaf07f24bab549e5fde09ab265a6061a1f587c5d93929e91 module/channel-runtime-context
241050b8979ed905727789e99011535631dd8c205aa6967401677d78281900de module/channel-secret-basic-runtime
2edd63d294a8ee128a18c1815f6ae53be915569c49ebbad0dd139eb60475b0e6 module/channel-secret-runtime
87c04f21c6aa9059be0961bf7db907fdfd70a3631690a005a00fe739c6b98006 module/channel-send-result
8030ac7aff2fbeefe215da8831518e30c2b962f79d8a58049011e3a385fa1a6b module/channel-setup
027ed93d1c903e31c6c01a7f89a338427f6842bd702016f0b9513b91b4a9ec7f module/channel-status
331baf55a75adedcc882d1c03b2c1ad4e594c182879decb91fcf7b6ae59e32a5 module/channel-send-result
f352cc8c8f096d3d2ddb0e374bae66f1ab49697f678e5f703165c62a3f492fb9 module/channel-setup
d849e6ab5d37a686fee9d33f5dc305c7c142b5477a1cb7826d3c4b03e96950fc module/channel-status
f6c25ae55d49d90431682ca53c9dd836304942a738425d6ff028146a0c6d2c97 module/channel-streaming
b2f920ff4a6b4190e6d6ea0a3effb001751e092f0e3ac0cf296721ff8c383d86 module/channel-streaming-config
fdeffe356c7c4edeec9f8fd03edcadc375eabc7a9412e582b10c3180e3ef40fc module/cli-argv
ad12670dbfe538f8d0ebf4fb2b68080e93a760278278e6b1ce9bb129d4b2d533 module/collection-runtime
87bbd4c3da491a674c3dddb10603bc47bc5e219634a566f3bc203ed2d3068b75 module/command-auth
5d308deb05b5e84172e01b118ae0fb526cf3aefec9b55fd836bc19b3e2055323 module/command-auth-native
48388ca2c61744282d3d0b6d23e45890926f8238c737dce7e60d8163c079c8b5 module/command-auth
5d2ba0ec9a10fe7cc1e41ecfc7ba03f50a2e0d9209cb7383f281c5390364f187 module/command-auth-native
50c24235bca2c1d3c011f6bc266b57078b78a76d2d27ee12e7b3245f2947b493 module/command-detection
e24382c2cca7fd2cf69ac353e258153dab80b279daf9f0ef54a727981a7dff3c module/command-primitives-runtime
1d6ebcdc843b7072a7fc4475eadadb90a1111d49c1da1e4326775800873cf9f1 module/command-status
ab86235fcfff7c7cf0021fafeca6e92afe2c257ccf6a4a38441e0d41532998ff module/config-contracts
0d99f5cb8c4978ed760e5fb4e476543759fbd8fd5bf73cc50a50c1d550203826 module/config-mutation
5465d8cd4b47a137f6526cc7978e0fd491df74e25c89a24c231790c1c72110c9 module/config-runtime
ac96ff12fe67214afc91fb76441305038e44fba4376b89a4240295d2e9f5bd00 module/conversation-runtime
3dfe69e2c15695ac792feca7a032e6e7f5336c0a37dc71022bcc7ca122e99cb0 module/core
c4096eaab3d2315e9b51faff98891dbaf15f5e116f21b0206f32452d7f929fa3 module/dedupe-runtime
29271d7ed7b05e5caf95cba73a70a506cf2e2d25131ec08da8d8ab544a1a6f61 module/config-runtime
e90b0b9ae9153ad79242ef2ef7306b3ab4473c949d498b241a12c87227c25467 module/conversation-runtime
e725cc808a84fcf150668834c6cfc4126098da5e51e5a7a1cf65fe221aa2e8b4 module/core
001093661e24e8162d9a6b4ba6c0b6016a77f3a75cee322ac16ddab5818d50ec module/dedupe-runtime
ebef0e650ab45e44c9335e2b3e15588c968cea6dadd125364a076f9c50ad1e8c module/device-bootstrap
21d86413166ef815581d606f678b6a216a1cc73ffe470b841f5bc4a131bff6df module/diagnostic-runtime
858571cff873d31deb36695f73d88878fa01179e94422ec59a1504a956b0b0da module/directory-runtime
5f13d2cf4c60925bd2f7ee030dc8ebca3087dd328f6706aed76317ad7df6a090 module/discord
8882a5a1f5ab632fa7b26cca76fc584a36fa097f377ac5e25436d417c8471daf module/directory-runtime
9e5be3a87631bc4604d0a20eb365b3f2030903da16ddc8ac1a641313b260ce19 module/discord
39fe343ed2119de714757c365eef2ccec89c2c82a0876c60a4bef8ce469f8c8a module/error-runtime
ce4f1602bf5b5de968ca97cede4f498b6ae709a0a59393b5ce9255cf0e6a9d5e module/extension-shared
dd9f6e0fd33cc88b22543c1ee30cc09cf4de4d8f30dff7b7f9cebef885c21543 module/gateway-method-runtime
34961e1fa8cb3da48e985d41eb9007fda2a9fde2e59f0fad171e88b72555b7a3 module/gateway-runtime
aef9254aebfcd85721819e964284f6e52d1f39a1ab20d65b7f42487a63dcd3c9 module/gateway-runtime
1b1c6bd5bfc0cfb0c5bb9bd97f8ac1928750cb87232a3415dd066cc21d7b48b7 module/group-access
5bf422b18d8d7b06d1ba7d5a730d59ef463bb377f00b4aba23ea55d51c5d19ca module/health
8366c7453654530db5ea90ba6e91a4f0c8d531b2764506538c169682d1e0bf09 module/hook-runtime
c42a3d501b14b606fe104d98f780f0d0d9c0d972709afedb427bf925c7a12a2a module/health
6a92065dc642dc1552a6d2ead33d9f29956de59b19ecbe8d048f55864bac6428 module/hook-runtime
a953bd0c23c562e29fc512bc2354ed45c497728169d8201cb2cdb75d9e056073 module/inbound-envelope
4928af5d2509f696b896f53ac790303a0742202dbcdae3e44fe6d1b434a9c1ba module/inbound-event-delivery
5bdcaeb3278d659917340b38cf4a0084af7f4a5bb3b650925cef09eb876ffe4d module/inbound-reply-dispatch
b55f95b960e1981528b6113b88d740ceeebec4b937d918a2fc0903c6e4041712 module/infra-runtime
fe61193e1bcb4e214acfa92e02e35238485c681958a84ab2982cf34937fb75ef module/inbound-reply-dispatch
049c5e2e70f863164c4d1c49747dface6791fde278c976f318bd55b5a33394d8 module/infra-runtime
ce73721421f1b903dd04ead4df173582e59ea3e9990248102c448b419cc6d272 module/ingress-effect-once
c66c8fd98b1a73f40fa7b65f3192b971079f88dec2accf59c4260ba0ec663fd0 module/interactive-runtime
d70942696003e682318195c52842c66859f6f82ba5c2eadbaffe2ed73cc14d64 module/interactive-runtime
408d257ab5cc4b88a22b7e7595039cb8fc524b261c44141b294fbd0100ba62ee module/json-store
e907fd3a98185f2c261f2aafcaa5a19ee1d7b459d519a498397d629f84c68312 module/lazy-runtime
cc2d0e1c1e7b9491eb254f314ed2c081a33256936781017eb5d8f9f11808f35b module/logging-core
f1ca4ced4305d0769c2d8cc1291137ac7002fe0e6eaec2c1a71edad2204c8311 module/matrix
4d18b3bcec2c4291085e6001ed444198fe74f12708956e1c40c964d84e53bec8 module/media-local-roots
f74d7295fe716aa140aa0bc9300d6259d71dab826de0808fca6bb02592bf5d6e module/media-mime
1d623d95396574c9fec1593fcb561712b6c31858feb5f56effb6a23b7de9a401 module/media-runtime
5e5c0a9db4c3745f448bf8cb3ad45320d3b826c75a02227c6dfc9f9323ab8ff5 module/media-runtime
6a52f93107335f88751704352cc01e62add06f854a5b7d765e2a5ee87c0313b6 module/media-store
3bdcc734f6ea5f59320708cb2b87de9c5422a8b70745774ea0cc8a01cf656924 module/media-understanding
b657aac5f69385a9e3debd37fbc454cc04178ecc773d7f7716bfb1e5032d5228 module/media-understanding-runtime
95e4eb4e745c40f5931d26bba40322f94072bc4092d3d974447827e5a460bc49 module/meeting-runtime
67ffe0251f234c9641ebedc61bfd2866b81e59c907757054517056476a6b8c92 module/media-understanding-runtime
eeb5522f22d133e3ecba1cb0625567f69f4311a7437abd1d04d2588cceae97c7 module/meeting-runtime
3312468e2e8f3423b765fac6bb17944b800ea2c84acffeb64342c99040b2f482 module/memory-core-host-engine-foundation
93db7bf3cafd82afa1b23a0b9523814eaad831e653bead38e885b585ae32a42c module/memory-host-core
736ea5244232d7ab9bd7f56522110b6bf23d66328f938f34ae949d1c1146d1cd module/memory-host-core
1efa0aadc4261d1c6073058cbf3dcc9fa681424819bdd14333e19b249bbc4b18 module/messaging-targets
431eb0702c316a398e599ee502b87d507f5532b38766cf6c8bd5c890174c9001 module/model-session-runtime
b26ee64a33b2829ec2cd8b1e18a20ae9e6639b98a3f02a49390401fcb652c1e2 module/models-provider-runtime
c77c57a509350dfbb58ef2618074e79e002f056213d26ed99db7db2c3dbb3e28 module/native-command-config-runtime
a2e353787e32fc3782829b08446470405e0976e10c76e86ffb7b11dcc80460ac module/model-session-runtime
c1abc36d25082a8bf1182df28d263f5324be6f95531da298895c2c0f5161fb54 module/models-provider-runtime
49adf538a3a8dd6c0f731e7b830cae50205d7159693687f70d455ac8cd247b38 module/native-command-config-runtime
f6ffada942145ca2fcec4df90740b4578afa09e81d46cc09122a65d6e345fe02 module/native-command-registry
a6b5532576fa4cfd609d0966927eec12806424f2e1efce9fe47d903dfeb8e4dd module/param-readers
ca7a56bb1a6169b4cf9befbf5aa21da280a8086fdc49fca4eec520a7a7c98549 module/persistent-dedupe
b31f5d86904097993a55377fed7973cd298b0e1f49cade7e37a1e28f6e724108 module/plugin-config-runtime
1f31ea143ed938acfea91f392d0b9d2523c5cb210a19f855b8cbffc9ccfd79f9 module/plugin-entry
e7b6e488d4a1bb74524972ff20cd192b8874ba1732dfb93208b95b79cbfe206e module/plugin-runtime
afdba77987b59dce88909953957aacf2eb89a53aad6eee68bb51fbc41dec885a module/provider-auth
82f44ff3818722a5c68dc0d4b1d8eaedd4fd25465cd5e90830406859fb239797 module/provider-catalog-runtime
ad5690877b439ac6c0b9dda3cf9717381806eb6dd73ac8f1feac7ea940a417aa module/plugin-entry
43eec9105fcc5705fa9b79a99091e439ba838750b3680f8e0162fe089c078f33 module/plugin-runtime
a7fa196e6eefce5fcf3cdfde6a0eb4a8a45f08af47aa7944eda541b6e6d85c4f module/provider-auth
c749ce6c84288cd3f1ed9f739281fade28220e739232daa83df4e0f94187279e module/provider-catalog-runtime
8131147d699394bd06503e2ea2f5f1a50b1594a87dded6d118b74a8d0328c8f6 module/proxy-capture
6bcb504093173b6e6197b0df7ded4522345e744c67d58d78d0f43d32a2ab7f80 module/question-gateway-runtime
67a15bf269ff7c416be279acc44ed59dd5166a880a974896e323649471040450 module/reply-chunking
02ad5f48679edf74161e4afc35b427b25e2b10b0732ce1e9bf3a0665843ef24b module/reply-dispatch-runtime
e558b0ddc597bd5bc2bbcf2a404485676c66685583ecce7df552217a080c4219 module/reply-chunking
4363add8bc5efd6bc55b14c498a9679544d191aa0889ed5fe745c37c9238458e module/reply-dispatch-runtime
73f861fa3179d5af1159853c5acab0eec7a6c8f9398dcb75ea770e784fca6727 module/reply-history
4a13b649afa1a4c80617c40f8f530f2429f7f49eedc8992b7a6d7b1ca97bf387 module/reply-payload
415c1fa44c40b10f5516f998be131bfbc5e005d60512640cb34d3a04c96675aa module/reply-runtime
d266216e54afb7e8a205bea13e82e0495b53d3b039cc2b795df3a286fc9515d9 module/reply-payload
89f36ce57892c19ee44123d14af87e4a1fc9843b970fc7c26328af6ca461e3f2 module/reply-runtime
aa07d85d99fdd2b1e0cbe9975fb6dcae66b8bdce2607c6bd5402ae68bb15118c module/root-walk
ad6c5c5b16e22f8b06994f69ecfafbc9a9622b07c14670f3c4e8ee81cf3b8c4d module/routing
7877a7e58fa32a64107154e5b714c6d165e96989d4aa5f43e0afac085a187af0 module/run-command
@@ -118,34 +118,34 @@ ad6c5c5b16e22f8b06994f69ecfafbc9a9622b07c14670f3c4e8ee81cf3b8c4d module/routing
0570a20fac6020880900a0cf9a889d8f28f47b89d0e1d17862265b557236d440 module/runtime-config-snapshot
bfe087e249a3c0adda4d24727220a65bcc159f53d6a4d6d8cd9b252627ef8e98 module/runtime-env
49e9b6a8195c89704eaa80656f176444af7cacbf639b759f41f2c78ae6bfcfd9 module/runtime-group-policy
b0759c32a3572a57cb60a926af8199ec7baec6a033d03a31bc885d74eb511e71 module/runtime-store
baee8323f480c34d7ddf6fc70c8e650ab9d399bbcd8045f94d4a4006d5c90e2a module/runtime-store
d17862c40825af1ddf0257b44f1e1cbb9c375e8e5ed668fae75d530d1a465cf9 module/secret-file
8e2ac4d3973d8d8ce4478e3440d66ee5c0d9213b0fe9e927c421d14fd31e5e86 module/secret-input
b1b0229280d7cc4a880e4db75130714eb6adc9d6aea31240dc9a8ff6fda55219 module/secret-input-runtime
0cbc3908bd9e1d4527585023a1692eba6c0bfe82f107f49a926a8d1c79aee2a0 module/secret-ref-runtime
eda7ada1e907c8a4c576402303cd71e6f633b5998f08625c56555827f1c685df module/security-runtime
435bb9efa70c551004f23a07b6e9a6dd1f71f700649807ab9a9236126e45aeef module/session-catalog
d1403c3f0a4fe5e468c5e5ab596095caa4b27d00019406c4dfc6c2087a6261be module/session-discussion
9413a28933b8546333f70fd06795acc2d7f4ba05bc89683caf31fbfa17ec7a86 module/session-store-runtime
395444ac26275b34c00d5ecee41e0c4cf2281b0aadf5f54f6bcecf3bfcad7e9d module/setup
8f8f98216f02d6b4de7aee6798c81e86a0ad1319cccb399ed1beedefc151cea0 module/setup-runtime
0ce7d494173690c245cb5dbd64119140d632cb7c0f520b0a8e235de2197b7c20 module/security-runtime
ca0db2dbca3eaae8d3a8648a0ee270af8c0d84852191c8f60670affc5ffdd0fe module/session-catalog
ae3caea5548c99cf2e16aa2bd7d4dd0562b7dd7c7d6ba89f5b23a993e0bcf224 module/session-discussion
5b186bdc779ee4fbd45c188078a2c306781ae0c746d41affaf43200b3941234e module/session-store-runtime
29a929d8bd0845de8bcb4d33cc7b8af7e5e9366a94a9c23c6d5013e3e0534d45 module/setup
533a6b5af4c984e3ec9bc57bd7685b2cbe421231195fa73a7cb1ef4d47e3a1e7 module/setup-runtime
d0cb4c5abb7484352088f556c1ba7c7b147d7b57977b8246e5cb7187937768b7 module/setup-tools
21b172f6fbf2b333025f7a53aa8ffec1d3f484d5d9ac506793bec8c31aa6b63e module/skill-commands-runtime
767241d69aabda48508c493ac06723716948c3a2839e5b7ded4a67aeb0ecbca5 module/speech-settings
9d0e415afe55d42a01f4b04ddd1587291ee5e397f3b37aa01534b9e6357634ee module/ssrf-policy
b24923722ab5ea7f24392c24bab1de29e38abd2dc048ad4e6ae52cdf9d77079a module/ssrf-runtime
f69a8cbdbd73557bff2c7c82c780bd2eb55b9949d2a7fb08c698bec4977eb6fa module/skill-commands-runtime
1868b2613210b60543d85370b87972c4f75cde3b216d2277cad5403c4b464c10 module/speech-settings
8409dc78249517ef77c97284f503938b7f485977cbb39fa8921b9cc0861a053b module/ssrf-policy
4062722a2282ca8535e8f208463f742c06e39f0fd2a38dee764d4875fff91b2d module/ssrf-runtime
3855f0a23281d21063762f5b3be2b7485c8bdb3b4cd1692de4f2a17d4eeae496 module/state-paths
a50a20fa4ef9c36086b36939cd485585c5742394feb5aba712a44b7051ea6d6a module/status-helpers
cf07ea6f699ed1eb4bc8db1eed5dee2a018a2c583bd438134dfa1d24ee5b3e35 module/status-helpers
f097d0096b21c8a052f0f649b7512ecf2aba4744ae6956f001950e053828b309 module/string-coerce-runtime
9a02a0744c0a73e575c8980cd0e4256866b6d436636061c7774e2e712636466c module/telegram-account
aef35bee2502cd6ed8765409b758e452aff8ac9469fd773e6a2a44c9a1bc3f66 module/temp-path
87fa81b9e58d8fc04a4b4202d2d37fca339615f5225687d9db905151439e0f4d module/text-chunking
fcdaf13ecea269f1a471ba4fe14958f3c8e198eaa20f354546a648408ed74064 module/text-runtime
3441d3b0b14412f99e7b98dcf5c4194ca3b88f8ee0576e0af0d43b6a4c1e9bba module/tool-plugin
88cc8ab15e17398976dbacbb63de4ee1e5a567957d44446de6ef56cc141943d8 module/tool-plugin
dc1a073c59ab61e2789533b777b3f0cb9af689d64a97796b10e8aa82552510db module/tool-results
27702cab40228c505888b90c0737738b030a773e67388e6f7802ef8384f2a466 module/tool-send
2b21b9fcdee0805a7d5385053bb10a57faa67986b784b7123e0b5b16d46d93e4 module/tool-send
cda105b721d498df23a554c6b68be150b8fe66b8b9172185c31a0b3b0646b1dc module/web-media
50357dc1b7b851bbabe9631d9d9690287960cf052b2504dc92c31c3b9c23b614 module/webhook-ingress
316f631dc73e9afc30166562f18284f167a23b41ed5fd3aabd7862e2f09ee6ac module/webhook-ingress
e3a199a9ce0b85d203e9e8a29b500db29c6b7af307e3145d0a311e29d598925b module/webhook-request-guards
de59e86e126b75d13251cba7ebbe27b44d9b5588785d98df5ff4d6722374c81f module/widget-html
9161b36ec0ab062ea41b363c894fcd672a7727f21cb726739f99f9c184fce69d module/zod
@@ -48,6 +48,9 @@ export async function runTelegramDispatchTurn(params: {
}) {
const { context } = params;
const isRoomEvent = context.ctxPayload.InboundEventKind === "room_event";
const toolProgressEnabled =
params.streamMode !== "off" &&
resolveChannelStreamingPreviewToolProgress(params.telegramCfg, true, params.streamMode);
const beginDeliveryCorrelation = () =>
telegramInboundEventDelivery.begin(
context.ctxPayload.SessionKey,
@@ -248,14 +251,11 @@ export async function runTelegramDispatchTurn(params: {
},
suppressDefaultToolProgressMessages:
!params.draft.streamDeliveryEnabled || Boolean(params.draft.answerLane.stream),
suppressToolProgressMessages: !toolProgressEnabled,
forceToolResultProgress:
Boolean(params.draft.answerLane.stream) &&
params.streamMode === "progress" &&
resolveChannelStreamingPreviewToolProgress(
params.telegramCfg,
true,
params.streamMode,
),
toolProgressEnabled,
allowProgressCallbacksWhenSourceDeliverySuppressed:
!isRoomEvent && Boolean(params.draft.answerLane.stream),
onVerboseProgressVisibility: (isActive) => {
@@ -17,6 +17,45 @@ function registerHooks(...hooks: string[]) {
}
describeTelegramDispatch("Telegram provider preview hook safety", () => {
it.each([
{
label: "streaming is off",
streamMode: "off",
telegramCfg: {},
},
{
label: "partial tool progress is off",
streamMode: "partial",
telegramCfg: { streaming: { preview: { toolProgress: false } } },
},
{
label: "progress tool progress is off",
streamMode: "progress",
telegramCfg: { streaming: { progress: { toolProgress: false } } },
},
] as const)(
"suppresses standalone tool progress when $label",
async ({ streamMode, telegramCfg }) => {
await dispatchWithContext({ context: createContext(), streamMode, telegramCfg });
expectDispatchParams({
replyOptions: expect.objectContaining({ suppressToolProgressMessages: true }),
});
},
);
it("allows verbose progress when progress rendering is enabled", async () => {
await dispatchWithContext({
context: createContext(),
streamMode: "progress",
telegramCfg: { streaming: { progress: { toolProgress: true } } },
});
expectDispatchParams({
replyOptions: expect.objectContaining({ suppressToolProgressMessages: false }),
});
});
it("preserves answer previews when no hooks are registered", async () => {
await dispatchWithContext({ context: createContext() });
@@ -172,6 +172,8 @@ export type GetReplyOptions = {
* channel to surface progress via its own streaming/edit UX.
*/
suppressDefaultToolProgressMessages?: boolean;
/** Suppress standalone tool/progress text even when verbose progress is enabled. */
suppressToolProgressMessages?: boolean;
/** Allow channel-owned tool lifecycle feedback while text progress remains hidden. */
allowToolLifecycleWhenProgressHidden?: boolean;
/**
@@ -88,7 +88,8 @@ export async function chooseDispatchRoute(state: PrepareDispatchOperationReadySt
const shouldSuppressProgressDelivery = () =>
sendPolicyDenied ||
(suppressDelivery && !shouldDeliverVerboseProgressDespiteSourceSuppression());
const shouldSuppressDefaultToolProgressMessages = () => !shouldEmitVerboseProgress();
const shouldSuppressDefaultToolProgressMessages = () =>
params.replyOptions?.suppressToolProgressMessages === true || !shouldEmitVerboseProgress();
const shouldSendVerboseProgressMessages = () => !shouldSuppressDefaultToolProgressMessages();
const shouldSendToolSummaries = () => shouldSendVerboseProgressMessages();
const notifiedSessionMetadataChangeKeys = new Set<string>();
@@ -230,8 +230,11 @@ export async function executeDispatch(state: PrepareDispatchExecutionReadyState)
state.shouldDeliverForcedToolProgressDespiteSourceSuppression();
const forceToolResultProgress =
params.replyOptions?.forceToolResultProgress === true;
const requiresDurableToolResult =
forceToolResultProgress && requiresDurableToolResultDelivery(payload);
const durableToolResult = requiresDurableToolResultDelivery(payload);
const requiresDurableToolResult = forceToolResultProgress && durableToolResult;
if (params.replyOptions?.suppressToolProgressMessages && !durableToolResult) {
return;
}
const shouldForwardToolResultProgress = isFastModeAutoProgress
? shouldForwardProgressCallback({
forwardWhenSourceDeliverySuppressed: true,
@@ -2703,6 +2703,7 @@ describe("sendPolicy deny — suppress delivery, not processing (#53328)", () =>
sourceReplyDeliveryMode: "message_tool_only",
forceToolResultProgress: true,
suppressDefaultToolProgressMessages: true,
suppressToolProgressMessages: true,
allowProgressCallbacksWhenSourceDeliverySuppressed: true,
onToolResult,
},
@@ -726,6 +726,7 @@ describe("dispatchReplyFromConfig", () => {
cfg,
dispatcher,
replyResolver: async () => notice,
replyOptions: { suppressToolProgressMessages: true },
});
expect(ttsMocks.maybeApplyTtsToPayload).not.toHaveBeenCalled();
@@ -1594,5 +1595,52 @@ describe("dispatchReplyFromConfig", () => {
expect(dispatcher.sendToolResult).toHaveBeenCalledWith({ text: "🔧 exec: ls" });
expect(dispatcher.sendFinalReply).toHaveBeenCalledWith({ text: "done" });
});
it("keeps channel-hidden tool progress suppressed when verbose is enabled", async () => {
setNoAbort();
sessionStoreMocks.currentEntry = {
verboseLevel: "on",
};
const dispatcher = createDispatcher();
const onToolResult = vi.fn(() => false);
const replyResolver = async (
_ctx: MsgContext,
opts?: GetReplyOptions,
_cfg?: OpenClawConfig,
) => {
await opts?.onItemEvent?.({
kind: "preamble",
itemId: "preamble-1",
progressText: "Checking the workspace",
});
await opts?.onToolResult?.({ text: "🔧 exec: ls" });
await opts?.onToolResult?.({
text: "💨Fast: auto-off(75s>=60s)",
channelData: { openclawProgressKind: "fast-mode-auto" },
});
await opts?.onToolResult?.({ text: "Command failed", isError: true });
await opts?.onPlanUpdate?.({
phase: "update",
steps: [{ step: "Inspect files", status: "in_progress" }],
});
return { text: "done" } satisfies ReplyPayload;
};
await dispatchReplyFromConfig({
ctx: buildTestCtx({
Provider: "telegram",
ChatType: "direct",
SessionKey: "agent:main:main",
}),
cfg: emptyConfig,
dispatcher,
replyResolver,
replyOptions: { suppressToolProgressMessages: true, onToolResult },
});
expect(onToolResult).not.toHaveBeenCalled();
expect(dispatcher.sendToolResult).not.toHaveBeenCalled();
expect(dispatcher.sendFinalReply).toHaveBeenCalledWith({ text: "done" });
});
});
/* oxlint-disable max-lines -- TODO: split this grandfathered oversized file. */