Polytoken 0.9.7 Polytoken released version 0.9.7, expanding its model catalog with Kimi K3.1 Pro and Highspeed, GLM-5.3-FlashX, MiMo V2.6 Pro Ultraspeed, Mistral Large 4, MiniMax M3.1 Flash, and additional Qwen, DeepSeek, Gemini, and Nemotron models, and adding reasoning-effort choices plus a `none` option for GPT-6 Sol and GPT-6.1 Terra. The release also improves permission approval prompts, which now show the permission classifier's explanation when it is unsure, and adds configuration and diagnostics changes, including commands like `polytoken models` and `lsp check` working with available configuration parts when an environment variable is unset. The changelog states the catalog updates are "mostly experimental" and support for most providers is best-effort, with reports accepted through `/feedback`; the same entry notes Polytoken 0.9.6 fixed Kimi Code connections, login, and token refresh to use international service endpoints. Changelog 0.9.7 Stable Section titled “0.9.7 Stable” 097-stable Polytoken 0.9.7 expands the model catalog and improves permissions, configuration, feedback, and the interface. Models and providers Section titled “Models and providers” models-and-providers - Expanded the model catalog with Kimi K3.1 Pro and Highspeed, GLM-5.3-FlashX, MiMo V2.6 Pro Ultraspeed, Mistral Large 4, MiniMax M3.1 Flash, and additional Qwen, DeepSeek, Gemini, and Nemotron models across existing providers. - Added reasoning-effort choices for the new models, plus a none option for GPT-6 Sol and GPT-6.1 Terra. - Neuralwatt vision models can now receive images from file reads. Catalog updates are mostly experimental. I don’t use most of these providers, so support is best-effort. If something doesn’t work, reports through /feedback are welcome. Interface and permissions Section titled “Interface and permissions” interface-and-permissions - Performance improvements to permission approval prompts and goal previews. - Approval prompts now show the permission classifier’s explanation when it is unsure and asks you to decide. - Links in expanded tool results are now clickable and support double-click-to-copy. - Subagent tool cards expand with a click, and expanded shell-command cards show the full command alongside the result. - Configurator improvements for narrow terminals, long model IDs, model selection, and status messages. - Improved directory-change approvals and guidance for writing outside the project. - More reliable permission matching for directory names containing wildcard characters. Configuration and diagnostics Section titled “Configuration and diagnostics” configuration-and-diagnostics - Commands such as polytoken models , authentication commands, and lsp check can now work with the available parts of your configuration when an environment variable is unset. Warnings identify the unavailable settings; session startup and configuration validation still require all referenced variables. - /lsp status now shows recent language-server failures, including failures from which the server has recovered. - Each daemon run now keeps its own log file, including when you resume a session. - Improved self-update compatibility with restrictive file-permission settings. Feedback Section titled “Feedback” feedback - Refreshing feedback diagnostics preserves attachment selections and includes newly available logs. - Unsent feedback remains open for correction and retry, with clearer guidance for refreshing diagnostics. - Failed submissions include a reference ID for troubleshooting. - Submission results remain visible while pending diagnostic refreshes finish. Additional reliability and usability improvements. Polytoken 0.9.6 fixes Kimi Code connections and authentication. - Fixed Kimi Code connections, login, and token refresh to use the international service endpoints. Polytoken 0.9.5 improves conversation navigation, adds recovery for unreliable model responses, and includes more fixes and features requested through /feedback. Conversation and sessions Section titled “Conversation and sessions” conversation-and-sessions - Conversations now show a clickable jump-to-end hint whenever you scroll up, including subagent conversations in the Jobs viewer. - The session sidebar now puts the session title first and displays the model and facet with clearer labels. - polytoken attach without a session argument now opens the session picker, matching polytoken continue . - Sessions that never received a prompt no longer clutter the session picker after a normal shutdown. - Context-capacity errors now show the previous reported usage, the estimate for the rejected request, and the model’s effective limit. - Models and subagents now receive their own model identity in their instructions, including after model switches and failover. Tool use and model recovery Section titled “Tool use and model recovery” tool-use-and-model-recovery - Breaking change: When a tool that can change state fails during execution, Polytoken skips the remaining calls in that batch. Read-only failures do not stop the batch. - Xiaomi MiMo models now get additional recovery for repeated unusable responses and tool-call markup emitted as ordinary text. Polytoken stops with a visible explanation when recovery fails. - The new flaky model containment model setting lets you enable that recovery for other models or disable it for MiMo. - Search-and-replace edits now support replacing every matching occurrence or one selected occurrence. - Shell commands no longer reject ordinary ampersands inside heredoc text as background execution. - Tab-indented code blocks now display their indentation correctly. Providers and catalog Section titled “Providers and catalog” providers-and-catalog - Added GLM 5.3 Flash through Mistral, with image input and configurable reasoning effort. - Enabled image input for Mistral Medium and corrected GLM 5.3’s output limit. - Invalid entries returned by dynamic model catalogs no longer prevent otherwise valid models from loading. - Neuralwatt’s decision-only models no longer appear as conversation models; they remain available through decision agent . - Improved handling of rounded probability distributions from System One decision backends. Catalog updates are mostly experimental. I don’t use most of these providers, so support is best-effort. If something doesn’t work, reports through /feedback are welcome. Fixes from feedback and other reliability work Section titled “Fixes from feedback and other reliability work” fixes-from-feedback-and-other-reliability-work - Language servers such as TypeScript can now report diagnostics immediately after a file opens. - Added opt-in, private language-server protocol logs for troubleshooting. - Filesystem permission rules now correctly match wildcard directory prefixes combined with {,/ } . - File-reference browsing now hides generated build trees consistently and fixes blocked-file filtering for paths containing .. . - Resuming older sessions now preserves recent conversation context that could previously disappear during migration. - Skill and facet loading now agrees more consistently with validation, including fixes for Windows-style line endings in facet files. - Breaking change: Skill and facet loading now rejects some malformed definitions that previously loaded despite failing validation. Remove the retired polytoken.jinja key from facet definitions and run polytoken validate to check custom definitions. Polytoken 0.9.4 improves permission fallback explanations, skill refresh, file reads, and provider reliability. - Permission approval prompts in autonomous mode now explain why the classifier fell back to you. - Changed skill files refresh when invoked without requiring a daemon reload. - Truncated file read calls are now better behaved when returning information to the model. - Improved reliability of file read on pathological input. - Anthropic provider now should have more reliable caching breakpoint juggling . - Other reliability fixes. Polytoken 0.9.3 improves decision-agent backend setup, refreshes Google AI Studio, and adds Clef Flash via Neuralwatt. - Improved config UIs for decision agent backends. - Chased after and caught up with some changes in the way Google AI Studio presents its token extruders. Also refreshed its model catalog. - Added GPT 6.1 Terra to openai and codex . - Added Clef Flash via Neuralwatt as a decision agent model. - A bunch more edge-case fixes through our Make Sure We Aren’t Embarrassing Ourselves initiative. - Some improvements/fixes to how LSPs work and are worked. - Usual bug fixes and insertions. Polytoken 0.9.2 makes the clipboard capability probe opt-in and polishes light-mode config UI. - Made clipboard capability probe opt-in, as it has some gremlins on at least MacOS that need more work. - A couple tweaks to light-mode config UI stuff. Polytoken 0.9.1 starts the TUI configurator rework and cleans up the jobs viewer. - Started some TUI configurator work. Feedback welcome. - Cleaned up the jobs viewer a little bit. - Fixed a bug with using external editors under some terminal multiplexers. - The status card no longer shows “waiting for first response” while response content is already streaming in. - Added a secret bug just for you. It’s crunchy and full of protein. Polytoken 0.9.0 adds the decision agent integration, removes the broken bare facet modelgroup aliases, and re-asks rewound questions. - New: decision agent integration, for System One models. This is intended mostly for use in tool flow calls, though it is a generic tool. You can set up a TypeSafe AI integration in the config UI, or here’s a novel idea just ask your robot to configure it for you. - Breaking change: our foolish robots added the modelgroup polytoken:execute alongside polytoken:execute facet , and similar for other facets. We kept facet . The others have been removed. This might break your configs, but also it didn’t work in the first place. - Rewinding to an ask user question re-asks it. - polytoken continue now will attach to a live session. polytoken continue --no-attach is a no-op if a daemon already has the session running. - Fixed a couple crashes in the theme system. - A fun round of property testing fixed several potential panics that nobody saw. Including me. You should do more property testing. Go read this: https://recursion.wtf/posts/agents-and-property-tests/ https://recursion.wtf/posts/agents-and-property-tests/ - Added new bugs. 0.8.21 Section titled “0.8.21” 0821 Polytoken 0.8.21 improves MCP OAuth handling and reduces terminal flicker with synchronized updates. - Improved MCP OAuth auth handling. - Added some update synchronization so some terminal multiplexers encounter less flicker. - The usual bug fixes and insertions. 0.8.20 Section titled “0.8.20” 0820 Polytoken 0.8.20 adds Claude Haiku 5.5, cleans up rate-limit handling, honors Retry-After, and lets ask user question fire in goal mode. - Added claude-haiku-5.5 to the Anthropic provider, added under protest. - Cleaned up some more rate-limiting logic. - If a provider sends a Retry-After header, the rate-limit timer will honor it. - ask user question can fire in goal mode within a few minutes of your last prompt, instead of being suppressed entirely. This is experimental and may be reverted. - Some fixes around hyperlinks and copying to clipboard. - Built-ins like plan-reviewer now respect their designated modelgroups. - Bugs. Fixed? Added? Who can say. 0.8.19 Section titled “0.8.19” 0819 Polytoken 0.8.19 binds the built-in facets to their own model groups, makes image handling in the read tools honest, sends explicit non-strict tool definitions to OpenAI-compatible providers, completes —model values from your actual model catalog, explains failed facet switches and deferred-catalog misconfigurations, improves MCP OAuth and herdr integration, sharpens delegation advice and goal-clear queuing, retries capacity limits smarter, and cleans up better after crashes. - Breaking change: switching to a built-in facet execute , plan , orchestrate , including through a plan handoff, now selects that facet’s model group polytoken:execute facet , polytoken:plan facet , polytoken:orchestrate facet instead of keeping whatever model the session was on. If you deliberately picked a different model and then switch facets, the session moves to the group’s model. To keep your own selection, author the group with your models for example modelgroups "polytoken:execute facet" = "your-model" , or define a project facet without a model pin; removing an authored override restores the shipped binding. On configurations where the group cannot resolve, facet switches and handoffs fail with an error naming the unresolved reference instead of silently keeping the old model, and GET /tools/effective reports the same failure. - Tool definitions sent to OpenAI Responses, Codex, and Chat Completions endpoints now state strict: false explicitly, so endpoints that default to strict mode stop inventing values for optional tool fields. - The read tools now say out loud what they always did: images are recognized by file extension only, up to 5 MB, and a renamed screenshot without an extension is a binary blob no matter what its bytes think. - --model completion now offers your actual configured models reasoning variants included instead of whatever files happened to be lying around in the current directory. - Denying tool search under a deferred-tools configuration now fails loudly instead of stranding the tool catalog where neither you nor the model can find it. - Tier defaults in model groups now resolve to the first usable member in authored order, so a group whose first member is disabled or unavailable keeps working instead of failing default inference. No member is ever added automatically. - A legacy defaults tier choice that matches an authored reserved tier group now loads cleanly instead of erroring, while a conflicting one fails the load with an error naming both values and how to remove either one. A raw defaults block in a current config file migrates like an older one instead of being silently used and then silently dropped on save. - A missing default with several eligible models now produces one error that lists the eligible models and names the reserved group and polytoken config ui , instead of two contradictory errors. - Provider Retry-After cooldowns now span prompts: a rate limit with a hint benches that provider for the rest of the daemon session, new prompts skip a cooling provider and start on the next usable group candidate, and a prompt whose whole route is cooling waits visibly and cancellably until the earliest cooldown expires instead of probing. Cooldowns last only for the daemon session. - Improved MCP OAuth handling. - Improved herdr integration a little. - Better subagent delegation advice non-spicy . - Adjustments to the /goal clear UX, to let you queue them up. - When a saved-session goal is active, the model can now actually ask you a structured question if you sent a prompt within the last three minutes: goal mode still answers its own questions autonomously when you’re away, but a question asked right after you’ve said something reaches you instead of being answered on your behalf. The window is per-session and resets on restart; goal continuations the daemon starts on its own never count as your presence. - Labeled Markdown links in the conversation are now real terminal hyperlinks OSC 8 : in terminals that support them Ghostty and others you can click a link label to open it, while the styled label and double-click-to-copy behave exactly as before. Polytoken emits the sequences safely — hostile URLs are encoded or skipped, links under popups and floating windows are never marked up — with no setting and no terminal detection; unsupported terminals ignore it entirely. - Better retry logic when Responses APIs return capacity limit errors. - You can’t wedge a session that requires tool search by disallowing it. - Daemon cleans up after itself better after a crash. - Some odds and ends. - @ file references to files that are not valid UTF-8 now deliver a short omission note instead of garbled replacement characters. - The Jobs viewer’s detail pane takes the mouse wheel across its full width when the content fits, instead of letting those scrolls reach the job list. - A subagent in a provider rate-limit wait no longer transiently shows a stalled marker. 0.8.18 Section titled “0.8.18” 0818 Polytoken 0.8.18 makes facet tool lists closed, adds baseline herdr support and model-group classifier selection, and fixes fd-duplication shell opacity. - Breaking change: in facet frontmatter, polytoken.tools lists are now closed lists. Some undesired tools were sneaking in previously. It is a change to the intended behavior, but it might break something that was wrong in the past. - Baseline herdr support. Still figuring this out. - The permissions classifier can now use a modelgroup. - Shell commands that use fd duplication no longer force an opaque shell check. - Perf improvements for glob . - Assorted housekeeping bug fixes. 0.8.17 Section titled “0.8.17” 0817 Polytoken 0.8.17 adds GPT-6.1 Sol, headless continue, session repair, and smarter group failover. - gpt-6.1-sol now added to OpenAI and Codex providers. - polytoken continue --no-attach is now a thing. - Fixed a write race that was causing sessions to explode hilariously. - polytoken sessions repair