> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bricks.tools/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Product updates and announcements for BRICKS Foundation

<Update label="July 8, 2026" description="v2.24.11" tags={["Release"]}>
  ### Video

  * Video Brick now supports inline subtitles and SRT/WebVTT subtitle files, subtitle styling, events-only subtitle mode, and cue enter/exit events.

  ### Generators

  * Generator HTTP now emits response and error events with response body, status, headers, and SSE details.
  * File append with multiple files now honors `targetDirectory`, Question skip re-evaluates downstream conditions using the skipped answer, Tick rejects invalid or sub-millisecond intervals, Vector Store handles zero-limit searches without failing, and programmatic confirm cancellation removes the dialog.

  ### Generator LLM

  * MLX: Llama tool calls emitted from text are returned as a flat tool-call array.

  ### Data Calculation

  * Data Calculation and Property Bank sandbox fixes: lexical variables can shadow context names, overlapping async runs restore host globals correctly, stale or unknown commands fall back safely, and command removal tolerates nodes without in/out ports.

  ### Runtime & config sync

  * Same-title app revisions refresh correctly, entitlement-filtered configs stay filtered after viewport changes, in-memory subspace delete-all no longer wipes other subspaces, and launcher init handles missing device lookup responses.

  ### DevTools

  * WebView query-selector expression errors now surface as errors instead of leaving script calls pending, and DevTools round-trips BigInt arguments in `Runtime.callFunctionOn`.

  ### Audio & TTS

  * Bert-VITS2 Mandarin tones, Chinese large-number reading, English integer / large-number reading in OuteTTS, and long numeric IDs no longer crash synthesis.

  ### Activity Log

  * Activity Log caps oversized Property Bank update values and records dropped oversized events instead of repeatedly failing.

  ### Desktop

  * Linux windows can be dragged from the top strip again, including around interactive controls.
  * The Linux installer now installs the `bricks-launcher` command name and adds the install directory to shell PATH when needed.
  * The Video Brick subtitle support, Generator HTTP response events, WebView query-selector, DevTools, Data Calculation, Property Bank, config-refresh, storage, Activity Log, TTS, and runtime fixes above also apply to Desktop Foundation.

  ### Improvements

  * Other stability improvements.

  ### Backward compatibility

  Compatible with applications published for v2.20, v2.21, v2.22, v2.23, and v2.24.
</Update>

<Update label="July 1, 2026" description="v2.24.10" tags={["Release"]}>
  ### Generators

  * The Generator HTTP Server can now be driven from scripts, including status, start / stop, custom responses, temp-file cleanup, and stream ending.
  * TCP Server LF/CRLF framing no longer drops characters or buffers extra frames, Serial Port reprocesses complete EDC frames left in the buffer, MQTT rejects undefined publish payloads instead of sending `"undefined"`, and Iterator handles empty or out-of-range object data without crashing.
  * WebCrawler keeps its previous response when an HTTP selector finds no match, and WebRTC renegotiation no longer skips the first negotiation.

  ### Generator LLM

  * Phi-4 and Mistral tool calls parse single-bracket closings correctly, LLM sessions read the correct token field, and auto-session files are pruned more reliably.

  ### Canvas & events

  * Brick Sketch events now include the current sketch state, making drawing workflows easier to automate and replay.
  * Dynamic Animation resolves VARIABLE# values from test data.

  ### Data Bank & configs

  * Routed receiver hit / not-hit events now use the receiver's own rules, linked-module and sparse-config operations are more tolerant of optional maps, Data Bank fetches handle empty or missing results, and SQLite switches databases when the backing property changes during init.

  ### Audio & TTS

  * Multi-channel audio downmix is restored, OuteTTS v3 no longer mutates speaker prompts, and tiny numeric values render correctly in text conversion.

  ### DevTools

  * DevTools frontend / log streams handle open failures more reliably, and selector matching now accepts whitespace in `:nth-child(An+B)` formulas.

  ### Activity Log

  * Activity Log buffers recover after an ENOSPC drop-retry.

  ### Desktop

  * Device info now reports the correct home volume and OS version.
  * Native workers wait until initialization completes before receiving commands, reducing startup races for slow model / audio workers.
  * Creating an app from a freshly bound device no longer fails when screen details haven't arrived yet.
  * DevTools selector and stream-opening fixes, plus the Generator, Data Bank, Property Bank, Dynamic Animation, and runtime fixes above, also apply to Desktop Foundation.

  ### Improvements

  * Other stability improvements.

  ### Backward compatibility

  Compatible with applications published for v2.20, v2.21, v2.22, v2.23, and v2.24.
</Update>

<Update label="June 24, 2026" description="v2.24.9" tags={["Release"]}>
  ### Data Calculation

  * Many commands now return correct results in edge cases — including COLLECTION\_INCLUDES (matches objects / arrays by value), COLLECTION\_REDUCE, Union, Max / Min / Mean / Sum / GCD, OBJECT\_MAP\_KEYS / OBJECT\_MAP\_VALUES, XOR, STRING\_REPLACE (honors the regex toggle, passes text through on no match), integer conversion, IS\_DATETIME, the Root command, and color scale gamma.
  * Async functions and methods keep `this` and `arguments`, async arrow functions with `await` now run, Concat no longer adds empty entries for unconnected inputs, and connections are kept when a shared data node wires different ports across maps.

  ### Generators

  * Iterator Last / Previous / negative-start fixes, the Tick generator keeps a value mapped to `0` / empty string / `false`, and MQTT message events expose the body as GENERATOR\_MQTT\_PAYLOAD / payload.

  ### State groups

  * Switch overrides now run the correct event automation, apply to the rendered canvas, and survive a force canvas change; a disabled (commented) state group no longer blocks later ones.

  ### Canvas & events

  * Change Canvas works when a canvas title contains regex characters, a single-item Canvas Set loops back to itself, `resetPopup`'s default "all" dismisses every open popup, sibling item brick events are no longer dropped, one-time channel subscriptions no longer tear down others, and Dynamic Animation evaluates only the brick-target parameter.

  ### Data Bank & assets

  * A removed Data Bank property no longer reappears from cache, read-only routed values are no longer overwritten, Items paging honors page bounds, file uploads send the correct extension, and Rive files and nested Items default images preload reliably.

  ### Media

  * Video actions are a safe no-op when there is no source, Media Flow's Reset cache action also clears cached box metadata, audio auto-cut no longer counts buffer padding as audio, and on-device vision inference works for image-only input.

  ### Fixes

  * Importing a brick snapshot restores position and size, vertical Text bricks no longer freeze on a small box or extreme letter spacing, on-device tool calling no longer corrupts character classes, the simulator Logs panel is restored, native audio recordings write an accurate WAV header, and config sync is more reliable when packets arrive out of order.

  ### Desktop

  * Fixed a race in the embedded web view where messages sent to a page could be lost before it finished loading, especially for fast-loading pages.
  * Desktop file writes no longer corrupt binary data passed as ascii-encoded byte arrays.
  * The Data Calculation, generator, canvas, event, automation, and runtime fixes above also apply to Desktop Foundation.

  ### Improvements

  * Other stability improvements.

  ### Backward compatibility

  Compatible with applications published for v2.20, v2.21, v2.22, v2.23, and v2.24.
</Update>

<Update label="June 17, 2026" description="v2.24.8" tags={["Release"]}>
  ### DevTools

  * **Storage inspection** — DevTools Storage inspection now covers System storage, Data Bank stores, Generator cache, and Generative Media cache with readable values for CLI clients.

  ### Fixes

  * **Property Bank** — PROPERTY\_BANK\_EXPRESSION errors now explain unsupported statement patterns, such as `if` / `for` / `while` blocks or destructuring, instead of surfacing a vague runtime failure.
  * iOS apps running on Mac now report Mac device names instead of iPad names.

  ### Desktop

  * Embedded web views no longer duplicate events after re-rendering.

  ### Improvements

  * Other stability improvements.

  ### Backward compatibility

  Compatible with applications published for v2.20, v2.21, v2.22, v2.23, and v2.24.
</Update>

<Update label="June 10, 2026" description="v2.24.7" tags={["Release"]}>
  ### Generator

  * **Generator Apple STT** — contextual strings can bias recognition toward product terms and project-specific phrases, and Apple STT can now serve as a Realtime Transcription transcriber.
  * **Generator Sound Recorder** — Web and Desktop microphone capture can customize echo cancellation, noise suppression, and auto gain control.

  ### DevTools

  * Less cluttered by default — panels and toolbar controls that aren't useful for inspecting bricks are now hidden.
  * Connections are more resilient during disconnects and stale socket shutdowns.
  * Simulated taps respect disabled pressable bricks and ignore stale tap races.

  ### Desktop

  * **Generator Apple STT** — Desktop Foundation now supports Apple speech recognition on macOS 26+.

  ### Fixes

  * **Property Bank** — stale update locks now auto-release after a timeout, so a failed earlier update no longer blocks later updates.

  ### Improvements

  * Other performance and stability improvements.

  ### Backward compatibility

  Compatible with applications published for v2.20, v2.21, v2.22, v2.23, and v2.24.
</Update>

<Update label="June 3, 2026" description="v2.24.6" tags={["Release"]}>
  ### Generator

  * **Generator LLM (GGML)** — bumped `llama.cpp` runtime to b9309.
  * **Generator Assistant** — guardrails now use Jinja templates, expose conversation history, support structured tool args, and allow a custom `redactReplacement` string. The before-LLM / after-LLM hooks now skip tool-result continuations and tool-call-only responses.
  * **Generator LLM / Speech Inference / Reranker / VAD / TTS** — shared local model contexts track each generator instance independently, so releasing one Generator no longer breaks another that uses the same model.

  ### Web Preview / DevTools

  * DevTools CDP connections are more resilient: server startup retries transient port-probe failures, stale client events are ignored after reconnects, and CLI errors explain when another DevTools session replaced the connection.
  * Web Preview DevTools prints connection guidance and `usage()` examples when the Runtime console opens.
  * Simulated keyboard input from DevTools / preview automation no longer throws when the underlying platform reports the key event synchronously.

  ### Desktop

  * **Web debug panel** — the tab selector opens as a context menu instead of forcing a TV-style tab strip.
  * **Web SerialPort** — closes wait for the active reader loop before closing, avoiding locked-stream errors.

  ### Fixes

  * **Sound Recorder** — overlapping recording fragments no longer clear an active file while finalizing a previous fragment.
  * **Voice transcription** — listeners register correctly when transcription starts.
  * **Property Bank** — command initialization falls back to default values for missing data-node entries instead of crashing the runtime.
  * **Subspace rendering** — dangling Brick references are skipped instead of crashing when a Canvas item points at a deleted Brick.

  ### Improvements

  * Other performance and stability improvements.

  ### Backward compatibility

  Compatible with applications published for v2.20, v2.21, v2.22, v2.23, and v2.24.
</Update>

<Update label="May 27, 2026" description="v2.24.5" tags={["Release"]}>
  ### Bricks

  * **Brick RichText** — opt-in `renderMarkdown` prop renders Markdown content through the existing render-html pipeline (lazy-loads the parser on first use).

  ### Generator

  * **Generator LLM (GGML)** — bumped `llama.cpp` runtime to b9254 and exposed MTP (multi-token prediction) speculative decoding parameters.
  * **Generator VAD (Traditional)** — `processFloat32` is now a public method so realtime detection no longer throws when fed chunks from a sound recorder.
  * **Generator LLM / Speech Inference** — clear stale [BRICKS Buttress](/buttress) context on `releaseContext` so the next request reinitializes instead of failing with "Context not initialized".

  ### Desktop

  * **Linux AppImage** — auto-install `libfuse2` on systems that ship `libfuse2t64`, soft-failing if the install can't complete.

  ### Web Preview

  * **Sandboxed CDP `Runtime.evaluate`** — Console commands run in a nullified-globals UnsafeEval scope matching the launcher's DevTools server, so DevTools probes can no longer reach the host iframe's `document` / `window`.
  * **Preview-invoke automation** — handle the config-readiness race so a preview render started from an agent tool no longer flashes a half-initialized canvas.

  ### DevTools

  * Console exception output no longer duplicates the error class line above the stack frames.

  ### tvOS

  * Restore the Applications list.

  ### Fixes

  * Skip dangling `animationId` references in `setupAnimations` (mirroring the v2.24.4 reducer guard) so saved configs with deleted or renamed animations no longer crash the React subtree.

  ### Improvements

  * Other performance and stability improvements.

  ### Backward compatibility

  Compatible with applications published for v2.20, v2.21, v2.22, v2.23, and v2.24.
</Update>

<Update label="May 20, 2026" description="v2.24.4" tags={["Release"]}>
  ### Bricks

  * **Pressable bricks** — standby-transition wraps no longer capture taps when the brick has no press events, matching the v2.24.3 fall-through behavior.

  ### Generator

  * **Generator Assistant** — configurable guardrails with pattern or LLM-based safety checks at four hook points (`before-llm`, `after-llm`, `before-tool`, `after-tool`), with `block` / `redact` / `log-only` actions and built-in default safety policies.
  * **Generator STT (GGML)** — updated `whisper.cpp` runtime.
  * **AI Filter** — cloud model lineup refreshed (Claude Sonnet 4.6 + Haiku 4.5, Gemini 3.1 Pro + 3 Flash preview, GPT-5.5 + 5.4 Mini/Nano).

  ### Desktop

  * DevTools frontend prefetch on the desktop launcher no longer fails to load.
  * **Generator LLM (MLX)** — registered in the desktop / Web Preview generator maps for [BRICKS Buttress](/buttress)-only access (native MLX is iOS / tvOS-only).
  * Web Preview screenshots: prevent text clipping at element boundaries.

  ### Fixes

  * Skip invalid `hit_regex` entries (e.g. PCRE-only inline flags) instead of crashing Data Bank initialization.
  * Skip dangling animationId references in the event reducer instead of crashing application preview at startup.

  ### Improvements

  * Faster preload startup: parallelize per-file existence checks.
  * Other performance and stability improvements.

  ### Backward compatibility

  Compatible with applications published for v2.20, v2.21, v2.22, v2.23, and v2.24.
</Update>

<Update label="May 13, 2026" description="v2.24.3" tags={["Release"]}>
  ### Bricks

  * **Brick Image** — filtered image rendering with color matrix support. Available on iOS, Android, and Desktop.
  * **Brick Rect** — bricks without configured press events no longer capture taps; they fall through to bricks underneath instead of being intercepted by an inert Touchable.

  ### Desktop

  * Native window drag replaces the drag-area overlay; the top strip can overlap UI without swallowing clicks on underlying buttons.
  * macOS app menu adds an **Open System Menu** item.

  ### Generator

  * Generator LLM (GGML): bump llama.cpp runtime to b9084.

  ### Improvements

  * Other performance and stability improvements.

  ### Backward compatibility

  Compatible with applications published for v2.20, v2.21, v2.22, v2.23, and v2.24.
</Update>

<Update label="May 4, 2026" description="v2.24.2" tags={["Release"]}>
  ### Highlights

  * **Brick Sketch (Preview)** — new drawing canvas with Apple Pencil pressure support, undo/redo/eraser/color/thickness toolbar, configurable initial state, and image export. See the [core reference](/foundation/reference). Available on iOS, Android, and Desktop (Apple Pencil pressure on iOS).
  * **Self-hosted DevTools frontend** — DevTools UI is now served over HTTP for LAN inspection, since Chrome's hardened `devtools://` CSP no longer permits non-loopback WebSocket connections. See [local debugging](/foundation/local-debugging).
  * **Realtime Transcription / Speech Inference language detection** — Generator Realtime Transcription and Speech Inference export the detected language as new Outlets and event payloads.

  ### Improvements

  * Other performance and stability improvements.

  ### Backward compatibility

  Compatible with applications published for v2.20, v2.21, v2.22, v2.23, and v2.24.
</Update>

<Update label="April 29, 2026" description="v2.24.1" tags={["Release"]}>
  ### Improvements

  * Generator LLM (OpenAI): support OpenResponses API.
  * Brick GenerativeMedia: add OpenAI image model selection.
  * Other performance and stability improvements.

  ### Backward compatibility

  Compatible with applications published for v2.20, v2.21, v2.22, v2.23, and v2.24.
</Update>

<Update label="April 22, 2026" description="v2.24.0" tags={["Release", "Breaking"]}>
  ### Highlights

  * **DevTools CDP integration** — inspect BRICKS applications from Chrome DevTools, Puppeteer, or Playwright via Chrome DevTools Protocol (CDP). Network panel covers HTTP, SSE, WebSocket, MQTT, and file downloads across iOS, Android, Desktop, and Web Preview; DOM panel exposes the Brick component tree with CSS selectors (`:pressable`, `:editable`, `:hidden`); Input supports press and text input; Storage offers read-only inspection of system storage, [Data Bank](/controller/data-bank), and generator cache. See [Local debugging](/foundation/local-debugging).
  * **Generator LLM (MLX) — native support** — native on-device LLM/VLM inference on Apple Silicon (iOS 17+ / tvOS) with streaming completion, model loading/release, and tokenize/detokenize. Previously available only via BRICKS Buttress.
  * **Rect blur effects** — new blur properties on Rect (`blurEnabled`, `blurVariant`, `blurType`, `blurAmount`), including progressive blur and Liquid Glass variants on iOS. Works across iOS, tvOS, Android, and Web (View fallback).
  * **Stable graduation** — **Brick GenerativeMedia**, **Brick Rive**, **Generator Realtime Transcription**, **Generator VAD Inference**, and **Generator Vector Store** are now production-ready. See the [core reference](/foundation/reference).

  ### Breaking changes

  * **Android minimum SDK raised to 26** — Android 8.0 (API 26) is now the minimum supported version.
  * **Generator STT (GGML): `transcribeRealtime` removed** — use Generator Realtime Transcription (now stable) instead.

  ### Improvements

  * Generator LLM (GGML): bump llama.cpp runtime to b8827
  * [Activity Log](/foundation/activity-log): periodic screenshot capture and upload
  * Brick Items: preserve post-transform standby during recomputes
  * Star printer: update native integration with reliability improvements
  * Annotate RNBlobUtil stream errors with per-call-site context for better diagnostics (Desktop)
  * Fix Preload stall on Preparing when sync fails before result fires
  * Other performance and stability improvements

  ### Backward compatibility

  Compatible with applications published for v2.20, v2.21, v2.22, and v2.23.
</Update>
