mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-02 19:46:18 +00:00
Progress-draft lines recovered their detail by string-slicing the label formatToolAggregate had just rendered, and three sites decided "is this a shell tool?" against lowercase spellings only. The Claude CLI sends "Bash", so those checks missed, the slice returned nothing, and every CLI tool call rendered a line with no detail: Telegram printed the icon twice and the tool-summary payload could no longer merge, leaving a second id-less line per call. formatToolAggregateParts now returns the label with the detail it composed, so a line cannot disagree with its own text, and one predicate owns the shell question across all four sites. Proven live on the Claude CLI backend: two lines with a doubled icon became one. |
||
|---|---|---|
| .. | ||
| src | ||
| account-inspect-api.ts | ||
| AGENTS.md | ||
| allow-from.ts | ||
| api.test.ts | ||
| api.ts | ||
| channel-config-api.test.ts | ||
| channel-config-api.ts | ||
| channel-plugin-api.ts | ||
| CLAUDE.md | ||
| config-api.ts | ||
| contract-api.ts | ||
| directory-contract-api.ts | ||
| doctor-contract-api.ts | ||
| index.test.ts | ||
| index.ts | ||
| legacy-state-migrations-api.ts | ||
| miniapp-api.ts | ||
| openclaw.plugin.json | ||
| package.json | ||
| runtime-api.ts | ||
| runtime-setter-api.ts | ||
| secret-contract-api.ts | ||
| security-audit-contract-api.ts | ||
| session-binding-contract-api.ts | ||
| session-key-api.ts | ||
| setup-entry.ts | ||
| setup-plugin-api.ts | ||
| test-api.ts | ||
| tsconfig.json | ||
| update-offset-runtime-api.ts | ||