free-coding-models 0.3.67 โ†’ 0.3.69

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 (173) hide show
  1. package/README.md +13 -13
  2. package/changelog/v0.1.1.md +3 -0
  3. package/changelog/v0.1.10.md +3 -0
  4. package/changelog/v0.1.11.md +10 -0
  5. package/changelog/v0.1.12.md +16 -0
  6. package/changelog/v0.1.13.md +3 -0
  7. package/changelog/v0.1.14.md +3 -0
  8. package/changelog/v0.1.15.md +3 -0
  9. package/changelog/v0.1.16.md +13 -0
  10. package/changelog/v0.1.17.md +3 -0
  11. package/changelog/v0.1.18.md +3 -0
  12. package/changelog/v0.1.19.md +3 -0
  13. package/changelog/v0.1.2.md +3 -0
  14. package/changelog/v0.1.20.md +14 -0
  15. package/changelog/v0.1.21.md +12 -0
  16. package/changelog/v0.1.22.md +6 -0
  17. package/changelog/v0.1.23.md +16 -0
  18. package/changelog/v0.1.24.md +9 -0
  19. package/changelog/v0.1.25.md +13 -0
  20. package/changelog/v0.1.26.md +6 -0
  21. package/changelog/v0.1.27.md +6 -0
  22. package/changelog/v0.1.28.md +5 -0
  23. package/changelog/v0.1.29.md +5 -0
  24. package/changelog/v0.1.3.md +3 -0
  25. package/changelog/v0.1.31.md +10 -0
  26. package/changelog/v0.1.32.md +8 -0
  27. package/changelog/v0.1.33.md +5 -0
  28. package/changelog/v0.1.34.md +6 -0
  29. package/changelog/v0.1.35.md +5 -0
  30. package/changelog/v0.1.36.md +16 -0
  31. package/changelog/v0.1.37.md +5 -0
  32. package/changelog/v0.1.38.md +9 -0
  33. package/changelog/v0.1.39.md +3 -0
  34. package/changelog/v0.1.4.md +3 -0
  35. package/changelog/v0.1.40.md +3 -0
  36. package/changelog/v0.1.41.md +11 -0
  37. package/changelog/v0.1.42.md +3 -0
  38. package/changelog/v0.1.43.md +3 -0
  39. package/changelog/v0.1.44.md +17 -0
  40. package/changelog/v0.1.45.md +6 -0
  41. package/changelog/v0.1.46.md +9 -0
  42. package/changelog/v0.1.47.md +6 -0
  43. package/changelog/v0.1.48.md +11 -0
  44. package/changelog/v0.1.49.md +10 -0
  45. package/changelog/v0.1.5.md +3 -0
  46. package/changelog/v0.1.50.md +7 -0
  47. package/changelog/v0.1.51.md +4 -0
  48. package/changelog/v0.1.52.md +10 -0
  49. package/changelog/v0.1.54.md +41 -0
  50. package/changelog/v0.1.55.md +3 -0
  51. package/changelog/v0.1.56.md +11 -0
  52. package/changelog/v0.1.57.md +7 -0
  53. package/changelog/v0.1.58.md +7 -0
  54. package/changelog/v0.1.59.md +7 -0
  55. package/changelog/v0.1.6.md +3 -0
  56. package/changelog/v0.1.60.md +7 -0
  57. package/changelog/v0.1.61.md +9 -0
  58. package/changelog/v0.1.62.md +9 -0
  59. package/changelog/v0.1.63.md +15 -0
  60. package/changelog/v0.1.64.md +22 -0
  61. package/changelog/v0.1.65.md +15 -0
  62. package/changelog/v0.1.66.md +22 -0
  63. package/changelog/v0.1.67.md +40 -0
  64. package/changelog/v0.1.68.md +38 -0
  65. package/changelog/v0.1.69.md +3 -0
  66. package/changelog/v0.1.7.md +3 -0
  67. package/changelog/v0.1.70.md +7 -0
  68. package/changelog/v0.1.71.md +7 -0
  69. package/changelog/v0.1.72.md +7 -0
  70. package/changelog/v0.1.73.md +7 -0
  71. package/changelog/v0.1.74.md +3 -0
  72. package/changelog/v0.1.75.md +9 -0
  73. package/changelog/v0.1.76.md +13 -0
  74. package/changelog/v0.1.77.md +13 -0
  75. package/changelog/v0.1.78.md +7 -0
  76. package/changelog/v0.1.79.md +8 -0
  77. package/changelog/v0.1.8.md +3 -0
  78. package/changelog/v0.1.80.md +7 -0
  79. package/changelog/v0.1.81.md +19 -0
  80. package/changelog/v0.1.82.md +9 -0
  81. package/changelog/v0.1.83.md +22 -0
  82. package/changelog/v0.1.84.md +25 -0
  83. package/changelog/v0.1.85.md +19 -0
  84. package/changelog/v0.1.86.md +17 -0
  85. package/changelog/v0.1.87.md +7 -0
  86. package/changelog/v0.1.88.md +167 -0
  87. package/changelog/v0.1.89.md +22 -0
  88. package/changelog/v0.1.9.md +3 -0
  89. package/changelog/v0.2.0.md +30 -0
  90. package/changelog/v0.2.1.md +17 -0
  91. package/changelog/v0.2.10.md +7 -0
  92. package/changelog/v0.2.11.md +6 -0
  93. package/changelog/v0.2.12.md +16 -0
  94. package/changelog/v0.2.13.md +16 -0
  95. package/changelog/v0.2.14.md +6 -0
  96. package/changelog/v0.2.15.md +6 -0
  97. package/changelog/v0.2.17.md +14 -0
  98. package/changelog/v0.2.2.md +16 -0
  99. package/changelog/v0.2.3.md +7 -0
  100. package/changelog/v0.2.4.md +7 -0
  101. package/changelog/v0.2.5.md +12 -0
  102. package/changelog/v0.2.7.md +3 -0
  103. package/changelog/v0.2.8.md +107 -0
  104. package/changelog/v0.2.9.md +10 -0
  105. package/changelog/v0.3.0.md +30 -0
  106. package/changelog/v0.3.1.md +17 -0
  107. package/changelog/v0.3.11.md +20 -0
  108. package/changelog/v0.3.12.md +18 -0
  109. package/changelog/v0.3.13.md +4 -0
  110. package/changelog/v0.3.14.md +6 -0
  111. package/changelog/v0.3.15.md +4 -0
  112. package/changelog/v0.3.16.md +3 -0
  113. package/changelog/v0.3.17.md +4 -0
  114. package/changelog/v0.3.18.md +12 -0
  115. package/changelog/v0.3.19.md +12 -0
  116. package/changelog/v0.3.2.md +5 -0
  117. package/changelog/v0.3.21.md +13 -0
  118. package/changelog/v0.3.22.md +29 -0
  119. package/changelog/v0.3.23.md +12 -0
  120. package/changelog/v0.3.24.md +34 -0
  121. package/changelog/v0.3.25.md +40 -0
  122. package/changelog/v0.3.26.md +85 -0
  123. package/changelog/v0.3.28.md +3 -0
  124. package/changelog/v0.3.29.md +107 -0
  125. package/changelog/v0.3.3.md +11 -0
  126. package/changelog/v0.3.30.md +3 -0
  127. package/changelog/v0.3.31.md +113 -0
  128. package/changelog/v0.3.32.md +123 -0
  129. package/changelog/v0.3.33.md +129 -0
  130. package/changelog/v0.3.34.md +156 -0
  131. package/changelog/v0.3.35.md +173 -0
  132. package/changelog/v0.3.36.md +186 -0
  133. package/changelog/v0.3.37.md +182 -0
  134. package/changelog/v0.3.38.md +3 -0
  135. package/changelog/v0.3.39.md +3 -0
  136. package/changelog/v0.3.4.md +9 -0
  137. package/changelog/v0.3.40.md +18 -0
  138. package/changelog/v0.3.41.md +7 -0
  139. package/changelog/v0.3.42.md +9 -0
  140. package/changelog/v0.3.43.md +13 -0
  141. package/changelog/v0.3.44.md +10 -0
  142. package/changelog/v0.3.45.md +12 -0
  143. package/changelog/v0.3.46.md +5 -0
  144. package/changelog/v0.3.47.md +4 -0
  145. package/changelog/v0.3.48.md +10 -0
  146. package/changelog/v0.3.49.md +18 -0
  147. package/changelog/v0.3.5.md +5 -0
  148. package/changelog/v0.3.50.md +41 -0
  149. package/changelog/v0.3.51.md +37 -0
  150. package/changelog/v0.3.52.md +43 -0
  151. package/changelog/v0.3.54.md +55 -0
  152. package/changelog/v0.3.55.md +62 -0
  153. package/changelog/v0.3.56.md +53 -0
  154. package/changelog/v0.3.57.md +61 -0
  155. package/changelog/v0.3.58.md +10 -0
  156. package/changelog/v0.3.59.md +3 -0
  157. package/changelog/v0.3.6.md +12 -0
  158. package/changelog/v0.3.60.md +3 -0
  159. package/changelog/v0.3.61.md +3 -0
  160. package/changelog/v0.3.62.md +3 -0
  161. package/changelog/v0.3.63.md +20 -0
  162. package/changelog/v0.3.64.md +10 -0
  163. package/changelog/v0.3.65.md +10 -0
  164. package/changelog/v0.3.66.md +17 -0
  165. package/{CHANGELOG.md โ†’ changelog/v0.3.67.md} +1 -1
  166. package/changelog/v0.3.68.md +18 -0
  167. package/changelog/v0.3.69.md +47 -0
  168. package/changelog/v0.3.9.md +10 -0
  169. package/package.json +2 -2
  170. package/sources.js +98 -74
  171. package/src/changelog-loader.js +41 -41
  172. package/web/dist/assets/{index-DCwSuNgI.js โ†’ index-CugpJNf7.js} +1 -1
  173. package/web/dist/index.html +1 -1
@@ -0,0 +1,15 @@
1
+ # Changelog v0.1.63 - 2026-02-24
2
+
3
+ ### Changed
4
+
5
+ - Replaced webhook telemetry with PostHog capture API (`/i/v0/e/`) and kept explicit consent + `--no-telemetry` opt-out.
6
+ - Added persistent anonymous telemetry identity in config (`telemetry.anonymousId`) for stable anonymous usage counts.
7
+ - Added telemetry consent screen UX: custom ASCII onboarding, explicit privacy messaging, and โ€œAccept & Continueโ€ default action.
8
+ - Added telemetry toggle in Settings (`P`) and documented env controls: `FREE_CODING_MODELS_TELEMETRY`, `FREE_CODING_MODELS_POSTHOG_KEY`, `FREE_CODING_MODELS_POSTHOG_HOST`.
9
+ - Added telemetry metadata fields: `app_version`, `system` (`macOS`/`Windows`/`Linux`), and `terminal` (Terminal.app/iTerm2/kitty/etc. with fallback).
10
+ - Added telemetry debug mode with `FREE_CODING_MODELS_TELEMETRY_DEBUG=1` (stderr traces for sent/skip/error states).
11
+ - Hardened telemetry safety behavior: analytics failures stay non-blocking and non-TTY runs no longer overwrite stored consent.
12
+ - Fixed consent renderer to avoid full-screen clear side effects and preserve header visibility across terminals.
13
+ - Updated TUI footer contributors link to point to the repository contributors graph.
14
+
15
+ ---
@@ -0,0 +1,22 @@
1
+ # Changelog v0.1.64 - 2026-02-24
2
+
3
+ ### Added
4
+
5
+ - Added 4 new free providers: Hugging Face Inference, Replicate, DeepInfra, and Fireworks AI (models, key handling, healthchecks, Settings integration).
6
+ - Added richer Settings (`P`) provider rows with inline rate-limit summary and live API key test status.
7
+
8
+ ### Changed
9
+
10
+ - OpenCode launch now detects `tmux` and auto-injects `--port` (`OPENCODE_PORT` if free, otherwise first available `4096-5095`) so sub-agent panes work reliably.
11
+ - Updated OpenRouter free model set to include `qwen/qwen3-coder:480b-free`, `mistralai/devstral-2-free`, and `mimo-v2-flash-free`.
12
+ - Added SambaNova `Llama3-Groq` coding-tuned entry.
13
+ - Updated setup/config docs and env var support for new providers (`HUGGINGFACE_API_KEY`/`HF_TOKEN`, `REPLICATE_API_TOKEN`, `DEEPINFRA_API_KEY`/`DEEPINFRA_TOKEN`).
14
+ - Replicate pings now use `/v1/predictions` request format; OpenCode launch for Replicate is guarded with a clear monitor-only message.
15
+ - Settings bottom panel now shows provider onboarding steps (signup URL + key creation/test flow) instead of model list details.
16
+ - Documented in `AGENTS.md` that top changelog entries must stay clean for direct reuse in GitHub Release notes.
17
+
18
+ ### Fixed
19
+
20
+ - Settings/onboarding disabled state now uses an explicit red cross (`โŒ`) instead of a gray square glyph for better terminal font compatibility.
21
+
22
+ ---
@@ -0,0 +1,15 @@
1
+ # Changelog v0.1.65 - 2026-02-25
2
+
3
+ ### Added
4
+
5
+ - Added persistent model favorites with `F` key toggle, star marker in Model column, dark-orange favorite highlighting, and pinned-at-top behavior.
6
+ - Added manual update maintenance flow in Settings (`P`): check npm updates on demand and install directly from the settings screen.
7
+ - Expanded `K` help overlay with complete keybindings (main TUI + settings) and CLI flags usage examples.
8
+
9
+ ### Changed
10
+
11
+ - Favorites now remain visible and pinned regardless of active sort or tier/origin filters.
12
+ - Extended config schema (`~/.free-coding-models.json`) with a persisted `favorites` array (`providerKey/modelId` entries).
13
+ - Updated README documentation for favorites, manual updates, settings shortcuts, and config structure.
14
+
15
+ ---
@@ -0,0 +1,22 @@
1
+ # Changelog v0.1.66 - 2026-02-25
2
+
3
+ ### Added
4
+
5
+ - Added 4 new providers: SiliconFlow, Together AI, Cloudflare Workers AI, and Perplexity API.
6
+ - Added 23 provider models across these new integrations (OpenAI-compatible endpoints + settings onboarding metadata).
7
+ - Added Cloudflare-specific setup guidance in Settings, including explicit `CLOUDFLARE_ACCOUNT_ID` requirement.
8
+
9
+ ### Changed
10
+
11
+ - Extended provider/env support in config and runtime (`SILICONFLOW_API_KEY`, `TOGETHER_API_KEY`, `CLOUDFLARE_API_TOKEN`/`CLOUDFLARE_API_KEY`, `PERPLEXITY_API_KEY`/`PPLX_API_KEY`).
12
+ - Extended OpenCode Desktop provider auto-configuration for SiliconFlow, Together AI, Cloudflare Workers AI, and Perplexity API.
13
+ - Updated README to reflect current provider/model totals (17 providers / 134 models) and expanded key setup + env variable documentation.
14
+ - Updated `P` (Settings) and `K` (Help) overlays with dedicated dark background panels (distinct from the main table) for clearer visual separation.
15
+
16
+ ### Fixed
17
+
18
+ - Fixed model list scrolling and favorite toggle UX regression introduced after `0.1.65` (cursor/scroll stability when unpinning favorites, last rows reachable).
19
+ - Fixed overlay usability on small terminals: `K` (Help) and `P` (Settings) now use viewport scrolling so all content and top rows remain reachable.
20
+ - Fixed main table keyboard navigation to wrap around: pressing Up on the first row jumps to the last row, and pressing Down on the last row jumps to the first row.
21
+
22
+ ---
@@ -0,0 +1,40 @@
1
+ # Changelog v0.1.67 - 2026-02-26
2
+
3
+ ### Added
4
+
5
+ - **Stability Score** โ€” new composite 0โ€“100 metric combining p95 latency (30%), jitter/ฯƒ (30%), spike rate (20%), and uptime (20%). Displayed as a color-coded column in the TUI (green โ‰ฅ80, cyan โ‰ฅ60, yellow โ‰ฅ40, red <40).
6
+ - **p95 latency** (`getP95`) โ€” 95th percentile latency from successful pings. Answers "95% of requests are faster than X ms."
7
+ - **Jitter** (`getJitter`) โ€” standard deviation of latency. Low jitter = predictable, high jitter = erratic/spiky.
8
+ - **"Spiky" verdict** โ€” new verdict that catches models with good average latency but terrible tail latency (p95 spikes). A model with avg 250ms but p95 6000ms now gets flagged as "Spiky ๐Ÿ“ˆ" instead of "Perfect ๐Ÿš€".
9
+ - **Stability sorting** โ€” press `B` to sort by stability score. Most stable models rise to the top. `B` key now listed in the footer bar sort keys.
10
+ - 24 new unit tests covering p95, jitter, stability score, Spiky verdict, and stability sorting.
11
+ - **README: TUI Columns reference table** โ€” full 12-column table documenting every column (Rank, Tier, SWE%, Model, Origin, Latest, Avg, Health, Verdict, Stability, Context, Up%).
12
+ - **README: Stability Score section** โ€” documents the formula, weights, color thresholds, and an example calculation.
13
+ - **README: Verdict values table** โ€” lists all 7 verdict categories with their emoji, meaning, and criteria.
14
+
15
+ ### Changed
16
+
17
+ - **"Stab" column renamed to "Stability"** โ€” column header widened from 6 to 11 characters; header text now reads `StaBility` with the `B` sort-key letter in uppercase bold yellow.
18
+ - **SWE% column: 8-band color gradient** โ€” replaced the old 3-band color scheme (green โ‰ฅ50, yellow โ‰ฅ30, dim otherwise) with an 8-band gradient matching `TIER_COLOR`: โ‰ฅ70% bright neon green, โ‰ฅ60% green, โ‰ฅ50% yellow-green, โ‰ฅ40% yellow, โ‰ฅ35% amber, โ‰ฅ30% orange-red, โ‰ฅ20% red, <20% dark red.
19
+ - `getVerdict()` is now stability-aware: models in "Perfect" or "Normal" avg range get downgraded to "Spiky" when p95 shows extreme tail latency (requires โ‰ฅ3 pings to avoid false positives).
20
+ - `findBestModel()` now uses a 4-key sort: status โ†’ avg latency โ†’ stability score โ†’ uptime (was 3-key: status โ†’ avg โ†’ uptime).
21
+ - `sortResults()` supports new `'stability'` column.
22
+ - `VERDICT_ORDER` updated to include "Spiky" between "Slow" and "Very Slow".
23
+ - **README: keyboard shortcuts** updated to include `B` for Stability sort; "How it works" diagram updated.
24
+ - **Default ping interval โ†’ 3 seconds** (was 2s) for a calmer default pace; still adjustable with W/X keys.
25
+ - **Verdict colors unified with TIER_COLOR gradient** โ€” Perfect (cyan-green) โ†’ Normal (lime) โ†’ Spiky (yellow-green) โ†’ Slow (orange) โ†’ Very Slow (red-orange) โ†’ Overloaded (red) โ†’ Unstable (dark red) โ†’ Unusable (darkest red). Bestโ†’worst ordering in code.
26
+ - **Footer cleanup** โ€” Removed the BETA TUI warning line. Renamed "Join our Discord" to just "Discord" and placed it next to Contributors on the "Made with love" line.
27
+ - **Footer link colors** โ€” Star on GitHub: yellow, Contributors: orange, Discord: light purple. Ctrl+C Exit moved to end of "Made with love" line.
28
+ - **Discord plain URL** โ€” Shows `Discord โ†’ https://discord.gg/5MbTnDC3Md` so terminals without OSC 8 link support can still see the URL.
29
+ - **K Help styling** โ€” Changed from green background badge to neon green text (`rgb(0,255,80)`) with no background.
30
+ - **Z Mode styling** โ€” Red-orange color (`rgb(255,100,50)`) matching OpenClaw branding.
31
+ - **Selection row styling** โ€” Darker backgrounds: favorite rows `bgRgb(35,20,0)`, cursor rows `bgRgb(50,0,60)`. Model name and Origin rendered in white bold when selected.
32
+ - **README** โ€” Updated all ping interval references from 2s to 3s; removed BETA warning line.
33
+
34
+ ### Fixed
35
+
36
+ - **Column alignment: Health/Status emoji width** โ€” Health column used `.padEnd()` which miscounted emoji width (โœ…, ๐Ÿ”ฅ, โณ etc. are 2 terminal columns but counted as fewer). Switched to `padEndDisplay()` so Verdict, Stability, and Up% columns now align correctly.
37
+ - **Verdict emojis moved to end of text** โ€” emojis now appear after the word (e.g., `Perfect ๐Ÿš€` instead of `๐Ÿš€ Perfect`) for cleaner left-alignment.
38
+ - **Empty cell placeholders** โ€” changed from single `โ€”` to `โ€”โ€”โ€”` in Latest Ping, Avg Ping, and Stability columns so empty cells have more visual weight and don't look like blank space.
39
+
40
+ ---
@@ -0,0 +1,38 @@
1
+ # Changelog v0.1.68 - 2026-02-26
2
+
3
+ ### Added
4
+
5
+ - **[fork] ZAI reverse proxy for OpenCode** -- When selecting a ZAI model, a local HTTP proxy automatically starts to translate OpenCode's `/v1/*` requests to ZAI's `/api/coding/paas/v4/*` API format. Proxy lifecycle is fully managed (starts on Enter, stops on OpenCode exit).
6
+ - **[fork] Stale config cleanup on OpenCode exit** -- The `spawnOpenCode` exit handler now removes the ZAI provider block from `opencode.json` so leftover config does not cause "model not valid" errors on the next manual OpenCode launch.
7
+
8
+ ### Fixed
9
+
10
+ - **[fork] OpenCode config path on Windows** -- OpenCode uses `xdg-basedir` which resolves to `%USERPROFILE%\.config` on all platforms. We were writing to `%APPDATA%\Roaming\opencode\` on Windows, so OpenCode never saw the ZAI provider config. Config path is now `~/.config/opencode/opencode.json` on all platforms.
11
+ - **[fork] `apiKey` field for ZAI provider** -- Changed from `{env:ZAI_API_KEY}` template string to the actual resolved key so OpenCode's `@ai-sdk/openai-compatible` provider can authenticate immediately.
12
+
13
+ ### Changed
14
+
15
+ - **[fork] Default ping interval 3s -> 60s** -- Reduced re-ping frequency from every 3 seconds to every 60 seconds for a calmer monitoring experience (still adjustable with W/X keys).
16
+ - **[fork] Suppress MaxListeners warning** -- Set `NODE_NO_WARNINGS=1` in the OpenCode child process environment to suppress Node.js EventEmitter warnings.
17
+ - **[fork] ZAI models synced to 5** -- Updated `sources.js` to 5 ZAI API models with SWE-bench scores: GLM-5 (77.8%), GLM-4.5 (75.0%), GLM-4.7 (73.8%), GLM-4.5-Air (72.0%), GLM-4.6 (70.0%).
18
+ - **[fork] README updates** -- Updated model/provider counts (139 models, 18 providers), ZAI model table with SWE-bench scores, ping interval references (60s), added ZAI proxy documentation.
19
+ - **Smart Recommend (Q key)** โ€” new modal overlay with a 3-question wizard (task type, priority, context budget) that runs a 10-second targeted analysis (2 pings/sec) and recommends the Top 3 models for your use case. Recommended models are pinned above favorites with ๐ŸŽฏ prefix and green row highlight.
20
+ - **Config Profiles** โ€” save/load named configuration profiles (`--profile work`, `--profile fast`, etc.). Each profile stores API keys, enabled providers, favorites, tier filters, ping interval, and default sort. **Shift+P** cycles through profiles live in the TUI.
21
+ - **`--recommend` CLI flag** โ€” auto-opens the Smart Recommend overlay on startup.
22
+ - **`--profile <name>` CLI flag** โ€” loads a saved profile at startup; errors if profile doesn't exist.
23
+ - **Scoring engine** (`lib/utils.js`) โ€” `TASK_TYPES`, `PRIORITY_TYPES`, `CONTEXT_BUDGETS`, `parseCtxToK()`, `parseSweToNum()`, `scoreModelForTask()`, `getTopRecommendations()` for the recommendation algorithm.
24
+ - **Profile management** (`lib/config.js`) โ€” `saveAsProfile()`, `loadProfile()`, `listProfiles()`, `deleteProfile()`, `getActiveProfileName()`, `setActiveProfile()`.
25
+ - 43 new unit tests (131 total) covering scoring constants, `scoreModelForTask`, `getTopRecommendations`, `--profile`/`--recommend` arg parsing, and config profile CRUD.
26
+
27
+ ### Changed
28
+
29
+ - **Help overlay (K)** โ€” removed the Filters section; moved `T` (Cycle tier) and `N` (Cycle origin) shortcuts into their respective column description rows. Added `Q` (Smart Recommend) and `Shift+P` (Cycle profile) shortcuts. Added `--recommend` and `--profile` to the CLI flags section.
30
+ - **Sort/pin order** โ€” `sortResultsWithPinnedFavorites()` now pins recommended+favorite models first, then recommended-only, then favorite-only, then normal sorted models.
31
+ - **Animation loop priority** โ€” Settings > Recommend > Help > Table.
32
+
33
+ ### Fixed
34
+
35
+ - **`--profile` arg parsing** โ€” the profile value (e.g. `work` in `--profile work`) was incorrectly captured as `apiKey`; fixed with `skipIndices` Set in `parseArgs()`.
36
+ - **`recommendScore` undefined** โ€” `sortResultsWithPinnedFavorites()` referenced `recommendScore` but it was never set on result objects; now set during `startRecommendAnalysis()`.
37
+
38
+ ---
@@ -0,0 +1,3 @@
1
+ # Changelog v0.1.69 - 2026-02-26
2
+
3
+ **Full Changelog**: https://github.com/vava-nessa/free-coding-models/compare/v0.1.68...v0.1.69
@@ -0,0 +1,3 @@
1
+ # Changelog v0.1.7 - 2026-02-22
2
+
3
+ _No release notes available for this version._
@@ -0,0 +1,7 @@
1
+ # Changelog v0.1.70 - 2026-02-26
2
+
3
+ ### Changed
4
+
5
+ - **Default ping interval 60s -> 3s** -- Changed default re-ping frequency from every 60 seconds back to every 3 seconds for faster model monitoring feedback. Still adjustable with W/X keys.
6
+
7
+ ---
@@ -0,0 +1,7 @@
1
+ # Changelog v0.1.71 - 2026-02-26
2
+
3
+ ### Changed
4
+
5
+ - **TUI footer contributors** โ€” moved contributor names to their own line at the bottom for cleaner layout.
6
+
7
+ ---
@@ -0,0 +1,7 @@
1
+ # Changelog v0.1.72 - 2026-02-26
2
+
3
+ ### Changed
4
+
5
+ - **TUI footer spacing** โ€” added extra empty line before contributors line for better readability in terminals.
6
+
7
+ ---
@@ -0,0 +1,7 @@
1
+ # Changelog v0.1.73 - 2026-02-26
2
+
3
+ ### Fixed
4
+
5
+ - **iFlow OpenCode integration** โ€” added missing iFlow provider configuration for OpenCode launch. Selecting iFlow models and pressing Enter now correctly configures OpenCode to use iFlow's API.
6
+
7
+ ---
@@ -0,0 +1,3 @@
1
+ # Changelog v0.1.74 - 2026-02-26
2
+
3
+ - **TUI footer spacing** โ€” removed an empty separator line between the โ€œ... more below โ€ฆโ€ indicator and the navigation hints, freeing up vertical space in the main UI.
@@ -0,0 +1,9 @@
1
+ # Changelog v0.1.75 - 2026-02-26
2
+
3
+ ### Fixed
4
+
5
+ - **TUI header disappeared** โ€” fixed `TABLE_FOOTER_LINES` constant (was 7, now 5) to match the actual footer line count after contributors line was removed in 0.1.73. The mismatch caused `calculateViewport()` to over-reserve vertical space, pushing the header off-screen.
6
+ - **Missing spacer line** โ€” restored the `else { lines.push('') }` branch that adds a blank line between model rows and navigation hints when the profile-save message is not shown.
7
+ - **Stray debug line** โ€” removed accidental `lines.push('____________________')` left in the Smart Recommend section.
8
+
9
+ ---
@@ -0,0 +1,13 @@
1
+ # Changelog v0.1.76 - 2026-02-26
2
+
3
+ ### Added
4
+
5
+ - **Feature Request system (J key)** โ€” added anonymous feedback overlay that sends feature requests directly to the project team via Discord webhook. Press **J** to open a multi-line input box, type your request, and press Enter to send. Includes automatic collection of anonymous metadata (OS, terminal, Node version, architecture, timezone) sent only in the Discord message footer (not visible in UI). Shows success confirmation with 3-second auto-close.
6
+ - **Full-screen overlay** โ€” Feature Request overlay now hides the main TUI completely (like Settings and Help), with a bordered multi-line input box supporting up to 500 characters with real-time character counter.
7
+ - **Help documentation** โ€” added J key entry in help overlay (K) and navigation hints.
8
+
9
+ ### Changed
10
+
11
+ - **Footer hints** โ€” added `J Request feature` to line 2 of navigation hints for discoverability.
12
+
13
+ ---
@@ -0,0 +1,13 @@
1
+ # Changelog v0.1.77 - 2026-02-27
2
+
3
+ ### Added
4
+
5
+ - **Bug Report system (I key)** โ€” added anonymous bug report overlay that sends bug reports directly to the project team via Discord webhook. Press **I** to open a multi-line input box, describe the bug, and press Enter to send. Uses the same infrastructure as Feature Request (J key) with a separate webhook and distinct red color theme. Includes automatic collection of anonymous metadata (OS, terminal, Node version, architecture, timezone) sent only in the Discord message footer (not visible in UI). Shows success confirmation with 3-second auto-close.
6
+ - **Full-screen overlay** โ€” Bug Report overlay hides the main TUI completely (like Settings, Help, and Feature Request), with a bordered multi-line input box supporting up to 500 characters with real-time character counter.
7
+ - **Help documentation** โ€” added I key entry in help overlay (K) and navigation hints.
8
+
9
+ ### Changed
10
+
11
+ - **Footer hints** โ€” added `I Report bug` to line 2 of navigation hints for discoverability.
12
+
13
+ ---
@@ -0,0 +1,7 @@
1
+ # Changelog v0.1.78 - 2026-02-27
2
+
3
+ ### Added
4
+
5
+ - **Auto-update system** โ€” removed manual update popup; now automatically installs updates and opens changelog in browser. Update proceeds immediately after opening changelog.
6
+
7
+ ---
@@ -0,0 +1,8 @@
1
+ # Changelog v0.1.79 - 2026-02-27
2
+
3
+ ### Added
4
+
5
+ - **Alibaba Cloud (DashScope) provider** โ€” added support for Qwen3-Coder models via Alibaba Cloud Model Studio. 8 new models including Qwen3 Coder Plus (69.6% SWE-bench), Qwen3 Coder Max (67.0%), Qwen3 Coder Next (65.0%), Qwen3 Coder 480B (70.6%), Qwen3 235B (70.0%), Qwen3 80B Instruct (65.0%), Qwen3 32B (50.0%), and Qwen2.5 Coder 32B (46.0%). OpenAI-compatible API with 1M free tokens per model (Singapore region, 90 days). Use `DASHSCOPE_API_KEY` environment variable or configure via Settings (P key).
6
+ - **Model count increased** โ€” now supporting 158 models across 20 providers (up from 150 models / 19 providers).
7
+
8
+ ---
@@ -0,0 +1,3 @@
1
+ # Changelog v0.1.8 - 2026-02-22
2
+
3
+ _No release notes available for this version._
@@ -0,0 +1,7 @@
1
+ # Changelog v0.1.80 - 2026-02-27
2
+
3
+ ### Fixed
4
+
5
+ - **Settings menu crash** โ€” fixed `ReferenceError: telemetryRowIdx is not defined` error when opening Settings (P key). Removed lingering reference to the deleted telemetry row index.
6
+
7
+ ---
@@ -0,0 +1,19 @@
1
+ # Changelog v0.1.81 - 2026-02-27
2
+
3
+ ### Added
4
+
5
+ - **Dynamic OpenRouter free model discovery** -- fetches live free models from OpenRouter API at startup; replaces static list with fresh data so new free models appear automatically without code updates. Falls back to cached static list with a yellow warning on network failure.
6
+ - **`formatCtxWindow` and `labelFromId` utility functions** -- extracted to `lib/utils.js` for testability; used by dynamic OpenRouter discovery to convert API data to display format.
7
+ - **16 new unit tests** -- covering `formatCtxWindow`, `labelFromId`, and MODELS array mutation logic (147 total tests across 23 suites).
8
+ - **NVIDIA NIM auto-configuration** -- selecting a NIM model in OpenCode now auto-creates the nvidia provider block in `opencode.json` if missing, eliminating the manual install prompt.
9
+
10
+ ### Fixed
11
+
12
+ - **Auto-update infinite loop** -- when running from source (dev mode with `.git` directory), auto-update is now skipped to prevent the restart loop where LOCAL_VERSION never changes.
13
+ - **NVIDIA model double-prefix bug** -- model IDs in `sources.js` already include `nvidia/` prefix; `getOpenCodeModelId()` now strips it for nvidia provider (like it does for zai), preventing `nvidia/nvidia/...` in OpenCode config.
14
+
15
+ ### Removed
16
+
17
+ - **`checkNvidiaNimConfig()` function** -- replaced by auto-create pattern; dead code removed.
18
+
19
+ ---
@@ -0,0 +1,9 @@
1
+ # Changelog v0.1.82 - 2026-03-03
2
+
3
+ ### Fixed
4
+
5
+ - **Alibaba Cloud URL** -- updated from deprecated `dashscope.console.alibabacloud.com` to active `modelstudio.console.alibabacloud.com` (rebranded to Model Studio).
6
+ - **SambaNova URL** -- updated from broken `sambanova.ai/developers` to active `cloud.sambanova.ai/apis` (SambaCloud portal).
7
+ - **OpenRouter key corruption** -- added validation to detect and prevent saving OpenRouter keys that don't start with `sk-or-` prefix. Shows error message and cancels save if corruption detected.
8
+
9
+ ---
@@ -0,0 +1,22 @@
1
+ # Changelog v0.1.83 - 2026-03-03
2
+
3
+ ### Added
4
+
5
+ - **Multi-Account Proxy Server** -- automatically starts a local reverse proxy (`fcm-proxy`) that groups all accounts into a single provider in OpenCode; supports multi-account rotation and auto-detects usage limits to swap between providers.
6
+ - **Transparent ZAI Proxy** -- bridges ZAI's non-standard API format to OpenAI-compatible `/v1/` for OpenCode CLI mode.
7
+ - **Quota & Usage Tracking** -- new `Usage` column in TUI shows remaining quota percentage for each model; persists across sessions via `token-stats.json`.
8
+ - **Dedicated Log Viewer** -- press `X` to view real-time activity and error logs in a focused TUI overlay; includes auto-pruning to keep log history concise.
9
+ - **Usage Sort (`Shift+G`)** -- new hotkey to sort models by remaining quota percentage, helping you pick models with the most bandwidth left.
10
+ - **Ping Interval Increase (`=`)** -- reassigned interval increase to the `=` key to free up `X` for logs; `W` still decreases the interval.
11
+ - **Model Catalogue Merging** -- groups identical models across different providers into a single "merged" view while retaining the ability to probe specific endpoints.
12
+ - **MODEL_NOT_FOUND Rotation** -- if a specific provider returns a 404 for a model, the TUI intelligently rotates through other available providers for the same model.
13
+ - **Sticky Health-break** -- UI improvement that prevents the TUI from jumping when a model's status changes from UP to TIMEOUT/DOWN.
14
+ - **Telemetry Opt-out** -- users can now explicitly disable anonymous telemetry in their config file (opt-in by default for improved bug tracking).
15
+
16
+ ### Changed
17
+
18
+ - **Masked API Keys in Settings** -- hides middle parts of API keys in the `P` menu to prevent accidental exposure during screen sharing.
19
+ - **Enhanced tmux support** -- auto-discovery of available ports for OpenCode sub-agent panes when running in a tmux session.
20
+ - **Hardened Test Suite** -- expanded to 13 suites and 62+ verified test cases covering proxy logic, usage reading, and hotkey behavior.
21
+
22
+ ---
@@ -0,0 +1,25 @@
1
+ # Changelog v0.1.84 - 2026-03-09
2
+
3
+ ### Added
4
+
5
+ - โœ… Added a new `Used` column showing total consumed prompt+completion tokens per exact `provider + model`, formatted in compact `k` / `M` units from startup log aggregation.
6
+
7
+ ### Fixed
8
+
9
+ - ๐ŸŽฏ Aligned TUI header shortcut highlights with live bindings: `Up%` uses the correct shortcut color, and `G` now sorts the `UsaGe` column directly.
10
+ - ๐Ÿงญ Renamed the `Origin` column to `Provider`, switched the provider filter key from `N` to `D`, and updated the highlighted header shortcuts to `PrOviDer`.
11
+ - ๐ŸŸข Fixed provider usage contamination by scoping quota snapshots to exact `provider + model`, so shared model IDs no longer leak usage percentages across providers.
12
+ - ๐ŸŸข Show a green dot in `Usage` when quota telemetry is not applicable or not reliable for a provider instead of displaying misleading percentages.
13
+ - ๐Ÿ”ค Shortened Alibaba Cloud (DashScope) to `Alibaba` in the main TUI table to avoid layout drift while keeping the full name in Settings.
14
+ - ๐Ÿฉบ Expanded `Health` labels for common errors: `429 TRY LATER`, `410 GONE`, `404 NOT FOUND`, `500 ERROR`.
15
+
16
+ ### Changed
17
+
18
+ - ๐Ÿงฑ Refactored TUI overlays and key handling into `src/overlays.js` and `src/key-handler.js` to keep `bin/free-coding-models.js` lean.
19
+ - ๐Ÿ”Œ Extracted OpenClaw integration into `src/openclaw.js` and aligned OpenCode flow with shared helpers.
20
+ - ๐Ÿ—‚๏ธ Moved tier/provider filter modes into shared runtime state for clearer ownership.
21
+ - โœ… Renamed the app header to `โœ… FCM`, moved the version next to `Ctrl+C Exit`, and added subtle blue color variations per provider in the `Provider` column.
22
+ - ๐Ÿงน Cleaned the footer hints by removing the duplicate `Ctrl+C Exit` entry while keeping the proxy status directly under the shortcut line.
23
+ - ๐Ÿ“š Updated README and in-app help to match the new `Provider`, `Used`, `Usage`, and current hotkey behaviors.
24
+
25
+ ---
@@ -0,0 +1,19 @@
1
+ # Changelog v0.1.85 - 2026-03-09
2
+
3
+ ## 0.1.85
4
+
5
+ ### Added
6
+
7
+ - ๐ŸŒ€ Added an inline spinner beside `Latest Ping` so each row shows when a fresh ping is still in flight without hiding the previous latency.
8
+ - ๐ŸŽ Added ping mode badges next to `FCM` so the active cadence is always visible in the header.
9
+
10
+ ### Fixed
11
+
12
+ - ๐Ÿ”‘ `Avg Ping` and latency-derived metrics now also use `401` responses, so rows without an API key still accumulate real latency samples.
13
+ - ๐ŸŽจ Unified footer shortcut colors so every hotkey uses the same visual treatment.
14
+
15
+ ### Changed
16
+
17
+ - โฑ Reworked ping scheduling: startup now runs a 60s `FAST` burst at 2s, steady state uses `NORMAL` at 10s, idle sessions auto-drop to `SLOW` at 30s after 5 minutes, and `FORCED` stays at 4s without auto slowdowns.
18
+ - ๐ŸŽ› `W` now cycles ping modes (`FAST` / `NORMAL` / `SLOW` / `FORCED`) instead of tweaking raw intervals.
19
+ - ๐Ÿงพ Updated the main footer, in-app help, README, and profile defaults to match the new ping mode system and token log wording.
@@ -0,0 +1,17 @@
1
+ # Changelog v0.1.86 - 2026-03-09
2
+
3
+ ### Fixed
4
+
5
+ - ๐Ÿ”‘ Provider key tests in the `P` settings screen now discover `/models` when available and probe multiple candidate model IDs, fixing false failures on SambaNova and NVIDIA NIM when a listed model is not actually callable.
6
+ - ๐Ÿ“š Refreshed provider catalogs with confirmed public updates for OpenRouter, SambaNova, and Cerebras so outdated model IDs are less likely to appear in the TUI.
7
+ - ๐Ÿงญ Settings key tests now show distinct `Rate limit` and `No model` states instead of collapsing every non-success into a generic failure badge.
8
+ - ๐ŸŽจ Reworked provider colors into a soft pastel rainbow palette so each provider is easier to distinguish across the TUI without aggressive saturation.
9
+ - ๐Ÿงผ Simplified the TUI header/footer by merging ping controls into one badge, moving the active tool mode into a `Z Tool` header badge, and removing redundant footer hints for tool mode and Enter actions.
10
+ - ๐Ÿ™ˆ Added an `E` shortcut to hide models from providers without configured API keys, with persistence across sessions and inside saved profiles.
11
+ - ๐Ÿ–Œ Refined the TUI visuals: provider-colored model names, header title now shows the current app version, footer version removed, favorites use a lighter pastel yellow, and the selected row uses a punchier pink-violet highlight.
12
+ - ๐ŸŒ‘ Made favorite rows darker for better contrast and changed Scaleway to a cooler blue so it no longer blends with OpenRouter.
13
+ - ๐Ÿšช `Configured Only` is now enabled by default, and the empty state tells users to press `P` when no configured API key can surface any model.
14
+ - ๐ŸชŸ Added a centered terminal-width warning instead of rendering a broken table when the shell is too narrow.
15
+ - ๐Ÿ“ Updated the README to match the current model count, default filters, and latest TUI behavior.
16
+
17
+ ---
@@ -0,0 +1,7 @@
1
+ # Changelog v0.1.87 - 2026-03-09
2
+
3
+ ### Fixed
4
+
5
+ - ๐ŸŽจ Rebalanced `Perplexity`, `Hyperbolic`, and `Together AI` provider colors so they are more visually distinct from `NIM` and from each other in the TUI.
6
+
7
+ ---
@@ -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._