free-coding-models 0.3.66 → 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 (175) hide show
  1. package/README.md +111 -12
  2. package/bin/free-coding-models.js +1 -9
  3. package/changelog/v0.1.1.md +3 -0
  4. package/changelog/v0.1.10.md +3 -0
  5. package/changelog/v0.1.11.md +10 -0
  6. package/changelog/v0.1.12.md +16 -0
  7. package/changelog/v0.1.13.md +3 -0
  8. package/changelog/v0.1.14.md +3 -0
  9. package/changelog/v0.1.15.md +3 -0
  10. package/changelog/v0.1.16.md +13 -0
  11. package/changelog/v0.1.17.md +3 -0
  12. package/changelog/v0.1.18.md +3 -0
  13. package/changelog/v0.1.19.md +3 -0
  14. package/changelog/v0.1.2.md +3 -0
  15. package/changelog/v0.1.20.md +14 -0
  16. package/changelog/v0.1.21.md +12 -0
  17. package/changelog/v0.1.22.md +6 -0
  18. package/changelog/v0.1.23.md +16 -0
  19. package/changelog/v0.1.24.md +9 -0
  20. package/changelog/v0.1.25.md +13 -0
  21. package/changelog/v0.1.26.md +6 -0
  22. package/changelog/v0.1.27.md +6 -0
  23. package/changelog/v0.1.28.md +5 -0
  24. package/changelog/v0.1.29.md +5 -0
  25. package/changelog/v0.1.3.md +3 -0
  26. package/changelog/v0.1.31.md +10 -0
  27. package/changelog/v0.1.32.md +8 -0
  28. package/changelog/v0.1.33.md +5 -0
  29. package/changelog/v0.1.34.md +6 -0
  30. package/changelog/v0.1.35.md +5 -0
  31. package/changelog/v0.1.36.md +16 -0
  32. package/changelog/v0.1.37.md +5 -0
  33. package/changelog/v0.1.38.md +9 -0
  34. package/changelog/v0.1.39.md +3 -0
  35. package/changelog/v0.1.4.md +3 -0
  36. package/changelog/v0.1.40.md +3 -0
  37. package/changelog/v0.1.41.md +11 -0
  38. package/changelog/v0.1.42.md +3 -0
  39. package/changelog/v0.1.43.md +3 -0
  40. package/changelog/v0.1.44.md +17 -0
  41. package/changelog/v0.1.45.md +6 -0
  42. package/changelog/v0.1.46.md +9 -0
  43. package/changelog/v0.1.47.md +6 -0
  44. package/changelog/v0.1.48.md +11 -0
  45. package/changelog/v0.1.49.md +10 -0
  46. package/changelog/v0.1.5.md +3 -0
  47. package/changelog/v0.1.50.md +7 -0
  48. package/changelog/v0.1.51.md +4 -0
  49. package/changelog/v0.1.52.md +10 -0
  50. package/changelog/v0.1.54.md +41 -0
  51. package/changelog/v0.1.55.md +3 -0
  52. package/changelog/v0.1.56.md +11 -0
  53. package/changelog/v0.1.57.md +7 -0
  54. package/changelog/v0.1.58.md +7 -0
  55. package/changelog/v0.1.59.md +7 -0
  56. package/changelog/v0.1.6.md +3 -0
  57. package/changelog/v0.1.60.md +7 -0
  58. package/changelog/v0.1.61.md +9 -0
  59. package/changelog/v0.1.62.md +9 -0
  60. package/changelog/v0.1.63.md +15 -0
  61. package/changelog/v0.1.64.md +22 -0
  62. package/changelog/v0.1.65.md +15 -0
  63. package/changelog/v0.1.66.md +22 -0
  64. package/changelog/v0.1.67.md +40 -0
  65. package/changelog/v0.1.68.md +38 -0
  66. package/changelog/v0.1.69.md +3 -0
  67. package/changelog/v0.1.7.md +3 -0
  68. package/changelog/v0.1.70.md +7 -0
  69. package/changelog/v0.1.71.md +7 -0
  70. package/changelog/v0.1.72.md +7 -0
  71. package/changelog/v0.1.73.md +7 -0
  72. package/changelog/v0.1.74.md +3 -0
  73. package/changelog/v0.1.75.md +9 -0
  74. package/changelog/v0.1.76.md +13 -0
  75. package/changelog/v0.1.77.md +13 -0
  76. package/changelog/v0.1.78.md +7 -0
  77. package/changelog/v0.1.79.md +8 -0
  78. package/changelog/v0.1.8.md +3 -0
  79. package/changelog/v0.1.80.md +7 -0
  80. package/changelog/v0.1.81.md +19 -0
  81. package/changelog/v0.1.82.md +9 -0
  82. package/changelog/v0.1.83.md +22 -0
  83. package/changelog/v0.1.84.md +25 -0
  84. package/changelog/v0.1.85.md +19 -0
  85. package/changelog/v0.1.86.md +17 -0
  86. package/changelog/v0.1.87.md +7 -0
  87. package/changelog/v0.1.88.md +167 -0
  88. package/changelog/v0.1.89.md +22 -0
  89. package/changelog/v0.1.9.md +3 -0
  90. package/changelog/v0.2.0.md +30 -0
  91. package/changelog/v0.2.1.md +17 -0
  92. package/changelog/v0.2.10.md +7 -0
  93. package/changelog/v0.2.11.md +6 -0
  94. package/changelog/v0.2.12.md +16 -0
  95. package/changelog/v0.2.13.md +16 -0
  96. package/changelog/v0.2.14.md +6 -0
  97. package/changelog/v0.2.15.md +6 -0
  98. package/changelog/v0.2.17.md +14 -0
  99. package/changelog/v0.2.2.md +16 -0
  100. package/changelog/v0.2.3.md +7 -0
  101. package/changelog/v0.2.4.md +7 -0
  102. package/changelog/v0.2.5.md +12 -0
  103. package/changelog/v0.2.7.md +3 -0
  104. package/changelog/v0.2.8.md +107 -0
  105. package/changelog/v0.2.9.md +10 -0
  106. package/changelog/v0.3.0.md +30 -0
  107. package/changelog/v0.3.1.md +17 -0
  108. package/changelog/v0.3.11.md +20 -0
  109. package/changelog/v0.3.12.md +18 -0
  110. package/changelog/v0.3.13.md +4 -0
  111. package/changelog/v0.3.14.md +6 -0
  112. package/changelog/v0.3.15.md +4 -0
  113. package/changelog/v0.3.16.md +3 -0
  114. package/changelog/v0.3.17.md +4 -0
  115. package/changelog/v0.3.18.md +12 -0
  116. package/changelog/v0.3.19.md +12 -0
  117. package/changelog/v0.3.2.md +5 -0
  118. package/changelog/v0.3.21.md +13 -0
  119. package/changelog/v0.3.22.md +29 -0
  120. package/changelog/v0.3.23.md +12 -0
  121. package/changelog/v0.3.24.md +34 -0
  122. package/changelog/v0.3.25.md +40 -0
  123. package/changelog/v0.3.26.md +85 -0
  124. package/changelog/v0.3.28.md +3 -0
  125. package/changelog/v0.3.29.md +107 -0
  126. package/changelog/v0.3.3.md +11 -0
  127. package/changelog/v0.3.30.md +3 -0
  128. package/changelog/v0.3.31.md +113 -0
  129. package/changelog/v0.3.32.md +123 -0
  130. package/changelog/v0.3.33.md +129 -0
  131. package/changelog/v0.3.34.md +156 -0
  132. package/changelog/v0.3.35.md +173 -0
  133. package/changelog/v0.3.36.md +186 -0
  134. package/changelog/v0.3.37.md +182 -0
  135. package/changelog/v0.3.38.md +3 -0
  136. package/changelog/v0.3.39.md +3 -0
  137. package/changelog/v0.3.4.md +9 -0
  138. package/changelog/v0.3.40.md +18 -0
  139. package/changelog/v0.3.41.md +7 -0
  140. package/changelog/v0.3.42.md +9 -0
  141. package/changelog/v0.3.43.md +13 -0
  142. package/changelog/v0.3.44.md +10 -0
  143. package/changelog/v0.3.45.md +12 -0
  144. package/changelog/v0.3.46.md +5 -0
  145. package/changelog/v0.3.47.md +4 -0
  146. package/changelog/v0.3.48.md +10 -0
  147. package/changelog/v0.3.49.md +18 -0
  148. package/changelog/v0.3.5.md +5 -0
  149. package/changelog/v0.3.50.md +41 -0
  150. package/changelog/v0.3.51.md +37 -0
  151. package/changelog/v0.3.52.md +43 -0
  152. package/changelog/v0.3.54.md +55 -0
  153. package/changelog/v0.3.55.md +62 -0
  154. package/changelog/v0.3.56.md +53 -0
  155. package/changelog/v0.3.57.md +61 -0
  156. package/changelog/v0.3.58.md +10 -0
  157. package/changelog/v0.3.59.md +3 -0
  158. package/changelog/v0.3.6.md +12 -0
  159. package/changelog/v0.3.60.md +3 -0
  160. package/changelog/v0.3.61.md +3 -0
  161. package/changelog/v0.3.62.md +3 -0
  162. package/changelog/v0.3.63.md +20 -0
  163. package/changelog/v0.3.64.md +10 -0
  164. package/changelog/v0.3.65.md +10 -0
  165. package/{CHANGELOG.md → changelog/v0.3.66.md} +2 -0
  166. package/changelog/v0.3.67.md +45 -0
  167. package/changelog/v0.3.68.md +18 -0
  168. package/changelog/v0.3.9.md +10 -0
  169. package/package.json +3 -3
  170. package/sources.js +6 -8
  171. package/src/changelog-loader.js +41 -41
  172. package/src/cli-help.js +2 -3
  173. package/src/router-daemon.js +351 -15
  174. package/web/dist/assets/{index-BKwbbLPp.js → index-Cfy_uz7_.js} +1 -1
  175. package/web/dist/index.html +1 -1
@@ -0,0 +1,167 @@
1
+ # Changelog v0.1.88 - 2026-03-09
2
+
3
+ ## 🎯 Release Overview
4
+
5
+ This is a significant stability and usability release that combines two important feature branches (0.1.88 + 0.1.89) into a single polished 0.2.0 release. The focus is on hardening the public launcher ecosystem, improving visual feedback through dynamic filter coloring, and delivering robust integration with Crush including proper proxy support and model selection persistence.
6
+
7
+ ## ✨ Major Features
8
+
9
+ ### 🛡️ Hardened Multi-Tool Launcher Ecosystem
10
+
11
+ **Public Z-Cycle (stable, battle-tested):**
12
+ - `OpenCode CLI` (default at startup)
13
+ - `OpenCode Desktop`
14
+ - `OpenClaw` (autonomous agent daemon)
15
+ - `Crush` (with new proxy & config improvements)
16
+ - `Goose` (lightweight agent)
17
+
18
+ **Internal Support (temporarily disabled from public cycle, pending hardening):**
19
+ - Aider, Claude Code, Codex CLI, Gemini CLI, Qwen Code, OpenHands, Amp, Pi
20
+
21
+ This narrowing from 13 to 5 public launchers in the Z-cycle reduces user confusion and ensures we only expose flows that have been thoroughly tested and validated in the field.
22
+
23
+ ### 🎨 Dynamic Visual Feedback for Active Filters
24
+
25
+ **Tier Filter Badges:**
26
+ - S+ / S: Bright green [57, 255, 20]
27
+ - A+ / A: Gold [255, 224, 130]
28
+ - A- / B+: Orange [255, 171, 64]
29
+ - B / C: Red / Purple gradients
30
+ - Active tier always visible in both header badges and footer hotkeys
31
+
32
+ **Provider Filter Badges:**
33
+ - Each provider (NIM, Groq, Cerebras, etc.) now displays with its brand color
34
+ - Active provider instantly recognizable across the table
35
+ - Color coding helps users mentally organize multi-provider workflows
36
+
37
+ ### 🧰 Crush Integration Overhaul
38
+
39
+ **Configuration Improvements:**
40
+ - Now writes `config.models.large` with actual selected model ID instead of relying on CLI argument parsing
41
+ - Sets `disable_default_providers: true` to force reliance on FCM's configured providers
42
+ - Model selection persists across Crush sessions via the config file
43
+
44
+ **Proxy Awareness:**
45
+ - Detects when proxy mode is enabled in Settings
46
+ - Routes requests through `http://127.0.0.1:<port>/v1` instead of direct provider
47
+ - Properly substitutes auth tokens and base URLs based on proxy vs. direct mode
48
+ - Provides user feedback on which config path is active
49
+
50
+ **Spawn Robustness:**
51
+ - Removed `--model` CLI argument (was causing parsing conflicts)
52
+ - All configuration now driven through `crush.json` for cleaner process spawning
53
+ - Fixed shell spawning: `shell: true` only on Windows; Unix systems use direct spawn
54
+
55
+ ### 🧹 OpenCode Proxy Lifecycle
56
+
57
+ **New CLI Command:**
58
+ - `free-coding-models --clean-proxy` — Remove persisted `fcm-proxy` config from OpenCode safely
59
+ - Available in Settings screen (`P` key) under Maintenance
60
+
61
+ **Opt-In Architecture:**
62
+ - Proxy mode disabled by default
63
+ - Users explicitly enable in Settings (`P` key) → Proxy settings section
64
+ - Control over proxy persistence and preferred port
65
+ - `S` in Settings to sync proxy into OpenCode only when explicitly requested
66
+
67
+ ### 📚 Documentation & Help Synchronization
68
+
69
+ **In-App Help Refreshed:**
70
+ - Z-cycle hotkey help now shows only hardened launchers (OpenCode CLI/Desktop, OpenClaw, Crush, Goose)
71
+ - CLI flag examples (`--opencode`, `--openclaw`, `--crush`, `--goose`) reflect public set
72
+ - Removed references to temporarily disabled launchers (Aider, Claude Code, etc.)
73
+
74
+ **JSDoc Header Updated:**
75
+ - Clarified startup behavior (no menu → direct OpenCode CLI)
76
+ - Documented ping cadence states: 2s startup burst (60s), 10s steady state, 30s idle fallback, forced 4s via W
77
+ - Removed "promptModeSelection" references
78
+ - Explained multi-tool action on Enter key press
79
+
80
+ **README Synchronized:**
81
+ - Model count, filter descriptions, and default behaviors match current implementation
82
+ - Hardened launcher set documented with Z-cycle order
83
+ - Proxy documentation updated with opt-in architecture
84
+
85
+ ## 🔧 Technical Highlights
86
+
87
+ ### Code Refactoring & Modularity
88
+ - Extracted TUI overlays and key handling into dedicated modules
89
+ - Shared integration helpers for OpenCode/OpenClaw flows
90
+ - Runtime state moved to shared locations for clearer ownership
91
+ - Improved color constants (ACTIVE_FILTER_BG_BY_TIER, PROVIDER_COLOR maps)
92
+
93
+ ### Performance & Stability
94
+ - Rolling averages calculated from ALL successful pings (even 401 responses)
95
+ - Stability score refined: p95 (30%) + jitter (30%) + spike rate (20%) + reliability (20%)
96
+ - Ping cadence adapts: fast startup (2s/60s), steady state (10s), idle slowdown (30s/5m)
97
+ - Timeout models continuously retried, never abandoned
98
+
99
+ ### Platform Compatibility
100
+ - Shell spawning fixed for cross-platform (Windows vs. Unix)
101
+ - Proper process isolation on non-Windows systems
102
+ - Environment variable substitution for all launchers
103
+
104
+ ## 📊 Data Integrity Improvements
105
+
106
+ **Token Usage Tracking:**
107
+ - Request log overlay (`X` key) shows proxy-only transactions
108
+ - Per-exact-provider/model accounting (no contamination across providers)
109
+ - `Used` column aggregates prompt+completion tokens from startup logs
110
+ - Green dot shown when quota telemetry unavailable or unreliable
111
+
112
+ **Uptime & Health Metrics:**
113
+ - Health states: UP ✅, NO KEY 🔑, Timeout ⏳, Overloaded 🔥, Not Found 🚫
114
+ - Verdict combines avg latency + stability analysis
115
+ - Persistent favorites (`F` key) with ⭐ prefix
116
+ - Configured-only mode (`E` key) filters to providers with API keys
117
+
118
+ ## 🎬 User Experience Polish
119
+
120
+ **Visual Clarity:**
121
+ - Tier and Provider filter values display directly inside highlighted pills
122
+ - Header badges show active tool mode (`Z Tool: [selected]`)
123
+ - Footer shortcut colors unified and consistent
124
+ - Provider-colored model names in the main table
125
+ - Selected row uses punchier pink-violet highlight
126
+
127
+ **Default Behavior:**
128
+ - Configured-only mode enabled by default (press `E` to toggle)
129
+ - Empty state tells users to press `P` to add first API key
130
+ - Terminal width warning shown (centered) when too narrow for table
131
+ - In-app help (`K` key) provides full reference
132
+
133
+ ## ✅ Testing Checklist
134
+
135
+ - [ ] Z-cycle correctly loops through hardened launchers only
136
+ - [ ] Tier/Provider filter badges display with appropriate colors
137
+ - [ ] Crush launches successfully with direct provider config
138
+ - [ ] Crush launches successfully with FCM proxy when enabled
139
+ - [ ] `--clean-proxy` flag removes proxy config as expected
140
+ - [ ] Help overlay and flag examples show only stable launchers
141
+ - [ ] Filter state persists across all transitions
142
+ - [ ] Rolling averages update correctly on every ping
143
+ - [ ] Favorites saved and restored across restarts
144
+ - [ ] Config profiles capture and restore all settings
145
+
146
+ ## 📦 Files Changed
147
+
148
+ - `CHANGELOG.md` — Unified 0.1.88 + 0.1.89 → 0.2.0 release notes
149
+ - `README.md` — Synchronized with hardened launcher set and current behavior
150
+ - `package.json` — Version bumped to 0.2.0
151
+ - `bin/free-coding-models.js` — Updated JSDoc; clarified startup and multi-tool behavior
152
+ - `src/overlays.js` — Cleaned up help overlay; only hardened launchers shown
153
+ - `src/render-table.js` — Added dynamic color support for Tier/Provider filter badges
154
+ - `src/tool-launchers.js` — Enhanced Crush config logic; added proxy detection and routing
155
+ - `src/tool-metadata.js` — Hardened launchers active; unstable launchers commented out
156
+
157
+ ## 🚀 Next Steps
158
+
159
+ 1. All 20 providers remain supported: NVIDIA NIM, Groq, Cerebras, SambaNova, OpenRouter, Hugging Face, Replicate, DeepInfra, Fireworks AI, Codestral, Hyperbolic, Scaleway, Google AI, SiliconFlow, Together AI, Cloudflare Workers AI, Perplexity, ZAI, DashScope (Alibaba), iFlow
160
+ 2. 159 coding models across 8 tiers (S+, S, A+, A, A-, B+, B, C)
161
+ 3. Proxy system available for unified account management when needed
162
+ 4. Launcher ecosystem available for hardening on demand
163
+
164
+ ---
165
+
166
+ **Release date:** 2026-03-09
167
+ **Commit:** 0.2.0 — Unified stable release
@@ -0,0 +1,22 @@
1
+ # Changelog v0.1.89 - 2026-03-09
2
+
3
+ ### Added
4
+
5
+ - 🎨 Dynamic color coding for active Tier and Provider filter badges — each tier/provider now displays with its signature color directly in the header and footer pills for better visual feedback.
6
+ - 📖 Comprehensive documentation refresh across JSDoc headers in `bin/free-coding-models.js` to clarify the new default startup behavior, ping cadence states, and removal of the startup menu.
7
+
8
+ ### Changed
9
+
10
+ - 🛡️ **Hardened public launcher set** — Narrowed the Z-cycle to only the stable, tested integrations: `OpenCode CLI` → `OpenCode Desktop` → `OpenClaw` → `Crush` → `Goose`. Aider, Claude Code, Codex CLI, Gemini CLI, Qwen Code, OpenHands, Amp, and Pi are now temporarily disabled pending flow hardening.
11
+ - 🎯 **Improved Crush configuration** — Now writes proper `config.models.large` default selection (instead of relying on CLI args), respects proxy enablement state, and uses `disable_default_providers` to rely on FCM's provider configuration.
12
+ - 🔧 **Crush launcher robustness** — Spawn call simplified to not pass `--model` argument; model selection now driven entirely through `crush.json` to avoid CLI parsing conflicts.
13
+ - 📚 **Synchronized in-app help** — Removed references to temporarily disabled launchers from the Z-cycle hint and CLI flag examples to reduce user confusion and match the hardened set.
14
+ - ✅ **Refined filter UI responsiveness** — Active Tier and Provider filter values now visually highlight in the main table footer hotkeys with tier-matched or provider-matched colors for instant recognition.
15
+
16
+ ### Fixed
17
+
18
+ - 🪪 **Crush proxy support** — Crush now correctly detects when proxy mode is enabled and routes through the local FCM proxy (`http://127.0.0.1:<port>/v1`) with appropriate token/URL substitution instead of attempting direct provider connection.
19
+ - 📖 **Shell compatibility** — Fixed spawning command for external tools to use `shell: true` only on Windows; Linux/macOS now spawn without shell wrapper for cleaner process trees.
20
+ - 🎛 **Filter state persistence** — Tier and Provider filter badges in the footer now correctly calculate and display their active state across all state transitions.
21
+
22
+ ---
@@ -0,0 +1,3 @@
1
+ # Changelog v0.1.9 - 2026-02-22
2
+
3
+ _No release notes available for this version._
@@ -0,0 +1,30 @@
1
+ # Changelog v0.2.0 - 2026-03-09
2
+
3
+ ### Added
4
+
5
+ - 🧰 Added direct launch modes for `Crush` and `Goose` as hardened public launchers, with additional internal support for `Aider`, `Claude Code`, `Codex CLI`, `Gemini CLI`, `Qwen Code`, `OpenHands`, `Amp`, and `Pi` (temporarily disabled from public cycle pending hardening).
6
+ - 🧹 Added OpenCode proxy cleanup in Settings plus a `--clean-proxy` CLI command to remove persisted `fcm-proxy` config safely.
7
+ - 🎨 Dynamic color coding for active Tier and Provider filter badges — each tier/provider now displays with its signature color directly in the header and footer pills for better visual feedback.
8
+ - 📖 Comprehensive documentation refresh across JSDoc headers in `bin/free-coding-models.js` to clarify the new default startup behavior, ping cadence states, and removal of the startup menu.
9
+
10
+ ### Changed
11
+
12
+ - 🧭 Extended the `Z` tool cycle, CLI flag parser, help overlay, and header mode badge so the active target tool is visible and switchable across all supported launchers.
13
+ - 🔀 Made the multi-account proxy opt-in and disabled by default, added Settings controls for proxy enablement, OpenCode persistence, and preferred port, and restored direct OpenCode launch as the default path.
14
+ - 🎛 Active Tier and Provider filters now show their current value directly inside the highlighted pills, while Crush now writes a real default selected model into `crush.json` and uses either direct provider config or the local FCM proxy depending on the current proxy setting.
15
+ - 📚 Audited and synchronized the public documentation, in-app help, and footer hints so they now describe the hardened launcher set (`OpenCode CLI`, `OpenCode Desktop`, `OpenClaw`, `Crush`, `Goose`), the real default startup behavior, the current ping cadence, the Settings shortcuts, and the proxy-only request log semantics.
16
+ - 🛡️ **Hardened public launcher set** — Narrowed the Z-cycle to only the stable, tested integrations: `OpenCode CLI` → `OpenCode Desktop` → `OpenClaw` → `Crush` → `Goose`. Aider, Claude Code, Codex CLI, Gemini CLI, Qwen Code, OpenHands, Amp, and Pi are now temporarily disabled pending flow hardening.
17
+ - 🎯 **Improved Crush configuration** — Now writes proper `config.models.large` default selection (instead of relying on CLI args), respects proxy enablement state, and uses `disable_default_providers` to rely on FCM's provider configuration.
18
+ - 🔧 **Crush launcher robustness** — Spawn call simplified to not pass `--model` argument; model selection now driven entirely through `crush.json` to avoid CLI parsing conflicts.
19
+ - 📚 **Synchronized in-app help** — Removed references to temporarily disabled launchers from the Z-cycle hint and CLI flag examples to reduce user confusion and match the hardened set.
20
+ - ✅ **Refined filter UI responsiveness** — Active Tier and Provider filter values now visually highlight in the main table footer hotkeys with tier-matched or provider-matched colors for instant recognition.
21
+
22
+ ### Fixed
23
+
24
+ - 🪫 Temporarily removed unstable external launchers (`Aider`, `Claude Code`, `Codex CLI`, `Gemini CLI`, `Qwen Code`, `OpenHands`, `Amp`, `Pi`) from the public mode cycle/help so only the currently hardened integrations remain exposed.
25
+ - 🧭 Corrected stale docs that still advertised the removed startup picker, mislabeled the `X` overlay as a live activity/error log viewer, and listed public commands or tips that no longer matched the current UI.
26
+ - 🪪 **Crush proxy support** — Crush now correctly detects when proxy mode is enabled and routes through the local FCM proxy (`http://127.0.0.1:<port>/v1`) with appropriate token/URL substitution instead of attempting direct provider connection.
27
+ - 📖 **Shell compatibility** — Fixed spawning command for external tools to use `shell: true` only on Windows; Linux/macOS now spawn without shell wrapper for cleaner process trees.
28
+ - 🎛 **Filter state persistence** — Tier and Provider filter badges in the footer now correctly calculate and display their active state across all state transitions.
29
+
30
+ ---
@@ -0,0 +1,17 @@
1
+ # Changelog v0.2.1 - 2026-03-09
2
+
3
+ ### Added
4
+
5
+ - 🚨 Added a footer warning that highlights outdated installs with a red banner and the message `This version is outdated .` once a newer npm version is detected.
6
+
7
+ ### Changed
8
+
9
+ - 💾 The `Z` launcher choice is now persisted in config, so the app restarts on the last tool used instead of always falling back to OpenCode CLI.
10
+ - 📋 The request log overlay now highlights proxy fallback reroutes with a dedicated `SWITCHED ↻` route badge and shows `requested → actual` model transitions inline.
11
+
12
+ ### Fixed
13
+
14
+ - 🔀 Fixed the footer proxy status so an active proxy now renders as running instead of incorrectly showing `Proxy not configured`.
15
+ - ⚙️ Fixed the footer proxy status so a proxy enabled in Settings now shows as configured even before the local proxy process is started.
16
+ - 🧭 Fixed the main TUI footer so the outdated-version warning appears directly under the proxy status line where users can see it immediately.
17
+ - 🧠 Fixed proxy-backed launcher model selection so `Crush` and `Goose` now use the universal `fcm-proxy` model slug instead of stale provider-specific ids when proxy mode is enabled.
@@ -0,0 +1,7 @@
1
+ # Changelog v0.2.10 - 2026-03-14
2
+
3
+ ### Changed
4
+ - **Discord invite link**: Updated to permanent non-expiring link `https://discord.gg/ZTNFHvvCkU` in README and TUI footer
5
+ - **NVIDIA NIM**: Added MiniMax M2.5 (S+ tier) to model list
6
+
7
+ ---
@@ -0,0 +1,6 @@
1
+ # Changelog v0.2.11 - 2026-03-14
2
+
3
+ ### Added
4
+ - **Pi Coding Agent support**: Enabled Pi (pi.dev) as a launchable mode in the Z key cycle. Select a model and press Enter to configure Pi's config file and spawn the PI coding agent CLI with the chosen model and API endpoint.
5
+
6
+ ---
@@ -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.