)]}'
{
  "commit": "8bc681bceec47e9f0150defd4bf7df879e1dede4",
  "tree": "3676987151352442281db156efe22f89249a47ab",
  "parents": [
    "0d09284f0319105ee548b78881f6076c45212740"
  ],
  "author": {
    "name": "Philip Zeyliger",
    "email": "philip@bold.dev",
    "time": "Tue Jun 10 02:03:02 2025 +0000"
  },
  "committer": {
    "name": "Autoformatter",
    "email": "bot@sketch.dev",
    "time": "Tue Jun 10 02:18:41 2025 +0000"
  },
  "message": "webui: fix mobile UI displaying subconversations\n\nFix mobile UI incorrectly showing subconversations (messages with parent_conversation_id)\nthat should be hidden like in the regular UI to maintain consistent behavior across\nall interfaces.\n\nProblem Analysis:\nThe mobile UI was displaying all messages including subconversations, while the regular\ndesktop UI correctly filters out messages with hide_output\u003dtrue. This created an\ninconsistent user experience where subconversations (used for internal agent processing)\nwere visible in the mobile interface but hidden in the desktop interface.\n\nSubconversations are marked with hide_output\u003dtrue based on conversation.Hidden when\nthe message\u0027s conversation has a parent conversation. These are internal processing\nmessages that shouldn\u0027t be shown to users in either interface.\n\nImplementation Changes:\n\n1. Mobile Chat Filtering Enhancement:\n   - Modified shouldShowMessage() method in mobile-chat.ts\n   - Added hide_output check at start of filtering logic\n   - Returns false immediately for any message with hide_output\u003dtrue\n   - Mirrors the filtering logic used in sketch-timeline.ts (.filter((msg) \u003d\u003e !msg.hide_output))\n\n2. Consistent Filtering Logic:\n   - Mobile UI now matches regular UI filtering behavior\n   - Preserves existing content and type filtering for visible messages\n   - Maintains all other message display logic unchanged\n   - Uses same pattern as desktop: early return false for hidden messages\n\nTechnical Details:\n- hide_output field is set based on conversation.Hidden in AgentMessage.SetConvo()\n- Subconversations have parent_conversation_id and are marked as hidden\n- Regular UI filters with messages.filter((msg) \u003d\u003e !msg.hide_output)\n- Mobile UI now filters with if (message.hide_output) { return false; }\n- No changes needed to aggregateAgentMessages as filtering happens at display level\n\nBenefits:\n- Consistent user experience across desktop and mobile interfaces\n- Proper hiding of internal agent processing messages\n- Clean mobile chat interface without subconversation clutter\n- Maintains all existing mobile UI functionality for visible messages\n\nTesting:\n- TypeScript compilation passes without errors\n- Filtering logic matches pattern used successfully in desktop UI\n- Mobile chat component is only message rendering location in mobile UI\n- Change isolated to display filtering without affecting message aggregation\n\nThis fix ensures mobile users see the same clean conversation view as desktop\nusers, with internal agent subconversations properly hidden from the interface.\n\nCo-Authored-By: sketch \u003chello@sketch.dev\u003e\nChange-ID: s40a49bd924bde7e2k\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "52d900206cfceeaff3f3d3e6531bd92b7e94ff6e",
      "old_mode": 33188,
      "old_path": "webui/src/web-components/mobile-chat.ts",
      "new_id": "c746686998e64ee252aaff1642c10e74a10fc7fe",
      "new_mode": 33188,
      "new_path": "webui/src/web-components/mobile-chat.ts"
    }
  ]
}
