{"repo":"NousResearch/hermes-agent","public_id":"107267","display_label":"Desktop tool result preservation and display fixes","summary":"These issues and pull requests address a bug where the desktop client drops non-object tool results and incorrectly mixes display metadata into result payloads. The work focuses on preserving tool results accurately and separating display hints from result data in the live transcript.","subsystem":null,"counts":{"members":4,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":2},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":108525,"merged_at":"2026-09-14T12:29:09+00:00"},"resolution":{"state":"resolved","by":"pr-108525"},"freshness":{"state":"verified","last_verified_at":"2026-09-14T12:29:09+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.5},"fix_edges":[{"issue_number":76052,"pr_number":108525,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-14T12:29:09+00:00"},{"issue_number":107267,"pr_number":108525,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-14T12:29:09+00:00"},{"issue_number":107268,"pr_number":108525,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true,"pr_merged_at":"2026-09-14T12:29:09+00:00"}],"members":[{"kind":"issue","number":107267,"title":"[Bug]: Desktop drops non-object tool results and mixes display hints into result payloads","url":null,"state":"closed"},{"kind":"pr","number":107277,"title":"fix(desktop): preserve non-object tool results in live transcript","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#108525","number":108525}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":107297,"title":"fix(desktop): preserve tool results and separate display metadata","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#108525","number":108525}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":108525,"title":"fix(desktop): preserve tool results and keep live tool activity inspectable","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["apps/desktop/src/app/contrib/hooks/live-status-reap.test.ts","apps/desktop/src/components/assistant-ui/thread/changed-files.ts","apps/desktop/src/components/assistant-ui/thread/message-parts.tsx","apps/desktop/src/components/assistant-ui/thread/sealed-tool-parts.test.tsx","apps/desktop/src/components/assistant-ui/thread/turn-activity.test.ts","apps/desktop/src/components/assistant-ui/thread/turn-activity.ts","apps/desktop/src/components/assistant-ui/tool/fallback-model.test.ts","apps/desktop/src/components/assistant-ui/tool/fallback-model/index.ts","apps/desktop/src/components/assistant-ui/tool/fallback-model/types.ts","apps/desktop/src/components/assistant-ui/tool/fallback.tsx","apps/desktop/src/components/assistant-ui/tool/run-summary.ts","apps/desktop/src/components/assistant-ui/tool/skill-activity.test.ts","apps/desktop/src/components/assistant-ui/tool/skill-activity.ts","apps/desktop/src/components/assistant-ui/tool/tool-group.test.tsx","apps/desktop/src/i18n/ar.ts","apps/desktop/src/i18n/en.ts","apps/desktop/src/i18n/ja.ts","apps/desktop/src/i18n/ru.ts","apps/desktop/src/i18n/types.ts","apps/desktop/src/i18n/zh-hant.ts","apps/desktop/src/i18n/zh.ts","apps/desktop/src/lib/chat-messages.test.ts","apps/desktop/src/lib/chat-messages/competing-contracts.test.ts","apps/desktop/src/lib/chat-messages/d1-consumers.test.ts","apps/desktop/src/lib/chat-messages/tool-parts.ts","apps/desktop/src/lib/chat-messages/tool-result-preservation.test.ts","apps/desktop/src/lib/chat-messages/types.ts","apps/desktop/src/lib/first-build-start.test.ts","apps/desktop/src/lib/first-build-start.ts","apps/desktop/src/lib/tool-result-metadata.ts"]}],"trust":{"default_tier":"verified","includes_suggested":false}}