@pheem49/mint 1.8.2 โ†’ 1.10.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 (106) hide show
  1. package/Cargo.lock +55 -3
  2. package/Cargo.toml +2 -1
  3. package/Release_Note.md +297 -107
  4. package/bin/mint +0 -0
  5. package/crates/mint-cli/Cargo.toml +1 -0
  6. package/crates/mint-cli/src/actions.rs +233 -0
  7. package/crates/mint-cli/src/agent.rs +382 -127
  8. package/crates/mint-cli/src/gmail.rs +22 -2
  9. package/crates/mint-cli/src/image.rs +8 -8
  10. package/crates/mint-cli/src/interactive.rs +2888 -0
  11. package/crates/mint-cli/src/main.rs +391 -2506
  12. package/crates/mint-cli/src/markdown.rs +294 -0
  13. package/crates/mint-cli/src/onboard.rs +152 -109
  14. package/crates/mint-cli/src/setup.rs +143 -143
  15. package/crates/mint-cli/src/updater.rs +48 -6
  16. package/crates/mint-core/Cargo.toml +1 -0
  17. package/crates/mint-core/src/agent_loop.rs +1 -0
  18. package/crates/mint-core/src/api_server.rs +431 -65
  19. package/crates/mint-core/src/browser.rs +630 -102
  20. package/crates/mint-core/src/channels.rs +105 -6
  21. package/crates/mint-core/src/chat.rs +174 -11
  22. package/crates/mint-core/src/code_tools.rs +47 -31
  23. package/crates/mint-core/src/config.rs +302 -17
  24. package/crates/mint-core/src/image_gen.rs +299 -38
  25. package/crates/mint-core/src/lib.rs +10 -7
  26. package/crates/mint-core/src/mcp.rs +119 -6
  27. package/crates/mint-core/src/memory.rs +6 -1
  28. package/crates/mint-core/src/orchestration.rs +237 -96
  29. package/crates/mint-core/src/pictures.rs +67 -5
  30. package/crates/mint-core/src/semantic.rs +1 -1
  31. package/crates/mint-core/src/shell.rs +1 -1
  32. package/crates/mint-core/src/skills.rs +128 -25
  33. package/crates/mint-core/src/video_gen.rs +235 -0
  34. package/package.json +8 -2
  35. package/shared-modules/linux-audio/fluidsynth2-static.json +9 -3
  36. package/shared-modules/linux-audio/fluidsynth2.json +8 -2
  37. package/shared-modules/linux-audio/lilv.json +26 -19
  38. package/shared-modules/linux-audio/lv2.json +0 -1
  39. package/shared-modules/luajit/luajit.json +2 -2
  40. package/skills-lock.json +41 -0
  41. package/src/renderer/index-web.html +1 -1
  42. package/src/renderer/index.html +1 -1
  43. package/src/renderer/shared/components/AgentActivityTable.tsx +25 -6
  44. package/src/renderer/shared/constants/slashCommands.ts +27 -0
  45. package/src/renderer/shared/platform.ts +3 -0
  46. package/src/renderer/shared/types.ts +4 -0
  47. package/src/renderer/shared/utils/approval.tsx +86 -7
  48. package/src/renderer/shared/utils/fileIcons.ts +135 -0
  49. package/src/renderer/shared/utils/markdown.tsx +217 -88
  50. package/src/renderer/shared/utils/slashCommandProcessor.ts +239 -0
  51. package/src/renderer/src/components/ChatPanel.tsx +486 -69
  52. package/src/renderer/src/components/DashboardSidebar.tsx +11 -2
  53. package/src/renderer/src/components/ImageStudioPanel.tsx +87 -4
  54. package/src/renderer/src/components/MintDashboard.tsx +195 -7
  55. package/src/renderer/src/components/PicturesLibrary.tsx +156 -15
  56. package/src/renderer/src/components/Settings/AgentsTab.tsx +21 -2
  57. package/src/renderer/src/components/Settings/AutomationTab.tsx +316 -18
  58. package/src/renderer/src/components/Settings/GeneralTab.tsx +795 -413
  59. package/src/renderer/src/components/Settings/PluginsTab.tsx +304 -70
  60. package/src/renderer/src/components/Settings/ThemeTab.tsx +6 -1
  61. package/src/renderer/src/components/SettingsWindow.tsx +106 -3
  62. package/src/renderer/src/components/VeoStudioPanel.tsx +549 -0
  63. package/src/renderer/src/components/WorkspacePanel.tsx +7 -125
  64. package/src/renderer/src/css/image-studio.css +106 -0
  65. package/src/renderer/src/css/settings.css +158 -0
  66. package/src/renderer/src/css/styles.css +368 -1
  67. package/src/renderer/src/css/veo-studio.css +626 -0
  68. package/src/renderer/src/index.css +1 -0
  69. package/src/renderer/src/tauri.ts +144 -17
  70. package/src/renderer/src-web/components/ChatPanel.tsx +385 -93
  71. package/src/renderer/src-web/components/DashboardSidebar.tsx +16 -1
  72. package/src/renderer/src-web/components/ImageStudioPanel.tsx +87 -4
  73. package/src/renderer/src-web/components/MintDashboard.tsx +156 -5
  74. package/src/renderer/src-web/components/PicturesLibrary.tsx +155 -15
  75. package/src/renderer/src-web/components/Settings/AgentsTab.tsx +21 -2
  76. package/src/renderer/src-web/components/Settings/AutomationTab.tsx +316 -18
  77. package/src/renderer/src-web/components/Settings/GeneralTab.tsx +795 -411
  78. package/src/renderer/src-web/components/Settings/PluginsTab.tsx +304 -70
  79. package/src/renderer/src-web/components/Settings/ThemeTab.tsx +6 -1
  80. package/src/renderer/src-web/components/SettingsWindow.tsx +110 -3
  81. package/src/renderer/src-web/components/VeoStudioPanel.tsx +549 -0
  82. package/src/renderer/src-web/css/image-studio.css +106 -0
  83. package/src/renderer/src-web/css/settings.css +158 -0
  84. package/src/renderer/src-web/css/styles.css +369 -1
  85. package/src/renderer/src-web/css/veo-studio.css +650 -0
  86. package/src/renderer/src-web/index.css +1 -0
  87. package/src/renderer/src-web/tauri.ts +135 -16
  88. package/src-tauri/src/desktop.rs +18 -16
  89. package/src-tauri/src/discord_rpc.rs +1 -1
  90. package/src-tauri/src/lib.rs +155 -25
  91. package/src-tauri/src/webhooks.rs +45 -31
  92. package/src-tauri/src/workflows.rs +1 -0
  93. package/src-tauri/tauri.conf.json +1 -1
  94. package/temp_gridgeist/AGENTS.md +8 -0
  95. package/temp_gridgeist/CHANGELOG.md +130 -0
  96. package/temp_gridgeist/LICENSE +21 -0
  97. package/temp_gridgeist/README.md +323 -0
  98. package/temp_gridgeist/README.th.md +325 -0
  99. package/temp_gridgeist/skills/gridgeist/SKILL.md +88 -0
  100. package/temp_gridgeist/skills/gridgeist/agents/openai.yaml +9 -0
  101. package/temp_gridgeist/skills/gridgeist/assets/gridgeist-small.svg +10 -0
  102. package/temp_gridgeist/skills/gridgeist/assets/gridgeist.png +0 -0
  103. package/temp_gridgeist/skills/gridgeist/assets/gridgeist.svg +18 -0
  104. package/temp_gridgeist/skills/gridgeist/references/design-language.md +88 -0
  105. package/temp_gridgeist/skills/gridgeist/references/review-checklist.md +128 -0
  106. package/temp_gridgeist/skills/gridgeist/references/system-contract.md +109 -0
package/Cargo.lock CHANGED
@@ -450,6 +450,19 @@ dependencies = [
450
450
  "memchr",
451
451
  ]
452
452
 
453
+ [[package]]
454
+ name = "console"
455
+ version = "0.15.11"
456
+ source = "registry+https://github.com/rust-lang/crates.io-index"
457
+ checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8"
458
+ dependencies = [
459
+ "encode_unicode",
460
+ "libc",
461
+ "once_cell",
462
+ "unicode-width",
463
+ "windows-sys 0.59.0",
464
+ ]
465
+
453
466
  [[package]]
454
467
  name = "cookie"
455
468
  version = "0.18.1"
@@ -864,6 +877,12 @@ version = "1.2.2"
864
877
  source = "registry+https://github.com/rust-lang/crates.io-index"
865
878
  checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7"
866
879
 
880
+ [[package]]
881
+ name = "encode_unicode"
882
+ version = "1.0.0"
883
+ source = "registry+https://github.com/rust-lang/crates.io-index"
884
+ checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0"
885
+
867
886
  [[package]]
868
887
  name = "equivalent"
869
888
  version = "1.0.2"
@@ -1762,6 +1781,19 @@ dependencies = [
1762
1781
  "serde_core",
1763
1782
  ]
1764
1783
 
1784
+ [[package]]
1785
+ name = "indicatif"
1786
+ version = "0.17.11"
1787
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1788
+ checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235"
1789
+ dependencies = [
1790
+ "console",
1791
+ "number_prefix",
1792
+ "portable-atomic",
1793
+ "unicode-width",
1794
+ "web-time",
1795
+ ]
1796
+
1765
1797
  [[package]]
1766
1798
  name = "infer"
1767
1799
  version = "0.19.0"
@@ -2095,7 +2127,7 @@ dependencies = [
2095
2127
 
2096
2128
  [[package]]
2097
2129
  name = "mint-cli"
2098
- version = "1.8.2"
2130
+ version = "1.10.0"
2099
2131
  dependencies = [
2100
2132
  "anyhow",
2101
2133
  "base64 0.22.1",
@@ -2103,6 +2135,7 @@ dependencies = [
2103
2135
  "clap",
2104
2136
  "crossterm",
2105
2137
  "dirs",
2138
+ "indicatif",
2106
2139
  "mint-core",
2107
2140
  "reqwest 0.12.28",
2108
2141
  "serde",
@@ -2114,7 +2147,7 @@ dependencies = [
2114
2147
 
2115
2148
  [[package]]
2116
2149
  name = "mint-core"
2117
- version = "1.8.2"
2150
+ version = "1.10.0"
2118
2151
  dependencies = [
2119
2152
  "base64 0.22.1",
2120
2153
  "chrono",
@@ -2128,6 +2161,7 @@ dependencies = [
2128
2161
  "serde",
2129
2162
  "serde_json",
2130
2163
  "sha2",
2164
+ "similar",
2131
2165
  "thiserror 2.0.18",
2132
2166
  "tokio",
2133
2167
  "tokio-tungstenite",
@@ -2135,7 +2169,7 @@ dependencies = [
2135
2169
 
2136
2170
  [[package]]
2137
2171
  name = "mint-desktop"
2138
- version = "1.8.2"
2172
+ version = "1.10.0"
2139
2173
  dependencies = [
2140
2174
  "base64 0.22.1",
2141
2175
  "dirs",
@@ -2265,6 +2299,12 @@ dependencies = [
2265
2299
  "syn 2.0.117",
2266
2300
  ]
2267
2301
 
2302
+ [[package]]
2303
+ name = "number_prefix"
2304
+ version = "0.4.0"
2305
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2306
+ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
2307
+
2268
2308
  [[package]]
2269
2309
  name = "objc2"
2270
2310
  version = "0.6.4"
@@ -2669,6 +2709,12 @@ dependencies = [
2669
2709
  "miniz_oxide",
2670
2710
  ]
2671
2711
 
2712
+ [[package]]
2713
+ name = "portable-atomic"
2714
+ version = "1.13.1"
2715
+ source = "registry+https://github.com/rust-lang/crates.io-index"
2716
+ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
2717
+
2672
2718
  [[package]]
2673
2719
  name = "potential_utf"
2674
2720
  version = "0.1.5"
@@ -3579,6 +3625,12 @@ version = "0.1.5"
3579
3625
  source = "registry+https://github.com/rust-lang/crates.io-index"
3580
3626
  checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e"
3581
3627
 
3628
+ [[package]]
3629
+ name = "similar"
3630
+ version = "2.7.0"
3631
+ source = "registry+https://github.com/rust-lang/crates.io-index"
3632
+ checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa"
3633
+
3582
3634
  [[package]]
3583
3635
  name = "siphasher"
3584
3636
  version = "1.0.3"
package/Cargo.toml CHANGED
@@ -7,7 +7,7 @@ members = [
7
7
  resolver = "2"
8
8
 
9
9
  [workspace.package]
10
- version = "1.8.2"
10
+ version = "1.10.0"
11
11
  edition = "2024"
12
12
  license = "AGPL-3.0-only"
13
13
 
@@ -27,6 +27,7 @@ rusqlite = { version = "0.37", features = ["bundled"] }
27
27
  serde = { version = "1", features = ["derive"] }
28
28
  serde_json = "1"
29
29
  sha2 = "0.10"
30
+ similar = "2"
30
31
  thiserror = "2"
31
32
  tokio = { version = "1", features = ["io-util", "macros", "net", "rt-multi-thread", "time", "signal"] }
32
33
  tokio-tungstenite = { version = "0.28", features = ["rustls-tls-webpki-roots"] }
package/Release_Note.md CHANGED
@@ -1,129 +1,319 @@
1
- # Release Notes - Mint Agent v1.8.2
1
+ # Release Notes - Mint Agent v1.10.0
2
2
 
3
- We are excited to release **Mint Agent v1.8.2**! This release introduces a configurable Multi-Agent system for sequential collaboration, powerful local workspace file management features, real-time AI-generated workflow suggestions in the user's active language, mobile layout optimization, and general UI/UX polish.
3
+ We are excited to release **Mint Agent v1.10.0**! This version introduces major enhancements across CLI, Desktop, Web, Multimodal Video, Remote Messaging Bridges, Browser Automation, LaTeX Sanitization, and **AI Image-to-Image & Inpainting Editing Capabilities**.
4
4
 
5
5
  ---
6
6
 
7
- ## ๐Ÿ” Web Search Source Cards
8
- - **Favicon Source Cards:** After a web search, compact clickable source cards now appear above the AI response bubble โ€” each showing the website's favicon, domain name, and a tooltip with the page snippet. Clicking a card opens the source in the browser.
9
- - **Frontend-only change:** Parsed directly from existing `AgentProgress` `ToolEnd` events โ€” no backend changes required.
10
- - The AI response also includes a plain-text `Sources:` section listing title and URL for each result used.
7
+ ## ๐Ÿ“‹ Message Action Bar & UI Clean Up (Web & Desktop UI)
8
+
9
+ - **Message Copy Button & Action Bar**:
10
+ - Added a Copy Button to AI responses in both Desktop UI (`src/renderer/src`) and Web UI (`src/renderer/src-web`).
11
+ - Interactive status feedback: copies message text to clipboard with instant visual checkmark (โœ“) and copied tooltip state.
12
+ - **Mint Web & API Server Terminal Logging & Diagnostics**:
13
+ - Implemented real-time filtered terminal logging for both `mint web` and `mint api` modes in `mint-cli` and `mint-core` (`crates/mint-core/src/api_server.rs`).
14
+ - Terminal now displays real-time colorized API Requests (e.g. `[14:30:15] [API] POST /api/chat -> 200 OK`, `/api/status`, `/api/image-generate`, `/api/video-generate`) and Error Logs (`[14:30:15] [ERROR] API /api/video-generate error`) while keeping verbose frontend asset logs silent.
15
+ - **Google Veo 2 Video Generation Fix & Diagnostics**:
16
+ - Updated Google Veo default model endpoint in `mint-core` (`crates/mint-core/src/video_gen.rs`) from deprecated preview string `veo-2.0-flash-exp` to official model identifier `veo-2.0-generate-001`.
17
+ - Added automatic model fallback to `veo-2.0-flash-001` and descriptive error guidance (`ModelNotFound`) explaining Google Cloud / AI Studio API Key whitelisting requirements if 404 is returned.
18
+
19
+ ---
20
+
21
+ ## ๐ŸŽจ Image-to-Image & Inpainting (Image Editing) Support
22
+
23
+ Mint Agent now supports full AI Image Editing (Image-to-Image and Inpainting)! Users can provide an existing image, specify modification instructions (such as *"remove background objects"*, *"change coat color to red"*), and generate edited images directly.
24
+
25
+ ### Features Added & Enhancements
26
+ - **Multi-Provider Image Editing**:
27
+ - **Replicate**: Instruction-based editing via `timbrooks/instruct-pix2pix` and mask inpainting via `black-forest-labs/flux-fill-dev`.
28
+ - **Stability AI**: Integrated Stability Image Edit / Inpaint REST API endpoints (`/v2beta/stable-image/edit/inpaint`).
29
+ - **DALLยทE**: Integrated OpenAI `/v1/images/edits` endpoint when image input is provided.
30
+ - **Provider Validation**: Automatically returns clear guidance if text-only image models (like Gemini NanoBanana) are selected for image editing.
31
+ - **New `/edit-image` Slash Command & Redesigned Image Studio UI**:
32
+ - Usage in CLI: `/edit-image <image_path> <instruction>`
33
+ - Image Studio UI (Web & Desktop): Redesigned image upload area into a premium **Drag & Drop Zone** with custom upload styling, SVG icons, hover animations, thumbnail previews, and instant file removal.
34
+ - Parity: Implemented across both Desktop UI (`src/renderer/src`) and Web UI (`src/renderer/src-web`).
35
+ - **`AGENTS.md` Workspace Rules & Skills Autoloading**:
36
+ - Automatically scans and loads workspace rule files (`.agents/AGENTS.md`, `AGENTS.md`, `~/.gemini/config/AGENTS.md`) into system instruction prompt contexts, REST API endpoint (`GET /api/learned-skills`), Tauri Desktop IPC (`list_learned_skills`), and UI autocompletes.
37
+ - Full Parity: Verified and supported across CLI (`mint`), Desktop UI (`src/renderer/src`), and Web UI (`src/renderer/src-web`).
38
+ - **File Approval Target Path, Line Numbers & Diff Stats (`+additions -deletions`)**:
39
+ - Enhanced file modification and creation approval cards to display exact target file paths, line numbers on the left margin (parsed from Unified Diff hunk headers), and line addition/deletion counts (e.g. `path/to/file.rs (+15 -3)`) matching Codex-style diff previews.
40
+ - Integrated `similar` (Myers Diff Algorithm) into `mint-core`'s `full_file_diff` generator to produce clean line-by-line diff previews with 3 context lines, eliminating whole-file replacement previews.
41
+ - Full Parity: Supported across CLI (`crates/mint-cli`), Desktop UI (`src/renderer/src`), and Web UI (`src/renderer/src-web`).
42
+
43
+ ---
44
+
45
+ ## โšก Functional Slash Commands & `@` Context Autocomplete in Web & Desktop UI
46
+
47
+ This update brings full CLI slash command execution capabilities and `@` context mention autocomplete to both Web and Desktop interfaces.
48
+
49
+ ### Features Added & Enhancements
50
+
51
+ - **Direct Keyboard Triggers (`/` and `@`)**: Type `/` to open the slash commands menu or `@` to trigger workspace context mentions directly inside the chat textarea.
52
+ - **Fluid Micro-Animations & Elastic Physics**: Added cubic-bezier spring pop-in animations (`cubic-bezier(0.16, 1, 0.3, 1)`), smooth hover translations (`translateX(4px)`), rotation transitions (`transform: rotate(45deg)`), and active button click scaling for all chat tools, popups, and autocomplete items.
53
+ - **Persistence Fix for System Response Cards**: Updated `save_system_interaction` in Rust (`src-tauri` & `mint-core`) and frontend IPC APIs (`tauri.ts`) to persist `aiText` output into the SQLite database. Previously, reopening the app restored commands like `/stats` or `/help` with an empty response card because `ai_text` was saved as an empty string. Now system outputs are fully preserved across app restarts.
54
+ - **CLI Parity Command Handlers**:
55
+ - `/help`: Displays formatted interactive command table in chat.
56
+ - `/fast [on|off]`: Toggles fast mode and thinking trace visibility.
57
+ - `/code <task>`: Enables code-agent mode and submits `<task>`.
58
+ - `/cd [path]`: Changes active workspace directory or opens folder picker.
59
+ - `/models [name]`: Lists active providers & models or switches active model.
60
+ - `/stats`: Displays rich session statistics system card (workspace, interactions, provider, model).
61
+ - `/multi-agent [on|off]`: Toggles Multi-Agent Collaboration system.
62
+ - `/image` & `/paste`: Triggers file dialog or clipboard image attachment.
63
+ - `/veo <prompt>`: Routes to Veo video generation studio.
64
+ - **`@` Context Mention Autocomplete**: Added popup suggestion menu for `@workspace`, `@file`, `@docs`, and `@memory` mentions when typing `@` or clicking the `@` toolbar button.
65
+
66
+ ---
67
+
68
+
69
+ ## ๐Ÿ› ๏ธ Deduplicated Settings System Events
70
+
71
+ This update fixes an issue where saving settings without changing AI providers or models logged redundant `provider_change` system event badges in the chat timeline.
72
+
73
+ ### Bug Fixes & Enhancements
74
+
75
+ - **Backend Deduplication (`set_active_model`)**: Updated `set_active_model` in `config.rs` to compare previous provider and active model against new values, ensuring system interaction events are only written to the database when provider or model actually changes.
76
+ - **Frontend Deduplication (`SettingsWindow.tsx` & `MintDashboard.tsx`)**: Updated settings save handlers and provider/model switch handlers in both Desktop and Web renderers to verify whether provider or model changed before invoking `setActiveModel` or `saveSystemInteraction`.
77
+
78
+ ---
79
+
80
+ ## ๐Ÿ–ฅ๏ธ Minimalist CLI Security Approval UI Redesign
81
+
82
+ This release overhauls the interactive CLI approval prompt (`AgentApproval`) for MCP tools, local shell commands, file edits, note creation, and plugin executions into a modern, emoji-free **Minimalist Divider Badge** card layout.
83
+
84
+ ### Features Added & Enhancements
85
+
86
+ - **Minimalist Divider Badge Cards**: Formatted security checks into clean 2-column key-value tables (`Server โ”‚ gmail`, `Tool โ”‚ list_tools`, `Command โ”‚ git status`) bounded by sleek ANSI divider lines.
87
+ - **Emoji-Free Modern Terminal Style**: Removed distracting emoji icons for a crisp, high-contrast developer terminal aesthetic (`BRIGHT`, `BLUE`, `DIM`, `MINT`).
88
+ - **Descriptive Action Options**: Updated the interactive selection menu with explicit choice descriptions:
89
+ - `1. Approve (Once)` - Allow single execution
90
+ - `2. Approve (Entire Session)` - Auto-approve throughout session
91
+ - `3. Deny` - Cancel action
92
+
93
+ ---
94
+
95
+ ## ๐Ÿ‡น๐Ÿ‡ญ Thai Language Typography & Chat Panel Spacing Enhancement
96
+
97
+ This update addresses cramped text rendering, missing paragraph line breaks, unformatted ordered/bullet lists, and unclickable markdown links in the chat interface.
98
+
99
+ ### Features Added & Enhancements
100
+
101
+ - **Thai Typography & Line Height**: Increased line-height from tight defaults to `1.7` and added font fallbacks (`Prompt`, `Sarabun`, `Noto Sans Thai`, `Kanit`) for clear rendering of Thai upper/lower diacritics and vowels.
102
+ - **Structured Block Rendering**: Refactored `markdown.tsx` to group text into clean block paragraphs (`.chat-paragraph`), section titles (`.chat-section-title`), and structured list items with distinct margins.
103
+ - **Ordered & Bullet List Formatting**: Lines starting with `1.`, `2.`, `(1)`, `-`, `*`, or `โ€ข` are parsed into dedicated flex list elements (`.chat-list-item`) with custom centered vector CSS circle dot markers for pixel-perfect vertical alignment across all Thai/English fonts.
104
+ - **Interactive Markdown & Raw URL Links**: Added inline link parsing for `[label](url)` and raw `https://...` URLs, converting them into clickable external links (`.chat-link`).
105
+ - **UI Font Family Selector**: Expanded the Font Family dropdown in **Settings > Theme & UI** with Google Fonts support for `Prompt`, `Sarabun`, `Kanit`, `Mitr`, `Noto Sans Thai`, `Mali`, `Inter`, and `Fira Code`.
106
+
107
+ ---
108
+
109
+ ## ๐Ÿ”ฃ LaTeX Symbol & `ightarrow` Sanitization
110
+
111
+ This update enhances markdown and CLI sanitization to automatically convert unescaped LaTeX symbols into Unicode symbols even when printed without LaTeX delimiters `$`.
112
+
113
+ ### Features Added & Enhancements
114
+
115
+ - **Bare LaTeX Symbol Conversion**: Updated `sanitizeLatex` in `markdown.tsx` and `sanitize_latex` in `agent.rs` to convert unescaped symbols like `ightarrow`, `\rightarrow`, `\leftarrow`, `\Rightarrow`, etc. directly into Unicode arrows (`โ†’`, `โ†`, `โ‡’`).
116
+ - **Standalone `ightarrow` Cleanup**: Fixes garbled outputs from LLMs where string escape sequences swallow `\r` from `\rightarrow`, automatically replacing plain text `ightarrow` with `โ†’`.
117
+ - **Frontend & CLI Parity**: Ensures both UI message rendering (`markdown.tsx`) and CLI terminal outputs (`agent.rs`) sanitize LaTeX math symbols consistently.
118
+
119
+ ---
120
+
121
+ ## ๐Ÿงฉ New Agent Skills Installation
122
+
123
+ Installed new external agent skills to enhance the workspace's capability and discipline.
124
+
125
+ ### Skills Added
126
+ - **Gridgeist**: Installed the `gridgeist` skill from `ohmiler/gridgeist` repository into `.agents/skills/gridgeist`, including agents, assets, and design references.
127
+
128
+ ---
129
+
130
+ ## ๐Ÿ”„ Unified AI Model Switch & Real-time Synchronization
131
+
132
+ This update standardizes model switching across **CLI**, **Desktop (Tauri)**, and **Web** into a single unified implementation, eliminating out-of-sync status badges, inconsistent format strings, and outdated model indicators.
133
+
134
+ ### Features Added & Enhancements
135
+
136
+ | Feature | Description |
137
+ |---|---|
138
+ | **Single Source of Truth (`set_active_model`)** | Added `set_active_model(provider, model)` to `MintConfig` in `mint-core` as the unified function for updating active AI providers and models. |
139
+ | **Unified Event Log Format** | Standardized the system event interaction message format across CLI, Desktop, and Web: `<provider> โ€ข <model>` (e.g. `gemini โ€ข gemini-2.5-flash`). |
140
+ | **MCP & Plugins Custom SVG Icons** | Replaced emoji icons with high-resolution vector SVGs for Docker, Git, GitHub, Node.js, Spotify, Discord, and Servers. Added custom SVG code, Image URL, and Preset icon support for Custom MCP Servers in Settings UI. |
141
+ | **MCP Server Inline Edit Drawer (โœ๏ธ)** | Added inline expandable configuration panel directly inside each MCP Server card to easily modify Command, Arguments, SVG Icon, and Environment Variables in place. |
142
+ | **Real-time Event Broadcast (`settings-changed`)** | Emits real-time setting change events to Tauri listeners and HTTP clients whenever the model is changed from CLI, Settings UI, or API endpoints. |
143
+ | **Window Focus & Post-Send Sync** | Frontend UI automatically refreshes runtime status on window focus (`window.addEventListener('focus', ...)`) and post-message completion so status badges update instantly without manual app restart. |
144
+ | **General Tab Collapsible Accordion** | Added collapsible section headers (AI Routing, Search, Productivity, Image Gen, Video Gen, Custom Providers, Desktop Updates) with "Expand All" & "Collapse All" quick controls for a clean and readable Settings experience. |
145
+
146
+ ---
147
+
148
+ ## ๐ŸŒ Remote Mint Agent โ€” Messaging Bridges & Remote Workspace Control
149
+
150
+ This update enhances **Telegram**, **Discord**, **Slack**, **LINE**, and **WhatsApp Cloud** bridges to enable full remote control of the Mint Agent, active workspace path resolution, agent loop execution, session isolation, and configurable webhook endpoints.
151
+
152
+ ### Features Added & Enhancements
153
+
154
+ | Feature | Description |
155
+ |---|---|
156
+ | **Active Workspace Path Resolution** | Automatically resolves the active Desktop workspace path when requests arrive from Telegram, Discord, Slack, LINE, or WhatsApp (`workspace_path`), allowing the AI to inspect and read local files relative to the project directory. |
157
+ | **Session Isolation (`chat_id`)** | Assigns deterministic platform chat IDs (`telegram:<id>`, `discord:<channel_id>`, `slack:<channel_id>`, `line:<user_id>`, `whatsapp:<phone>`) so conversations and memory history remain isolated per channel/user instead of merging into default chat. |
158
+ | **Agent Loop Remote Intent Execution** | Automatically detects action/execution intents (e.g. *"เนเธเน‰เน‚เธ„เน‰เธ”"*, *"เธ”เธนเน„เธŸเธฅเนŒ"*, *"เธฃเธฑเธ™ test"*, *"fix"*, *"build"*) from channel messages and invokes `orchestrate_agent_loop` to perform multi-step file reads and tool executions on the local machine. |
159
+ | **Instant Remote Ack Notification** | Immediately sends typing indicators and acknowledgement messages (`[Mint Agent] Remote command received, processing...`) when remote messages arrive via Telegram, Discord, LINE, or WhatsApp so users get instant feedback. |
160
+ | **Configurable Webhook Host & Port** | Added `lineWebhookHost`, `lineWebhookPort`, `whatsappWebhookHost`, `whatsappWebhookPort` to `MintConfig` and updated Tauri webhook handlers to allow binding to custom hosts (e.g. `0.0.0.0`) for public tunnel exposure. |
161
+ | **Automation Settings UI Redesign** | Redesigned the Native Channel Bridges UI in Settings > Automation into premium modern cards with platform color badges (Telegram โœˆ๏ธ, Discord ๐Ÿ’ฌ, Slack ๐Ÿ’ผ, LINE ๐ŸŸข, WhatsApp ๐Ÿ“ž), active status indicators (`Active` vs `Disabled`), toggle switches, styled inputs, and global Instant Ack notification options. |
162
+
163
+ ### Files Changed
164
+
165
+ - `crates/mint-core/src/config.rs` โ€” Added `active_workspace_path()`, `bridge_ack_enabled()`, `bridge_ack_message()`, and webhook host/port helpers to `MintConfig`.
166
+ - `crates/mint-core/src/channels.rs` โ€” Added `answer_channel` with workspace path resolution, action intent classification, agent loop execution, instant typing indicators, and platform session `chat_id` forwarding.
167
+ - `src-tauri/src/webhooks.rs` โ€” Updated LINE and WhatsApp handlers to send instant acknowledgement notifications, use configurable host/port, extract user/phone IDs for session isolation, and delegate to `answer_channel`.
168
+ - `src-tauri/src/lib.rs` โ€” Updated `send_chat_message` and `stream_chat_message` to automatically persist `activeWorkspacePath` into `MintConfig` when a workspace is opened or used.
169
+ - `src/renderer/src/components/Settings/AutomationTab.tsx` & `src/renderer/src-web/components/Settings/AutomationTab.tsx` โ€” Added UI input fields for LINE & WhatsApp Webhook Host and Port settings.
170
+
171
+ ---
172
+
173
+ ## ๐Ÿ“น Multimodal Video Attachments & Web Veo Studio Integration
174
+
175
+ This update introduces full support for sending video attachments, saving sent videos to local storage, filtering photos vs. videos in the Gallery, and enabling Veo Studio in the web build.
176
+
177
+ ### Features Added
178
+
179
+ | Feature | Description |
180
+ |---|---|
181
+ | **Multimodal Video Support** | Attached videos (`.mp4`, `.webm`, `.mov`, `.mkv`) are sent as base64 `inlineData` payloads to Google Gemini API. Supported in Desktop/Web compose panels. |
182
+ | **Save Attached Videos to Disk** | Videos sent through the chat interface are automatically saved to `<config_path>/../Pictures/` with timestamped names, bypassing standard image thumbnail generation, and indexed in `index.json`. |
183
+ | **Photo/Video Gallery Tabs** | Added **Photos** ๐Ÿ“ท and **Videos** ๐Ÿ“น tabs to the Saved Pictures gallery (both Desktop and Web builds). Video files render using native HTML5 `<video>` tags with controls. |
184
+ | **Web Veo Studio Integration** | Ported and enabled the **Veo Studio** video generation panel in the web build (`src-web`). Added a sidebar navigation entry and integrated the React workspace. |
185
+ | **Video Placeholder & Agent Mode** | Displays `[Video #1]` visual indicator in the user's chat bubble during transmission. Enabled full video support in `Agent Mode` loops and Tauri API server. |
186
+
187
+ ### Files Changed
188
+
189
+ - `crates/mint-core/src/chat.rs` โ€” Added `video_data_uri` to `ChatRequest` and updated `gemini_parts` payload builder
190
+ - `crates/mint-core/src/api_server.rs` โ€” Exposed `video_data_uri` on HTTP routes, updated `orchestrate_agent_loop` calls, added saving of sent video attachments in `/api/chat` and `/api/chat-stream` endpoints, and added a `/api/thumbnails` route to serve generated video/image thumbnails on Web.
191
+ - `crates/mint-core/src/pictures.rs` โ€” Added video MIME parsing, thumbnail extraction, and fixed temporary video/frame file leakage under `/tmp`
192
+ - `crates/mint-core/src/orchestration.rs` โ€” Added `video_data_uri` parameter to `orchestrate_agent_loop` and forwarded it to fallback chat requests
193
+ - `crates/mint-cli/src/main.rs` โ€” Connected the Veo command to the real video generation backend.
194
+ - `crates/mint-cli/src/image.rs` โ€” Created `load_video_as_data_uri` helper
195
+ - `crates/mint-cli/src/interactive.rs` โ€” Handled saving pending videos, and connected the `/veo` interactive command to the real video generation backend.
196
+ - `crates/mint-cli/src/agent.rs` โ€” Updated `orchestrate_agent_loop` call
197
+ - `src-tauri/src/lib.rs` โ€” Updated `orchestrate_agent_loop` calls with `video_data_uri`, fixed a compilation error (mismatched types E0308) in `upload_file` command, and registered `upload_file` in `generate_handler!`.
198
+ - `src/renderer/shared/platform.ts` โ€” Updated `sendChatMessage` / `streamChatMessage` signatures
199
+ - `src/renderer/src/tauri.ts` & `src/renderer/src-web/tauri.ts` โ€” Implemented video parameter forwarding and save commands
200
+ - `src/renderer/src/components/PicturesLibrary.tsx` & `src/renderer/src-web/components/PicturesLibrary.tsx` โ€” Added Photo/Video filter tabs, replaced playable HTML5 `<video>` tags with static thumbnail cards featuring a video badge, and set a fixed `4:3` aspect ratio on containers to prevent placeholder collapsing and ensure uniform sizing.
201
+ - `src/renderer/src/components/MintDashboard.tsx` & `src/renderer/src-web/components/MintDashboard.tsx` โ€” Wired video attachments, integrated VeoStudioPanel, and added `sendingVideoCount` state
202
+ - `src/renderer/src/components/ChatPanel.tsx` & `src/renderer/src-web/components/ChatPanel.tsx` โ€” Added video picker, previews, and `[Video #1]` placeholder rendering during sending
203
+ - `src/renderer/src-web/components/VeoStudioPanel.tsx` โ€” **[NEW]** Ported video generator workspace for web renderer
204
+
205
+ ---
206
+
207
+ ## ๐ŸŽฌ Veo Studio โ€” AI Video Generation Panel
208
+
209
+ This release introduces **Veo Studio**, a new dedicated panel for AI-powered video generation, accessible via the "More" menu in the sidebar.
210
+
211
+ ### Features Added
212
+
213
+ | Feature | Description |
214
+ |---|---|
215
+ | **Veo Studio panel** | New `VeoStudioPanel.tsx` component mirroring Image Studio's layout โ€” left controls pane + right video results pane |
216
+ | **Prompt input** | Full text prompt & optional negative prompt (collapsible) |
217
+ | **Style chips** | Quick-add style suggestions: `cinematic`, `slow motion`, `time-lapse`, `aerial view`, `documentary`, `animation`, `action`, `nature` |
218
+ | **Aspect ratio** | Toggle between `16:9`, `9:16`, and `1:1` video formats |
219
+ | **Duration selector** | Choose between `5s` or `8s` video length |
220
+ | **Provider & model dropdowns** | Google Veo 2.0 Flash (default) and Veo 3.0 Flash (preview) |
221
+ | **Video preview player** | Native `<video>` player with controls for reviewing generated videos |
222
+ | **Send to Chat** | One-click to send the prompt back to the Chat panel |
223
+ | **Recent prompts history** | Tracks last 8 prompts for quick reuse |
224
+ | **Purple/violet theme** | Distinct visual identity separating Veo Studio from Image Studio |
225
+ | **`mint veo` CLI command** | A new CLI command to generate videos from text prompts (e.g., `mint veo "a bird flying" --aspect 16:9 --duration 5`) |
226
+ | **`/veo` Slash Command** | A new slash command in interactive CLI chat mode to quickly trigger video generation (e.g., `/veo a dragon flying --aspect 16:9 --duration 8`) |
227
+
228
+
229
+ ### Files Changed
230
+
231
+ - `src/renderer/src/components/VeoStudioPanel.tsx` โ€” **[NEW]** React component
232
+ - `src/renderer/src/css/veo-studio.css` โ€” **[NEW]** CSS with purple accent palette
233
+ - `src/renderer/src/index.css` โ€” Added `@import './css/veo-studio.css'`
234
+ - `src/renderer/src/components/DashboardSidebar.tsx` โ€” Added `'veo'` view type + sidebar entry
235
+ - `src/renderer/src/components/MintDashboard.tsx` โ€” Imported and wired `VeoStudioPanel`
236
+ - `src/renderer/src/tauri.ts` โ€” Added `VideoGenRequest`, `VideoGenResponse`, `VideoGenEntry`, `VideoGenProviders` types + stub `generateVideo()` / `getVideoGenProviders()`
237
+
238
+ > **Note:** The backend video generation API (Veo REST integration) is stubbed and will be fully connected in the next update.
11
239
 
12
240
  ---
13
241
 
242
+ ## ๐Ÿ–ฑ๏ธ Browser Automation โ€” Native Mouse & Keyboard Control
243
+
244
+ This release significantly upgrades `mint auto` browser automation with real native input control via Chrome DevTools Protocol (CDP), matching the behavior seen in advanced AI browser agents.
14
245
 
15
- ## ๐Ÿš€ Key Features & Enhancements
246
+ ### New Tools
16
247
 
17
- ### ๐Ÿ›‘ 1. Escape (Esc) Key & Stop Button to Cancel AI Agent / Chat
18
- You can now cancel or stop an active AI stream or agent loop at any point in the web and desktop applications:
19
- - **Escape Key Press:** Pressing the `Esc` key while the AI is thinking or executing automatically aborts the active stream.
20
- - **Red Stop Composer Button:** When the AI is running, the composer "Send" button turns into a red "Stop" square icon button, allowing users to stop the generation instantly.
21
- - **Thinking Label Hints:** Updated the progress indicator label to explicitly display "Thinking for Xs (Esc to cancel)" so users are aware of the shortcut.
248
+ | Tool | Description |
249
+ |---|---|
250
+ | `browser_mouse_move` | Move the real mouse cursor to absolute (x,y) coordinates |
251
+ | `browser_mouse_click` | Native mousePressed + mouseReleased at (x,y) with configurable button |
252
+ | `browser_key_press` | Press real keyboard keys (Enter, Tab, Escape, F1โ€“F12, etc.) via CDP |
253
+ | `browser_screenshot` | Capture the current page as a base64 PNG image |
22
254
 
23
- ### ๐ŸŽ™๏ธ 2. Microphone Active Breathing Aura Glow
24
- When the microphone/voice mode is active, the boundaries of the chat composer box and the voice status bar light up with a dynamic, breathing green aura, providing intuitive visual feedback.
255
+ ### Upgraded Tools
25
256
 
26
- ### ๐Ÿค– 3. Configurable Multi-Agent System & Collaboration Pipeline
27
- Users can now configure and run multiple specialized AI agents (e.g. Planner, Coder, Reviewer) within the desktop and web settings panel, allocating custom models, providers, and instructions to each agent:
28
- - **Global Toggle Switch:** Added a main "Enable Multi-Agent Collaboration" toggle switch at the top of the new "Multi-Agent (Beta)" settings tab to globally turn on/off the agent routing pipeline.
29
- - **Provider-Specific Dropdowns:** Replaced the text input for model selection with provider-specific dropdown select lists matching the models available in General settings.
30
- - **Disable All Button:** Added a "Disable All" button allowing users to disable all configured agents instantly in one click.
31
- - **Real-Time Agent & Model Indicators:** The live thinking message bubble in the chat panel dynamically displays the active agent's name and model in real-time (e.g. `Planner (gemini-2.5-flash) is thinking...`).
257
+ - **`browser_click`**: Now uses native CDP mouse events (gets element coordinates via `getBoundingClientRect`, then dispatches `mousePressed`/`mouseReleased`), falling back to JS `.click()` for off-screen elements.
258
+ - **`browser_type`**: Upgraded to use `Input.insertText` CDP command (native keyboard), typing character by character like a real user. Also clicks the target element first to focus it.
32
259
 
33
- ### ๐Ÿ–ฅ๏ธ 4. CLI Suggestions Pagination & Ordering
34
- Improved the autocomplete experience in the terminal:
35
- - **Pagination (5 Items Max):** Autocomplete suggestions now display a maximum of 5 commands at a time with a page indicator (e.g., `Suggestions (1/4)`), preventing long list clutter.
36
- - **Alphabetical Sorting:** Autocomplete suggestions are sorted alphabetically at source.
37
- - **Simplified Exit Options:** Removed `/quit` from the autocomplete suggestions and help output (while retaining hidden execution support) to clean up the interface.
38
- - **Real-Time Agent & Model Status:** The CLI live thinking status bar dynamically displays which agent and model is executing.
260
+ ### Visual Cursor Overlay
261
+
262
+ - Browser pages controlled by `mint auto` now show an **animated mouse cursor** (SVG arrow with green stroke) that moves in real-time as the AI controls the mouse.
263
+ - The cursor has a smooth CSS transition and a click animation (scale shrink) when clicking.
264
+ - The green aura border remains and now coexists with the new cursor overlay.
265
+
266
+ ### Internal Architecture
267
+
268
+ - Added `cdp_call_raw()` โ€” lightweight CDP call without overlay injection, used for all Input.* and Page.captureScreenshot methods to avoid unnecessary JS round-trips.
269
+ - Added `get_element_coordinates(selector)` โ€” helper that returns viewport-relative (x,y) center of any CSS selector element.
270
+ - Added `type_text_native(text)` โ€” pure CDP keyboard input using `Input.insertText`.
271
+ - Added `key_to_cdp_params(key)` โ€” maps key names to `windowsVirtualKeyCode` and CDP code strings.
272
+ - **`AgentInput`** struct extended with `x: Option<f64>`, `y: Option<f64>`, `button: String`, `key: String` fields.
273
+ - Log display in `mint auto` updated with new emoji indicators: ๐Ÿ–ฑ๏ธ (mouse move), ๐Ÿ–ฑ๏ธโ— (click), โŒจ๏ธ (key press), ๐Ÿ“ธ (screenshot).
274
+
275
+ ---
39
276
 
40
- ### ๐Ÿ“‹ 5. Fix Clipboard Permission Popup on Text Paste (Ctrl+V)
41
- - Fixed a bug where pasting text (or pressing `Ctrl + V`) would trigger a browser-level clipboard permission warning popup (asking to "Allow Paste").
42
- - Removed the redundant global `keydown` Ctrl+V listener and the async `navigator.clipboard.read()` fallback on text paste events. The application now correctly relies on standard, synchronous `event.clipboardData` values during paste events, ensuring seamless pasting of both images and text without prompting the user.
43
277
 
44
- ### ๐Ÿ“ฆ 6. Codebase Refactoring & Shared Utilities
45
- - **Shared UI & Progress Helpers:** Refactored duplicate helper functions and TypeScript interfaces from the desktop renderer (`src/renderer/src`) and web renderer (`src/renderer/src-web`) into the unified `shared` codebase.
46
- - **Maintainability:** Standardized helper functions across both application targets to prevent future regressions.
47
278
 
48
- ### ๐Ÿ–ฅ๏ธ 7. Horizontal Scrolling for CLI Input Box
49
- - **Arbitrary Input Length:** Removed the single-line input constraint (previously restricted to `term_width - 4`) in the CLI interactive prompt, allowing users to type or edit long prompt instructions.
50
- - **Dynamic Sliding Window:** Implemented a horizontal scrolling viewport for the single-line prompt box. It dynamically slices and displays a subset of characters surrounding the cursor position to preserve console alignment and layout integrity.
51
- - **Interactive Cursor Navigation:** Bounded the arrow keys (`Left` and `Right` navigation) to trigger full box redraws, enabling the visible text window to scroll back and forward dynamically as the cursor moves.
279
+ ### ๐Ÿ–ฅ๏ธ 1. Rich Terminal Spinner Integration (`indicatif`)
280
+ - Added steady-tick green spinner loaders to keep the CLI interactive and visually responsive during blocking background operations:
281
+ - Repository metadata fetching and AI analysis (`GithubOverview`).
282
+ - Codebase indexing & syntax tree parsing (`Command::Symbols`).
283
+ - Semantic vector database embedding indexing (`SemanticCodeCommand::Index`).
284
+ - AI image generation (`Command::Imagine`).
285
+ - Wait for OAuth browser redirection flow (`GmailCommand::Auth`).
286
+ - Application updates check and NPM dependency installations (`updater`).
52
287
 
53
- ### ๐Ÿ–ฅ๏ธ 8. Browser Automation Visual Indicator (Green Aura)
54
- - **Visual Feedback:** Injects a breathing green glowing border overlay around the viewport of any browser page under active AI control.
55
- - **Non-Intrusive Design:** Built with `pointer-events: none` and a high z-index to ensure it sits on top of all page elements without blocking clicks, scrolling, or user interactions.
288
+ ### ๐Ÿค– 2. Dynamic Moon Walk Thinking Loader
289
+ - Replaced standard loaders with an elegant Moon phase vector animation loop (`๐ŸŒ‘`, `๐ŸŒ’`, `๐ŸŒ“`, `๐ŸŒ”`, `๐ŸŒ•`, `๐ŸŒ–`, `๐ŸŒ—`, `๐ŸŒ˜`) forced into a clean text-presentation style and glowing in a mint-green color.
290
+ - Implemented trailing dynamic dot padding (`""` -> `"."` -> `".."` -> `"..."` -> `""`) to keep line length constant and completely prevent terminal jitter.
56
291
 
57
- ### ๐ŸŽ™๏ธ 9. Client-Side Speech-to-Text Microphone Consolidation
58
- - **Consolidated Flow**: Standardized the voice interface to client-side Speech-to-Text (`SpeechRecognition`), enabling compatibility with all AI models (Gemini, OpenAI, Claude, etc.) by transcribing voice to text before sending.
59
- - **Accurate Speech End Detection**: Configured the Speech-to-Text engine to run in continuous mode (`continuous = true`) so it keeps listening continuously across normal speaking pauses. Added a custom silence timer that triggers sending only after a full 2 seconds of silence, and fixed a loop bug by triggering the timer only after the user starts speaking (preventing the mic from cycling on and off during initial silence).
60
- - **TTS Language Auto-Detection**: Added automatic Thai character detection in both frontend system voice lookup (now matching language tags case-insensitively) and backend Google Translate TTS generation, resolving the issue where Thai responses were read aloud in English voices.
61
- - **Codebase Simplification & Hook Refactoring**: Extracted all Speech-to-Text logic, Web Speech APIs, silence timers, and React states into a shared, reusable custom hook `useSpeechToText` in [speech.ts](file:///home/pheem49/vscode/Project/Mint-CLI/src/renderer/shared/utils/speech.ts). This cleaned up ~150 lines of duplicate code in both desktop and web `ChatPanel.tsx` components.
62
- - **Native App Guidance**: Added a helper prompt to notify users if they attempt to record voice in a browser or WebView that doesn't natively support SpeechRecognition (such as Firefox, Safari, or the Tauri desktop application on Linux/Windows), guiding them to use Google Chrome or Microsoft Edge instead.
292
+ ### ๐ŸŽจ 3. Glowing Bold Wave Text Scanner
293
+ - Added a floating light wave effect (`apply_wave_effect`) that slides color gradients (Cyan `BLUE`, Mint `MINT`, and Gray `DIM`) dynamically across the letters of the thinking text from left to right.
294
+ - Changed the font weight to bold (`\x1b[1m`) and characters to full-width (`๏ผด๏ฝˆ๏ฝ‰๏ฝŽ๏ฝ‹๏ฝ‰๏ฝŽ๏ฝ‡` / `๏ฝ‰๏ฝ“ ๏ฝ”๏ฝˆ๏ฝ‰๏ฝŽ๏ฝ‹๏ฝ‰๏ฝŽ๏ฝ‡`) to match CJK character scaling, making the text physically larger and highly prominent in the console.
63
295
 
64
- ### ๐Ÿ–ผ๏ธ 10. Saved Pictures Gallery Pagination & Caching
65
- - **24-Picture Pagination**: Refactored the Saved Pictures library component to load exactly 24 images initially, replacing the buggy automatic timer loading with a clean, manual "Load More" button at the bottom of the grid.
66
- - **Cache-Busting Image URLs**: Appended a dynamic timestamp query parameter (`?_t=...`) to the static API picture fetches and individual image URLs. This prevents the browser from loading stale lists or caching broken images, ensuring that clicking "Refresh" successfully resolves any missing or incomplete pictures.
296
+ ### ๐Ÿ“ฆ 4. Codebase Modularization & Refactoring
297
+ - Split `main.rs` into modular helper components (`markdown.rs`, `actions.rs`, `interactive.rs`) to improve structure and readability.
298
+ - Cleaned up unused compiler warning imports and standardized process exit codes.
67
299
 
68
- ### ๐Ÿค– 11. AI Model Self-Awareness Context Injection
69
- - **Dynamic Context Injection**: Updated the core prompt compilation layer to automatically append an `[Active Environment Context]` block to the system instructions. This supplies the active AI model name and provider to the AI model itself, allowing the AI to successfully know its own model configurations in real-time when queried by the user.
300
+ ### ๐Ÿงช 5. Automated CI/CD Workflow Releases
301
+ - Reconfigured the GitHub Actions compiler pipeline (`release.yml`) to automatically parse and publish this `Release_Note.md` directly as the release description body.
70
302
 
71
303
  ---
72
304
 
73
- ## ๐Ÿ› ๏ธ Codebase Changes
74
-
75
- ### Tauri Backend (`src-tauri` & `crates/mint-core`)
76
- - Register Tauri commands: `create_workspace_file`, `create_workspace_folder`, and `delete_workspace_item` in `src-tauri/src/lib.rs`.
77
- - Add `location` field to `LearnedSkillDto` and populate it based on workspace, global config, or database sources in `src-tauri/src/lib.rs`.
78
- - Update `workspace_root` path resolver in `src-tauri/src/lib.rs` to strip `src-tauri` from the active directory during dev mode.
79
- - Standardize process suggestion monitor logic to run AI prompt translations in the background thread inside `src-tauri/src/workflows.rs`.
80
- - Change `submit_tool_approval` signature and `ApprovalsState` pending channel type to support `ApprovalOutcome` in `src-tauri/src/lib.rs`.
81
- - Add executable search helper `which` and GitKraken auto-detection hooks to `load_config_from` in `crates/mint-core/src/config.rs`.
82
- - Support multiple source directory scanning and deduplication of learned skills in `crates/mint-core/src/skills.rs`.
83
- - Introduce a global `ACTIVE_AGENTS` thread-safe hash map registry and `cancel_agent` API in `crates/mint-core/src/lib.rs` to track active tokio tasks.
84
- - Register Tauri command `cancel_chat_message` in `src-tauri/src/lib.rs`.
85
- - Implement `POST /api/cancel-chat` in `crates/mint-core/src/api_server.rs` to cancel running web agent tasks.
86
- - Add `enable_agent_collaboration` config parameter (defaulting to `false`) in `crates/mint-core/src/config.rs`.
87
- - Update `resolve_agent_config` in `crates/mint-core/src/orchestration.rs` to return a tuple containing the active agent name and model, and check `enable_agent_collaboration`.
88
- - Expand `AgentProgress::Thinking` in `crates/mint-core/src/orchestration.rs` to optionally contain `agent_name` and `model_name`.
89
- - Inject active AI provider and model name environment context inside `enrich_request` and the initial prompt observation inside `crates/mint-core/src/orchestration.rs` so that the model becomes fully self-aware of its configuration and execution metadata.
90
- - Inject a green aura viewport border style and DOM overlay (`#mint-browser-aura`) into the active browser page before executing CDP automation actions in `crates/mint-core/src/browser.rs` to visually notify users of active AI control.
91
-
92
-
93
- ### Desktop/Web Frontend (`src/renderer`)
94
- - Integrate creation/deletion actions and focus/polling lifecycle listeners inside `WorkspacePanel.tsx`.
95
- - Redesign actions bar grid layouts inside `styles.css`.
96
- - Update inline markdown parser inside `ChatPanel.tsx` to wrap `@` mentions, and style `.chat-mention` in `index.css`.
97
- - Update `submitToolApproval` API and component state handlers (`MintDashboard.tsx`, `ChatPanel.tsx`) in both desktop and web directories to render and submit custom answers.
98
- - Update `activitiesFrom` and `AgentActivity` structure to parse and append the user's answer into the active `ask_user` tool target block upon `ToolEnd`.
99
- - Update `LearnedSkill` TypeScript interface in `src/renderer/src/tauri.ts` to include optional `location`.
100
- - Render colored location badges, strip lengthy content text boxes, and unify MCP toggles/delete controls in `src/renderer/src/components/Settings/PluginsTab.tsx` and `src/renderer/src-web/components/Settings/PluginsTab.tsx`.
101
- - Implement `cancelChatMessage` API helpers in `tauri.ts` for desktop and web.
102
- - Bind global Window keydown listeners for `Escape` key and dynamic "Stop" buttons in `ChatPanel.tsx` and `MintDashboard.tsx` under desktop and web source directories.
103
- - Enhance microphone connection/permission alert dialogs in `ChatPanel.tsx` to print the exact Web API error message for easier debugging.
104
- - Add voice-active class state and breathing keyframe animation effects around the chat input boundaries when microphone mode is active.
105
- - Refine the voice status bar rendering logic to prevent displaying redundant text (such as "Listening Listening...") and display actual user speech transcripts wrapped inside quotes instead.
106
- - Create new settings tab `AgentsTab.tsx` in desktop and web source directories supporting CRUD operations, provider-specific model dropdown selects, "Disable All" button, and global collaboration toggle.
107
- - Register the `Multi-Agent (Beta)` tab in the sidebar of `SettingsWindow.tsx`.
108
- - Update `ChatPanel.tsx` in desktop and web source directories to render the active agent and model names inside the live thinking status message.
109
- - Remove duplicate "Enable Multi-Agent Review" checkbox from `AutomationTab.tsx`.
110
- - Remove redundant `handleWindowKeyDown` Ctrl+V listeners, unused `onReadClipboardImage` prop, and `navigator.clipboard.read()` async fallback routines from `ChatPanel.tsx` and `MintDashboard.tsx` in both desktop and web directories to resolve browser clipboard permission warning popups during text pasting.
111
- - Refactor duplicated types (`DiffHunk`, `FileChange`), helper functions (`numericSetting`, `errorMessage`, `readImage`, `readDocument`, `createTrimmedImagePreview`, `lightenColor`, `hexToRgb`, `applyThemeStyles`), and progress parsers (`parseFileChangesFromProgress`) from the desktop and web components to a central `src/renderer/shared` repository. Corrected a type checking issue by exporting `AgentProgress` and `InteractionMemory` from `shared/agentProgress.ts`.
112
- - Consolidate microphone interface to client-side Speech-to-Text (`SpeechRecognition`), extract STT states, silence-detection timers, and event listeners into a reusable React hook `useSpeechToText` in [speech.ts](file:///home/pheem49/vscode/Project/Mint-CLI/src/renderer/shared/utils/speech.ts), and clean up both desktop (`src/renderer/src/components/ChatPanel.tsx`) and web (`src/renderer/src-web/components/ChatPanel.tsx`) `ChatPanel` components.
113
- - Implement 24-picture pagination, a manual "Load More" button, and API/image fetch cache-busters in `PicturesLibrary.tsx` and `tauri.ts` across desktop and web directories.
114
-
115
- ### CLI Agent (`crates/mint-cli`)
116
- - Redefine live status print lines (`plan_lines`, `tasks_lines`, `activities_lines`, `explored_lines`) to accept progress tick state and apply the `get_bullet` helper.
117
- - Update `render_live_status` in `crates/mint-cli/src/agent.rs` to compute true physical lines of terminal wrapped text, using a new `is_thai_combining` filter.
118
- - Modify `confirm` in `crates/mint-cli/src/main.rs` to indent confirmation prompts.
119
- - Format `mint learn --list` and `/learn` CLI output into a bullet-point summary showing active skill locations and source paths.
120
- - Register `/multi-agent` slash command to display configured agents and toggle collaboration status via `/multi-agent on` and `/multi-agent off` in `crates/mint-cli/src/main.rs`.
121
- - Reorder `AUTOCOMPLETE_COMMANDS` alphabetically and simplify exit suggestions by keeping only `/exit`.
122
- - Paginate suggestions to display at most 5 items per page with page numbers.
123
- - Fixed `AgentProgress::Thinking` pattern matching compiler error (E0027) in `crates/mint-cli/src/agent.rs` and render active agent and model names in the live thinking terminal status bar.
124
- - Implement horizontal scrolling viewport for the CLI prompt input box in `crates/mint-cli/src/main.rs`, slicing the visible text to fit the terminal screen and adjusting the cursor column offset accordingly, allowing arbitrary length instructions.
125
- - Save `provider_change` system interaction events to the database and render a beautiful styled horizontal divider in the console when switching models via `/models` inside `crates/mint-cli/src/main.rs`.
126
-
127
-
128
- ### Github CI/CD Workflows
129
- - Modify `Publish GitHub release` step in `.github/workflows/release.yml` to use `body_path: Release_Note.md`.
305
+ ## ๐Ÿ› ๏ธ Codebase Changes Summary
306
+ - **Tauri Backend**: Refactored learned skill directory resolver, process suggestion backgrounds, and added global active task cancel hooks (`ACTIVE_AGENTS`).
307
+ - **Web/Desktop Frontend**: Refactored component layout structures, consolidated client-side Speech-to-Text hooks, integrated Material Icon SVGs for agent file explorations, and cleaned up clipboard paste warnings.
308
+ - **CLI Agent**:
309
+ - Reorganized autocomplete commands alphabetically and paginated console inputs to 5 commands max per page.
310
+ - Added dynamic skill prompts (`$`).
311
+ - Added a Crossterm-based interactive arrow-key selection menu (themed in active Blue/Cyan highlight) to `/models`, `/image-provider`, `/fast`, `/multi-agent`, and `/clear` commands.
312
+ - Implemented a custom 24-bit Truecolor Mint-to-Blue gradient renderer for the ASCII welcome banner logo.
313
+ - Upgraded the "Thinking" status loader with a smooth 24-bit Truecolor sine-wave gradient wave animation, and restored standard English characters for cleaner rendering.
314
+ - Improved the MCP safety policy error with direct instructions to run `/mcp allow` to authorize blocked tools.
315
+ - Implemented background `stderr` and `stdout` monitoring for MCP servers to automatically detect OAuth URLs, increased default tool timeout to 30 seconds for slow `npx` resolution, and launch the default system browser with extended timeouts.
316
+ - Injected the list of available MCP servers directly into the system prompt's `mcp_tool` description in `orchestration.rs` to prevent agent naming hallucinations.
317
+ - Implemented the `mcp_list_tools` capability to allow the AI agent to query the complete list of registered tools from any configured MCP server dynamically, enabling self-discovery of tool APIs.
318
+ - Upgraded `/mcp` command to use a two-step interactive menu (themed in active Blue/Cyan highlight) to select a configured server first, show its status, and authorize all tools on the spot.
319
+ - **Workspace Skills Loading**: Modified skill loading to only supply metadata (name, description, path) for workspace-relative skills in the initial context, forcing the AI agent to explicitly invoke `read_file` to read the skill files. This makes skill reading visible as tool call logs in the user interface. Added chat history check to mark skills as READ on subsequent turns, preventing redundant reads on every turn.
package/bin/mint CHANGED
Binary file
@@ -22,3 +22,4 @@ tokio.workspace = true
22
22
  crossterm = "0.28"
23
23
  chrono.workspace = true
24
24
  textwrap = "0.16"
25
+ indicatif = "0.17"