QM has added qm secrets set for safe .env edits, made fast mode opt-in so turns don't consume unbudgeted quota, provided org-wide admin control to default fast mode, and extended the /v1/reach endpoint with threading support for Slack channels and groups.
qm secrets set was added for safe in-place .env edits.[1] ui.ts adds a default effort picker to the chat input surface, letting users set effort level directly without requiring custom field configuration. The web UI composer uses a rebuilt model picker — implemented across plugins/web-ui/src/model-options.ts, plugins/web-ui/src/composer.ts, and plugins/web-ui/src/shell.css — designed to handle large model catalogs without layout or usability degradation; model-options.ts is the canonical home for model picker logic.
Fast mode is opt-in: a turn that never requested it is not billed against a tier the organization may have no quota for.[2] An org-wide admin toggle can default all interactive turns to fast mode; the web UI inherits this org default until the user makes an explicit picker selection.[3] Fast mode is a QM execution tier that processes turns faster than standard mode, drawing from a separate quota pool distinct from the standard execution tier.
The /v1/reach endpoint accepts a threadTs parameter on channel and participants posts so agents can reply inside a Slack thread; threadTs is rejected on person DMs, react, and delete actions.[4] src/slack/deliveries.ts and src/slack/attachments.ts bundle posts containing multiple files into a single Slack message with accompanying commentary, rather than fragmenting them across disconnected messages. test/slack-attachments.test.ts and test/slack-deliveries.test.ts cover the multi-file Slack message bundling behavior.
context-model.ts fixes a broken value binding in the web UI's <select> component, allowing selected values to round-trip correctly through the context model. field-select-source.test.ts and context-model-source.test.ts are updated to specify the corrected <select> value-binding semantics and how select fields propagate values.
Playground data in QM is modeled as typed artifacts; src/core/orchestrator/types.ts and src/playgrounds/playground.ts define the canonical types that must be conformed to across the orchestrator, Slack, and web UI surfaces. Playgrounds render inline within the web thread rather than as separate navigations; plugins/web-ui/src/playground.ts owns the client-side playground component, and plugins/web-ui/src/chat.ts and miniapp.ts are updated to embed it. plugins/portal/src/index.ts and its router expose the endpoints required for inline playground rendering. A QM Playground is a sandboxed interactive surface for running and sharing artifacts; it can be embedded inline in conversational threads rather than requiring a separate navigation context.
Sources