# Changelog

> Every Firenook release, newest first: what changed, what each one made faster, and what happens to your data when you upgrade. Also as RSS.

Every Firenook release, newest first: what changed, what it made faster, and what happens to your data when you upgrade.

[Follow by RSS](https://firenook.dev/changelog.xml) [Releases on GitHub](https://github.com/firenook-dev/firenook/releases)

## The first release for public use

Firenook 0.2.0, the latest release, published on 23 October 2026.

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

[Read the 0.2.0 notes](https://firenook.dev/changelog/0.2.0)

- ### A stable version

  `npm install firenook` and a bare `npx firenook` get 0.2.0 on any Node from 20 up; previews keep their own versions, and a preview install is told about 0.2.0.

- ### `firenook init` in a terminal

  One screen with every choice made (the project id, the emulators on their usual ports, TypeScript, JavaScript or no Functions, the coding agents, the set-up), then the installs, Firenook pinned, the first build and the emulators started in the same terminal.

- ### TypeScript compiled as you save

  `--build` runs each codebase's own `build:watch` beside the engine and starts it after the first compile; errors show in the log.

- ### Ordered and range queries

  An order-preserving field index serves `orderBy`, range filters and cursors on a top-level field, and checks equality on other fields before a document is read; a batch get writes stored documents straight into the reply.

- ### Node 22, 24 and 26

  Older is refused with how to switch; an odd or newer major starts with a warning; a codebase whose `engines.node` asks for another Node is warned about, as the official emulator warns.

- ### Older Linux

  The engines need glibc 2.28 (RHEL 8, Debian 10, Ubuntu 20.04, node:24-slim and later) instead of 2.39; Alpine and older systems are told what they lack.

- ### Security Rules as the official emulator applies them

  A gRPC request without an `Authorization` header is signed out, not the owner.

- ### Nothing reaches production

  The console's snippets (Python Storage, Apple Firestore, Tasks and Eventarc everywhere) and `emulators:exec`, which now sets the official variables for the running emulators only.

- ### Functions

  Params' defaults, `.env.<alias>`, the `.env` values at discovery, the project `firebase use` chose, warnings for triggers on services that do not run, `functions:invoke --help`, `ext:vendor --offline`, the Firebase login on Windows.

- ### REST

  `createDocument` works, and every v1 method answers as the official emulator does (the differences kept are listed in `COMPATIBILITY.md`).

- ### Starts and stops

  Two suites with one project id; Firestore closed after browser sessions; a killed launcher stops its engine, which saves the data; `--import` without metadata and a bad indexes file warn; `firebase.json` found from a folder inside the project; `localhost` and `::1` bound as officially.

- ### Polish

  `init --force` keeps your rules, `init --adopt` keeps your formatting, `--ui` comes before `ui.enabled: false`, counts agree with their nouns, every service's lines reach the screen, `CI=false` is not CI.

Your data: Data 0.2.0 saves opens in 0.2.0-next.8, which rebuilds its own field index first; no emulator protocol or port changed, except that `localhost` now binds `::1` as well for the hub and the console, as officially.

## Faster, release by release

What a release made faster, measured on the same data before and after it shipped. Lower is better on every measure.

### orderBy a timestamp, limit 20, on 2.7 million documents

1,192× faster

- [0.2.0-next.8](https://firenook.dev/changelog/0.2.0-next.8)

  5,128 ms

- [0.2.0](https://firenook.dev/changelog/0.2.0)

  4.3 ms

### The console’s Firestore tree, first map of 2.7 million documents

3× faster

- [0.2.0-next.7](https://firenook.dev/changelog/0.2.0-next.7)

  133 s

- [0.2.0-next.8](https://firenook.dev/changelog/0.2.0-next.8)

  37 s

### Ready, with seven functions and every emulator

8× sooner

- [0.2.0-next.6](https://firenook.dev/changelog/0.2.0-next.6)

  6.82 s

- [0.2.0-next.7](https://firenook.dev/changelog/0.2.0-next.7)

  0.78 s

### Opening saved data, 2.7 million documents

2,179× sooner

- [0.2.0-next.5](https://firenook.dev/changelog/0.2.0-next.5)

  146 s

- [0.2.0-next.6](https://firenook.dev/changelog/0.2.0-next.6)

  67 ms

### Checking a 7.8 GB seed before a resumed start

23× sooner, at least

- [0.2.0-next.4](https://firenook.dev/changelog/0.2.0-next.4)

  23–26 s

- [0.2.0-next.5](https://firenook.dev/changelog/0.2.0-next.5)

  under 1 s

### A write, on a Mac

22× faster

- [0.1.0-next.5](https://firenook.dev/changelog/0.1.0-next.5)

  13.1 ms

- [0.1.0-next.6](https://firenook.dev/changelog/0.1.0-next.6)

  0.59 ms

Every multiple is rounded down. Each figure is from the release’s notes, and for 0.2.0 from [its benchmark record](https://github.com/firenook-dev/firenook/blob/main/benchmarks/020-paired-acceptance.json). Against the official emulator: [the benchmarks](https://firenook.dev/benchmarks).

## Every release

19 releases since the first preview on 7 September 2026. The previews came first; 0.2.0 is the first release for public use.

### Firenook 0.2

1. 23 Oct 2026

   [0.2.0](https://firenook.dev/changelog/0.2.0) Stable Latest

   #### [The first release for public use](https://firenook.dev/changelog/0.2.0)

   - A stable version
   - `firenook init` in a terminal
   - TypeScript compiled as you save
   - Ordered and range queries

   [And 8 more in the notes](https://firenook.dev/changelog/0.2.0)

2. 21 Oct 2026

   [0.2.0-next.8](https://firenook.dev/changelog/0.2.0-next.8)

   #### [The Firestore tree at once, code in colour, npx on any Node](https://firenook.dev/changelog/0.2.0-next.8)

   - `npx firenook` gets this release on any Node from 20 up
   - The Firestore tree at once
   - Code in colour
   - The console behind local proxies

3. 20 Oct 2026

   [0.2.0-next.7](https://firenook.dev/changelog/0.2.0-next.7)

   #### [Data kept without a seed, coding agents set up in one command, 54 MCP tools](https://firenook.dev/changelog/0.2.0-next.7)

   - A project with no seed keeps its data
   - `--keep-data`
   - `firenook mcp add`
   - 54 MCP tools, up from 19

   [And 7 more in the notes](https://firenook.dev/changelog/0.2.0-next.7)

4. 18 Oct 2026

   [0.2.0-next.6](https://firenook.dev/changelog/0.2.0-next.6)

   #### [Data closed on stop, starts in milliseconds, the store's size](https://firenook.dev/changelog/0.2.0-next.6)

   - A stop closes the data
   - A killed engine is no stop
   - Saved data opens in milliseconds
   - `firenook state:inspect --state-dir DIR`

   [And 4 more in the notes](https://firenook.dev/changelog/0.2.0-next.6)

5. 17 Oct 2026

   [0.2.0-next.5](https://firenook.dev/changelog/0.2.0-next.5)

   #### [Saved data: a quick seed check, quick repairs, clean stops](https://firenook.dev/changelog/0.2.0-next.5)

   - The seed check reads file details
   - Files operating systems write never block a start
   - A first import hashes the seed beside the import
   - A changed seed names its files

   [And 5 more in the notes](https://firenook.dev/changelog/0.2.0-next.5)

6. 17 Oct 2026

   [0.2.0-next.4](https://firenook.dev/changelog/0.2.0-next.4)

   #### [The terminal UI](https://firenook.dev/changelog/0.2.0-next.4)

   - The terminal UI
   - A start that cannot run
   - The plain output is unchanged
   - The release check

   [And 2 more in the notes](https://firenook.dev/changelog/0.2.0-next.4)

7. 17 Oct 2026

   [0.2.0-next.3](https://firenook.dev/changelog/0.2.0-next.3)

   #### [Firenook's own console, and Google's Emulator UI gone](https://firenook.dev/changelog/0.2.0-next.3)

   - The console
   - Google's Emulator UI is gone
   - CLI
   - Functions

8. 3 Oct 2026

   [0.2.0-next.2](https://firenook.dev/changelog/0.2.0-next.2)

   #### [The read path, incremental listeners and a field index](https://firenook.dev/changelog/0.2.0-next.2)

9. 19 Sept 2026

   [0.2.0-next.1](https://firenook.dev/changelog/0.2.0-next.1)

   #### [Firenook: the project renamed, one license](https://firenook.dev/changelog/0.2.0-next.1)

### 0.1, published as Fireside

1. 19 Sept 2026

   [0.1.0-next.9](https://firenook.dev/changelog/0.1.0-next.9)

   #### [Cloud Tasks emulator, every configuration shape, the CLI surface](https://firenook.dev/changelog/0.1.0-next.9)

2. 18 Sept 2026

   [0.1.0-next.8](https://firenook.dev/changelog/0.1.0-next.8)

   #### [Complete Authentication and a full Pub/Sub emulator](https://firenook.dev/changelog/0.1.0-next.8)

3. 18 Sept 2026

   [0.1.0-next.7](https://firenook.dev/changelog/0.1.0-next.7)

   #### [Native Storage rules and the owned Functions/Extensions runtime](https://firenook.dev/changelog/0.1.0-next.7)

4. 16 Sept 2026

   [0.1.0-next.6](https://firenook.dev/changelog/0.1.0-next.6)

   #### [Write-behind durability, scan and import performance](https://firenook.dev/changelog/0.1.0-next.6)

5. 12 Sept 2026

   [0.1.0-next.5](https://firenook.dev/changelog/0.1.0-next.5)

   #### [Functions admission parity for upstream-ignored handlers](https://firenook.dev/changelog/0.1.0-next.5)

6. 11 Sept 2026

   [0.1.0-next.4](https://firenook.dev/changelog/0.1.0-next.4)

   #### [Phase A–F qualified engine](https://firenook.dev/changelog/0.1.0-next.4)

7. 9 Sept 2026

   [0.1.0-next.3](https://firenook.dev/changelog/0.1.0-next.3)

   #### [Independent source identity](https://firenook.dev/changelog/0.1.0-next.3)

8. 9 Sept 2026

   [0.1.0-next.2](https://firenook.dev/changelog/0.1.0-next.2)

   #### [Public distribution cleanup](https://firenook.dev/changelog/0.1.0-next.2)

9. 8 Sept 2026

   [0.1.0-next.1](https://firenook.dev/changelog/0.1.0-next.1)

   #### [Browser Auth repair](https://firenook.dev/changelog/0.1.0-next.1)

10. 7 Sept 2026

    [0.1.0-next.0](https://firenook.dev/changelog/0.1.0-next.0)

    #### [First installable preview](https://firenook.dev/changelog/0.1.0-next.0)

The 0.1 releases were published as `@fireside-dev/cli`, before Firenook’s rename. [About the former name](https://firenook.dev/docs/help/former-name).

## Upgrade on purpose

Read what changed, and move when you’re ready. Every release says what it does to the data an earlier one kept.

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

[Moving between versions](https://firenook.dev/docs/help/versions)
