# April 2026

**Released:** April 2026

This release rolls out **Auth0 authentication** across the platform and expands **Clean Room Studio** with in-browser **R support**, manual analysis syncing, and a more capable AI code editor.

## 🔐 Auth0 Authentication

GoFigr now authenticates users through Auth0 on both the web app and the `gofigr` Python client, with the legacy auth path available in dual mode for a smooth transition.

**Key capabilities:**

* Auth0 login on the web app, with the legacy UI removed
* **MFA enrollment** and live status directly from user settings
* Password change, email update, and claim sync routed through Auth0
* Separate SPA and CLI client IDs exposed via the `/info` endpoint
* **`gfconfig` device-code login** — the Python client now supports Auth0 Device Authorization Flow, auto-opening the browser for verification
* Dual-mode server authentication so existing API keys and legacy credentials keep working

Auth0 integration covers: Server v2.10.0, Web App v2.2.5, Python v2.2.0.

***

## 🧪 Clean Room Studio: R Support

Clean Room Studio is no longer Python-only. Both the in-browser runtime and the AI code editor now understand R.

**New capabilities:**

* **WebR Clean Room runtime** — run R figures entirely in the browser with JS-side publishing and watermarking
* Package preloading, cache invalidation, and DataFrame preview for WebR
* Base R graphics support in Clean Room Studio
* **R language support in the AI code editor** — agentic code editing now works on R workspaces
* **WebR `publish()` parameters** — `width`, `height`, and `dpi` are honored in the WebR shim, matching the Python API

[Clean Room (Python) →](https://docs.gofigr.io/features/clean-room-python) · [Clean Room (R) →](https://docs.gofigr.io/features/clean-room-r)

***

## 🔄 Manual Sync Analysis

Story analysis tracking is now an explicit, user-controlled action instead of a background auto-sync.

**What's new:**

* **Sync Analysis button and modal** replace auto-tracking for story updates
* Story config auto-saves before refine and recreate operations
* Streamlined "Story Updated" modal copy
* Auto-scroll to new slides is suppressed during sync to avoid jumpy layouts

[AI Story Mode documentation →](https://docs.gofigr.io/features/story-mode)

***

## 🤖 Smarter AI Code Editor

The AI code editor in Clean Room Studio gets more context and better recovery behavior.

**Improvements:**

* **Auto-retry on failure** — AI code changes are automatically retried on execution failure or no output, with runtime and `publish()` details added to the feedback prompt
* **`publish()` parameter awareness** — the editor knows about `width`, `height`, and `dpi` arguments
* **Figure image and package context** are now passed to the code edit agent for better grounding
* **Improved chat context** — the latest figure image is sent after conversation history, keeping responses grounded in the current state

***

## 🐍 Python Client: `@reproducible` & Watermarks

The `gofigr` Python client sharpens its watermarking and broadens `@reproducible` parameter support.

**Improvements:**

* **Short ID watermarks** — watermark size calculation now uses short IDs, producing smaller, cleaner QR codes
* **QR library migration** from `pyqrcodeng` to `python-qrcode`
* **`@reproducible` container support** — decorator now handles tuples, numpy arrays, and nested containers
* **Auto-injected `publish`** in Clean Room code execution
* **Matplotlib DPI capture** in the clean room manifest for accurate Pyodide rendering
* Fixed `pad_for_watermark` widening images beyond the figure's intended width
* Fixed `PosixPath` serialization error in `FileData.read`

***

## Additional Improvements

* Workspace dropdown is always visible so users can create new workspaces from anywhere
* Workspace link in the revision view, with the workspace selector syncing on navigation
* Refresh buttons added to the revision view, revision selector, and related panels
* Real-time capture wizard: data tracking and Clean Room examples, `gfconfig` integration, and API key handling improvements
* Clean Room manifest viewer: raw JSON toggle and `formatValue` helper
* Backend performance improvements (faster short ID lookups, faster cold starts)
* Numerous scroll, layout, and copy fixes across Clean Room Studio and Story Mode
