> For the complete documentation index, see [llms.txt](https://guide.cronuszen.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://guide.cronuszen.com/zen/changelog-26.md).

# Changelog (26)

## <mark style="color:$primary;">**Cronus Zen Firmware**</mark>

{% hint style="info" %}

### **v2.3.1 - July 9th** 2026

<mark style="color:purple;">**Fixed**</mark>

Slot 8 readback issue
{% endhint %}

{% hint style="info" %}

### **v2.3.0 - July 2nd** 2026

<mark style="color:blue;">**Added**</mark>

GameSir G7 Pro controller support.

BVARS, giving each slot **1024 extra 16-bit persistent values** for scripts.

High-resolution Mouse Ballistics Curve.

<mark style="color:purple;">**Fixed**</mark>

Improved audio handling.\
Improved Elite Series 2 controller detection.

<mark style="color:green;">**Improved**</mark>

General optimizations and minor bug fixes.
{% endhint %}

***

## <mark style="color:$primary;">Zen Studio Updates</mark>

{% hint style="info" %}

## v1.0.6 - July 17th 2026

<mark style="color:blue;">**Added**</mark>

Ternary conditional operator (condition ? a : b) in scripts

GPC2117 error for a ternary missing its :

GPC4032 error when a ternary is used as a standalone Statement

Fix and Fix All buttons in the compiler output panel apply available quick fixes directly

Hovering an enum member or define now shows its resolved value\\

<mark style="color:purple;">**Fixed**</mark>

Saved M\&K profiles now store and restore ballistic curves correctly

Device Settings no longer shifts layout while values load from the Cronus ZEN

Restarting the Cronus ZEN no longer loses settings applied just before the Restart

Incorrect parameter-limit errors on some built-in functions

Fallthrough warning no longer appears on empty switch cases

Find References and symbol highlighting now respect scope and symbol type

Stray text cursor no longer appears over icons and read-only text

<mark style="color:green;">**Improved**</mark>

Firmware update wizard retries a failed update automatically, with the option to cancel while it waits to retry

Device settings changes apply without restarting the Cronus ZEN

Cronus ZEN commands now retry automatically on recoverable communication Errors

Sending a Library script directly to a slot no longer leaves its tab behind after a reload (editing the script keeps it)

Device Management moved into the sidebar Tools Group

General diagnostics, error handling, stability, and reliability
{% endhint %}

{% hint style="info" %}

## v1.0.5 - July 12th 2026

<mark style="color:blue;">**Added**</mark>

Every successful compile now shows slot, stack, and bytecode usage against your Cronus ZEN's maximum limits.

Lightbulb fixes are now driven by the real parser, allowing edits to land precisely without overlaps or duplicate suggestions.

New fixes cover unused declarations, switch fallthrough, assignments inside conditions, unconsumed return values, and single or multi-variable for declarations.

Hover, rename, references, cursor targeting, quickfixes, and the Problems panel now align correctly in scripts containing accents, symbols, or other non-ASCII text.

The bug report dialog can now capture detailed Cronus ZEN traffic for the current session, helping us investigate device-related reports.

<mark style="color:purple;">**Fixed**</mark>

Momentary device-state races no longer cause false "connection lost" disconnects.

The Build button can no longer remain stuck after a failed compile.

Tab menus now target the correct tab, Git files restore using the correct language, close buttons remain visible, and dialogs correctly handle Escape and Enter.

Keyboard shortcuts no longer trigger while typing outside the editor.

Invalid switch-case values no longer disrupt the remaining case labels.

Multiline strings no longer shift diagnostic line numbers.

Outline and analytics panels clear correctly when switching to an empty tab.

Long usernames no longer break profile layouts on the Library page.

<mark style="color:green;">**Improved**</mark>

Script flashing and device reads are now much more reliable when the Cronus ZEN streams live data during an operation, preventing silent timeouts and corrupted reads.

Ctrl+S now detects files changed outside the editor and handles them safely.

Unsaved work is preserved when moving tabs between editor panes.

Workspace saving now recovers gracefully when browser storage fails and flushes when switching away from the tab.

Changes to the auto-save setting now apply immediately without requiring a reload.

Messages for REMAP\_NULL, switch-case traps, memory limits, and other diagnostics are now clearer and more actionable.

Failed compiles now show an accurate summary that resets correctly before the next build.

When a new update becomes available, Zen Studio Live now prompts you to reload instead of failing on stale application files.

Broad reliability improvements across diagnostics, error handling, saving, tabs, and Cronus ZEN communication.
{% endhint %}

{% hint style="info" %}

## v1.0.4 - July 9th 2026

<mark style="color:purple;">**Fixed**</mark>

Fixed Firmware updater getting stuck after downloading the firmware
{% endhint %}

{% hint style="info" %}

## v1.0.3 - July 9th 2026

<mark style="color:purple;">**Fixed**</mark>

Fixed duplicate tabs, cancelled-save tab closing, clipped hover tooltips and suggestions in split view, and a startup crash caused by duplicated tabs.

Compile results now stay with the tab that compiled them, and stale compiles can no longer overwrite another tab’s results.

Diagnostic positions are now correct in scripts containing non-ASCII characters, including accents and emoji.

The upload dialog now shows the correct active file name.

Fixed incorrect slot names in empty-readback errors, Flash All confirmation with no pending changes, and header wrapping.

Fixed live BALC dots, button-label length caps, device-tile layout issues, and label caption clipping.

The PS5 ADT column font size now matches the rest of the monitor.

The downvote tally is now hidden while vote buttons remain available.

Fixed a Script Library upload issue that could occur in Brave.

Improved startup behavior and library loading.

<mark style="color:green;">**Improved**</mark>

GPC3012–GPC3017: const-array narrowing warnings.

2D const-array index, address bounds, and single-bracket access are now validated.

Data-section address arguments are now checked against section size.

Built-in argument limits now error instead of slipping through.

Stray ; expressions now error with Expected expression instead of compiling as 0.

New warnings for zero-folding division/modulo and “glued” negative numbers such as x -1.

Zero-size array aliasing now warns with GPC6031; zero-size arrays without an alias target now error.

Failed addr() and 2D const-array lookups now report diagnostics instead of returning wrong values.

sizeof(image) now returns the element size, 1.

Deeply nested scripts are now caught instead of silently overflowing.

On 16-bit devices, constant math now truncates correctly to match device behavior.

Uppercase 0X hexadecimal notation is now accepted.

Restart your ZEN directly from the app. Zen Studio Live also restarts the device automatically after writing output, PS4, or Remote Play settings.

Flashing and firmware update communication has been reworked to reduce write failures and stalls.

Program is now always available when a connected, supported device is ready.

Capture bindings by pressing a key, mouse button, or controller button on your connected device.

Name mapped buttons inline. Labels save with your profile and .zmk exports.

Exclude specific devices from capture, with quick-add options from the device tiles.

Save, export, download, and profile actions now show confirmation toasts.

Top Scripts on the Home page are now votable, with confirmation before each vote is submitted.

Free-draw strokes are faster and no longer drop pixels during quick movements.

The server status indicator now reflects real request outcomes, reducing false offline or online states.
{% endhint %}

{% hint style="info" %}

## v1.0.2 - July 4th 2026

<mark style="color:blue;">**Added**</mark>

Work with two side-by-side editor panes for easier comparison, editing, and script navigation.

Move tabs freely between editor panes or use the drag-to-dock overlay to split or move a tab.

Tab context menus and editor strip buttons now include split options.

Dropping a file that is already open in the other pane now jumps to that tab instead of opening a duplicate.

Pane layout and split ratio now persist across reloads.

If the built-in firmware updater gives you trouble, a clearly labeled link now takes you to the official online updater after handing your Zen over cleanly.

The connected-device area now shows when newer firmware is available, plus a once-per-session heads-up.

Your M\&K profile and ballistic curves now survive device disconnects. Unsaved changes now trigger a Save / Discard prompt.

**I**f your Zen is already being used by another tab or app, Zen Studio Live now shows a clear **in use elsewhere** state.

<mark style="color:purple;">**Fixed**</mark>

Constants now resolve correctly inside `data()` section values.

Const-array usage is no longer incorrectly reported as unused.

`addr()` on jagged const arrays now resolves element addresses correctly.

Hex escapes from `\x80` to `\xFF` now emit as single bytes.

Enum members and variables now use the correct symbol icons.

<mark style="color:green;">**Improved**</mark>

general editor stability.

workspace-restore reliability.

Cursor detection inside comments and strings is now more accurate.

The updater now handles busy devices, device handoff, disconnects during update, and **Try Again** recovery more reliably.

The success screen now shows the installed version, outdated firmware states show the available update, and rejected updates show the correct reconnect fix.

GitHub sign-in now completes inside its popup instead of reloading the whole app.

Flashing a new script to a slot no longer inherits leftover values from the previous script.

Broad reliability and error-handling improvements across device connections, the Script and GamePack Library, and uploads.

`get_mk` and `set_mk` have been removed and are no longer supported.
{% endhint %}

{% hint style="info" %}

## v1.0.0 - July 2nd 2026

<mark style="color:blue;">**Added**</mark>

Truly cross-platform: Works anywhere a Chromium-based browser runs, including Windows, macOS, Linux, and ChromeOS.

Full Zen device support in the browser: Connect your Zen directly from the page, program slots, use live Device Monitor, configure GamePacks, adjust MK settings, run guided firmware updates, and reconnect automatically.

Fast, modern editor: Snappy code editing and compiling directly in the browser, with built-in Git version control for your scripts.

Built-in OLED Studio: Design 128x64 OLED screens with layers, shapes, text from any font, image import with dithering, and one-click GPC export. This is not available in the desktop app.
{% endhint %}

***

## <mark style="color:$primary;">Zen Studio Legacy Updates</mark>

{% hint style="info" %}

## v1.7.0 Build 7 - July 2nd 2026

<mark style="color:blue;">**Added**</mark>

Launcher for Zen Studio Live

<mark style="color:green;">**Improved**</mark>

Disables Programmer and M\&K Tab for firmwares higher than 2.2.14&#x20;
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://guide.cronuszen.com/zen/changelog-26.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
