free-coding-models 0.3.67 → 0.3.68

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 (171) hide show
  1. package/changelog/v0.1.1.md +3 -0
  2. package/changelog/v0.1.10.md +3 -0
  3. package/changelog/v0.1.11.md +10 -0
  4. package/changelog/v0.1.12.md +16 -0
  5. package/changelog/v0.1.13.md +3 -0
  6. package/changelog/v0.1.14.md +3 -0
  7. package/changelog/v0.1.15.md +3 -0
  8. package/changelog/v0.1.16.md +13 -0
  9. package/changelog/v0.1.17.md +3 -0
  10. package/changelog/v0.1.18.md +3 -0
  11. package/changelog/v0.1.19.md +3 -0
  12. package/changelog/v0.1.2.md +3 -0
  13. package/changelog/v0.1.20.md +14 -0
  14. package/changelog/v0.1.21.md +12 -0
  15. package/changelog/v0.1.22.md +6 -0
  16. package/changelog/v0.1.23.md +16 -0
  17. package/changelog/v0.1.24.md +9 -0
  18. package/changelog/v0.1.25.md +13 -0
  19. package/changelog/v0.1.26.md +6 -0
  20. package/changelog/v0.1.27.md +6 -0
  21. package/changelog/v0.1.28.md +5 -0
  22. package/changelog/v0.1.29.md +5 -0
  23. package/changelog/v0.1.3.md +3 -0
  24. package/changelog/v0.1.31.md +10 -0
  25. package/changelog/v0.1.32.md +8 -0
  26. package/changelog/v0.1.33.md +5 -0
  27. package/changelog/v0.1.34.md +6 -0
  28. package/changelog/v0.1.35.md +5 -0
  29. package/changelog/v0.1.36.md +16 -0
  30. package/changelog/v0.1.37.md +5 -0
  31. package/changelog/v0.1.38.md +9 -0
  32. package/changelog/v0.1.39.md +3 -0
  33. package/changelog/v0.1.4.md +3 -0
  34. package/changelog/v0.1.40.md +3 -0
  35. package/changelog/v0.1.41.md +11 -0
  36. package/changelog/v0.1.42.md +3 -0
  37. package/changelog/v0.1.43.md +3 -0
  38. package/changelog/v0.1.44.md +17 -0
  39. package/changelog/v0.1.45.md +6 -0
  40. package/changelog/v0.1.46.md +9 -0
  41. package/changelog/v0.1.47.md +6 -0
  42. package/changelog/v0.1.48.md +11 -0
  43. package/changelog/v0.1.49.md +10 -0
  44. package/changelog/v0.1.5.md +3 -0
  45. package/changelog/v0.1.50.md +7 -0
  46. package/changelog/v0.1.51.md +4 -0
  47. package/changelog/v0.1.52.md +10 -0
  48. package/changelog/v0.1.54.md +41 -0
  49. package/changelog/v0.1.55.md +3 -0
  50. package/changelog/v0.1.56.md +11 -0
  51. package/changelog/v0.1.57.md +7 -0
  52. package/changelog/v0.1.58.md +7 -0
  53. package/changelog/v0.1.59.md +7 -0
  54. package/changelog/v0.1.6.md +3 -0
  55. package/changelog/v0.1.60.md +7 -0
  56. package/changelog/v0.1.61.md +9 -0
  57. package/changelog/v0.1.62.md +9 -0
  58. package/changelog/v0.1.63.md +15 -0
  59. package/changelog/v0.1.64.md +22 -0
  60. package/changelog/v0.1.65.md +15 -0
  61. package/changelog/v0.1.66.md +22 -0
  62. package/changelog/v0.1.67.md +40 -0
  63. package/changelog/v0.1.68.md +38 -0
  64. package/changelog/v0.1.69.md +3 -0
  65. package/changelog/v0.1.7.md +3 -0
  66. package/changelog/v0.1.70.md +7 -0
  67. package/changelog/v0.1.71.md +7 -0
  68. package/changelog/v0.1.72.md +7 -0
  69. package/changelog/v0.1.73.md +7 -0
  70. package/changelog/v0.1.74.md +3 -0
  71. package/changelog/v0.1.75.md +9 -0
  72. package/changelog/v0.1.76.md +13 -0
  73. package/changelog/v0.1.77.md +13 -0
  74. package/changelog/v0.1.78.md +7 -0
  75. package/changelog/v0.1.79.md +8 -0
  76. package/changelog/v0.1.8.md +3 -0
  77. package/changelog/v0.1.80.md +7 -0
  78. package/changelog/v0.1.81.md +19 -0
  79. package/changelog/v0.1.82.md +9 -0
  80. package/changelog/v0.1.83.md +22 -0
  81. package/changelog/v0.1.84.md +25 -0
  82. package/changelog/v0.1.85.md +19 -0
  83. package/changelog/v0.1.86.md +17 -0
  84. package/changelog/v0.1.87.md +7 -0
  85. package/changelog/v0.1.88.md +167 -0
  86. package/changelog/v0.1.89.md +22 -0
  87. package/changelog/v0.1.9.md +3 -0
  88. package/changelog/v0.2.0.md +30 -0
  89. package/changelog/v0.2.1.md +17 -0
  90. package/changelog/v0.2.10.md +7 -0
  91. package/changelog/v0.2.11.md +6 -0
  92. package/changelog/v0.2.12.md +16 -0
  93. package/changelog/v0.2.13.md +16 -0
  94. package/changelog/v0.2.14.md +6 -0
  95. package/changelog/v0.2.15.md +6 -0
  96. package/changelog/v0.2.17.md +14 -0
  97. package/changelog/v0.2.2.md +16 -0
  98. package/changelog/v0.2.3.md +7 -0
  99. package/changelog/v0.2.4.md +7 -0
  100. package/changelog/v0.2.5.md +12 -0
  101. package/changelog/v0.2.7.md +3 -0
  102. package/changelog/v0.2.8.md +107 -0
  103. package/changelog/v0.2.9.md +10 -0
  104. package/changelog/v0.3.0.md +30 -0
  105. package/changelog/v0.3.1.md +17 -0
  106. package/changelog/v0.3.11.md +20 -0
  107. package/changelog/v0.3.12.md +18 -0
  108. package/changelog/v0.3.13.md +4 -0
  109. package/changelog/v0.3.14.md +6 -0
  110. package/changelog/v0.3.15.md +4 -0
  111. package/changelog/v0.3.16.md +3 -0
  112. package/changelog/v0.3.17.md +4 -0
  113. package/changelog/v0.3.18.md +12 -0
  114. package/changelog/v0.3.19.md +12 -0
  115. package/changelog/v0.3.2.md +5 -0
  116. package/changelog/v0.3.21.md +13 -0
  117. package/changelog/v0.3.22.md +29 -0
  118. package/changelog/v0.3.23.md +12 -0
  119. package/changelog/v0.3.24.md +34 -0
  120. package/changelog/v0.3.25.md +40 -0
  121. package/changelog/v0.3.26.md +85 -0
  122. package/changelog/v0.3.28.md +3 -0
  123. package/changelog/v0.3.29.md +107 -0
  124. package/changelog/v0.3.3.md +11 -0
  125. package/changelog/v0.3.30.md +3 -0
  126. package/changelog/v0.3.31.md +113 -0
  127. package/changelog/v0.3.32.md +123 -0
  128. package/changelog/v0.3.33.md +129 -0
  129. package/changelog/v0.3.34.md +156 -0
  130. package/changelog/v0.3.35.md +173 -0
  131. package/changelog/v0.3.36.md +186 -0
  132. package/changelog/v0.3.37.md +182 -0
  133. package/changelog/v0.3.38.md +3 -0
  134. package/changelog/v0.3.39.md +3 -0
  135. package/changelog/v0.3.4.md +9 -0
  136. package/changelog/v0.3.40.md +18 -0
  137. package/changelog/v0.3.41.md +7 -0
  138. package/changelog/v0.3.42.md +9 -0
  139. package/changelog/v0.3.43.md +13 -0
  140. package/changelog/v0.3.44.md +10 -0
  141. package/changelog/v0.3.45.md +12 -0
  142. package/changelog/v0.3.46.md +5 -0
  143. package/changelog/v0.3.47.md +4 -0
  144. package/changelog/v0.3.48.md +10 -0
  145. package/changelog/v0.3.49.md +18 -0
  146. package/changelog/v0.3.5.md +5 -0
  147. package/changelog/v0.3.50.md +41 -0
  148. package/changelog/v0.3.51.md +37 -0
  149. package/changelog/v0.3.52.md +43 -0
  150. package/changelog/v0.3.54.md +55 -0
  151. package/changelog/v0.3.55.md +62 -0
  152. package/changelog/v0.3.56.md +53 -0
  153. package/changelog/v0.3.57.md +61 -0
  154. package/changelog/v0.3.58.md +10 -0
  155. package/changelog/v0.3.59.md +3 -0
  156. package/changelog/v0.3.6.md +12 -0
  157. package/changelog/v0.3.60.md +3 -0
  158. package/changelog/v0.3.61.md +3 -0
  159. package/changelog/v0.3.62.md +3 -0
  160. package/changelog/v0.3.63.md +20 -0
  161. package/changelog/v0.3.64.md +10 -0
  162. package/changelog/v0.3.65.md +10 -0
  163. package/changelog/v0.3.66.md +17 -0
  164. package/{CHANGELOG.md → changelog/v0.3.67.md} +1 -1
  165. package/changelog/v0.3.68.md +18 -0
  166. package/changelog/v0.3.9.md +10 -0
  167. package/package.json +3 -3
  168. package/sources.js +6 -8
  169. package/src/changelog-loader.js +41 -41
  170. package/web/dist/assets/{index-DCwSuNgI.js → index-Cfy_uz7_.js} +1 -1
  171. package/web/dist/index.html +1 -1
@@ -0,0 +1,16 @@
1
+ # Changelog v0.2.12 - 2026-03-14
2
+
3
+ ### Added
4
+ - **Auto-select models for all external tools**: All 10 supported tools (Aider, Crush, Goose, Claude Code, Codex, Gemini, Qwen, OpenHands, Amp, Pi) now automatically configure and pre-select the chosen model on launch — no manual model selection needed after pressing Enter.
5
+ - **Changelog loader utility**: New `src/changelog-loader.js` module parses CHANGELOG.md for future TUI integration to display changes directly in the app instead of opening a browser.
6
+
7
+ ### Fixed
8
+ - **Infinite update loop on startup**: Disabled forced auto-update that caused the app to detect the same update repeatedly after restarting. The app now checks for updates in the background without forcing installation.
9
+ - **Removed disruptive browser window**: The auto-update process no longer opens a browser window to show the changelog — it now shows update information in the terminal only.
10
+ - **Update failure tracking**: If update checks fail 3+ times, the app displays a prominent red footer warning: `⚠ OUTDATED version, please update` with manual update instructions instead of crashing.
11
+
12
+ ### Changed
13
+ - **OpenHands integration improved**: Now sets `LLM_MODEL` and `LLM_API_KEY` environment variables for proper model pre-selection on launch.
14
+ - **Amp integration improved**: Now writes `amp.model` to config file with the selected model ID.
15
+
16
+ ---
@@ -0,0 +1,16 @@
1
+ # Changelog v0.2.13 - 2026-03-14
2
+
3
+ ### Added
4
+ - **Persist UI view settings**: Tier filter (T key), provider filter (D key), and sort order now persist across session restarts — settings are saved to `~/.free-coding-models.json` under `config.settings` and automatically restored on next startup. Settings also mirror into active profiles so profile switching captures live view preferences.
5
+ - When T cycles tier: S+ tier is now remembered for next session
6
+ - When D cycles provider: Filtered provider is now remembered
7
+ - When sort keys (R/O/M/L/A/S/C/H/V/B/U) change order: Sort column and direction are now remembered
8
+ - Profile loading has priority over global `config.settings` so saved profiles override global defaults
9
+ - **Reset view settings (Shift+R)**: New keyboard shortcut to instantly reset tier filter, provider filter, and sort order to defaults (All tier, no provider filter, avg sort ascending). Also clears persisted settings from `config.settings` so next restart returns to factory defaults.
10
+ - Useful when you've customized your view but want a fresh start
11
+ - Does not affect favorites, API keys, or other settings — only view state
12
+
13
+ ### Changed
14
+ - **Help overlay (K key)**: Updated to document new Shift+R keybinding for resetting view settings
15
+
16
+ ---
@@ -0,0 +1,6 @@
1
+ # Changelog v0.2.14 - 2026-03-14
2
+
3
+ ### Fixed
4
+ - **Changelog scrolling viewport**: Scrolling in changelog details (N key) now respects viewport boundaries — content no longer scrolls beyond visible area. Down/PageDown/End keys now properly clamp to max scroll offset so you can view all content without it disappearing off screen.
5
+
6
+ ---
@@ -0,0 +1,6 @@
1
+ # Changelog v0.2.15 - 2026-03-15
2
+
3
+ ### Changed
4
+ - **Changelog scrolling experience**: Circular wrap-around scrolling in changelog details (N key) — up at the top now wraps to the bottom, down at the bottom wraps to the top. PageUp/PageDown also wrap for seamless infinite browsing, just like the main TUI list navigation. Home/End still jump to absolute first/last positions for quick access.
5
+
6
+ ---
@@ -0,0 +1,14 @@
1
+ # Changelog v0.2.17 - 2026-03-16
2
+
3
+ ### Added
4
+ - **All coding tools re-enabled in Z-cycle**: Aider, Claude Code, Codex CLI, Gemini CLI, Qwen Code, OpenHands, and Amp are now back in the public tool mode cycle alongside OpenCode, OpenClaw, Crush, Goose, and Pi — 13 tools total.
5
+ - **All coding tools available in Install Endpoints (Y key)**: The endpoint installer now supports all 13 tools as install targets, not just the original 5. Each tool gets its proper config format (JSON, YAML, or env file).
6
+ - **Connection mode choice in Install flow**: When installing endpoints (Y key), users now choose between **Direct Provider** (pure API connection) or **FCM Proxy** (local proxy with key rotation and usage tracking) — new Step 3 in the 5-step flow.
7
+ - **Install support for new tools**: Pi (models.json + settings.json), Aider (.aider.conf.yml), Amp (settings.json), Gemini (settings.json), Qwen (modelProviders config), Claude Code/Codex/OpenHands (sourceable env files at ~/.fcm-*-env).
8
+
9
+ ### Changed
10
+ - **Install Endpoints flow is now 5 steps**: Provider → Tool → Connection Mode → Scope → Models (was 4 steps without connection mode choice).
11
+ - **Tool labels in install overlay use metadata**: Tool names and emojis in the Y overlay now come from `tool-metadata.js` instead of hard-coded ternary chains — easier to maintain and always in sync.
12
+ - **Help overlay updated**: Z-cycle hint and CLI flag examples now list all 13 tools.
13
+
14
+ ---
@@ -0,0 +1,16 @@
1
+ # Changelog v0.2.2 - 2026-03-10
2
+
3
+ ### Added
4
+
5
+ - 🔌 Added a new `Y` install flow that pushes one configured provider directly into `OpenCode CLI`, `OpenCode Desktop`, `OpenClaw`, `Crush`, or `Goose`, with either the full catalog or a curated model subset.
6
+
7
+ ### Changed
8
+
9
+ - 🔄 Tracked endpoint installs are now refreshed automatically on future launches so managed tool catalogs stay aligned when provider model lists evolve.
10
+
11
+ ### Fixed
12
+
13
+ - 🔐 Clarified provider auth failures in the main table so configured keys rejected by a provider no longer appear as `NO KEY`.
14
+ - 🔁 Hardened Settings key tests with multi-model retries plus detailed diagnostics under Setup Instructions when a provider probe fails.
15
+ - 🏷️ Fixed Settings provider badges so configured keys show `Test` before the first probe, while providers without a key now show `Missing Key`.
16
+ - 🤗 Clarified the Hugging Face setup hint in Settings to require a fine-grained token with `Make calls to Inference Providers`.
@@ -0,0 +1,7 @@
1
+ # Changelog v0.2.3 - 2026-03-10
2
+
3
+ ### Fixed
4
+
5
+ - 🔧 Fixed Codestral API endpoint URL from `codestral.mistral.ai/v1` to `api.mistral.ai/v1` to align with Mistral AI's unified API platform. This resolves authentication failures when testing Codestral API keys in Settings.
6
+
7
+ ---
@@ -0,0 +1,7 @@
1
+ # Changelog v0.2.4 - 2026-03-10
2
+
3
+ ### Fixed
4
+
5
+ - 🔧 Fixed Configured Only filter (E key) not being applied at startup. The flag was initialized correctly but the filter function was never called on first render, causing all models to appear visible even when Configured Only mode was enabled.
6
+
7
+ ---
@@ -0,0 +1,12 @@
1
+ # Changelog v0.2.5 - 2026-03-10
2
+
3
+ ### Fixed
4
+
5
+ - 🔒 **Improved config save reliability** - API keys are now much safer from corruption and loss:
6
+ - Automatic backups before each save (keeps last 5 versions in `~/.free-coding-models.backups/`)
7
+ - Post-write verification confirms file was written correctly and data wasn't lost
8
+ - Explicit error handling instead of silent failures
9
+ - Auto-repair on startup if config is corrupted (restores from latest backup)
10
+ - Console notifications when backup is used or config is repaired
11
+
12
+ ---
@@ -0,0 +1,3 @@
1
+ # Changelog v0.2.7 - 2026-03-17
2
+
3
+ Improve Application Architecture and Error Handling
@@ -0,0 +1,107 @@
1
+ # Changelog v0.2.8 - 2026-03-13
2
+
3
+ ### Updated
4
+
5
+ - 📊 **Provider quota information refreshed** – Updated free‑tier request limits for NVIDIA NIM, Groq, Cerebras, Replicate, DeepInfra, and Fireworks AI in `src/provider-metadata.js` and the README.
6
+ - 📖 **README requirements section** – Added the latest quota details for each provider (40 req/min for NVIDIA, 30‑50 RPM for Groq, generous dev tier for Cerebras, 6 req/min free Replicate, 200 concurrent DeepInfra, 10 req/min free Fireworks) and clarified payment‑method dependent limits.
7
+ - 🛠️ **No functional code changes** – Metadata updates only; all tests continue to pass.
8
+
9
+ ### Added
10
+
11
+ - 📊 **Added `--json` flag for scriptable output** - Output model results as JSON for automation, CI/CD, and monitoring dashboards. Example: `free-coding-models --tier S --json | jq '.[0].modelId'`
12
+
13
+ - 💾 **Added persistent ping cache** - Cache ping results for 5 minutes to speed up subsequent runs:
14
+ - Cache stored in `~/.free-coding-models.cache.json`
15
+ - Automatic cache refresh on startup if stale
16
+ - Saves API rate limits and reduces wait time
17
+ - Cache is saved on exit for next run
18
+
19
+ - 🔐 **Added config file security check with auto-fix** - Warns if `~/.free-coding-models.json` has insecure permissions:
20
+ - Checks file permissions on startup
21
+ - Warns if file is readable by others (security risk)
22
+ - Offers one-click auto-fix with `chmod 600`
23
+ - Shows manual fix command if auto-fix fails or is declined
24
+
25
+ - 🎨 **Added provider colors to logs and settings** - Provider names are now colored the same way as in the main table:
26
+ - Settings overlay (P) shows colored provider names
27
+ - Fiable mode output uses colored provider names
28
+ - Tool launcher messages use colored provider names
29
+ - Request log overlay (X) shows colored provider names
30
+ - Consistent visual experience across all UI elements
31
+
32
+ ### Changed
33
+
34
+ - 📝 **Increased default log limit from 200 to 500 entries** - Request log overlay now shows up to 500 entries by default (previously 200)
35
+ - 🔀 **Added toggle for unlimited logs** - Press `A` in request log overlay to toggle between showing 500 entries or ALL logs
36
+ - ❌ **Enhanced visual failure indication in logs** - Failed requests with zero tokens now have:
37
+ - Dark red background (`rgb(40, 0, 0)`) on the entire row
38
+ - Model name in red
39
+ - Token column shows red cross emoji (✗) instead of token count
40
+ - Quick visual identification of errors vs successful requests
41
+ - 📝 **Updated documentation** - Added `--json` flag to CLI flags table in README.md with usage examples
42
+
43
+ - 🔌 Added `terminalcp` MCP server configuration for Claude Code to spawn and interact with the TUI headlessly. Agents can now visually test the terminal interface by capturing output and sending keystrokes programmatically. See AGENTS.md → "Testing the TUI with terminalcp" for usage.
44
+ - 🎨 **Added consistent branding header to all overlays** - Each overlay (Settings, Help, Log, Install Endpoints, Recommend, Feature Request, Bug Report) now displays:
45
+ - Free-coding-models logo with rocket emoji (🚀)
46
+ - Version number display
47
+ - Clean title on a separate line
48
+ - Consistent visual styling across all screens
49
+ - **Main table title now uses rocket emoji (🚀) and cyanBright color** for consistency with overlays
50
+
51
+ ### Changed
52
+
53
+ - 📝 **Updated documentation** - Added `--json` flag to CLI flags table in README.md with usage examples
54
+
55
+ - 📊 **Improved ping progress visibility** - Moved ping completion counter from the W badge to the main status bar:
56
+ - Now shows as `📦 49/59` next to model status counts (up/timeout/down)
57
+ - More prominent placement makes it easier to see ping progress at a glance
58
+ - W badge still shows interval, mode, and countdown to next ping
59
+
60
+ - 🧹 **Removed unnecessary blank line** - Overlays (Settings P, Help K, Log X) no longer have a blank line at the top, giving more vertical space for content
61
+
62
+ - 🔽 **Removed duplicate "CONFIGURED ONLY" badge** - The header no longer shows the "CONFIGURED ONLY" indicator since it's already displayed in the footer hints. This reduces header clutter while keeping the information visible.
63
+
64
+ - 🎨 **Enhanced Request Log (X) with colors and visual indicators**:
65
+ - **Latency gradient**: Green (<500ms) → Orange (<1000ms) → Yellow (<1500ms) → Red (≥1500ms) for quick performance assessment
66
+ - **Token opacity**: Light green (low usage) → Medium green → Bright green (high usage, >30k tokens)
67
+ - **Model coloring**: Matches status color for visual consistency
68
+ - **Status colors** - Distinct colors for each HTTP code:
69
+ - `200` ✅ → Bright green
70
+ - `400` → Dark magenta (#8B008B)
71
+ - `401` → Dark orchid (#9932CC)
72
+ - `403` → Medium orchid (#BA55D3)
73
+ - `404` → Dark red (crimson)
74
+ - `413` → Tomato red (#FF6347)
75
+ - `429` → Dark orange (#FFB90F)
76
+ - `500` → Crimson (#DC143C)
77
+ - `502` → Medium violet red (#C71585)
78
+ - `503` → Medium purple (#9370DB)
79
+ - `5xx` → Magenta (other 5xx errors)
80
+ - `0` → Dim gray (timeout/unknown)
81
+ - **Fixed token display bug**: Corrected chalk function calls that were showing JavaScript code instead of token counts
82
+
83
+ - 💖 **Added "Buy me a coffee" link to footer**:
84
+ - Added in main TUI footer next to Contributors link (buymeacoffee.com/vavanessadev)
85
+ - Added in Settings overlay (P) footer with credits "Made with 💖 & ☕ by vava-nessa"
86
+ - Warm orange color for the coffee link to match the cozy theme
87
+
88
+ ### Fixed
89
+
90
+ - 🖥️ **Overlays now use 100% terminal width** - All overlays (Settings P, Help K, Log X, Recommend Q, Feature J, Bug I) now dynamically adapt to full terminal width instead of fixed 116-column panels:
91
+ - Rate limits text is no longer truncated (full descriptions visible)
92
+ - Diagnostic messages wrap using available terminal width
93
+ - Separator lines extend to full terminal width
94
+ - Better readability on wider terminals
95
+
96
+ - 🔒 **Fixed profile loading to preserve API keys** - Loading a profile now MERGES apiKeys instead of replacing them:
97
+ - Keys in the profile override existing keys (allows profile-specific overrides)
98
+ - Keys NOT in the profile are preserved (prevents key loss when switching profiles)
99
+ - Fixes bug where switching profiles would cause API keys disappear
100
+ - Added test to verify merge behavior
101
+
102
+ - 📝 **Updated OpenRouter rate limits information**:
103
+ - README now includes detailed explanation of free tier quotas (50/day <$10 credits, 1000/day ≥$10)
104
+ - Settings overlay displays accurate rate limit text
105
+ - Added note about failed requests counting toward daily quota
106
+
107
+ ---
@@ -0,0 +1,10 @@
1
+ # Changelog v0.2.9 - 2026-03-14
2
+
3
+ ### Fixed
4
+ - **Discord link**: Updated expired invite URL to `https://discord.gg/f2AjwV2AN` in README and TUI footer
5
+
6
+ ### Added
7
+ - **Discord link health-check workflow**: New GitHub Actions workflow (`check-discord-link.yml`) runs every 12 hours, validates the Discord invite via the Discord API, and auto-opens an issue labeled `discord-link` if the link becomes invalid
8
+ - **Pi provider metadata**: Added `pi` provider entry to `src/provider-metadata.js` with light blue color, pi.dev signup URL, and setup hint for `@mariozechner/pi-coding-agent` integration
9
+
10
+ ---
@@ -0,0 +1,30 @@
1
+ # Changelog v0.3.0 - 2026-03-16
2
+
3
+ ## 🚀 FCM Proxy V2 — Always-on background proxy service
4
+
5
+ ### Added
6
+ - **Always-on background proxy service** — `launchd` (macOS) / `systemd` (Linux). All tools get free model access 24/7 without the TUI.
7
+ - **Anthropic wire format translation** — Claude Code works natively through FCM Proxy V2 (no external Python proxy needed).
8
+ - **`J` key shortcut** — Opens FCM Proxy V2 settings directly. Footer shows `📡 FCM Proxy V2 On/Off` badge.
9
+ - **Dedicated proxy overlay** — Full-page manager with status, restart, stop, force-kill, and log viewer.
10
+ - **CLI daemon subcommand** — `free-coding-models daemon [status|install|uninstall|restart|stop|logs]`
11
+ - **Stable proxy identity** — Persistent token & port (`18045`) survive restarts.
12
+ - **`GET /v1/health` + `/v1/stats`** — Health and stats endpoints for monitoring.
13
+ - **Hot-reload** — Config changes picked up automatically without restart.
14
+ - **Generalized proxy sync** (`src/proxy-sync.js`) — Single-endpoint config sync for 12 tools.
15
+ - **Retry backoff with jitter** — Progressive delays (0ms, 300ms, 800ms + jitter).
16
+ - **Automatic account cooldown** — 3+ consecutive failures → graduated cooldown (30s → 60s → 120s).
17
+
18
+ ### Changed
19
+ - **Rebranded to FCM Proxy V2** across all CLI messages, overlays, and services.
20
+ - **Proxy overlay generalized** — Tool selector, auto-sync toggle, and cleanup for any of 12 tools.
21
+ - **Feedback overlay redesigned** — `I` key opens unified "Feedback, bugs & requests".
22
+ - **Claude Code / Codex / Gemini require proxy** — Clear error message + instructions when proxy is off.
23
+ - **Goose launcher rewritten** — Writes `config.yaml` with `GOOSE_PROVIDER`/`GOOSE_MODEL` (replaces obsolete `OPENAI_HOST` env vars).
24
+ - **Crush launcher improved** — Removed `disable_default_providers`, sets both `models.large` + `models.small`.
25
+ - **Pi launcher improved** — Uses `--provider` and `--model` CLI flags for guaranteed auto-selection.
26
+
27
+ ### Fixed
28
+ - 20+ security & stability fixes including body size limits, stack trace leak prevention, SSE buffer overflow guards, `execSync` timeout safety, crash protections, and more.
29
+
30
+ **Full changelog:** https://github.com/vava-nessa/free-coding-models/blob/main/CHANGELOG.md
@@ -0,0 +1,17 @@
1
+ # Changelog v0.3.1 - 2026-03-16
2
+
3
+ ### Added
4
+ - **CLI `--help` output**: `free-coding-models --help` now prints the full launcher, analysis, config, and daemon command matrix in a non-interactive format.
5
+
6
+ ### Fixed
7
+ - **Outdated-version footer alert**: The main TUI now shows a full-width red footer line with manual `npm install -g free-coding-models@latest` recovery instructions, but only when a newer npm version is actually known.
8
+ - **Claude Code proxy auth conflict**: Proxy launches now sanitize inherited env vars and use only `ANTHROPIC_AUTH_TOKEN` + `ANTHROPIC_BASE_URL`, matching the `free-claude-code` contract instead of mixing Anthropic auth modes.
9
+ - **Codex CLI proxy routing**: Codex launches now force an explicit custom provider config and the proxy now supports `POST /v1/responses`, so `codex-cli 0.114.0` no longer depends on the broken built-in OAuth/base-url path.
10
+ - **Anthropic token counting**: Added `POST /v1/messages/count_tokens` with a fast local estimate so Claude-compatible clients keep their budgeting flow through FCM Proxy V2.
11
+ - **Gemini proxy failure mode**: Gemini launch now preflights the installed CLI/config, blocks incompatible builds like `0.33.0`, and surfaces `~/.gemini/settings.json` schema errors instead of pretending proxy mode works.
12
+
13
+ ### Changed
14
+ - **Proxy auto-sync now follows the current tool**: The proxy overlay no longer asks for a separate active tool; cleanup and auto-sync now target the current `Z` mode whenever that tool supports persisted proxy config.
15
+ - **Install Endpoints (`Y`) is narrower on purpose**: `Claude Code`, `Codex`, and `Gemini` were removed from the install-target menu so the flow only lists tools with a stable persisted-config contract.
16
+ - **Proxy model listing is more Codex-friendly**: `GET /v1/models` now returns both the usual OpenAI `data` array and a `models` array with `slug` fields for clients that expect a richer catalog shape.
17
+ - **Launcher diagnostics now mention the beta state clearly**: Proxy-backed external tools now remind users that the integration is still stabilizing when a launch is blocked.
@@ -0,0 +1,20 @@
1
+ # Changelog v0.3.11 - 2026-03-16
2
+
3
+ ### Fixed
4
+ - Added early 404 response when a requested model has no registered accounts, ensuring clear error handling.
5
+
6
+ ### Removed
7
+ - **Profile system**: Entire profile system removed to ensure API keys persist permanently across all sessions. No more profile switching causing API key loss.
8
+
9
+ ### Added
10
+ - **`--proxy` foreground mode**: New `--proxy` flag starts FCM Proxy V2 in the current terminal with a live dashboard showing status, accounts, provider breakdown, and real-time request log. No daemon install needed — works from dev checkout too.
11
+
12
+ ### Fixed
13
+ - **Claude Code proxy auth**: Proxy now accepts `x-api-key` header (used by Anthropic SDK / Claude Code) in addition to `Authorization: Bearer`
14
+ - **Claude model fallback**: When `anthropicRouting` is all null, Claude model names now fall back to the first available account instead of returning "Model not found"
15
+ - **Proxy sync for Claude Code**: Added `claude-code` to `PROXY_SYNCABLE_TOOLS` so the env file is properly written/updated by proxy sync
16
+ - **Correct env var name**: Claude Code env file now exports `ANTHROPIC_API_KEY` (SDK standard) instead of `ANTHROPIC_AUTH_TOKEN`
17
+ - **Auto-source shell profile**: Claude Code env file is now automatically sourced in `.zshrc` / `.bashrc` / `.bash_profile`
18
+ - **Removed deleted profile functions from tests**: Cleaned up test imports after profile system removal from config.js
19
+
20
+ ---
@@ -0,0 +1,18 @@
1
+ # Changelog v0.3.12 - 2026-03-17
2
+
3
+ > **Proxy / bridge update:** the current legacy proxy stack is now officially discontinued while we rebuild that whole layer from zero. This cleanup is intentional: Claude Code support, a smarter router, and a much more reliable external-tools bridge are being reworked as a separate, cleaner system and will come back in a future release. In the meantime, FCM has been cleaned up and narrowed to the stable direct-launch surface so the app stays solid for day-to-day usage.
4
+
5
+ ### Added
6
+ - **Legacy proxy cleanup action**: Settings now includes a one-shot cleanup that removes discontinued proxy leftovers from older installs and explains that a more stable replacement is in progress.
7
+
8
+ ### Changed
9
+ - **Stable direct-launch surface**: The app now documents and exposes only the supported direct-provider launcher workflow while the old bridge is rebuilt.
10
+ - **README reset**: Rewrote the documentation to match the real product surface, current tools, and current test commands.
11
+ - **Footer transparency**: The main TUI now shows an explicit magenta notice that the old proxy is disabled while the replacement bridge is being rebuilt.
12
+
13
+ ### Fixed
14
+ - **Selected model now really becomes the launched tool default**: external tool launch prep now writes the chosen model into each tool config before spawn, and OpenClaw no longer hardcodes `nvidia/*` when another provider was selected.
15
+
16
+ ### Removed
17
+ - **Global proxy stack**: Deleted the old proxy runtime, daemon flow, request-log flow, and related orphaned helpers/tests.
18
+ - **Hidden launcher bridges**: Claude Code, Codex, and Gemini are no longer exposed in the app while their integrations are being rewritten.
@@ -0,0 +1,4 @@
1
+ # Changelog v0.3.13 - 2026-03-17
2
+
3
+ ### Fixed
4
+ - **Small Width Warnings toggle actually works again**: the Settings row now shows `Small Width Warnings` with clear enabled/disabled status, the startup overlay reacts immediately to the toggle, and the narrow-terminal warning now auto-hides after 2 seconds instead of 4.
@@ -0,0 +1,6 @@
1
+ # Changelog v0.3.14 - 2026-03-17
2
+
3
+ ### Changed
4
+ - **Massive TUI Controller Extraction:** Extracted the main UI event loop and state machine out of `bin/free-coding-models.js` into a dedicated `src/app.js` controller. This cuts the main executable size drastically and makes the TUI architecture more modular and testable.
5
+ - **Robust Error Boundaries:** Wrapped all critical asynchronous operations, keypress handlers, UI render timers, and polling cycles with comprehensive `try/catch` blocks. Instead of the TUI crashing and destroying the terminal scrollback on unexpected errors, it will now gracefully exit the alternate screen buffer, print a formatted stack trace, and point users to the GitHub issue tracker and feedback form.
6
+ - **Global Crash Resiliency:** Added `uncaughtException` and `unhandledRejection` listeners at the entry point to guarantee terminal restoration even if a library fails catastrophically.
@@ -0,0 +1,4 @@
1
+ # Changelog v0.3.15 - 2026-03-17
2
+
3
+ ### Changed
4
+ - Added vertical column separators (gentle dark orange) for clearer column separation and removed the horizontal separator line in the main TUI.
@@ -0,0 +1,3 @@
1
+ # Changelog v0.3.16 - 2026-03-17
2
+
3
+ **Full Changelog**: https://github.com/vava-nessa/free-coding-models/compare/v0.3.15...v0.3.16
@@ -0,0 +1,4 @@
1
+ # Changelog v0.3.17 - 2026-03-18
2
+
3
+ ### Added
4
+ - **Auto Light/Dark Theme**: Implemented automatic detection of the user's terminal theme (dark or light) so that the TUI is always readable. Added semantic color tokens, and users can override the theme as `dark`, `light`, or `auto` via the Settings interface.
@@ -0,0 +1,12 @@
1
+ # Changelog v0.3.18 - 2026-03-18
2
+
3
+ ### Added
4
+ - **Missing tool bootstrap flow**: FCM now detects when a target CLI is absent, offers a minimal in-TUI install confirmation, runs the official global install command, then resumes the selected model launch automatically.
5
+
6
+ ### Changed
7
+ - **TUI readability overhaul across every screen**: the main table, Settings, Help, Smart Recommend, Feedback, and Changelog overlays now share a semantic high-contrast theme system instead of a patchwork of hardcoded colors.
8
+ - **Global theme switching now works for real**: press `G` to cycle `auto → dark → light` live, and the Settings screen now exposes a visible `Global Theme` row for the same control.
9
+ - **Launcher binary resolution**: direct tool launches now search PATH plus common user bin directories so a freshly installed CLI can be reused immediately in the same FCM session.
10
+
11
+ ### Fixed
12
+ - **Theme repaint bugs**: provider colors, tier colors, separators, badges, cursor highlights, and overlay backgrounds now update immediately when the theme changes instead of keeping stale import-time colors.
@@ -0,0 +1,12 @@
1
+ # Changelog v0.3.19 - 2026-03-18
2
+
3
+ ### Added
4
+ - **Command palette overlay (`Ctrl+P`)**: Added a searchable floating palette with fuzzy matching so users can quickly run filters, sorts, overlays, and global actions.
5
+
6
+ ### Changed
7
+ - **Main footer and help discoverability**: surfaced `Ctrl+P` in table hints and Help overlay so the new command launcher is visible immediately.
8
+ - **Command palette spacing polish**: added two-character inner padding around the floating palette so the overlay feels less cramped and visually cleaner.
9
+
10
+ ### Fixed
11
+ - **Command palette visual jitter**: background ping cycles now pause while the command palette is open so table rows stop reshuffling during command search.
12
+ - **Command palette background freeze**: while the palette is open, the full table behind it is now frozen (spinner glyphs, ping countdown, and dynamic row updates) and resumes instantly on close.
@@ -0,0 +1,5 @@
1
+ # Changelog v0.3.2 - 2026-03-16
2
+
3
+ ### Fixed
4
+ - **Claude Code model-family routing now mirrors `free-claude-code`**: The proxy remaps Claude's internal model ids like `claude-3-5-sonnet-*`, `claude-3-haiku-*`, `claude-3-opus-*`, `sonnet`, `haiku`, and `default` back to the selected FCM proxy model instead of rejecting them as missing.
5
+ - **Claude Code helper/background requests stay on the selected model**: Launches now pin the Anthropic helper model env vars and encode the selected proxy model inside `ANTHROPIC_AUTH_TOKEN`, so Claude Code has a stable fallback even when it emits internal aliases.
@@ -0,0 +1,13 @@
1
+ # Changelog v0.3.21 - 2026-03-18
2
+
3
+ ### Changed
4
+ - **Responsive table layout**: the TUI now adapts to narrow terminals by progressively shrinking columns and hiding least-useful ones. Compact mode shortens headers (`Lat. P`, `Avg. P`, `StaB.`, `PrOD…`) and tightens Provider (10 cols), Health (13 cols), Latest Ping (10 cols), and Avg Ping (8 cols). Below compact, Rank → Up% → Tier → Stability are hidden one by one. Minimum usable width: ~116 cols.
5
+ - **SWE% column tightened**: reduced from 9 to 6 columns wide — trims excess right padding without losing data.
6
+ - **Provider truncation in compact mode**: provider names longer than 5 chars are truncated to 4 chars + `…` (e.g. `Cere…`).
7
+ - **Health truncation in compact mode**: status text longer than 6 chars is truncated with `…` (e.g. `🔥 429 TR…`).
8
+ - **Removed "Used" column from TUI**: the token usage column has been removed from the main table as it was outdated.
9
+ - **Width guardrail threshold tightened**: the narrow-terminal warning now triggers only below 80 columns (instead of broader widths) and keeps the same 2-second auto-hide behavior.
10
+ - **Width warning is always enforced in narrow terminals**: removed the `Small Width Warnings` Settings toggle and the `--disable-widths-warning` runtime flag so the startup guardrail stays consistent.
11
+
12
+ ### Fixed
13
+ - **`--premium` filter lock-in**: premium now applies a resettable startup preset (S-tier + verdict sort) instead of hard-locking an extra hidden elite-only filter.
@@ -0,0 +1,29 @@
1
+ # Changelog v0.3.22 - 2026-03-18
2
+
3
+ ### Added
4
+ - **Hierarchical command palette navigation**: Ctrl+P now opens an improved command palette with expandable/collapsible categories and subcategories for better organization.
5
+ - **Arrow key navigation in command palette**: Use left/right arrows to expand and collapse categories, up/down to navigate, Enter to execute or toggle.
6
+ - **Rich color scheme for command palette**: Categories use bold blue headers, subcategories use bold text, commands show keyboard shortcuts.
7
+ - **Visual expand/collapse indicators**: ▼ shows expanded categories, ▶ shows collapsed, • marks individual commands.
8
+ - **Concise default view**: Categories are collapsed by default (except Filters) showing less detail on first open.
9
+ - **Colored tier filters**: Tier filters (S+, S, A+, A, A-, B+, B, C) now display with their corresponding TUI colors for quick identification.
10
+ - **Specific provider filters**: Added 13 individual provider filters (NVIDIA NIM, Groq, Cerebras, SambaNova, OpenRouter, Together AI, DeepInfra, Fireworks, Hyperbolic, Google AI, Hugging Face) with their signature provider colors.
11
+ - **Filter by model category**: New "Filter by model" category with autocomplete that dynamically shows top 20 visible models, complete with provider icons and colored model names.
12
+ - **Improved search cursor**: Cursor placement fixed to appear right after the `>` prompt instead of after placeholder text for natural typing flow.
13
+ - **Lightning bolt in title**: Command Palette title now shows ⚡ emoji for better visibility and visual appeal.
14
+
15
+ ### Changed
16
+ - **Footer layout cleanup**: Added consistent spacing before `F Toggle Favorite`, moved `N Changelog • Ctrl+C Exit` to a dedicated final footer line for better readability.
17
+ - **Removed Y key binding**: Install Endpoints is no longer a direct hotkey — accessible only via Settings (`P`) or Command Palette (`Ctrl+P`). The `Y` key is now free/unbound.
18
+ - **Removed proxy notice from footer**: The "Proxy is temporarily disabled" banner has been fully retired from the TUI footer and its backing constant removed.
19
+ - **Command palette fuzzy search fix**: `buildCommandPaletteEntries()` now expands all categories so child commands are visible to fuzzy search.
20
+ - **Flat Pages + Actions in ⚡️ Command Palette**: page entries and action entries are now listed directly at root level (no extra submenu depth) for faster access.
21
+ - **Command explanations after shortcuts**: command palette rows now show concise English hints after hotkeys (example: `(Z) — Change target AI Coding CLI Tool.`).
22
+ - **⚡️ emoji consistency**: user-facing Command Palette mentions now consistently render as `⚡️ Command Palette` in TUI and docs.
23
+ - **README Quick Start flow**: install section now explicitly adds “create a free account on one of the providers” with a direct anchor link.
24
+ - **Provider section renamed for clarity**: Quick Start provider table now lives under `List of Free AI Providers`.
25
+ - **Quick Start CTA highlight**: added a large green `USE ⚡️ COMMAND PALETTE / CTRL+P` badge right after the command palette instruction.
26
+
27
+ ### Fixed
28
+ - **Double emoji display bug**: Fixed duplicate emoji icons in command palette entries (was showing `▶ 🔍 🔍 Filters` instead of `▶ 🔍 Filters`).
29
+ - **Provider cycle command behavior**: `Cycle provider` in ⚡️ Command Palette now correctly cycles providers again instead of resetting to `All`.
@@ -0,0 +1,12 @@
1
+ # Changelog v0.3.23 - 2026-03-18
2
+
3
+ ### Added
4
+ - **Favorites display mode (`Y`)**: Added a global toggle to switch favorites between `pinned + always visible` and `normal rows` (starred only, fully obeying active filters/sort).
5
+ - **Favorites mode row in Settings**: Added a dedicated Settings row to inspect/toggle favorites display behavior without leaving the maintenance screen.
6
+ - **Expanded command palette action menus**: Added nested menus for Ping Mode (speed/normal/slow/forced with explanations), Target Tool (all supported tools with explanations), and Favorites Mode (including the new `Y` flow).
7
+ - **Active text-filter footer alert**: When a custom search filter is active (for example `deep`), the last TUI footer line now shows a high-visibility inline badge (between `N Changelog` and `Ctrl+C Exit`) with the exact query and an `X` shortcut to clear it instantly.
8
+
9
+ ### Changed
10
+ - **Favorites sorting/filtering behavior**: Sort/filter logic now respects the selected favorites mode across the table refresh loop, hotkeys, and renderer so non-pinned mode behaves consistently everywhere.
11
+ - **Favorites default mode**: New/legacy configs now default to `Normal filter/sort` favorites mode (not pinned) until users press `Y` to opt into pinned+sticky behavior.
12
+ - **Footer/help/docs shortcut hints**: Surfaced `Y` in the TUI footer, Help overlay, and README so the new favorites mode is discoverable.
@@ -0,0 +1,34 @@
1
+ # Changelog v0.3.24 - 2026-03-19
2
+
3
+ ### Added
4
+ - **Unique emoji per tool** — Every CLI tool now has a dedicated emoji shown in the Compatible column, Z-cycle badge, command palette, help overlay, and README (📦 OpenCode, 🦞 OpenClaw, 💘 Crush, 🪿 Goose, π Pi, 🛠 Aider, 🐉 Qwen, 🤲 OpenHands, ⚡ Amp, 🦘 Rovo, ♊ Gemini)
5
+ - **Merged compat column** — OpenCode CLI and Desktop share 📦 in a single slot (11 slots instead of 12 separate initials)
6
+ - **COMPAT_COLUMN_SLOTS** — New export in tool-metadata.js for merged compatible-column rendering
7
+ - **Width warning now always shows** - Terminal width warning displays every time terminal is resized below 80 columns (previously limited to 2 shows per session)
8
+ - **Gemini CLI integration** - New CLI-only tool provider with 3 models (Gemini 3 Pro 🆕, Gemini 2.5 Pro, Gemini 2.5 Flash)
9
+ - **Rovo Dev CLI integration** - New CLI-only tool provider with Claude Sonnet 4 🆕
10
+ - **Tool compatibility alerts** - When trying to launch Rovo/Gemini models with wrong tool, shows alert and offers to switch
11
+ - **Auto-install detection** - Prompt to install CLI tools when binary not found (Rovo/Gemini)
12
+ - **OpenAI-compatible API support for Gemini** - Gemini CLI can use custom providers via environment variables
13
+ - **New CLI flags** - Added `--rovo` and `--gemini` launch options
14
+ - **"🆕" badges** - Mark newly added models in the table (Claude Sonnet 4, Gemini 3 Pro)
15
+ - **OpenCode Zen free models** - 5 new free models (Big Pickle, GPT 5 Nano, MiMo V2 Flash Free, MiniMax M2.5 Free, Nemotron 3 Super Free) exclusive to OpenCode CLI/Desktop via `opencode-zen` provider
16
+ - **"Compatible with" column** - New TUI column showing colored emojis for each tool a model supports; incompatible tools show dim spaces
17
+ - **Tool color system** - Each of the 12 supported tools now has a unique RGB color and emoji used in the Z-cycle badge and compatibility column
18
+ - **Incompatible model highlighting** - When a tool mode is active (via Z), models that can't run with that tool get a dark red background for instant visibility — they stay in their normal sorted position (not pushed to the bottom)
19
+ - **Tool compatibility functions** - `getCompatibleTools()` and `isModelCompatibleWithTool()` in tool-metadata.js for programmatic compatibility checks
20
+ - **Incompatible model fallback overlay** - When pressing Enter on a model that can't run on the active tool (red-highlighted row), an in-TUI overlay appears with two options: (1) switch to a compatible tool, or (2) pick a similar model by SWE score that works with the current tool
21
+ - **findSimilarCompatibleModels()** - New function in tool-metadata.js that finds models with closest SWE scores compatible with the active tool
22
+ - **Updated provider/model counts** - Now 23 providers with 171 models (was 20/160)
23
+
24
+ ### Changed
25
+ - **Z key cycle** - Rovo and Gemini added to tool mode cycle (last in order)
26
+ - **Tool metadata** - Removed `initial` field (replaced by emojis), added `cliOnly` flag for CLI-only tools, `emoji` and `color` properties for all 12 tools
27
+ - **Provider metadata** - Added Rovo, Gemini, and OpenCode Zen provider information
28
+ - **Responsive column hiding** - Compatible column hides first (before Rank) on narrow terminals
29
+ - **Key handler** - Zen models auto-switch to OpenCode CLI on launch; API key warnings skip Zen models
30
+ - **Documentation** - Updated README with CLI-only tools section, Zen models, compatibility matrix
31
+
32
+ ### Fixed
33
+ - **Missing import error** - Fixed `getToolMeta` not defined in key-handler.js
34
+ - **CLI-only tools API key requirement** - Gemini CLI and Rovo Dev CLI no longer require API keys to be configured before launching; these tools manage their own authentication
@@ -0,0 +1,40 @@
1
+ # Changelog v0.3.25 - 2026-03-19
2
+
3
+ ### Changed
4
+ - **Removed "CLI Tools" column** — The compat emoji column has been removed from the TUI table, freeing ~22 characters of horizontal space for other columns
5
+ - **Cleaner table layout** — Responsive column hiding no longer needs to drop the compat column first on narrow terminals
6
+
7
+ ## [0.3.24] - 2026-03-19
8
+
9
+ ### Added
10
+ - **Unique emoji per tool** — Every CLI tool now has a dedicated emoji shown in the Compatible column, Z-cycle badge, command palette, help overlay, and README (📦 OpenCode, 🦞 OpenClaw, 💘 Crush, 🪿 Goose, π Pi, 🛠 Aider, 🐉 Qwen, 🤲 OpenHands, ⚡ Amp, 🦘 Rovo, ♊ Gemini)
11
+ - **Merged compat column** — OpenCode CLI and Desktop share 📦 in a single slot (11 slots instead of 12 separate initials)
12
+ - **COMPAT_COLUMN_SLOTS** — New export in tool-metadata.js for merged compatible-column rendering
13
+ - **Width warning now always shows** - Terminal width warning displays every time terminal is resized below 80 columns (previously limited to 2 shows per session)
14
+ - **Gemini CLI integration** - New CLI-only tool provider with 3 models (Gemini 3 Pro 🆕, Gemini 2.5 Pro, Gemini 2.5 Flash)
15
+ - **Rovo Dev CLI integration** - New CLI-only tool provider with Claude Sonnet 4 🆕
16
+ - **Tool compatibility alerts** - When trying to launch Rovo/Gemini models with wrong tool, shows alert and offers to switch
17
+ - **Auto-install detection** - Prompt to install CLI tools when binary not found (Rovo/Gemini)
18
+ - **OpenAI-compatible API support for Gemini** - Gemini CLI can use custom providers via environment variables
19
+ - **New CLI flags** - Added `--rovo` and `--gemini` launch options
20
+ - **"🆕" badges** - Mark newly added models in the table (Claude Sonnet 4, Gemini 3 Pro)
21
+ - **OpenCode Zen free models** - 5 new free models (Big Pickle, GPT 5 Nano, MiMo V2 Flash Free, MiniMax M2.5 Free, Nemotron 3 Super Free) exclusive to OpenCode CLI/Desktop via `opencode-zen` provider
22
+ - **"Compatible with" column** - New TUI column showing colored emojis for each tool a model supports; incompatible tools show dim spaces
23
+ - **Tool color system** - Each of the 12 supported tools now has a unique RGB color and emoji used in the Z-cycle badge and compatibility column
24
+ - **Incompatible model highlighting** - When a tool mode is active (via Z), models that can't run with that tool get a dark red background for instant visibility — they stay in their normal sorted position (not pushed to the bottom)
25
+ - **Tool compatibility functions** - `getCompatibleTools()` and `isModelCompatibleWithTool()` in tool-metadata.js for programmatic compatibility checks
26
+ - **Incompatible model fallback overlay** - When pressing Enter on a model that can't run on the active tool (red-highlighted row), an in-TUI overlay appears with two options: (1) switch to a compatible tool, or (2) pick a similar model by SWE score that works with the current tool
27
+ - **findSimilarCompatibleModels()** - New function in tool-metadata.js that finds models with closest SWE scores compatible with the active tool
28
+ - **Updated provider/model counts** - Now 23 providers with 171 models (was 20/160)
29
+
30
+ ### Changed
31
+ - **Z key cycle** - Rovo and Gemini added to tool mode cycle (last in order)
32
+ - **Tool metadata** - Removed `initial` field (replaced by emojis), added `cliOnly` flag for CLI-only tools, `emoji` and `color` properties for all 12 tools
33
+ - **Provider metadata** - Added Rovo, Gemini, and OpenCode Zen provider information
34
+ - **Responsive column hiding** - Compatible column hides first (before Rank) on narrow terminals
35
+ - **Key handler** - Zen models auto-switch to OpenCode CLI on launch; API key warnings skip Zen models
36
+ - **Documentation** - Updated README with CLI-only tools section, Zen models, compatibility matrix
37
+
38
+ ### Fixed
39
+ - **Missing import error** - Fixed `getToolMeta` not defined in key-handler.js
40
+ - **CLI-only tools API key requirement** - Gemini CLI and Rovo Dev CLI no longer require API keys to be configured before launching; these tools manage their own authentication