Use generic MCP result rendering and place labels above values on macOS and iOS. Update existing presentation expectations.
Co-Authored-By: Claude Code <noreply@anthropic.com>
Format memory and swap with memory style, filesystem capacity with file style, and I/O rates and totals with decimal style.
Co-Authored-By: Claude Code <noreply@anthropic.com>
Remove low-value rendering, dependency-owned and script tests together with orphaned test scaffolding and obsolete wrappers. Keep state-driven visual coverage and release screenshot workflows.
Preserve incoming message origins on preparation failures, refresh tool presentation fixtures, and move shared SSH import coverage out of the iOS host test bundle to avoid duplicate static types.
Relocate the host icon input manifest, remove the heuristic AppStrings checker, and simplify localization CI.
Inject tool-owned presentation profiles and semantic vocabulary, remove legacy inference and stream compatibility, and update AgentKit to 3.1.0.
Co-Authored-By: Claude Code <noreply@anthropic.com>
Align the Xcode requirement, resolved package revision, and maintenance submodule with the released AgentKit 3.0.1 tag. Preserve all other package pins.
Co-Authored-By: Claude Code <noreply@anthropic.com>
Tool names are protocol surface: they appear in the MCP export list,
persisted disabled-tool preferences, audit records, and presentation
registries. Spelling them as literals at each of those sites let one
place drift from another with no compile error to catch it.
Add TermindToolName as the single source of truth for the 25 names
Termind owns, and route every non-documentation reference through it.
The registry lives in TermindApplication because presentation cannot
import TermindRemoteInfrastructure, and TermindApplication cannot depend
on it either.
Names owned by AgentKit (request_user_secret, present_plan, the
scratch_* build tools) and retired aliases (ssh_exec, ssh_wait) stay as
literals, as do the prose in MCP instructions and descriptor summaries.
The legacyToolNames compatibility list is a historical data contract and
is unchanged.
This also removes the sshExecRunToolName and sshExecStdinToolName
constants from TermindAgentPolicy, which the registry replaces.
Track ET data-route progress separately from SSH bootstrap, preserve established hop colors, and reject stale route events. Distinguish direct Mosh recovery from full SSH reconnection while retaining whole-route failure coloring.
Consolidate Journey waiting transitions and failure presentation, reduce redundant rendering, and add route lifecycle and platform regressions.
Co-Authored-By: Claude Code <noreply@anthropic.com>
Separate interaction refreshes from layout invalidation on macOS and iOS. Retain active editors across edit-eligibility changes and cover hosting identity, input composition, navigation controls, and model-driven streaming replay.
Co-Authored-By: Claude Code <noreply@anthropic.com>
Share default transport ordering and connection-kind resolution across desktop and mobile opening paths. Keep explicit transport choices intact and skip unavailable default terminals before admission.
Co-Authored-By: Claude Code <noreply@anthropic.com>
Centralize Journey mapping, interaction ordering, and localized tool presentation; remove redundant multiplexer and paywall state. Consume AgentKit 2.2.0 for shared operation, output, and transcript contracts, and correct its maintenance checkout documentation.
Validation: AgentKit 304 tests and local-package macOS/shared 215 regressions passed. iOS app built; 38 focused tests reported passing with an existing broken fixture excluded, but Xcode finalization stalled. Default macOS tests retain timeouts and Secure Enclave failures. A subsequent remote-pin build reported AgentTranscriptMessage.toolResult unavailable; it has not been diagnosed.
Co-Authored-By: Claude Code <noreply@anthropic.com>
Redact decoded tool result fields without cutting their JSON envelopes. Preserve frozen model projections and recover damaged historical presentation from valid retained output. Do not mistake shorter redacted content for truncation.
Use Output as the command output section heading with localized equivalents.