# Firenook 0.2.1 release notes

> Firenook 0.2.1, 4 November 2026: popup sign-in from a LAN address or a container name, saved rules tests from such an address, and more.

Sign-in from any address, and a sign-in page in the console's look. Published on 4 November 2026.

`npm install --save-dev firenook@0.2.1`

[Every release](https://firenook.dev/changelog)

## What changed

5 changes you will notice, as the release notes give them.

1. ### Popup sign-in from a LAN address or a container name

   Over plain http on any name but `localhost`, a browser has no `crypto.randomUUID`. The account picker called it inside a `try` that skips other origins' frames, so the matching Auth iframe was skipped too and the page said "Cannot find the matching Firebase Auth iframe"; adding an account threw the same way. The ids now come from `crypto.getRandomValues`, which every page has, and the popup finishes as it does on the official emulator, recorded from firebase-tools 15.22.0 in the same mode.

2. ### Saved rules tests from such an address

   The console threw the same way when you added a test, and now saves it.

3. ### The sign-in page, in the console's look

   The page a popup or redirect opens now shows your project, the provider's test accounts with their photos or initials, and a filter once there are eight or more. It stays light whatever the system's theme, as a provider's sign-in page does, and works on a phone. Its fonts are built in, and it asks for nothing beyond the emulator except an account's own photo.

4. ### A new random user from the sign-in page

   "New random user" opens the form filled with a made-up name and email, so you see who you are about to be and can change it before signing in. "Fill in random" does the same on an empty form, and the next sign-in offers that account like any other.

5. ### Small things

   `firenook` and its native packages link to [firenook.dev](https://firenook.dev) on npm, and `init` suggests `npm i -D firenook` without `-E`.

## Your data

What this release does to data an earlier one kept, and to the ports and protocols.

- No emulator protocol, port or data format changed: 0.2.1 opens what 0.2.0 saved as it is, and 0.2.0 opens what 0.2.1 saves.

## How it was checked

The source it was built from, the runs it passed, and how it was published.

- Pin the engine to `6556f79b2fda6ccc53c4700aff5fffc029939cde`, the merge of [PR #133](https://github.com/firenook-dev/firenook/pull/133) on 0.2.0 and [PR #132](https://github.com/firenook-dev/firenook/pull/132). Its tree is the PR head's, `b49e9d8`, which passed CI ([run 41892010113](https://github.com/firenook-dev/firenook/actions/runs/41892010113)) and the five-platform packed-install matrix ([run 41892010175](https://github.com/firenook-dev/firenook/actions/runs/41892010175)).
- Published straight to `latest`; the CLI's `next` stays on 0.2.0 until it is moved by hand.

[The release on GitHub](https://github.com/firenook-dev/firenook/releases/tag/npm-v0.2.1).

## Install Firenook 0.2.1

Install it in your project next to firebase-tools, and change one word in your emulator script.

`npm install --save-dev firenook@0.2.1`

[Switch in three steps](https://firenook.dev/docs/get-started/switch)
