picoclaw/pkg
Guoguo 5db008f384
fix(channels): dismiss tool feedback animation when turn ends via ResponseHandled (#2713)
* fix(channels): dismiss tool feedback animation when turn ends via ResponseHandled

When a tool sets ResponseHandled=true (e.g., send_file), the turn ends
without producing a final assistant response. This meant no outbound
message triggered FinalizeToolFeedbackMessage, leaving the animation
goroutine running indefinitely — editing the Feishu card every 3 seconds
with "." / ".." suffixes long after the tool had finished.

Fix: call DismissToolFeedback at "Tool output satisfied delivery" so the
tracker is cleared and the animation goroutine is stopped immediately.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(adapters): add DismissToolFeedback to channelManagerAdapter

The adapter must implement the new interface method added in the
previous commit, otherwise the package fails to compile.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(channels): pass InboundContext to DismissToolFeedback for topic-aware keys

Telegram forum topics use scoped tracker keys like "chatID/topicID",
resolved via ToolFeedbackMessageChatID with the InboundContext. The
previous nil context caused the lookup to fall back to the raw chatID,
missing the topic-scoped entry and leaving the animation goroutine
orphaned in forum-topic conversations.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* style: wrap long function signatures for golines

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 11:17:55 +08:00
..
agent fix(channels): dismiss tool feedback animation when turn ends via ResponseHandled (#2713) 2026-04-30 11:17:55 +08:00
audio refactor: support explicit provider field in model list entries (#2609) 2026-04-22 11:28:47 +08:00
auth fix(auth): canonicalize Google Antigravity provider and enhance credential management (#2599) 2026-04-21 16:28:29 +08:00
bus feat(agent): add context usage ring indicator and /context command (#2537) 2026-04-21 16:30:02 +08:00
channels fix(channels): dismiss tool feedback animation when turn ends via ResponseHandled (#2713) 2026-04-30 11:17:55 +08:00
commands fix lint 2026-04-21 11:01:04 +02:00
config feat(config): wire serial tool into runtime and dashboard 2026-04-28 12:56:27 +08:00
constants refactor: replace bool map with set-style map for internal channels (#472) 2026-02-19 11:48:17 +01:00
credential refactor config and security to simplified the structure (#2068) 2026-03-28 00:03:34 +08:00
cron refactor(cron): remove deliver and type params, unify agent execution path (#2147) 2026-03-29 22:52:34 +08:00
devices refactor(runtime): drop non-session legacy context compatibility 2026-04-01 20:56:48 +08:00
fileutil Merge pull request #1829 from perhapzz/test/add-fileutil-health-tests 2026-03-26 10:42:13 +01:00
gateway refactor(web): secure Pico websocket access behind launcher auth 2026-04-20 10:11:03 +08:00
health fix(host): modernize default host selection order 2026-04-14 14:03:23 +08:00
heartbeat refactor(runtime): drop non-session legacy context compatibility 2026-04-01 20:56:48 +08:00
identity fix(identity): support negative integers in isNumeric for Telegram group IDs 2026-03-21 17:09:02 +07:00
isolation fix: treat PID=1 as stale in PID file singleton check, fix govet shadow, add .gitattributes (#2642) 2026-04-24 15:26:34 +08:00
logger unify all panic event to panic log file (#2250) 2026-04-01 23:26:49 +08:00
mcp fix(mcp): retry tool calls on lost HTTP sessions and fix client lifecycle 2026-04-24 20:20:57 +02:00
media Fix 1886 media cleanup policy (#1887) 2026-03-23 12:13:59 +08:00
memory fix(message): ignore transient assistant thoughts in message count and history truncation 2026-04-25 12:26:28 +08:00
migrate refactor(config): make config.Channel to multiple instance support 2026-04-13 22:21:21 +08:00
netbind fix(web): address latest Copilot review points 2026-04-14 23:39:59 +08:00
pid fix: treat PID=1 as stale in PID file singleton check, fix govet shadow, add .gitattributes (#2642) 2026-04-24 15:26:34 +08:00
providers Merge pull request #2657 from lc6464/fix-deepseek-v4-thinking-history 2026-04-25 15:08:48 +08:00
routing feat(routing): add ordered dispatch rules 2026-04-01 22:13:04 +08:00
seahorse test(seahorse): add TestTriggerMigration for old-DB trigger upgrade path 2026-04-13 11:37:50 +08:00
session fix(reasoning): persist canonical history for DeepSeek and web chat 2026-04-24 21:45:41 +08:00
skills refactor skills registries and add GitHub-backed skill discovery (#2442) 2026-04-14 15:14:16 +08:00
state refactor Config to add Version and migratable 2026-03-12 13:52:55 +08:00
tokenizer feat(seahorse): implement short-term memory engine (LCM) (#2285) 2026-04-05 09:05:16 +08:00
tools fix(feishu): fix image download with API fallback and post image support (#2708) 2026-04-30 11:08:00 +08:00
updater fix(updater): retry release fetches (#2511) 2026-04-14 10:44:21 +08:00
utils fix(tool-feedback): dedupe duplicate content and keep full explanations 2026-04-26 00:40:55 +08:00
env.go Merge branch 'main' into version 2026-03-19 18:04:58 +08:00