@pheem49/mint 1.17.0 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (421) hide show
  1. package/Cargo.lock +6 -6
  2. package/Cargo.toml +2 -2
  3. package/README.md +8 -2
  4. package/Release_Note.md +222 -71
  5. package/crates/mint-cli/src/agent/diff_render.rs +66 -44
  6. package/crates/mint-cli/src/agent/live_status.rs +21 -4
  7. package/crates/mint-cli/src/agent/markdown_render.rs +342 -5
  8. package/crates/mint-cli/src/agent.rs +25 -10
  9. package/crates/mint-cli/src/commands/agent.rs +4 -92
  10. package/crates/mint-cli/src/commands/browser.rs +2 -15
  11. package/crates/mint-cli/src/commands/integrations.rs +3 -3
  12. package/crates/mint-cli/src/commands/mod.rs +0 -3
  13. package/crates/mint-cli/src/commands/tailnet_web.rs +1 -0
  14. package/crates/mint-cli/src/interactive/chat_tui/dialog.rs +572 -0
  15. package/crates/mint-cli/src/interactive/chat_tui/mod.rs +1427 -0
  16. package/crates/mint-cli/src/interactive/chat_tui/render.rs +1524 -0
  17. package/crates/mint-cli/src/interactive/chat_tui/selection.rs +401 -0
  18. package/crates/mint-cli/src/interactive/chat_tui/state.rs +1833 -0
  19. package/crates/mint-cli/src/interactive/chat_tui/tests.rs +3414 -0
  20. package/crates/mint-cli/src/interactive/chat_tui/thought.rs +202 -0
  21. package/crates/mint-cli/src/interactive/chat_tui/transcript.rs +728 -0
  22. package/crates/mint-cli/src/interactive/chat_tui/watermark.rs +148 -0
  23. package/crates/mint-cli/src/interactive/command_ui.rs +53 -5
  24. package/crates/mint-cli/src/interactive/composer.rs +186 -0
  25. package/crates/mint-cli/src/interactive/format.rs +78 -3
  26. package/crates/mint-cli/src/interactive/input_box.rs +61 -1
  27. package/crates/mint-cli/src/interactive/resume_picker.rs +367 -25
  28. package/crates/mint-cli/src/interactive/slash_commands.rs +648 -371
  29. package/crates/mint-cli/src/interactive/tool_activity.rs +93 -20
  30. package/crates/mint-cli/src/interactive.rs +37 -0
  31. package/crates/mint-cli/src/main.rs +6 -3
  32. package/crates/mint-cli/src/markdown.rs +2 -37
  33. package/crates/mint-cli/src/onboard.rs +700 -282
  34. package/crates/mint-cli/src/setup.rs +1342 -624
  35. package/crates/mint-cli/src/terminal_theme.rs +159 -35
  36. package/crates/mint-cli/tests/library_intake.rs +1 -0
  37. package/crates/mint-core/src/agent/chat/anthropic.rs +318 -0
  38. package/crates/mint-core/src/agent/chat/custom.rs +149 -0
  39. package/crates/mint-core/src/agent/chat/gemini.rs +518 -0
  40. package/crates/mint-core/src/agent/chat/mod.rs +857 -0
  41. package/crates/mint-core/src/agent/chat/ollama.rs +321 -0
  42. package/crates/mint-core/src/agent/chat/openai.rs +582 -0
  43. package/crates/mint-core/src/agent/chat/streaming.rs +469 -0
  44. package/crates/mint-core/src/agent/chat/tests.rs +1479 -0
  45. package/crates/mint-core/src/agent/memory.rs +56 -2
  46. package/crates/mint-core/src/agent/tasks.rs +2 -2
  47. package/crates/mint-core/src/api_server/routes/chat.rs +24 -2
  48. package/crates/mint-core/src/api_server/routes/gemini_live.rs +14 -1
  49. package/crates/mint-core/src/api_server/routes/html_preview.rs +1 -8
  50. package/crates/mint-core/src/api_server/routes/sessions.rs +21 -0
  51. package/crates/mint-core/src/avatar_bridge.rs +0 -22
  52. package/crates/mint-core/src/browser/cdp.rs +10 -4
  53. package/crates/mint-core/src/browser/headless.rs +582 -0
  54. package/crates/mint-core/src/browser/input.rs +7 -62
  55. package/crates/mint-core/src/browser/interact.rs +0 -14
  56. package/crates/mint-core/src/browser/mod.rs +8 -29
  57. package/crates/mint-core/src/browser/navigate.rs +2 -36
  58. package/crates/mint-core/src/browser/runtime.rs +2 -4
  59. package/crates/mint-core/src/browser/session.rs +50 -466
  60. package/crates/mint-core/src/browser/workflow.rs +142 -32
  61. package/crates/mint-core/src/cron/store.rs +2 -2
  62. package/crates/mint-core/src/integrations/mcp.rs +6 -8
  63. package/crates/mint-core/src/lib.rs +0 -5
  64. package/crates/mint-core/src/media/gemini_live.rs +636 -86
  65. package/crates/mint-core/src/media/library/migration.rs +26 -0
  66. package/crates/mint-core/src/media/library/tests.rs +1 -1
  67. package/crates/mint-core/src/media/library/thumbnails.rs +8 -2
  68. package/crates/mint-core/src/media/pictures.rs +1 -1
  69. package/crates/mint-core/src/media/tool_images.rs +92 -1
  70. package/crates/mint-core/src/mods/manager.rs +101 -35
  71. package/crates/mint-core/src/orchestration/context_render.rs +441 -24
  72. package/crates/mint-core/src/orchestration/decision_parsing.rs +531 -16
  73. package/crates/mint-core/src/orchestration/full_skill_result_tests.rs +12 -0
  74. package/crates/mint-core/src/orchestration/loop_guard.rs +145 -0
  75. package/crates/mint-core/src/orchestration/mcp_outcome_tests.rs +864 -0
  76. package/crates/mint-core/src/orchestration/memory_skill.rs +88 -28
  77. package/crates/mint-core/src/orchestration/mod.rs +320 -4249
  78. package/crates/mint-core/src/orchestration/reliability.rs +67 -27
  79. package/crates/mint-core/src/orchestration/review_regressions.rs +5 -0
  80. package/crates/mint-core/src/orchestration/tests.rs +1665 -0
  81. package/crates/mint-core/src/orchestration/tools/dispatch.rs +967 -0
  82. package/crates/mint-core/src/orchestration/tools/files.rs +1 -0
  83. package/crates/mint-core/src/orchestration/tools/mod.rs +5 -1
  84. package/crates/mint-core/src/orchestration/tools/planning.rs +102 -42
  85. package/crates/mint-core/src/orchestration/tools/shell.rs +129 -58
  86. package/crates/mint-core/src/orchestration/truncation.rs +170 -13
  87. package/crates/mint-core/src/orchestration/types.rs +648 -0
  88. package/crates/mint-core/src/orchestration/verification.rs +0 -3
  89. package/crates/mint-core/src/orchestration/workspace_helpers.rs +24 -6
  90. package/crates/mint-core/src/prompts/agent.rs +52 -76
  91. package/crates/mint-core/src/prompts/tool_catalog.rs +8 -151
  92. package/crates/mint-core/src/search/files.rs +20 -0
  93. package/crates/mint-core/src/slash/mod.rs +228 -265
  94. package/crates/mint-core/src/slash/models.rs +6 -1
  95. package/crates/mint-core/src/system/bg_shell.rs +1 -0
  96. package/crates/mint-core/src/system/config.rs +176 -34
  97. package/crates/mint-mod-runtime/src/lib.rs +37 -23
  98. package/out/web/assets/ArtifactPreviewPanel-Cx6BVOOF.js +2 -0
  99. package/out/web/assets/CalculationCard-D2E74u5q.js +1 -0
  100. package/out/web/assets/CliSessionsView-ZbdtSjvK.css +1 -0
  101. package/out/web/assets/{CliSessionsView-MI8kXMAb.js → CliSessionsView-z5i6qGyb.js} +1 -1
  102. package/out/web/assets/CodeReviewPage-BK2bOScd.css +1 -0
  103. package/out/web/assets/CodeReviewPage-Dp6zHuHu.js +2 -0
  104. package/out/web/assets/{CommandPalette-BD8SlTE5.js → CommandPalette-DaKlzbKs.js} +1 -1
  105. package/out/web/assets/ImageGenCard-BMCJHP9O.js +1 -0
  106. package/out/web/assets/ImageSearchCard-Cld_SOUg.js +1 -0
  107. package/out/web/assets/{ImageStudioPanel-BP7N4rLr.js → ImageStudioPanel-B5N7TjeB.js} +1 -1
  108. package/out/web/assets/LibraryPage-CMB89rJ0.css +1 -0
  109. package/out/web/assets/LibraryPage-DbZEi4W_.js +2 -0
  110. package/out/web/assets/LinkedFoldersView-9B9DIPoZ.js +1 -0
  111. package/out/web/assets/{McpRegistryPicker-CoS83vtc.js → McpRegistryPicker-DnXPlzI7.js} +1 -1
  112. package/out/web/assets/McpServersView-CiNBNUl4.js +1 -0
  113. package/out/web/assets/MermaidCard-BBDNEXbY.js +2 -0
  114. package/out/web/assets/MintDashboard-C_UYPoNV.js +119 -0
  115. package/out/web/assets/MintDashboard-DTd8C_c8.css +1 -0
  116. package/out/web/assets/PlanCard-C2x5pajq.js +1 -0
  117. package/out/web/assets/{PluginsView-jBYmcKh4.js → PluginsView-DoTg9MVa.js} +1 -1
  118. package/out/web/assets/RewindModal-B5oowrR0.js +1 -0
  119. package/out/web/assets/{ScheduledTasksView-5uw9-V9H.js → ScheduledTasksView-BD5DVPkZ.js} +1 -1
  120. package/out/web/assets/{SelectField-DXBQtrUK.js → SelectField-Cy6CghrU.js} +1 -1
  121. package/out/web/assets/SettingsWindow-BYl_oCFh.js +4 -0
  122. package/out/web/assets/SettingsWindow-Ckcgnjt8.css +1 -0
  123. package/out/web/assets/{SkillsView-C-gp9J7m.js → SkillsView-CIeWwq5z.js} +1 -1
  124. package/out/web/assets/StockCard-DxUciKyp.js +1 -0
  125. package/out/web/assets/ToolSurfacePage-qBgs_VHq.css +1 -0
  126. package/out/web/assets/ToolSurfacePage-saVbVrkE.js +38 -0
  127. package/out/web/assets/{UiFeatureCard-6BwxTOCe.js → UiFeatureCard-CdY0hGWy.js} +1 -1
  128. package/out/web/assets/{UiGridCard-DvZcLNxb.js → UiGridCard-BBK3I5hC.js} +1 -1
  129. package/out/web/assets/UiMockupWidget-CpR9EDuc.js +1 -0
  130. package/out/web/assets/{VeoStudioPanel-DOj7_WR3.css → VeoStudioPanel-9kU9YLEN.css} +1 -1
  131. package/out/web/assets/{VeoStudioPanel-DfsOJKv0.js → VeoStudioPanel-Co6-wEWM.js} +2 -2
  132. package/out/web/assets/WeatherCard-Buzi7Vfu.js +1 -0
  133. package/out/web/assets/WorkspacePdfPreview-Bi8Zzyir.js +2 -0
  134. package/out/web/assets/{abnfDiagram-VCTEODGH-BOo3Ckng.js → abnfDiagram-VCTEODGH-CMfR95N2.js} +1 -1
  135. package/out/web/assets/{architecture-7GRP2DOG-ZOwheW3n.js → architecture-7GRP2DOG-DhAM4HyO.js} +1 -1
  136. package/out/web/assets/{architectureDiagram-5GKGNRK7-DC2FDzVd.js → architectureDiagram-5GKGNRK7-Yk3TUJ_F.js} +1 -1
  137. package/out/web/assets/{blockDiagram-I7D4REHJ-BrKFWdAH.js → blockDiagram-I7D4REHJ-X9fBgJik.js} +1 -1
  138. package/out/web/assets/{c4Diagram-7LVT6UL2-BHTHK1Yd.js → c4Diagram-7LVT6UL2-Bk9x7N-8.js} +1 -1
  139. package/out/web/assets/{chunk-4HAMMTFA-BYFkZwNj.js → chunk-4HAMMTFA-Dx5fk1_0.js} +1 -1
  140. package/out/web/assets/{chunk-75Z2AOVW-BSKfSKSA.js → chunk-75Z2AOVW-BszTQoM4.js} +1 -1
  141. package/out/web/assets/{chunk-DU6HZSFF-vIhsiW6n.js → chunk-DU6HZSFF-DK-As3rk.js} +1 -1
  142. package/out/web/assets/{chunk-F27PBJKO-BlYpW9xq.js → chunk-F27PBJKO-LmncZZIS.js} +1 -1
  143. package/out/web/assets/{chunk-GMAD6QVW-BIBz_Ug5.js → chunk-GMAD6QVW-DSQ_sDRJ.js} +1 -1
  144. package/out/web/assets/{chunk-GVQU2GXP-NPSHxeqC.js → chunk-GVQU2GXP-Cno3ulje.js} +1 -1
  145. package/out/web/assets/{chunk-IMKFNOWR-YlJK8_Fp.js → chunk-IMKFNOWR-bIzfY9Jc.js} +1 -1
  146. package/out/web/assets/{chunk-L3NEJ4N5-DMYi4-af.js → chunk-L3NEJ4N5-Dl6eOa0D.js} +1 -1
  147. package/out/web/assets/{chunk-OSK3NFVY-Begd3-jA.js → chunk-OSK3NFVY-BaUGJ-cM.js} +1 -1
  148. package/out/web/assets/{chunk-P2QGCYS3-D1I4xFHN.js → chunk-P2QGCYS3-_066ndhH.js} +1 -1
  149. package/out/web/assets/{chunk-POPQ4Y6H-CafZZzNE.js → chunk-POPQ4Y6H-YT1AKhTv.js} +1 -1
  150. package/out/web/assets/{chunk-PWAF6VOD-Dwh6_Lnt.js → chunk-PWAF6VOD-CrEgDsxh.js} +1 -1
  151. package/out/web/assets/{chunk-SHT3W25Y-B0XrCSEb.js → chunk-SHT3W25Y-_KwaRLOl.js} +1 -1
  152. package/out/web/assets/{chunk-SVP7TREG-CxLsddxC.js → chunk-SVP7TREG-BQ1qb32L.js} +1 -1
  153. package/out/web/assets/{chunk-TICWLB2K-y156QInb.js → chunk-TICWLB2K-BDyehCtg.js} +1 -1
  154. package/out/web/assets/classDiagram-ZZMXUADV-BoSpzRCJ.js +1 -0
  155. package/out/web/assets/classDiagram-v2-VYDZK3BY-BoSpzRCJ.js +1 -0
  156. package/out/web/assets/{config-DqXJXeZM.css → config-2suVFPZg.css} +1 -1
  157. package/out/web/assets/config-CkRCdkxn.js +2 -0
  158. package/out/web/assets/{cynefin-OW5HDTMX-SMVvrLf-.js → cynefin-OW5HDTMX-Dl_31aaN.js} +1 -1
  159. package/out/web/assets/{cynefinDiagram-5FMLGOSQ-rZznN24T.js → cynefinDiagram-5FMLGOSQ-Bpir8jha.js} +1 -1
  160. package/out/web/assets/{dagre-GXQ25YYZ-BOToydFu.js → dagre-GXQ25YYZ-D9xu3nsq.js} +1 -1
  161. package/out/web/assets/{diagram-S7CK7UJ4-TMVaGQEJ.js → diagram-S7CK7UJ4-DeveoEeB.js} +1 -1
  162. package/out/web/assets/{diagram-UQ7AKVKN-C2JK-GP2.js → diagram-UQ7AKVKN-p4xWRESV.js} +1 -1
  163. package/out/web/assets/{diagram-VSXAHHWV-Cw8VSi2K.js → diagram-VSXAHHWV-C7qz9NDF.js} +1 -1
  164. package/out/web/assets/{diagram-VX7I27RA-DXp4fKk9.js → diagram-VX7I27RA-DRiCa3Vd.js} +1 -1
  165. package/out/web/assets/{diagram-Z3DM3KII-CzSicYiW.js → diagram-Z3DM3KII-Bt7zduQX.js} +1 -1
  166. package/out/web/assets/{ebnfDiagram-PWID7BFC-Dqj-zqPu.js → ebnfDiagram-PWID7BFC-DV9WpwdR.js} +1 -1
  167. package/out/web/assets/{erDiagram-RLTQ6QDP-DZwFZAuD.js → erDiagram-RLTQ6QDP-BJ_nwG2m.js} +1 -1
  168. package/out/web/assets/{eventmodeling-NTZA5JFV-C0O-Lvgp.js → eventmodeling-NTZA5JFV-BTBMrfVa.js} +1 -1
  169. package/out/web/assets/flowDiagram-HODETNUW-Cdlq3cJL.js +1 -0
  170. package/out/web/assets/{ganttDiagram-EL5Y4UJY-Da4ULXTl.js → ganttDiagram-EL5Y4UJY-DQLdsXrC.js} +1 -1
  171. package/out/web/assets/{gitGraph-4MIJSDKK-B9wNFZIP.js → gitGraph-4MIJSDKK-CL1OEOQ_.js} +1 -1
  172. package/out/web/assets/{gitGraphDiagram-WWUBYQGX-RjrhB0MP.js → gitGraphDiagram-WWUBYQGX-8cSi42H7.js} +1 -1
  173. package/out/web/assets/index-BocxnrDG.js +168 -0
  174. package/out/web/assets/index-yeh_r55a.css +1 -0
  175. package/out/web/assets/{info-A6RAGUB7-B3dfCpeY.js → info-A6RAGUB7-C1zsX5sc.js} +1 -1
  176. package/out/web/assets/{infoDiagram-27XIBGKW-QVWkLVx7.js → infoDiagram-27XIBGKW-DsRYtIyI.js} +1 -1
  177. package/out/web/assets/{ishikawaDiagram-5VMMS53U-CLFNIRI9.js → ishikawaDiagram-5VMMS53U-B2crwIXj.js} +1 -1
  178. package/out/web/assets/{journeyDiagram-3NMN7TZE-fgOQadYF.js → journeyDiagram-3NMN7TZE-BTH-GyVR.js} +1 -1
  179. package/out/web/assets/{kanban-definition-UXKFOSKX-G3Q_9g9O.js → kanban-definition-UXKFOSKX-BeRfCnuA.js} +1 -1
  180. package/out/web/assets/{mermaid-parser.core-v3Jm7nco.js → mermaid-parser.core-BJwgCBBc.js} +3 -3
  181. package/out/web/assets/{mermaid.core-DTEjLUA1.js → mermaid.core-CsDDodN8.js} +4 -4
  182. package/out/web/assets/{mindmap-definition-YA3MSWOX-C_D42_fF.js → mindmap-definition-YA3MSWOX-B42efOQ1.js} +1 -1
  183. package/out/web/assets/{modelManager-BPLycQrN.js → modelManager-B3ZFMh8v.js} +2 -2
  184. package/out/web/assets/{oauthManager-BUK7ic7q.js → oauthManager-Ch5Du2fF.js} +1 -1
  185. package/out/web/assets/{packet-AYTQ26CC-B-R-SHlF.js → packet-AYTQ26CC-B6xUyE6r.js} +1 -1
  186. package/out/web/assets/{pegDiagram-XKGWAZYB-Da2q_giz.js → pegDiagram-XKGWAZYB-1LabVycL.js} +1 -1
  187. package/out/web/assets/{pie-WAS4IAKB-BC8F0N7-.js → pie-WAS4IAKB-DJwo-nf_.js} +1 -1
  188. package/out/web/assets/{pieDiagram-E7YTZNPT-Iy9REJNC.js → pieDiagram-E7YTZNPT-icmAqzy4.js} +1 -1
  189. package/out/web/assets/{quadrantDiagram-AXDQQJYC-ztsiYw7h.js → quadrantDiagram-AXDQQJYC-CZ-wEx41.js} +1 -1
  190. package/out/web/assets/{radar-RG4KPBEZ-B_1P8Z_z.js → radar-RG4KPBEZ-D7d-Xriw.js} +1 -1
  191. package/out/web/assets/{railroad-74A4TZTK-DuTqczSo.js → railroad-74A4TZTK-viuhdYbs.js} +1 -1
  192. package/out/web/assets/{railroad-abnf-HS5TGJTU-Df29WLmp.js → railroad-abnf-HS5TGJTU-DNXiCNea.js} +1 -1
  193. package/out/web/assets/{railroad-ebnf-LZEXJU2U-ePFMo-qp.js → railroad-ebnf-LZEXJU2U-nkSu1-0C.js} +1 -1
  194. package/out/web/assets/{railroad-peg-WCYAUIDC-DYXLW4_E.js → railroad-peg-WCYAUIDC-BhbMeQzz.js} +1 -1
  195. package/out/web/assets/{railroadDiagram-O6MQD6OU-LStnZf2S.js → railroadDiagram-O6MQD6OU-CLpG1jUX.js} +1 -1
  196. package/out/web/assets/{requirementDiagram-BXWQKSXE-DmzonMH-.js → requirementDiagram-BXWQKSXE-kRDrvWrc.js} +1 -1
  197. package/out/web/assets/{sankeyDiagram-P5KCCOFB-B8vjmUU1.js → sankeyDiagram-P5KCCOFB-DxAwmq4x.js} +1 -1
  198. package/out/web/assets/{sequenceDiagram-WJ2MYXX4-CTnplOAX.js → sequenceDiagram-WJ2MYXX4-aLgY-6Wz.js} +1 -1
  199. package/out/web/assets/{stateDiagram-D77RDMKH-BFrIaLdI.js → stateDiagram-D77RDMKH-D5QWfOhp.js} +1 -1
  200. package/out/web/assets/stateDiagram-v2-MP3YSRHH-D6OiZoAP.js +1 -0
  201. package/out/web/assets/{swimlanes-42K2YHIH-BXGngUNU.js → swimlanes-42K2YHIH-CRs5UyA-.js} +1 -1
  202. package/out/web/assets/swimlanesDiagram-VR7AAH4N-UgEXIsV0.js +8 -0
  203. package/out/web/assets/syntaxHighlight-C-wAGT84.js +3 -0
  204. package/out/web/assets/{timeline-definition-24CTP7MA-CegH7n43.js → timeline-definition-24CTP7MA-Denqd9qb.js} +1 -1
  205. package/out/web/assets/{treeView-Q6P3EWNA-DTpJv2Tw.js → treeView-Q6P3EWNA-0my3Z3s4.js} +1 -1
  206. package/out/web/assets/{treemap-WGGIJYW6-i8M9iJU6.js → treemap-WGGIJYW6-B_EjkLYq.js} +1 -1
  207. package/out/web/assets/{vennDiagram-4TSXK5OY-Dpzo1S8U.js → vennDiagram-4TSXK5OY-DxVg3Ewr.js} +1 -1
  208. package/out/web/assets/{wardley-WFR3VGLG-BrNsgtfw.js → wardley-WFR3VGLG-CGD-Tj4p.js} +1 -1
  209. package/out/web/assets/{wardleyDiagram-VM6X3IG4-lQ92LFE1.js → wardleyDiagram-VM6X3IG4-CmfS39Xm.js} +1 -1
  210. package/out/web/assets/{xychartDiagram-S5SC5T6Z-BaOaEoBd.js → xychartDiagram-S5SC5T6Z-BVM9bKis.js} +1 -1
  211. package/out/web/index-web.html +2 -2
  212. package/out/web/index.html +2 -2
  213. package/package.json +2 -2
  214. package/shared-modules/CODEOWNERS +3 -3
  215. package/shared-modules/SDL2/SDL2_mixer.json +27 -0
  216. package/shared-modules/appstream/README.md +13 -0
  217. package/shared-modules/appstream/appstream-compose.json +111 -0
  218. package/shared-modules/dbus-glib/dbus-glib.json +2 -2
  219. package/shared-modules/libportal/libportal.json +23 -0
  220. package/shared-modules/linux-audio/fluidsynth2-static.json +2 -2
  221. package/shared-modules/linux-audio/fluidsynth2.json +2 -2
  222. package/shared-modules/linux-audio/libinstpatch.json +2 -2
  223. package/shared-modules/linux-audio/liblo-static.json +3 -0
  224. package/shared-modules/luajit/luajit.json +2 -2
  225. package/shared-modules/squashfs-tools/squashfs-tools.json +0 -3
  226. package/slash-commands.json +7 -2
  227. package/src/renderer/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  228. package/src/renderer/shared/agentProgress.ts +51 -3
  229. package/src/renderer/shared/components/Settings/AutomationTab.tsx +2 -56
  230. package/src/renderer/shared/components/Settings/AvatarCropModal.tsx +15 -1
  231. package/src/renderer/shared/components/Settings/GeneralTab.tsx +25 -12
  232. package/src/renderer/shared/components/Settings/ThemeTab.test.tsx +45 -0
  233. package/src/renderer/shared/components/Settings/ThemeTab.tsx +106 -3
  234. package/src/renderer/shared/components/activity/AgentActivityDrawer.tsx +67 -17
  235. package/src/renderer/shared/components/activity/AgentActivityTable.tsx +376 -134
  236. package/src/renderer/shared/components/activity/AskUserActivityCard.test.tsx +122 -0
  237. package/src/renderer/shared/components/activity/AskUserActivityCard.tsx +70 -0
  238. package/src/renderer/shared/components/activity/McpToolResults.tsx +39 -2
  239. package/src/renderer/shared/components/activity/SubagentDagView.tsx +7 -7
  240. package/src/renderer/shared/components/activity/ViewedImages.tsx +41 -2
  241. package/src/renderer/shared/components/app/ChunkErrorBoundary.tsx +3 -3
  242. package/src/renderer/shared/components/app/CommandPalette.tsx +7 -7
  243. package/src/renderer/shared/components/app/DesktopTitlebar.tsx +2 -2
  244. package/src/renderer/shared/components/app/MintDashboard.tsx +27 -17
  245. package/src/renderer/shared/components/app/ModalErrorBoundary.tsx +3 -3
  246. package/src/renderer/shared/components/cards/CalculationCard.tsx +3 -3
  247. package/src/renderer/shared/components/cards/ImageGenCard.tsx +2 -2
  248. package/src/renderer/shared/components/cards/ImageSearchCard.tsx +2 -2
  249. package/src/renderer/shared/components/cards/MermaidCard.tsx +1 -1
  250. package/src/renderer/shared/components/cards/PlanCard.test.tsx +41 -0
  251. package/src/renderer/shared/components/cards/PlanCard.tsx +32 -0
  252. package/src/renderer/shared/components/cards/ReleaseNotesCard.test.tsx +29 -0
  253. package/src/renderer/shared/components/cards/ReleaseNotesCard.tsx +137 -0
  254. package/src/renderer/shared/components/cards/StockCard.tsx +7 -7
  255. package/src/renderer/shared/components/cards/ToolResultCards.tsx +11 -3
  256. package/src/renderer/shared/components/cards/UiMockupWidget.tsx +4 -4
  257. package/src/renderer/shared/components/cards/WeatherCard.tsx +5 -5
  258. package/src/renderer/shared/components/chat/ApprovalCard.test.tsx +11 -0
  259. package/src/renderer/shared/components/chat/ApprovalCard.tsx +21 -2
  260. package/src/renderer/shared/components/chat/ArtifactCards.test.tsx +69 -0
  261. package/src/renderer/shared/components/chat/ArtifactCards.tsx +238 -0
  262. package/src/renderer/shared/components/chat/AttachedDocumentCard.test.tsx +39 -0
  263. package/src/renderer/shared/components/chat/AttachedDocumentCard.tsx +220 -0
  264. package/src/renderer/shared/components/chat/ChatCodeBlock.test.tsx +33 -0
  265. package/src/renderer/shared/components/chat/ChatCodeBlock.tsx +15 -1
  266. package/src/renderer/shared/components/chat/ChatMessageItem.test.tsx +40 -2
  267. package/src/renderer/shared/components/chat/ChatMessageItem.tsx +180 -34
  268. package/src/renderer/shared/components/chat/ChatModeSelector.css +227 -0
  269. package/src/renderer/shared/components/chat/ChatModeSelector.test.tsx +45 -0
  270. package/src/renderer/shared/components/chat/ChatModeSelector.tsx +198 -0
  271. package/src/renderer/shared/components/chat/ChatPanel.test.tsx +22 -0
  272. package/src/renderer/shared/components/chat/ChatPanel.tsx +227 -53
  273. package/src/renderer/shared/components/chat/DiffReviewModal.tsx +6 -6
  274. package/src/renderer/shared/components/chat/GeminiLiveOverlay.test.tsx +142 -1
  275. package/src/renderer/shared/components/chat/GeminiLiveOverlay.tsx +45 -3
  276. package/src/renderer/shared/components/chat/ModelSelectorPopover.tsx +42 -14
  277. package/src/renderer/shared/components/chat/RewindModal.tsx +10 -10
  278. package/src/renderer/shared/components/chat/SlashSuggestions.test.tsx +14 -0
  279. package/src/renderer/shared/components/chat/SourcesBlock.test.tsx +53 -0
  280. package/src/renderer/shared/components/chat/SourcesBlock.tsx +236 -90
  281. package/src/renderer/shared/components/chat/TurnFileChanges.test.tsx +45 -1
  282. package/src/renderer/shared/components/chat/TurnFileChanges.tsx +202 -169
  283. package/src/renderer/shared/components/extensions/CliSessionsView.tsx +5 -4
  284. package/src/renderer/shared/components/extensions/McpRegistryPicker.tsx +3 -3
  285. package/src/renderer/shared/components/studio/LibraryPage.tsx +48 -5
  286. package/src/renderer/shared/components/workspace/ArtifactPreviewPanel.tsx +125 -13
  287. package/src/renderer/shared/components/workspace/CodeReviewPage.test.tsx +50 -0
  288. package/src/renderer/shared/components/workspace/CodeReviewPage.tsx +77 -16
  289. package/src/renderer/shared/components/workspace/GitBranchSelector.tsx +78 -22
  290. package/src/renderer/shared/components/workspace/ToolSurfacePage.test.tsx +13 -0
  291. package/src/renderer/shared/components/workspace/ToolSurfacePage.tsx +48 -28
  292. package/src/renderer/shared/components/workspace/WorkspacePdfPreview.tsx +266 -47
  293. package/src/renderer/shared/components/workspace/WorkspacePreviewActions.test.tsx +18 -6
  294. package/src/renderer/shared/components/workspace/background-terminals.css +11 -11
  295. package/src/renderer/shared/constants/config.ts +1 -5
  296. package/src/renderer/shared/constants/models.test.ts +51 -0
  297. package/src/renderer/shared/constants/models.ts +139 -32
  298. package/src/renderer/shared/conversation/lifecycle.test.ts +91 -3
  299. package/src/renderer/shared/conversation/lifecycle.ts +104 -5
  300. package/src/renderer/shared/conversation/progressiveStream.test.ts +83 -0
  301. package/src/renderer/shared/conversation/progressiveStream.ts +219 -0
  302. package/src/renderer/shared/css/agent-observability.css +133 -0
  303. package/src/renderer/shared/css/chat-ui-cards.css +13 -13
  304. package/src/renderer/shared/css/code-review.css +63 -34
  305. package/src/renderer/shared/css/code-sessions.css +47 -18
  306. package/src/renderer/shared/css/collapsed-paste.css +1 -1
  307. package/src/renderer/shared/css/error-notice.css +1 -1
  308. package/src/renderer/shared/css/file-changes.css +165 -80
  309. package/src/renderer/shared/css/library.css +105 -10
  310. package/src/renderer/shared/css/management-views.css +1 -1
  311. package/src/renderer/shared/css/mcp-results.css +5 -5
  312. package/src/renderer/shared/css/model-selector.css +18 -18
  313. package/src/renderer/shared/css/mods.css +7 -7
  314. package/src/renderer/shared/css/notification-notice.css +2 -2
  315. package/src/renderer/shared/css/queued-messages.css +5 -5
  316. package/src/renderer/shared/css/settings/general.css +18 -13
  317. package/src/renderer/shared/css/settings/profile.css +5 -5
  318. package/src/renderer/shared/css/settings/theme.css +5 -5
  319. package/src/renderer/shared/css/slash-choice.css +2 -2
  320. package/src/renderer/shared/css/slash-suggestions.css +3 -3
  321. package/src/renderer/shared/css/sources-block.css +41 -2
  322. package/src/renderer/shared/css/tools-panel.css +2 -2
  323. package/src/renderer/shared/css/ui-tailwind.css +8 -0
  324. package/src/renderer/shared/css/veo-studio.css +2 -2
  325. package/src/renderer/shared/css/viewed-images.css +7 -7
  326. package/src/renderer/shared/platform.ts +2 -1
  327. package/src/renderer/shared/theme/themeManager.test.ts +17 -0
  328. package/src/renderer/shared/theme/themeManager.ts +21 -4
  329. package/src/renderer/shared/theme/themes.ts +54 -0
  330. package/src/renderer/shared/theme/tokens.css +6 -4
  331. package/src/renderer/shared/types.ts +1 -1
  332. package/src/renderer/shared/utils/agentActivity.test.ts +468 -2
  333. package/src/renderer/shared/utils/agentActivity.ts +602 -35
  334. package/src/renderer/shared/utils/artifactBrowser.test.ts +37 -32
  335. package/src/renderer/shared/utils/artifactBrowser.ts +17 -19
  336. package/src/renderer/shared/utils/attachedDocument.test.ts +73 -0
  337. package/src/renderer/shared/utils/attachedDocument.ts +49 -0
  338. package/src/renderer/shared/utils/fileIcons.test.ts +59 -0
  339. package/src/renderer/shared/utils/fileIcons.ts +149 -16
  340. package/src/renderer/shared/utils/markdown.tsx +72 -19
  341. package/src/renderer/shared/utils/markdown.webImages.test.tsx +16 -0
  342. package/src/renderer/shared/utils/mcpResults.test.tsx +29 -0
  343. package/src/renderer/shared/utils/slashCommandProcessor.ts +4 -1
  344. package/src/renderer/shared/utils/syntaxHighlight.test.tsx +11 -1
  345. package/src/renderer/shared/utils/syntaxHighlight.tsx +51 -3
  346. package/src/renderer/shared/utils/useGeminiLiveVoice.ts +324 -51
  347. package/src/renderer/shared/utils/workspaceDrag.test.ts +153 -0
  348. package/src/renderer/shared/utils/workspaceDrag.ts +142 -0
  349. package/src/renderer/shared/utils/workspaceMedia.ts +10 -2
  350. package/src/renderer/src/App.tsx +14 -8
  351. package/src/renderer/src/agentProgress.ts +1 -0
  352. package/src/renderer/src/components/ScreenPicker.css +1 -1
  353. package/src/renderer/src/components/WorkspacePanel.tsx +6 -5
  354. package/src/renderer/src/css/app-shell.css +4 -4
  355. package/src/renderer/src/css/chat.css +1261 -241
  356. package/src/renderer/src/css/desktop-tools.css +11 -11
  357. package/src/renderer/src/css/sidebar-workspace.css +2 -2
  358. package/src/renderer/src/css/tool-surfaces.css +12 -12
  359. package/src/renderer/src/index.css +38 -20
  360. package/src/renderer/src/tauri.ts +22 -2
  361. package/src/renderer/src-web/App.tsx +14 -0
  362. package/src/renderer/src-web/agentProgress.ts +1 -0
  363. package/src/renderer/src-web/css/app-shell.css +4 -4
  364. package/src/renderer/src-web/css/chat.css +1278 -190
  365. package/src/renderer/src-web/css/mobile.css +29 -13
  366. package/src/renderer/src-web/css/settings/mobile.css +2 -2
  367. package/src/renderer/src-web/css/sidebar-workspace.css +1 -1
  368. package/src/renderer/src-web/index.css +38 -20
  369. package/src/renderer/src-web/tauri.ts +22 -2
  370. package/src/renderer/tests/browserArtifacts.browser.tsx +1 -1
  371. package/src/renderer/tests/library.browser.tsx +3 -0
  372. package/src/renderer/tests/liveVoice.browser.html +1 -0
  373. package/src/renderer/tests/workspaceDrop.browser.tsx +1 -1
  374. package/src-tauri/src/app/lifecycle.rs +1 -14
  375. package/src-tauri/src/background/headless.rs +14 -8
  376. package/src-tauri/src/commands/conversation.rs +38 -0
  377. package/src-tauri/src/native/mod.rs +0 -1
  378. package/src-tauri/src/native/system.rs +4 -47
  379. package/crates/mint-cli/src/interactive/chat_tui.rs +0 -8855
  380. package/crates/mint-core/src/agent/chat.rs +0 -4394
  381. package/crates/mint-core/src/browser/lifecycle.rs +0 -291
  382. package/crates/mint-core/src/browser/logging.rs +0 -20
  383. package/crates/mint-core/src/orchestration/tools/browser.rs +0 -31
  384. package/out/web/assets/ArtifactPreviewPanel-S0dPfYFx.js +0 -2
  385. package/out/web/assets/CalculationCard-CRjP3E1j.js +0 -1
  386. package/out/web/assets/CliSessionsView-C3Br2v5Y.css +0 -1
  387. package/out/web/assets/CodeReviewPage-CUJceQme.css +0 -1
  388. package/out/web/assets/CodeReviewPage-VCUgPla_.js +0 -2
  389. package/out/web/assets/ImageGenCard-BCXxkVJX.js +0 -1
  390. package/out/web/assets/ImageSearchCard-N3yQOr8Z.js +0 -1
  391. package/out/web/assets/LibraryPage-DAxUTAg7.css +0 -1
  392. package/out/web/assets/LibraryPage-WlviRdR8.js +0 -2
  393. package/out/web/assets/LinkedFoldersView-CKRgroWK.js +0 -1
  394. package/out/web/assets/McpServersView-D3wHnuHg.js +0 -1
  395. package/out/web/assets/MermaidCard-NqrHdyJW.js +0 -2
  396. package/out/web/assets/MintDashboard-B2DJsDDO.css +0 -1
  397. package/out/web/assets/MintDashboard-COw_xol7.js +0 -63
  398. package/out/web/assets/RewindModal-DempuDod.js +0 -1
  399. package/out/web/assets/SettingsWindow-2YP3yj7s.js +0 -4
  400. package/out/web/assets/SettingsWindow-Dz8LQVgD.css +0 -1
  401. package/out/web/assets/StockCard-BDMCe7mx.js +0 -1
  402. package/out/web/assets/ToolSurfacePage-B0J_q0Jl.js +0 -38
  403. package/out/web/assets/ToolSurfacePage-CRIQ1owD.css +0 -1
  404. package/out/web/assets/UiMockupWidget-DD73QWg1.js +0 -1
  405. package/out/web/assets/WeatherCard-CPucIfq8.js +0 -1
  406. package/out/web/assets/WorkspacePdfPreview-Dx_lkjNu.js +0 -2
  407. package/out/web/assets/classDiagram-ZZMXUADV-BgJ5WtSp.js +0 -1
  408. package/out/web/assets/classDiagram-v2-VYDZK3BY-BgJ5WtSp.js +0 -1
  409. package/out/web/assets/config-CvIO5hkn.js +0 -2
  410. package/out/web/assets/flowDiagram-HODETNUW-uqCHJond.js +0 -1
  411. package/out/web/assets/index-BmpulIkg.js +0 -168
  412. package/out/web/assets/index-CkvBwhX_.css +0 -1
  413. package/out/web/assets/stateDiagram-v2-MP3YSRHH-uf3kdNW4.js +0 -1
  414. package/out/web/assets/swimlanesDiagram-VR7AAH4N-Y8q5bQce.js +0 -8
  415. package/shared-modules/libsecret/libsecret.json +0 -23
  416. package/shared-modules/libusb/libusb.json +0 -27
  417. package/shared-modules/lzo/lzo.json +0 -27
  418. package/src/renderer/src/components/BrowserShell.tsx +0 -108
  419. package/src/renderer/src/components/BrowserSuggestionsPopup.tsx +0 -91
  420. package/src/renderer/src/components/browser-shell.css +0 -185
  421. package/src-tauri/src/native/browser.rs +0 -252
package/Cargo.lock CHANGED
@@ -3394,7 +3394,7 @@ dependencies = [
3394
3394
 
3395
3395
  [[package]]
3396
3396
  name = "mint-cli"
3397
- version = "1.17.0"
3397
+ version = "1.18.0"
3398
3398
  dependencies = [
3399
3399
  "ansi-to-tui",
3400
3400
  "anyhow",
@@ -3423,7 +3423,7 @@ dependencies = [
3423
3423
 
3424
3424
  [[package]]
3425
3425
  name = "mint-companion"
3426
- version = "1.17.0"
3426
+ version = "1.18.0"
3427
3427
  dependencies = [
3428
3428
  "dirs",
3429
3429
  "futures-util",
@@ -3439,7 +3439,7 @@ dependencies = [
3439
3439
 
3440
3440
  [[package]]
3441
3441
  name = "mint-companion-protocol"
3442
- version = "1.17.0"
3442
+ version = "1.18.0"
3443
3443
  dependencies = [
3444
3444
  "dirs",
3445
3445
  "serde",
@@ -3448,7 +3448,7 @@ dependencies = [
3448
3448
 
3449
3449
  [[package]]
3450
3450
  name = "mint-core"
3451
- version = "1.17.0"
3451
+ version = "1.18.0"
3452
3452
  dependencies = [
3453
3453
  "base64 0.22.1",
3454
3454
  "bcrypt",
@@ -3494,7 +3494,7 @@ dependencies = [
3494
3494
 
3495
3495
  [[package]]
3496
3496
  name = "mint-desktop"
3497
- version = "1.17.0"
3497
+ version = "1.18.0"
3498
3498
  dependencies = [
3499
3499
  "base64 0.22.1",
3500
3500
  "dirs",
@@ -3521,7 +3521,7 @@ dependencies = [
3521
3521
 
3522
3522
  [[package]]
3523
3523
  name = "mint-mod-runtime"
3524
- version = "1.17.0"
3524
+ version = "1.18.0"
3525
3525
  dependencies = [
3526
3526
  "cpu-time",
3527
3527
  "oxc",
package/Cargo.toml CHANGED
@@ -10,7 +10,7 @@ members = [
10
10
  resolver = "2"
11
11
 
12
12
  [workspace.package]
13
- version = "1.17.0"
13
+ version = "1.18.0"
14
14
  edition = "2024"
15
15
  license = "MIT"
16
16
 
@@ -36,7 +36,7 @@ debug = false
36
36
  [profile.release]
37
37
  opt-level = 3
38
38
  lto = "thin"
39
- codegen-units = 1
39
+ codegen-units = 16
40
40
  strip = true
41
41
 
42
42
  [workspace.dependencies]
package/README.md CHANGED
@@ -95,11 +95,17 @@ Use `/help` to explore commands. See the [usage guide](docs/USAGE.md) for more.
95
95
  and install or create reusable agent skills.
96
96
  - **Connect and customize:** add MCP servers, ecosystem plugins, and Mint Mods
97
97
  for custom panels, commands, and tool guards.
98
- - **Automate other tasks:** schedule work, control a browser, analyze screenshots,
98
+ - **Automate other tasks:** schedule work, run headless browser automation, analyze screenshots,
99
99
  generate images, or connect optional video-editing and avatar integrations.
100
100
 
101
101
  See [features and integrations](docs/FEATURES.md) for details.
102
102
 
103
+ ### Headless Browser & Future Vision
104
+
105
+ Mint v1.18.0 retires the legacy headed Mint Browser window (`mint auto`, port 9222 interception) in favor of a modern, decoupled **Headless Browser** architecture (`mint browser run` deterministic workflows and headless Chrome shell playbook). External links and generated HTML artifacts now open seamlessly in your system's default browser.
106
+
107
+ This headless foundation ensures high reliability, clean isolation, and zero UI bloat today, while laying the groundwork for a reimagined, superior Mint Browser in future releases.
108
+
103
109
  ## Choose an interface
104
110
 
105
111
  **Terminal:** run `mint` for the full-screen TUI. Use `mint --classic` for
@@ -142,7 +148,7 @@ exposing it beyond your machine. See
142
148
  - [Configuration](docs/CONFIGURATION.md) — providers, local settings, safety, and privacy.
143
149
  - [Gateway and VPS](docs/GATEWAY.md) — messaging bridges, cron, and systemd operation.
144
150
  - [Mint Mods](docs/mods/README.md) — custom panels, commands, authoring, and testing.
145
- - [Browser automation](docs/MINT_AUTO_BROWSER.md) — shared Mint Browser engine, headless workflows, clicks, typing, and screenshot artifacts.
151
+ - [Headless browser automation](docs/HEADLESS_BROWSER.md) — headless Chrome shell playbook, `mint browser run` workflows, and screenshot artifacts.
146
152
  - [Agent architecture](docs/AGENT_HARNESS.md) and [memory](docs/MEMORY_ARCHITECTURE.md) — technical details.
147
153
  - [Development](docs/DEVELOPMENT.md) and [build/release](BUILD_AND_RELEASE.md) — source layout and validation.
148
154
 
package/Release_Note.md CHANGED
@@ -1,71 +1,222 @@
1
- # Release Notes - Mint Agent v1.17.0
2
-
3
- ## Seamless On-Demand Headless Browser Automation (CLI, Desktop, and Web)
4
- - **Zero-Setup Headless Browsing**: Mint Agent automatically spawns an isolated Chromium instance (`--headless=new`, `--disable-gpu`, `--no-sandbox`, 1440x900 viewport) on demand whenever web inspection or navigation is requested, eliminating the need to run `mint auto` in a separate terminal.
5
- - **Default Browser Tools**: Enabled `browser_open`, `browser_screenshot`, `browser_read`, `browser_click`, and `browser_observe` by default across all platforms without requiring manual configuration.
6
- - **Prompt Guidance & Anti-Scraping Rules**: Updated system prompt instructions to prioritize `browser_open` for web URLs / SPAs and strictly forbid writing ad-hoc Python scraping scripts (`urllib`, `requests`) or raw `curl` when inspecting web pages.
7
- - **Age Gate (18+) & Cookie Consent Protocols**: Automatically dismisses standard Age Verification gates (`"I am 18 or older"`, `"Enter Site"`) and cookie consent banners via `browser_click`; prompts for user confirmation with visual screenshots (`browser_screenshot` + `ask_user`) for sensitive content warnings.
8
- - **Settings Toggle Parity**: Added the `Browser automation tools` toggle switch in the Automation tab across Desktop and Web Settings (defaulting to enabled).
9
- - **Interactive Slash Commands (`/browser` & `/browser status`)**: Added the `/browser` command across CLI TUI, Desktop, and Web. Pressing Enter opens an interactive prompt choice to toggle tools (`on`/`off`), switch between `headless Browser` and `headed Automation`, or view browser status and detected Chrome binary via `/browser status`.
10
-
11
- ## Queued Messages & Steering (CLI, Desktop, and Web)
12
- - **Queued Prompts Tray & Auto-Dispatching**: Users can now queue instructions and multi-modal attachments while the agent is actively executing (`sending`). Queued messages are displayed in a dedicated tray above the composer and auto-dispatched sequentially as soon as the current turn concludes.
13
- - **Stop with Paused Queue (Safe Interruption)**: Clicking the Stop button halts the active turn while preserving all queued messages in a `⏸ Queue paused` state, allowing users to inspect, resume, edit, or clear queued items safely.
14
- - **Interrupt & Steer (`->`)**: Clicking the Send Now arrow button on any queued prompt immediately interrupts the running turn and steers the agent directly to the selected queued message.
15
- - **Composer Edit & Recall (`✎`)**: Clicking the edit button removes the prompt from the queue and restores its full text and attachments back into the composer for immediate revision.
16
- - **Full-Screen TUI Visual Parity (`crates/mint-cli`)**: Pressing `Enter` while a turn is running queues the prompt with live border feedback (`Queued (N): "..." · Ctrl+D drop`), and `Ctrl+D` immediately pops/drops the last queued message.
17
-
18
- ## Desktop & Web UI / UX
19
- - **Clean File Changes Cards**: Extracted repetitive common directory paths to the card header with folder icons, replaced `[NEW FILE]` brackets with sleek rounded green chip badges (`New file`), and redesigned the expander button with a subtle dashed border and rotating chevron icon.
20
- - **Adaptive Artifact Preview Panel**:
21
- - Automatically adapts header tabs based on file capabilities: displays `[Preview | Code]` dual-mode toggles only for renderable formats (`HTML`, `SVG`, `Markdown`), while presenting direct code view with language chip badges (e.g. `[<FileCode /> Python]`, `[<FileCode /> Rust]`) for pure source code and data files.
22
- - Image files display dedicated format chip badges (`[🖼️ WEBP]`, `[🖼️ PNG]`, `[🖼️ JPEG]`) along with live image resolution badges (e.g. `1080 × 1620 px`).
23
- - Restricted "Open in Mint Browser" action strictly to HTML/Web documents, avoiding misleading browser launches on scripts, code, and images.
24
- - **Live Tool Activity Retention**: Fixed an issue where older tool execution groups (e.g. `run_shell`) were temporarily trimmed during live agent turns once non-thought events exceeded 20; preserved all tool lifecycle and orchestration events throughout live streaming without dropping earlier progress.
25
- - **Action-First Tool Activity Parsing**: Eliminated `null`/`undefined` placeholder strings from displayed tool arguments across CLI, Desktop, and Web by prioritizing action-specific fields and sanitizing dummy strings in `mint-core` and frontend utilities.
26
- - **Resilient Media & Image Proxy**: Added local image proxy (`/api/proxy-image`) with disk LRU caching and SSRF protection to bypass ad-blocker false positives; auto-heals unclosed markdown image links (`![alt](url...`), normalizes Twitter/X banner URLs, and displays a graceful fallback card on load errors.
27
- - **Provider Brand Badges & Logo Picker**: Vector SVG brand logos in chat message footers across 13+ providers; redesigned custom provider logo picker with preset SVGs, emoji selection, and an upload modal with pan/crop/rotate controls.
28
- - **Theme Refresh (Studio Dark & Charcoal Onyx)**: Introduced IDE-inspired "Studio Dark" palette (`#101010`), refined dark themes with balanced Charcoal Onyx styling, suppressed colored aurora background glow blobs in Studio Dark for a solid pure black chat canvas (`#101010`), and added sleek neutral gray buttons with subtle mint hover glow.
29
- - **Configurable Step Limits (`/steps`)**: Control max tool execution steps per turn (10–200, default 40) via `/steps` slash command or Settings across Desktop, Web, and Full-Screen TUI.
30
- - **Trajectory Export & Diagnostics**: One-click SWE-bench/Agent Protocol v1.0 trajectory export (`.json`); dedicated high-contrast callout styling for self-correction guidance; persistent activity drawer accessible across completed and interrupted turns.
31
- - **Full-Screen TUI Onboarding Wizard (`mint onboard` & `/onboard`)**:
32
- - Overhauled to native Ratatui alternate-screen wizard with responsive edge-to-edge layout and Mint TUI styling.
33
- - **Step 1 (Core AI)**: Unified Gemini setup with masked key input (`Ctrl+H`), live model discovery, and integrated model picker.
34
- - **Step 2 (Services)**: Grouped checklist with arrow navigation, spacebar toggles, select-all (`a`), and invert (`i`).
35
- - **Step 3 (Configurations)**: Paged per-service cards featuring bundled API credentials and real-time model pickers (Anthropic, OpenAI, DeepSeek, Ollama, etc.).
36
- - **Step 4 (Summary & Launch)**: Visual configuration overview with direct launch (`Save & Launch Mint`) or exit options.
37
- - Added `/onboard` slash command and first-run detection across CLI, Desktop, and Web.
38
- - **Terminal Polish**: Compact web search citations (top 5 with `Ctrl+O view web_search` smart jump, matched tool-card ANSI color styling, and structured results formatting), automatic source citation reconstruction on session resume (`/resume`), unified command badges, external browser link handling, and non-blocking desktop titlebar during settings.
39
-
40
- ## Performance & Frontend Optimization
41
- - **Re-render Isolation**: Decoupled message input state to eliminate full-page re-renders while typing.
42
- - **Component Splitting**: Isolated streaming elapsed timers into leaf components and lazy-loaded secondary modals.
43
- - **Zero-Allocation Buffers**: Replaced 32 MiB buffers with lightweight UTF-8 estimators and compact attachment fingerprinting.
44
- - **Adaptive Polling**: Switched background jobs and status polling to idle-aware intervals that pause on inactive tabs.
45
- - **GPU Compositing Relief**: Removed backdrop blur filters on scrollable chat containers for smooth virtualized scrolling.
46
-
47
- ## Core Engine & Web API Server
48
- - **Step Budget Warning & Wrap-Up Synthesis**: Proactive warning at `max_steps - 5` and graceful synthesis pass (`tools: None`) ensuring a complete final answer instead of abrupt termination.
49
- - **Fault-Tolerant Tool Call Parsing**: Recovers from Markdown fences, DeepSeek thinking tokens, trailing commas, hallucinated nulls, and shell aliases (`bash`, `sh`, `exec`).
50
- - **Structured Self-Correction Diagnostics**: Diagnostic engine (`diagnostics.rs`) detecting patch indentation drift, line numbering offsets, and compiler errors (Rust, Python, TypeScript) with actionable recovery suggestions.
51
- - **Standardized Trajectory Schema v1.0**: Versioned, typed trajectory runs (`StandardTrajectoryRun`) with step tokens, thoughts, and replay support via `/trajectory`.
52
- - **Head-Tail Truncation**: Dual-bound log clipping (first 35 lines context, last 75 lines error output), cutting token overhead by up to 70% while preserving root-cause errors.
53
- - **Repetition & Loop Guard**: Detects duplicate tool executions and oscillating loops (A→B→A→B), injecting self-correction guidance without aborting the turn.
54
- - **Context Compaction Role Alternation**: Alternating `Assistant`/`User` format for summaries, fixing HTTP 400 crashes on reasoning models (DeepSeek, Gemini).
55
- - **Engine Reliability**: Non-blocking SQLite persistence via `spawn_blocking`, low-latency TCP sockets (`TCP_NODELAY`), standardized workspace path resolution, and terminal API noise suppression for high-frequency Library thumbnails (`/thumbnail`), asset content (`/content`), and MCP artifacts.
56
-
57
- ## Subagents, Swarm Orchestration & Plan Mode
58
- - **Confirmation-First Planning**: Clarified intent confirmation so conversational acknowledgments ("OK", "understood") don't prematurely trigger code modifications.
59
- - **Parallel Swarms & Reconnaissance**: Concurrent read-only worker pools (1–8 agents) for multi-file project exploration before plan confirmation.
60
- - **Transcript Isolation**: Nested subagent micro-actions and child compactions into a dedicated docked status strip and DAG view.
61
- - **Context Cache Optimization**: Rolling vision window retaining the latest 2 image steps, saving up to 90% in token overhead.
62
-
63
- ## Agent Tools, Browser Automation & Sandbox
64
- - **Safe Temp Directory Access**: Persistent Linux sandbox mounts for `/tmp` and OS temporary paths across agent tools.
65
- - **Headless Browser Automation**: Isolated Chromium automation engine for navigation, clicks, inputs, screenshots, and durable artifacts.
66
- - **State-Based Execution**: Evidence-backed completion verification replacing unconditional duplicate-command skips.
67
-
68
- ## Mint Companion & Voice Input
69
- - **Live2D Desktop Companion**: Translucent interface with full-screen character view, OS cursor gaze tracking, and window dragging.
70
- - **Synchronized TTS Speech**: Centralized speech synthesis with real-time lip-sync and audio leasing.
71
- - **Non-Destructive Voice Input**: Microphone dictation appends directly to the active draft without auto-submitting.
1
+ # Release Notes - Mint Agent v1.18.0
2
+
3
+ ## Resilient Mod Worker Execution & CI Test Harness (Core and CI)
4
+ - **In-Process Worker Thread Fallback (`run_worker_loop`)**: Implemented an in-process worker thread execution fallback in `crates/mint-core/src/mods/manager.rs` and `crates/mint-mod-runtime/src/lib.rs`. When running unit tests or in environments where the standalone `mint-mod-host` binary has not yet been compiled on disk, `Worker` gracefully spawns an in-process worker thread communicating over internal channels rather than attempting to re-execute a `libtest` harness binary with `--mint-mod-host`.
5
+ - **Pre-Build Mod Host Binary in CI (`ci.yml`)**: Added an explicit pre-build step for `mint-mod-host` (`cargo build -p mint-cli --bin mint-mod-host`) in `.github/workflows/ci.yml` before running the test suite, ensuring clean GitHub Actions CI runners execute both the out-of-process IPC path and in-process fallback without missing-binary timeouts or exit code 101 errors.
6
+
7
+ ## Circular Avatar & Custom Provider Logo Cropping with Transparent Alpha (Desktop and Web)
8
+ - **True Circular Canvas Clipping (`ctx.clip`)**: Resolved an issue in `AvatarCropModal` where images cropped inside the circular viewfinder were previously exported as full 512x512 squares. The canvas export pipeline now applies a native circular clipping path (`ctx.arc` + `ctx.clip`) before drawing, ensuring cropped PNG images have transparent alpha outside the circle.
9
+ - **Circular Provider Logo Preview & Header Icon**: Updated `.custom-provider-logo-avatar` and `.custom-provider-logo` in `general.css` to `border-radius: 50%` and `object-fit: cover` (with SVG preset containment), so custom provider logos display consistently as circular avatars matching the crop modal preview across Desktop and Web.
10
+
11
+ ## Minimal Inline Code Styling & Compact Nested List Formatting (Desktop and Web)
12
+ - **Eliminated Stray Whitespace in Nested Lists (`tagListItems`)**: Resolved an issue where nested sub-lists (e.g. bulleted sub-items indented under numbered items) exhibited huge vertical gaps between items. Filtered out stray whitespace newline text nodes in `tagListItems` and explicitly applied `white-space: normal` on `.chat-list-block` and `.chat-list-text > .chat-list-block`, preventing sub-lists from inheriting `white-space: pre-wrap` from parent list text and restoring tight, clean bullet spacing identical to the TUI.
13
+ - **Eliminated Heavy Rectangular Border & Box-Shadow**: Removed the rigid `1px solid` border and drop shadow on `.chat-inline-code` that previously made short inline code snippets (e.g. `null`, `""`, variable names, and file paths) appear as distracting button-like badges.
14
+ - **Natural Text Color Harmony**: Updated inline code text color to inherit directly from surrounding message text (`color: var(--text-chat, inherit)`), ensuring high readability without visual fatigue or accidental hyperlink confusion.
15
+ - **Subtle Surface Tint & Compact Padding**: Replaced the previous pill background with a soft, theme-adaptive surface tint (`var(--bg-surface-hover, rgba(127, 127, 127, 0.14))`), compact `1.5px 5px` padding, and a gentle `4px` border radius across Desktop (`src/renderer/src`) and Web (`src/renderer/src-web`).
16
+
17
+ ## Modern Activity Timeline Polish, Clean Command Output & Material SVG Directory Listing (CLI, Desktop, and Web)
18
+ - **Activity Drawer Layout & Margin Alignment**: Fixed an issue where nesting margins on `.agent-activity-card-history` caused the `Run summary` telemetry card to overflow the drawer horizontally. Outer headers (`Worked for ...`, natural summary, and `Run summary` card) now span full width flush at `X = 0`, while timeline execution rows (`.modern-activity-list`) are cleanly indented by 12px with a vertical guide line.
19
+ - **Clean Output Filter (`cleanCommandOutput`)**: Automatically strips internal runtime envelope bookkeeping lines (`exit:`, `mode:`, `sandboxed:`, empty `stderr:`) from command execution results in the activity timeline, displaying clean stdout and stderr to the user.
20
+ - **Semantic Workspace Exploration (`Explored workspace`)**: Enhanced `describeTool` and `semanticVerb` so `list_files` calls on `.` or `./` resolve to `Explored 📁 workspace` rather than `Executed .` or `Executed list files`, with folder icon rendering in the timeline row. Updated `crates/mint-cli/src/agent/live_status.rs` to ensure CLI TUI parity.
21
+ - **Material SVG Directory Listing (`DirectoryListingView`)**: Transformed raw directory listing JSON arrays into a dedicated vector `DirectoryListingView` component. Folders and files are alphabetically sorted and displayed with crisp Material Icon Theme SVGs (`materialFolderIcon`, `materialFileIcon`), human-readable file sizes (`formatFileSize`), quick `@` chat reference buttons, and drag-and-drop support.
22
+
23
+ ## Gemini Live Native Tool Catalog, Real-Time Barge-In, History Persistence & Full Platform Parity (CLI, Desktop, Web, and Core)
24
+ - **Full Native Tool Catalog in Gemini Live (`live_tool_declarations`)**: Replaced the single underspecified `agent_action` wrapper in `gemini_live.rs` with the complete native `tool_catalog` (`list_files`, `read_file`, `search_code`, `git_status`, `web_search`, `weather`, `video_trim`, `mcp_tool`, etc.), sanitized via `gemini_sanitize_schema` and filtered for real-time audio compatibility (omitting terminal/modal-only tools `finish`, `enter_plan_mode`, and `exit_plan_mode` while keeping `agent_action` as a backward-compatible fallback).
25
+ - **Direct & Wrapped Tool Dispatch (`resolve_live_tool_call`)**: Updated the Gemini Live WebSocket tool-call loop to execute both direct tool calls (`name: "git_status"`, `args: {...}`) and legacy `agent_action`-wrapped calls seamlessly through `execute_tool_from_json`.
26
+ - **Voice-First System Instruction Override**: Added a dedicated Live Voice Mode instruction suffix so the model speaks its final response naturally after tool execution instead of attempting to invoke a `finish` tool.
27
+ - **Instant Barge-In Audio Queue Flushing (`GeminiLiveEvent::Interrupted` & `stopQueuedAudioPlayback`)**: Separated `serverContent.interrupted` from `turnComplete` into a dedicated `Interrupted` event. When the user speaks over Mint, the frontend immediately stops and disconnects all scheduled `AudioBufferSourceNode` chunks, resets `nextPlaybackTimeRef` to `0`, and clears the speaking state without dropping the microphone session.
28
+ - **Gemini Live Chat History & Tool Activity Persistence (`LiveTurnAccumulator`)**: Accumulated spoken user transcripts, assistant transcripts, and tool executions (`AgentProgress::ToolStart` / `ToolEnd`) per turn in `gemini_live.rs` and persisted them directly to `MemoryStore` (`interaction_memories` and `agent_activity_json`) under the workspace-scoped `chat_id` on `turnComplete`, `interrupted`, and session close, while triggering immediate frontend history synchronization (`onTurnSaved`).
29
+ - **Web UI Live Tool Approvals & Inline Overlay Approval Card**: Wired `routes/gemini_live.rs` to `PENDING_APPROVALS.request_blocking` (emitting `GeminiLiveEvent::ApprovalRequested`) instead of denying tool approvals on Web, and rendered `ApprovalCard` directly inside `GeminiLiveOverlay.tsx` so both Desktop and Web users can approve or reject voice-triggered tool actions without leaving or being blocked by the Live call overlay.
30
+ - **CLI Full-Screen TUI Voice Dictation (`F8` & `/voice`)**: Added native microphone push-to-talk recording and provider transcription (`mint_core::mic_transcribe`) to the CLI Full-Screen TUI (`F8` shortcut to dictate into the composer, `Esc` to cancel, and `/voice` command across CLI, Desktop, and Web).
31
+ - **Anti-Aliasing Boxcar Resampler & Off-Main-Thread `AudioWorklet` Capture (`downsampleToPcm16`)**: Replaced naive nearest-neighbor point sampling in `useGeminiLiveVoice.ts` with a continuous time-weighted boxcar anti-aliasing filter (eliminating high-frequency aliasing distortion when downsampling 48kHz/44.1kHz mic streams to 16kHz PCM16), and added an off-main-thread `AudioWorkletNode` capture pipeline with automatic `ScriptProcessorNode` fallback.
32
+ - **Section-Budgeted Live System Instruction (`build_live_system_instruction`)**: Replaced the single 12,000-character tail truncation in `gemini_live.rs` with independent budgets for the base prompt (`12,000` chars), memory/conversation context (`6,000` chars preserving both user profile/facts and the newest conversation turns), and learned skills (`4,000` chars), while pinning `LIVE VOICE MODE OVERRIDE` at the very end so it is never truncated.
33
+
34
+ ## Native Multi-Turn Conversation Continuity & Compaction Hardening (CLI, Desktop, and Web)
35
+ - **Deep Structured Conversation History (`native_messages`)**: Fixed an architectural limitation where `native_messages` was reset to an empty list on each turn. Agent mode (`orchestrate_agent_loop`) and Plain Chat mode (`enrich_request`) now pre-populate the request's native `messages` with structured, alternating `User` and `Assistant` turns from SQLite memory (`build_conversation_history_messages`). Modern tool-calling models (Gemini, Claude, GPT, Ollama) now receive genuine multi-turn conversational context, allowing the agent to naturally follow up on prior discussion (e.g. asking for specific information previously discussed when calling `ask_user`) without context loss.
36
+ - **Provider-Aware Transcript Fallback for Non-Native Chat**: Resolved an issue where non-native providers (such as Ollama in `ToolCallingMode::JsonPrompt` or plain text mode) dropped conversation context because they ignore `request.messages`. `enrich_request` now intelligently detects native tool capability: native providers receive structured message sequences, while non-native providers continue receiving rendered conversation transcripts in `system_instruction`.
37
+ - **History-Preserving Context Compaction (`history_prefix_len`)**: Hardened `compact_native_messages` and `hard_truncate_native_messages` so context compaction operates strictly within the current agent turn's intermediate tool steps (`[history_prefix_len + 1..]`), leaving all preceding conversation turns (`[..history_prefix_len]`) and the current turn's initial task observation intact.
38
+ - **Persistent Profile & Fact Retention Across Plan Mode**: Refactored system prompt construction into `construct_system_prompt`, ensuring user profile information and remembered facts are consistently maintained when entering and exiting plan mode.
39
+ - **Unified SQLite Connection & Media Content Packing**: Reused the active `MemoryStore` instance across orchestration steps to avoid redundant SQLite connection opens, and unified media attachment block packing (`build_user_content_blocks`) across plain chat and agent loops.
40
+ - **Expanded Recall Limit (`CONTEXT_LIMIT = 15`)**: Increased the conversation interaction window from 3 to 15 turns, enabling long back-and-forth debugging and discussion without older turns prematurely dropping out of the model's memory.
41
+ - **Multi-Byte Non-Truncating Message Budget (`MAX_CONTEXT_MESSAGE_CHARS = 4000`)**: Raised the per-message historical context ceiling from 200 to 4,000 characters. Detailed Thai conversational prompts, technical explanations, and code snippets are preserved in full rather than aggressively truncated.
42
+ - **100% Platform Parity**: Implemented in shared `mint-core`, instantly benefiting the CLI TUI, Desktop app, and Web interface with zero platform divergence, backed by automated Rust unit tests (`tests.rs`).
43
+
44
+ ## Modern Answered Questions & Answers Activity Card (Desktop and Web)
45
+ - **Inline Answered Questions Card**: When an `ask_user` interaction is completed, the agent activity timeline now displays a dedicated questions-and-answers card inspired by modern AI assistant designs, replacing generic timeline text rows (`Asked (Answered: "...") <question>`) with a clean, high-clarity UI.
46
+ - **Visual Design Parity**:
47
+ - **Header Counter**: Displays a small rounded-square `[?]` outline badge alongside a clean question counter (e.g. `1 question` or `3 questions` for multi-question batches).
48
+ - **Question & Answer Typography**: Highlights each question in prominent primary text (`var(--text-main)`), followed by the user's selected choice or freeform answer in soft secondary gray (`var(--text-soft)`).
49
+ - **Subtle Dividers**: Seamlessly separates multiple questions with clean hairline horizontal borders (`1px solid var(--border-subtle)`).
50
+ - **Dark / Light Theme Integration**: Styled with a translucent surface card background, rounded 12px corners (`var(--radius-lg)`), and full support for both Dark and Light UI themes.
51
+ - **Deep Seam & Fallback Parsing**:
52
+ - Enriched `AgentActivity` in `agentActivity.ts` with structured `askUserData` (supporting single questions or multi-question batches).
53
+ - Built `extractAskUserQuestions` to extract question and answer pairs from live `ToolEnd` events as well as legacy `(Answered: "...")` historical interactions.
54
+ - While an `ask_user` request is pending, the timeline retains an active execution indicator so the user focuses on the interactive `ApprovalCard` at the bottom; once answered, it instantly swaps to the answered card.
55
+ - **Full Platform Parity**: Implemented across Desktop (`src/renderer/src/css/chat.css`) and Web (`src/renderer/src-web/css/chat.css`), backed by unit tests (`AskUserActivityCard.test.tsx`, `agentActivity.test.ts`).
56
+
57
+ ## Compact Chat Input & Toolbar Mode Selector (Desktop and Web)
58
+ - **Compact All-in-One Composer**: Completely redesigned the chat input area across Desktop and Web to reduce vertical idle footprint by over 45% (down from ~180px to ~90px), expanding visible chat viewport space so users can read significantly more conversation history without cramped viewports.
59
+ - **Slim Integrated Project Header**: Retained the Workspace (`📁 Mint-CLI ▾`) and Git Branch (`🌿 Rust ▾`) selectors at the top of the composer as a slim, unified 34px header that seamlessly connects to the chat input container without vertical bloat.
60
+ - **Eliminated Bulky Toggle Bar**: Removed the standalone middle `smart-context-bar` that previously consumed an extra ~35px of vertical screen real estate for two toggle switches.
61
+ - **Toolbar Mode Selector Pill (`ChatModeSelector`)**: Moved interaction mode switching down into the bottom action toolbar alongside the Model Selector as a modern pill (`[⚡ Agent ▾]` / `[📋 Plan ▾]` / `[💬 Chat ▾]`). Styled with clean, subdued text colors (without heavy green accent outlines) and positioned on the right side of the toolbar adjacent to voice and send controls. Clicking the pill opens a floating popover menu allowing users to switch between Agent mode, Plan mode (with read-only approval gating), and standard Chat mode.
62
+ - **Harmonized Git Branch Selector & Popover**: Redesigned `GitBranchSelector` across Desktop and Web to achieve complete visual consistency with `WorkspaceSelector` and `ChatModeSelector`:
63
+ - Unified the trigger button in `.project-context-row` with identical pill styling (`var(--surface-strong)` background, `1px solid var(--border-subtle)`, rounded corners, and smooth hover states).
64
+ - Replaced legacy raw Unicode glyphs (`⑂`, `⇄`, `+`, `←`) with standard Lucide SVGs (clean Git branch, remote globe, plus, git graph, and chevron back icons).
65
+ - Upgraded the popover dialog with glassmorphism backdrop blur, modern 16px corner radius (`var(--radius-xl)`), deep elevation shadow, uppercase category headers, rounded item hover pills, styled track badges, and a sleek search bar.
66
+ - Styled search input focus and active branch selection with refined neutral gray borders and backgrounds instead of bright green accents.
67
+ - **Single-Line Initial Textarea**: Reduced initial textarea `min-height` to a clean single line (26px) with streamlined padding, while preserving smooth multi-line auto-expansion up to 140px+ as prompts grow.
68
+ - **Full Platform Parity**: Implemented across Desktop (`src/renderer/src/css/chat.css`) and Web (`src/renderer/src-web/css/chat.css`, `mobile.css`), backed by unit tests (`ChatModeSelector.test.tsx`, `ChatPanel.test.tsx`) and full launcher tests.
69
+
70
+ ## Collapsible Document Attachment Cards & Rich File Mentions (CLI, Desktop, and Web)
71
+ - **Collapsible Attached Document Card in User Messages**: Dropping text, markdown, or code documents into the chat composer no longer dumps hundreds of lines of raw text and backend prompt instructions into the user message bubble. Instead, the user bubble cleanly separates authentic prompt text from the attachment, rendering a sleek, collapsed **Attached Document Card** with genuine language/file icons, line counts, and a smooth `[View content ▾]` accordion viewer with one-click copy.
72
+ - **Rich File Mention Chips in Message Stream**: Mentions referencing files (e.g. `@generate_harness_pdf.py` or `@src/app.tsx`) in the message stream now render as clean, modern file tag chips with dedicated Material Icon Theme language icons (Python, TypeScript, Rust, JSON, etc.) and stripped `@` prefixes (matching Cursor / VS Code style), while non-file mentions (e.g. `@web`, `@agent`) preserve their standard badge formatting.
73
+ - **Full-Width Artifact & Document Stretch**: Fixed artifact cards (PDF / PPTX presentations) and tool result containers to stretch across the full chat column width, matching `TurnFileChanges` without shrink-wrapping to the reply text width.
74
+ - **TUI Cleanliness & Parity**: Full-Screen TUI (`mint-cli`) automatically condenses document attachments in the transcript to single-line notices (`[Attached document: <filename> (<N> lines)]`) and pre-fills `/edit` and `/retry` drafts with clean prompt text, preventing giant file dumps in terminal buffers.
75
+ - **Full Platform Parity**: Maintained 100% parity across Desktop UI (`src/renderer/src`), Web UI (`src/renderer/src-web`), and CLI (`crates/mint-cli`), backed by automated Vitest and Cargo test suites.
76
+
77
+ ## Modern Developer-Centric Activity Timeline (CLI, Desktop, and Web)
78
+ - **Developer-Centric Semantic Timeline**: Replaced the rigid boxed table layout in `AgentActivityTable` with a sleek, borderless semantic timeline inspired by modern AI coding assistants (Claude Code / Cursor / Copilot).
79
+ - **Elapsed Duration & Natural Action Header**: The activity drawer header now displays dynamic, human-readable execution status (e.g. `Worked for 2m 14s ⌄` or `Working...`) alongside an aggregated action summary (e.g. `Explored files, ran commands, edited files`), giving users immediate high-level context of agent work at a glance.
80
+ - **Semantic Verbs & File Targets**: Activity rows present clean developer verbs and context:
81
+ - File Reads: `Analyzed <icon> filename.tsx#L12-45` with targeted line ranges.
82
+ - File Edits: `Edited <icon> filename.tsx` paired with precise Git diff statistics (`+24` / `-8`).
83
+ - Terminal Commands: `Ran <intent or command> >` with an expandable chevron to toggle output view.
84
+ - Thoughts: `Thought for 12s >` with collapsible reasoning details.
85
+ - **Accurate Diff Extraction**: Extended `agentProgress.ts` to calculate real additions and deletions for `edit_file`, `write_file`, and `apply_patch` operations, displaying color-coded green `+N` and red `-N` badges in the timeline.
86
+ - **Dedicated Language & File Icons**: Expanded the centralized Material Icon Theme system (`fileIcons.ts`) with authentic file icons for Python (`.py`, `.ipynb`), Rust (`.rs`), Go, Java, C/C++, C#, TypeScript, JavaScript, Shell/Bash (`.sh`, `.bash`, `.zsh`), SQL/Databases, Dockerfiles, Git, Markdown, PDFs, and more. Both `AgentActivityTable` and `TurnFileChanges` now display dedicated, genuine language icons next to modified/analyzed file names instead of generic placeholders.
87
+ - **Preserved Productivity Interactions**: Retained full interactive capabilities including HTML5 file drag-and-drop from timeline rows into the chat composer, `@` quick-reference button on hover, and seamless subagent DAG view switching.
88
+ - **CLI Full-Screen TUI Parity**: Enhanced `interactive::tool_activity` in `mint-cli` to use developer-centric semantic verbs (`Ran`, `Searched`, `Analyzed`, `Edited`) and prefer human-readable intent summaries for shell executions.
89
+ - **Full Platform Parity**: Maintained 100% parity across Desktop UI (`src/renderer/src`), Web UI (`src/renderer/src-web`), and CLI (`crates/mint-cli`), backed by automated tests across Vitest and Cargo test suites.
90
+
91
+ ## Inline Message Edit & Save & Resend (CLI, Desktop, and Web)
92
+ - **In-Place Inline Message Editor**: Clicking the ✏️ Edit button on any user message now transforms the message bubble into an inline auto-growing editor directly in context, eliminating the disjointed jump down to the composer.
93
+ - **Save & Resend Truncation**: Saving the edited message automatically truncates conversation history from that turn onwards in SQLite (`truncate_interactions_from`), clearing subsequent turns and triggering the model to answer the refined prompt with a completely clean context.
94
+ - **Keyboard Shortcuts & Quick Actions**: Equipped with `Esc` to instantly cancel and restore original text, `Ctrl+Enter` / `Cmd+Enter` to save and resend, auto-focus, and cursor placement at the end of the text.
95
+ - **Full-Screen TUI CLI Commands (`/edit` & `/retry`)**: In the Full-Screen TUI, users can enter `/edit` or `/retry` to pull the latest turn prompt directly into the active composer under an explicit notice banner `[Mode: Edit Turn #N — Resending will replace this turn and clear its previous response | Esc to cancel]`. Pressing `Enter` truncates the turn and subsequent responses from SQLite and immediately resends the updated prompt, while `Esc` or `Ctrl+C` cancels edit mode and restores the composer.
96
+ - **Unified Platform Bridge**: Implemented cross-platform endpoints via Tauri command `truncate_interactions_from` on Desktop, `POST /api/interactions/truncate` on Web, and reactive state management in `lifecycle.ts`.
97
+ - **Full Platform Parity**: Maintained across Desktop UI (`src/renderer/src`), Web UI (`src/renderer/src-web`), and Full-Screen TUI CLI (`crates/mint-cli`), backed by automated tests across Vitest and Cargo.
98
+
99
+ ## Drag & Drop File Changes & In-Composer Mentions (CLI, Desktop, and Web)
100
+ - **Draggable Turn File Changes**: In `TurnFileChanges`, each created or modified file item is now fully draggable using standard HTML5 drag-and-drop. Users can drag files directly from the turn summary card (e.g. `generate_harness_pdf.py` or `CalculationCard.tsx`) into the chat composer.
101
+ - **Sleek Full-Width File Changes Bar**: Redesigned `TurnFileChanges` into a full-width, streamlined summary bar matching modern AI coding assistants (Claude Code / Cursor). Features a compact single-line collapsed header showing `N files changed +add -del >` on the left and a `[ 📄 Review ]` quick action button on the right, with smooth click-to-expand file details and full chat-column width stretch across Desktop and Web.
102
+ - **Live Tool Execution Dragging**: In `AgentActivityTable`, target files within active and historical tool rows (`write_file`, `edit_file`, `read_file`) are now draggable into the composer, letting users grab files as soon as the agent begins writing or modifying them.
103
+ - **Click-to-Reference Quick Action (`@`)**: Added a convenient "Reference in chat" button on hover for both file change items and activity tool rows, enabling laptop and trackpad users to instantly bind files into the prompt without dragging.
104
+ - **Direct In-Input Insertion**: Dragging a file or clicking `@` inserts `@relative/path ` directly into the text input box (`<textarea id="chat-input">`) at the cursor position and smoothly focuses it, keeping prompt drafting intuitive and fully editable inline without redundant chip containers.
105
+ - **CLI Full-Screen TUI Parity**: Upgraded `collect_mention_candidates_with_recents` in `crates/mint-cli` to detect recently modified session files (and active git working tree diffs) and prioritize them at the very top of `@` mention auto-completions with the `Recently edited in this session` badge.
106
+ - **Full Platform Parity**: Maintained 100% parity across Desktop UI (`src/renderer/src`), Web UI (`src/renderer/src-web`), and CLI (`crates/mint-cli`), backed by automated tests across Vitest and Cargo test suites.
107
+
108
+ ## Modern AI Fluid Border Radii (Desktop and Web)
109
+ - **Contemporary Border Radii Tokens**: Upgraded the design token scale in `tokens.css` to the Modern AI aesthetic (`--radius-xs: 6px`, `--radius-sm: 8px`, `--radius-md: 10px`, `--radius-lg: 14px`, `--radius-xl: 18px`, `--radius-2xl: 22px`, `--radius-3xl: 26px`, `--radius-composer: 24px`), delivering fluid, approachable corners across cards, buttons, dialogs, and panels.
110
+ - **Fluid Chat Composer & Prompt Bar**: Elevated the chat form (`#chat-form`), `.smart-context-bar`, and `.project-context-row` to a smooth 24px radius (`var(--radius-composer, 24px)`) across Desktop UI (`src/css/chat.css`), Web UI (`src-web/css/chat.css`), and Mobile (`src-web/css/mobile.css`).
111
+ - **Floating Island Capsule Header & Controls**: Styled the floating island `.chat-header` with modern capsule curvature (`border-radius: var(--radius-full, 9999px)`), transforming breadcrumb `< Code` buttons, session tags (`cli::...`), `Tools` toggles, and action buttons into cohesive rounded pills across Desktop and Web.
112
+ - **Harmonious Model Spotlight & Popover Surfaces**: Updated model spotlight popovers and modal selector dialogs to use `var(--radius-2xl, 22px)`, providing seamless continuity with the new card and container curves.
113
+ - **100% Elimination of Hardcoded Border Radii (Single Source of Truth)**: Completed a repo-wide audit across all UI components and stylesheets. Migrated every remaining hardcoded pixel border radius in Markdown renderers (`markdown.tsx`), rich interactive cards (`ImageSearchCard.tsx`, `ImageGenCard.tsx`, `StockCard.tsx`, `MermaidCard.tsx`, `CalculationCard.tsx`, `WeatherCard.tsx`), modals & overlays (`CommandPalette.tsx`, `SubagentDagView.tsx`, `AgentActivityDrawer.tsx`, `MintDashboard.tsx`, `ModalErrorBoundary.tsx`, `ChunkErrorBoundary.tsx`, `WorkspacePdfPreview.tsx`), and stylesheets (`code-review.css`, `model-selector.css`, `background-terminals.css`, `library.css`, `slash-choice.css`, `queued-messages.css`, `veo-studio.css`, `desktop-tools.css`, `tool-surfaces.css`, `mobile.css`, and Settings stylesheets) to centralized Design Tokens (`var(--radius-*)` with `--radius-2xs: 4px`), guaranteeing full theme-driven consistency with zero hardcoded drift.
114
+ - **Tailwind Utility Synchronization**: Registered semantic radius tokens directly in `ui-tailwind.css` `@theme inline` block ensuring consistent styling for shared components.
115
+
116
+ ## Text Color Customization & Modern Studio Design System (Desktop and Web)
117
+ - **Centralized Text Color Customization & Palette Swatches**: Added a centralized Text Color system in `ThemeTab` with 6 high-contrast curated swatches (Pure White `#ffffff`, Cyber Green `#86efac`, Electric Cyan `#67e8f9`, Retro Amber `#fde047`, Pastel Lilac `#d8b4fe`, Soft Coral `#fda4af`) and custom hex picker with native eyedropper support.
118
+ - **Deep Theme Variable Distribution**: Updated `themeManager.ts` to distribute `--text-main`, `--text-chat`, and `--text-primary` from a single source of truth, deriving `--text-soft`, `--text-secondary`, and `--text-muted` dynamically via `color-mix`, while preserving custom text colors across preset theme switches.
119
+ - **Modern Studio Design Tokens & Border Radii**: Refined base radii in `tokens.css` to a crisp, professional Studio scale (`--radius-xs: 4px`, `--radius-sm: 6px`, `--radius-md: 8px`, `--radius-lg: 10px`, `--radius-xl: 12px`, `--radius-2xl: 14px`, `--radius-3xl: 16px`), aligning the entire UI with Linear / Raycast developer ergonomics.
120
+ - **Subtle User Message Bubbles & Input Form**: Replaced exaggerated 22px bubbles with a refined 12px bubble (`border-radius: var(--radius-xl) var(--radius-xl) var(--radius-xs, 4px) var(--radius-xl)`), and standardized `#chat-form`, slash command popups, and UI cards to tokenized radii across Desktop and Web.
121
+ - **Code Hub Subtle Studio Refinements**: Redesigned `/code` session rows with neutral raised background (`var(--bg-surface-raised)`), clean left accent borders (`border-left: 2px solid var(--accent)`), subtle active badges with glowing accent status dots, muted prompt symbols, and polished `$ resume` chips.
122
+ - **Tools Panel & Session Breadcrumbs Polish**: Toned down excessive green accent styling in Tools tab launcher icons to neutral text tokens, refined active dropdown items to neutral surfaces, and styled the breadcrumb session badge (`cli::<id>`) to match the `< Code` button aesthetic.
123
+
124
+ ## Drag & Drop Support for Side Panel Tools & Artifacts (Desktop and Web)
125
+ - **Automatic Image Attachment on Drag**: Dragging image files or image preview tabs from Tools / Side Panel now automatically resolves the image binary/dataUri and attaches it as an interactive Image Attachment chip (complete with trimmed thumbnail preview and removal button) directly above the composer, feeding vision data straight into multimodal LLMs without requiring extra read turns.
126
+ - **Side Panel Tools Tab Dragging**: Enabled HTML5 dragging on preview tabs within `ToolSurfacePage` (and the tabs switcher dropdown menu). Users can now directly drag tabs (such as generated slides, documents, images) from the Tools panel on the right and drop them into the chat input composer to mention `@relative/path`.
127
+ - **Artifact Preview Header Dragging**: Made the file icon and title container in `ArtifactPreviewPanel` draggable with grab cursors and informative tooltips (`title="<path> (Drag to chat)"`), allowing quick reference dragging directly from the artifact viewer header.
128
+ - **Chat Artifact Cards Dragging**: Enabled dragging on `.chat-artifact-card` items directly in the message stream, allowing users to drag inline presentation/PDF/document cards into the input field.
129
+ - **Deep Seam & Unified Drag Utility (`workspaceDrag.ts`)**: Built deep helpers `setWorkspaceDragData` and `formatWorkspaceReference` under `src/renderer/shared/utils/workspaceDrag.ts` unifying drag data transfer across `WorkspacePanel`, `ToolSurfacePage`, `ArtifactPreviewPanel`, and `ArtifactCards`, setting both `application/x-mint-workspace-path`, `application/x-mint-workspace-file`, and fallback `text/plain`.
130
+ - **Robust Drop & Dragover Ergonomics in Chat**: Upgraded `ChatPanel` and `CollapsiblePasteInput` to handle dragover seamlessly with copy cursors and drop handlers across the input textarea, chat form, and the main conversation area.
131
+ - **English Slide Pagination in Workspace Preview**: Updated slide indicator and page labels in `WorkspacePdfPreview` from Thai to standard English (`Slide {pageNumber} / {pdf.numPages}` and `Slide {pageNumber} of {pdf.numPages}`).
132
+
133
+ ## Context Compaction & Observation Compression Harness (CLI, Desktop, and Web)
134
+ - **File-Backed Output Scratchpad (Cursor / Claude Code Pattern)**: Automatically offloads bulky tool execution logs (> 3,000 characters) to `.mint/scratch/tool_outputs/<timestamp>_<action>_<hash>.log`, presenting the model with clean head/tail previews and an actionable pointer path to prevent token bloat while keeping full raw outputs on-demand.
135
+ - **Progressive Observation Ghosting (Three-Tier Aging)**: Implemented deterministic turn-level aging for historic `ToolResult` messages without LLM invocation cost — retaining recent 3 turns in full (Hot Zone), truncating turns 4–10 to concise summaries (Warm Zone), and collapsing older turns (> 10 turns back) into 1-line tombstones (Cold Zone).
136
+ - **Semantic Tool Superseding**: Automatically detects file modifications (`apply_code_edits`, `write_file`, `patch_file`, `delete_file`) and replaces earlier `read_file` results targeting those modified paths with compact superseding notices, eliminating stale code hallucinations and saving thousands of prompt tokens.
137
+ - **Trajectory Buffer Compaction**: Compacts observation previews for older trajectory items in `rebuild_observation`, keeping the task history bounded and responsive across 50–100+ step autonomous runs.
138
+ - **Structured Milestone Compaction**: Upgraded `compact_native_messages` with structured markdown sections (Core Intent, Files Modified & Validated, Key Decisions & Findings, Pending Actions) ensuring critical state and verified paths are never lost during macro compaction.
139
+
140
+ ## Deep Module Architecture & God Files Refactoring (`mint-core`)
141
+ - **Chat Provider Seam Decomposition (`agent/chat/`)**: Decomposed the 4,651-line `chat.rs` monolith into a deep, modular structure under `crates/mint-core/src/agent/chat/`. Each provider now owns an isolated seam with its own payload construction, thought signature handling, and response decoding:
142
+ - `gemini.rs` (518 lines): Google Gemini 1.5/2.0 native function calling, thinkingConfig, schema sanitization, and multimodal parts.
143
+ - `anthropic.rs` (318 lines): Anthropic Messages API client, prompt caching breakpoints, and tool response parsers.
144
+ - `openai.rs` (582 lines): OpenAI, OpenRouter, and DeepSeek client with reasoning tokens and audio attachments.
145
+ - `ollama.rs` (321 lines): Ollama native messages and streaming parsers.
146
+ - `custom.rs` (149 lines): Custom HTTP endpoints and Hugging Face adapters.
147
+ - `streaming.rs` (466 lines): Server-Sent Events (SSE) accumulator and progressive thought/chunk streams.
148
+ - `tests.rs` (1,403 lines): Isolated 58-test unit verification suite.
149
+ - `mod.rs` (856 lines): High-level provider-agnostic coordinator, fallback dispatchers (`send_chat`, `stream_chat`), and public types.
150
+ - **Orchestration Seam Deconstruction (`orchestration/`)**: Reduced the 6,653-line orchestration god file down to 2,587 lines (a 61% reduction) by isolating discrete responsibilities into cohesive modules:
151
+ - `types.rs` (646 lines): Centralized execution types including `TurnLease`, `TurnStartListener`, `OrchestrationError`, `AskUserOption`, `AgentApproval`, `AgentProgress`, `ToolExecutionRecord`, and `AgentResult`.
152
+ - `decision_parsing.rs` (736 lines): Deep parsing for LLM output, tool call preparation, schema sanitization, and retry tracking.
153
+ - `tools/dispatch.rs` (899 lines): Tool execution router, parallel read-only batch execution, code review gatekeeper, and result appending.
154
+ - `tests.rs`, `mcp_outcome_tests.rs`, `full_skill_result_tests.rs` (2,011 lines): Dedicated unit and regression suites.
155
+ - **100% Backward Compatibility**: Maintained exact API and struct compatibility across all public and crate interfaces for CLI (`crates/mint-cli`), Desktop (`src/renderer/src`), and Web (`src/renderer/src-web`). Fully verified with all 58 chat tests, 180 orchestration tests, and 241 CLI tests passing.
156
+
157
+ ## Library Grid & High-Resolution Thumbnails (Desktop and Web)
158
+ - **Comfortable Card Layout**: Increased default grid card width to 260px (`minmax(260px, 1fr)`) with an expanded 1380px max-width container, delivering a spacious 3–4 column layout with clear preview details.
159
+ - **Grid Density Switcher**: Added a toolbar toggle (`Normal` / `Large`) with localStorage persistence, enabling a 2–3 column mode for closer visual inspection without opening preview modals.
160
+ - **Enhanced 4:3 Aspect Ratio**: Upgraded thumbnail cards from 16:10 to 4:3 with face-aware framing (`object-position: center 20%`) to keep character art, cosplay shots, and portraits centered.
161
+ - **Crisp 800px Previews**: Upgraded backend thumbnail resolution from 360px to 800px with automatic background migration for razor-sharp rendering on HiDPI displays.
162
+ - **Responsive Sidebar Alignment**: Connected `.library-page` offsets to the shell's sidebar expanded/collapsed state with smooth 0.22s sliding transitions.
163
+
164
+ ## Graceful Web Shutdown & CLI Cleanup (`mint web`)
165
+ - **Clean Ctrl+C Termination**: Added shutdown signal handling to `mint web` in `mint-cli`, terminating frontend processes cleanly without false error messages.
166
+ - **Warning Suppression**: Injected `VITE_CONFIG_NATIVE_IGNORE_WARNING=true` to silence upstream Vite CommonJS deprecation notices during web launch.
167
+
168
+ ## Test Database Isolation & Centralized Config Routing
169
+ - **Isolated Test Data**: Configured `mint_config_dir()` to route automated test storage to dedicated temporary paths (`/tmp/mint-test/`), preventing test runs from contaminating user databases or sidebar histories.
170
+ - **Unified Path Resolution**: Centralized store routing for `mint-knowledge.sqlite`, `cron-jobs.json`, and `tasks.json` through `mint_config_dir()`.
171
+ - **Regression Cleanup**: Added explicit session and subagent teardown hooks in test runners.
172
+
173
+ ## Interactive Saved Plans Picker & Viewer (`/plan list`) (CLI, Desktop, and Web)
174
+ - **Interactive TUI Plan Picker**: Running `/plan list` in Full-Screen TUI opens an interactive selector showing saved plans sorted by timestamp with instant title previews.
175
+ - **Inline Plan Card Render**: Selecting a plan renders a borderless `#404040` card into the transcript complete with task checkboxes (`[ ]` / `[✓]`) and step statuses.
176
+ - **Shortcuts & Autocompletion**: Added direct viewing via `/plan list <n>` and `/plan show <n>`, plus multi-word subcommand autocompletion (e.g. `/plan `, `/plugin `) in the TUI composer.
177
+
178
+ ## Unified Plan Review & Inline Card UI (CLI, Desktop, and Web)
179
+ - **Framed Transcript Cards**: Replaced raw text dumps for `/release-notes` and plan reviews with continuous borderless cards matching the dark theme.
180
+ - **Compact Approval Modal**: Condensed the plan review modal to a concise approval prompt while presenting the full plan in the transcript with unblocked scrolling.
181
+ - **Session Resume Persistence**: Reconstructed formatted plan cards when resuming past conversations across CLI, Desktop, and Web.
182
+ - **Command Aliases**: Added flexible slash command matching for `/release-notes`, `/release_notes`, `/release-note`, and `/releasenotes`.
183
+
184
+ ## Universal Thinking & Multi-Provider Reasoning (CLI, Desktop, and Web)
185
+ - **Universal Thinking Toggle**: Enabled Thinking controls and effort levels (`Low` to `Extra High`) across all chat models (Gemini, DeepSeek, OpenAI, Anthropic, OpenRouter, Ollama, and Local).
186
+ - **Native Parameter Dispatch**: Sends provider-accurate payloads including Gemini `thinkingConfig`, OpenAI/OpenRouter `reasoning_effort`, Anthropic `budget_tokens`, and DeepSeek V4 reasoning specifications.
187
+ - **Prompt-Based Fallback**: Automatically injects effort-scaled `<think>...</think>` directives for standard chat models without native reasoning APIs.
188
+ - **Non-Text Filter**: Automatically disables reasoning options for image, video, audio, and embedding models.
189
+
190
+ ## Code Block UI & Terminal Copy Ergonomics (CLI, Desktop, and Web)
191
+ - **Frictionless CLI Code Copying**: Replaced vertical border gutters (`│ `) with clean 2-space indentation so terminal mouse selection copies pure, runnable commands.
192
+ - **Smart Line Numbers**: Automatically hides line numbers on short snippets ($\le 5$ lines) with an optional `#` toggle on Desktop and Web.
193
+ - **Typography Enhancements**: Increased code size to 14.5px with 1.65 line height and proper Thai font fallbacks.
194
+
195
+ ## Structure-Aware Progressive AI Streaming (CLI, Desktop, and Web)
196
+ - **Smooth Line-by-Line Reveal**: Streams markdown text, lists, and syntax-highlighted code blocks smoothly with adaptive pacing.
197
+ - **Atomic Block Buffering**: Holds markdown tables and custom UI/Mermaid cards in buffer until complete to eliminate broken syntax flashes mid-stream.
198
+ - **Viewport Ergonomics**: Preserves terminal scroll positions during generation and defers post-turn metadata until streaming finishes.
199
+
200
+ ## Streamlined MCP Tool Activity UI (Desktop and Web)
201
+ - **Accordion Grouping**: Moved raw MCP execution logs out of chat bubbles into collapsible `Executed X mcp_tool` activity accordions.
202
+ - **Clean Conversation Surface**: Reserved chat bubbles strictly for downloadable artifacts, critical notices, and final AI responses.
203
+
204
+ ## Modern Setup & Onboarding TUI Wizards (`mint setup` & `mint onboard`)
205
+ - **Full-Screen Setup Wizard**: Modernized `mint setup` with a 3-step Ratatui TUI categorized across 49 agent tools, native plugins, and launch targets.
206
+ - **High-Contrast Monochrome Styling**: Unified `mint onboard` with solid gray row highlights, active cursor indicators (`█`), and dynamic footer shortcuts.
207
+ - **MCP Shorthand Flags**: Added `-a` (`--args`) and `-e` (`--env`) shorthand options to `mint mcp add`.
208
+
209
+ ## Headless Browser Automation & Anti-Loop Safeguards (CLI, Desktop, and Web)
210
+ - **Headless Chromium Automation**: Replaced legacy headed browser windows with headless Chromium commands (`--headless=new`) and deterministic `mint browser run` workflows.
211
+ - **System Default Browser Previews**: HTML artifacts and previews open directly in your system's default browser across all platforms.
212
+ - **Anti-Loop Protections**: Automatically intercepts stuck tool loops ($\ge 3$ repeated outputs) and deduplicates screenshot analyses using SHA-256 hashes.
213
+ - **Diagnostic Slash Command**: Updated `/browser` and `/browser status` to report detected Chromium binaries and sandbox readiness.
214
+
215
+ ## Shell Execution & Background Job Safeguards
216
+ - **Explicit Background Status**: Clearly marks promoted background commands (>180s) as `exit: running_in_background (job_id: <id>)`.
217
+ - **System Anti-Retry Notice**: Injects background execution notices to prevent agents from triggering redundant retry loops.
218
+ - **TUI Activity Parity**: Ensured the Full-Screen TUI recognizes background processes as actively running.
219
+
220
+ ## 🚀 Architecture Evolution & Future Roadmap
221
+ - **Decommissioned Legacy Browser**: Fully retired the headed Mint Browser subsystem (`mint auto`, port 9222 takeover, and embedded browser frames).
222
+ - **Headless Foundation**: Replaced with a fast, decoupled headless automation engine, establishing a reliable foundation for future web capabilities.