v16.26.1
What's Changed
A small maintenance release. Both fixes are the same shape: a key the tool documents, that rulesync silently dropped when it rewrote the file.
Qwen Code: tools.eager survives an import
QWEN_OVERRIDE_TOOLS_KEYS is a curated allow-list on the import path, and eager was missing from it. generate spreads the existing qwencode block and so preserved a hand-written value, but an import → generate round trip erased it — the asymmetry that turns an unnoticed upstream addition into data loss.
tools.eager (added in Qwen Code v0.22.3) names the tools that stay eager; every other eager-by-default tool is demoted to deferred. Two details matter when you author it:
- an explicit
[]defers every non-exempt tool, while omitting the key means no restriction at all, and - unlike
tools.visibleandtools.disabled, it carries noMergeStrategy.UNION, so it takes the default replace: a workspace list stands in for a user one rather than adding to it.
Both directions are covered by the scope note the key now carries, since for this key the risky edit is as often the one that widens as the one that restricts.
Reasonix: concurrency and auto_start are no longer deleted on generate
Rulesync owns the whole plugins key of reasonix.toml, so a [[plugins]] field it does not model is removed the next time it writes the file. For these two that deletion changes behavior rather than losing a hint:
concurrency(serial/parallel) decides whether two calls to one server may overlap. With no value Reasonix substring-matches the server name against a known-stateful list —browser,playwright,puppeteer,chrome,chromium,selenium— and serializes a match, so dropping the key does not fall back to a neutral default: it hands the decision back to the name. Aserialdropped from a stateful server the list does not catch puts it on the parallel path; aparalleldropped from one the list does catch forces it serial.auto_start = falseswitches a server off rather than deferring it: Reasonix drops it from the enabled set, so its tools never reach the model, and only an explicit re-enable brings it back. Dropping the key switches the server back on.
Both round-trip as passthrough fields on the canonical MCP server object, alongside the startup_timeout_seconds / call_timeout_seconds / tool_timeout_seconds fields that already worked that way.