free-coding-models 0.5.24 → 0.5.25
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.
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# Changelog v0.5.25 - 2026-06-10
|
|
2
|
+
|
|
3
|
+
### Changed
|
|
4
|
+
- 🆕 badge moved from verdict column to **left of model name** — same slot as ⭐ favorite and 🎯 recommended
|
|
5
|
+
- Priority: ⭐ favorite > 🎯 recommended > 🆕 new — favorite replaces 🆕 when both apply
|
|
6
|
+
- No line shifting: prefix width is subtracted from model name width so columns stay aligned
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "free-coding-models",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.25",
|
|
4
4
|
"description": "Find the fastest coding LLM models in seconds — ping free models from multiple providers, pick the best one for OpenCode, Cursor, or any AI coding assistant.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"nvidia",
|
package/src/tui/render-table.js
CHANGED
|
@@ -651,12 +651,15 @@ export function renderTable({
|
|
|
651
651
|
? providerName.slice(0, 4) + '…'
|
|
652
652
|
: providerName
|
|
653
653
|
const source = themeColors.provider(r.providerKey, providerDisplay.padEnd(wSource))
|
|
654
|
-
// 📖
|
|
654
|
+
// 📖 Prefix: ⭐ favorite > 🎯 recommended > 🆕 new — only one emoji, never shifts the line
|
|
655
|
+
const isNewModel = NEW_MODELS.has(r.modelId) || NEW_MODELS.has(`${r.providerKey}/${r.modelId}`)
|
|
655
656
|
let favoritePrefix = ''
|
|
656
657
|
if (r.isRecommended) {
|
|
657
658
|
favoritePrefix = '🎯 '
|
|
658
659
|
} else if (r.isFavorite) {
|
|
659
660
|
favoritePrefix = '⭐ '
|
|
661
|
+
} else if (isNewModel) {
|
|
662
|
+
favoritePrefix = '🆕 '
|
|
660
663
|
}
|
|
661
664
|
const prefixDisplayWidth = displayWidth(favoritePrefix)
|
|
662
665
|
const nameWidth = Math.max(0, W_MODEL - prefixDisplayWidth)
|
|
@@ -851,12 +854,7 @@ export function renderTable({
|
|
|
851
854
|
verdictColor = (text) => chalk.bold.rgb(...getTierRgb('C'))(text)
|
|
852
855
|
break
|
|
853
856
|
}
|
|
854
|
-
|
|
855
|
-
// 📖 Use padEndDisplay to account for emoji display width (2 cols each) so all rows align
|
|
856
|
-
const isNewModel = NEW_MODELS.has(r.modelId) || NEW_MODELS.has(`${r.providerKey}/${r.modelId}`)
|
|
857
|
-
const newBadge = isNewModel ? '🆕' : ''
|
|
858
|
-
const verdictTextWithBadge = newBadge ? `${newBadge} ${verdictText}` : verdictText
|
|
859
|
-
const speedCell = verdictColor(padEndDisplay(verdictTextWithBadge, W_VERDICT))
|
|
857
|
+
const speedCell = verdictColor(padEndDisplay(verdictText, W_VERDICT))
|
|
860
858
|
const moodCell = padEndDisplay(verdictIcon, W_MOOD)
|
|
861
859
|
|
|
862
860
|
// 📖 Stability column - composite score (0–100) from p95 + jitter + spikes + uptime
|