Added
- 🎨 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.
- 📖 Comprehensive documentation refresh across JSDoc headers in
bin/free-coding-models.jsto clarify the new default startup behavior, ping cadence states, and removal of the startup menu.
Changed
- 🛡️ 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. - 🎯 Improved Crush configuration — Now writes proper
config.models.largedefault selection (instead of relying on CLI args), respects proxy enablement state, and usesdisable_default_providersto rely on FCM's provider configuration. - 🔧 Crush launcher robustness — Spawn call simplified to not pass
--modelargument; model selection now driven entirely throughcrush.jsonto avoid CLI parsing conflicts. - 📚 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.
- ✅ 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.
Fixed
- 🪪 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. - 📖 Shell compatibility — Fixed spawning command for external tools to use
shell: trueonly on Windows; Linux/macOS now spawn without shell wrapper for cleaner process trees. - 🎛 Filter state persistence — Tier and Provider filter badges in the footer now correctly calculate and display their active state across all state transitions.