Skip to content

ios: label Cloud tool calls with their display summaries - #2015

Merged
ex3ndr merged 1 commit into
mainfrom
steve/ios-tool-call-labels
Nov 9, 2026
Merged

ex3ndr merged 1 commit into
mainfrom
steve/ios-tool-call-labels

Conversation

@ex3ndr

@ex3ndr ex3ndr commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Change

Show the built-in tools' short display summaries in native Happy Agent / Cloud activity rows. Descriptions take priority over the explicitly mapped explanation/title/name and tool-specific display fields. Whitespace is collapsed and labels are capped at 120 Unicode scalars, matching the server contract. Blank or missing fields keep useful older-history fallbacks; arbitrary semantic names/titles are not promoted.

  • Preserve bounded display fields when decoding rich tool presentations, without retaining raw code or patch payloads.
  • Keep rich detail bodies, diff counts, glyphs, failure/running state, media and navigation intact.
  • Fetch full details for compact generic calls whose result was omitted.
  • Keep plan progress alongside its explanation and keep MCP server/tool identity (including the full tool-name remainder). MCP descriptions remain semantic input.
  • Remove the empty verb's layout gap when a summary stands alone.

This affects the Happy Agent / Cloud path, not the separate legacy Bash renderer.

Verification

  • Regression tests first failed on the old implementation: six UIKit cases (68 assertions), two core cases and one layout case.
  • Final native verification on Kirill Mac: 58 core/layout tests passed; 491 UIKit tests, zero failures, one existing skip.
  • Tests cover all 50 display-description tools, explicit field fallbacks, blank/non-string values, Unicode normalization, decoded rich commands, unchanged rich bodies, diff counts, MCP identity, plan progress, compact-detail fetching and exact row geometry.
  • Evidence: /Users/kirilldubovitskiy/ctb-out/tool-labels.XzuvaD/.
  • Independent exact-commit source and contract review: PASS, no findings.

Live iPhone 12 production verification is explicitly a follow-up after the server description and compact-history changes are deployed: use existing qa-batch-76eca2, exercise Python, and exercise shell only if compute is already attached. No new server, provider changes, compute attachment or Preview upload. No live proof is claimed yet.

@ex3ndr

ex3ndr commented Nov 9, 2026

Copy link
Copy Markdown
Contributor Author

Reviewed head 760664fb7fb00160f0f2b09b797494a8e9a16197 meets the explicitly approved fixture-test merge gate:

  • Required UIKit CI job 128929975216 passed 491 tests, zero failures, one existing skip. All seven new ToolWords cases passed.
  • Local native verification passed 58 core/layout tests (including the exact 50-tool display-field contract) and the same full UIKit suite.
  • Independent exact-commit source/contract review passed with no findings.

The three reporting-only hosted shards are still running at merge time; their eventual outcome is not claimed green. Normal squash, no admin override or bypass.

Live iPhone 12 proof is explicitly a separate follow-up after confirmation that both server description and compact-history changes are live in production. It will use existing qa-batch-76eca2, run Python, and run shell only if compute is already attached. No server creation, provider changes, compute attachment, or Preview upload. No live proof is claimed yet.

@ex3ndr
ex3ndr merged commit 6c8758d into main Nov 9, 2026
1 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant