github vava-nessa/free-coding-models v0.1.68

latest releases: v0.5.99, v0.5.98, v0.5.97...
7 months ago

Added

  • [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).
  • [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.

Fixed

  • [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.
  • [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.

Changed

  • [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).
  • [fork] Suppress MaxListeners warning -- Set NODE_NO_WARNINGS=1 in the OpenCode child process environment to suppress Node.js EventEmitter warnings.
  • [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%).
  • [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.
  • 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.
  • 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.
  • --recommend CLI flag — auto-opens the Smart Recommend overlay on startup.
  • --profile <name> CLI flag — loads a saved profile at startup; errors if profile doesn't exist.
  • Scoring engine (lib/utils.js) — TASK_TYPES, PRIORITY_TYPES, CONTEXT_BUDGETS, parseCtxToK(), parseSweToNum(), scoreModelForTask(), getTopRecommendations() for the recommendation algorithm.
  • Profile management (lib/config.js) — saveAsProfile(), loadProfile(), listProfiles(), deleteProfile(), getActiveProfileName(), setActiveProfile().
  • 43 new unit tests (131 total) covering scoring constants, scoreModelForTask, getTopRecommendations, --profile/--recommend arg parsing, and config profile CRUD.

Changed

  • 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.
  • Sort/pin order — sortResultsWithPinnedFavorites() now pins recommended+favorite models first, then recommended-only, then favorite-only, then normal sorted models.
  • Animation loop priority — Settings > Recommend > Help > Table.

Fixed

  • --profile arg parsing — the profile value (e.g. work in --profile work) was incorrectly captured as apiKey; fixed with skipIndices Set in parseArgs().
  • recommendScore undefined — sortResultsWithPinnedFavorites() referenced recommendScore but it was never set on result objects; now set during startRecommendAnalysis().

Don't miss a new free-coding-models release

NewReleases is sending notifications on new releases.