Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,4 +94,6 @@ A new release: copy the engine's changelog and compatibility facts, add its
npm publish time to `published` in `src/lib/changelog.ts` (and to `measured`
anything its notes measured before and after), set `site.version` and
`site.release`, record the terminal and capture the demo run again (their
READMEs), and check every page that quotes a number against the release.
READMEs), and check every page that quotes a number against the release. A
patch that changes nothing they show keeps its recordings: their captions name
the release they are from.
2 changes: 1 addition & 1 deletion scripts/terminal/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ each release, with the Node the screen should show first on `PATH`:
--command "npx firebase emulators:start" --swap firebase=firenook --append " --keep-data"

# init needs a folder that does not exist yet; shop becomes the project demo-shop.
.venv/bin/python3 record-init.py 108 39 ~/shop 0.2.0 /tmp/init.json
.venv/bin/python3 record-init.py 108 39 ~/shop 0.2.1 /tmp/init.json
.venv/bin/python3 build.py /tmp/init.json /tmp/init-frames.json 2
.venv/bin/python3 gif.py /tmp/init-frames.json /tmp/init.gif --title "~/shop" \
--command "npx firenook init" --longest-wait 2.5
Expand Down
4 changes: 2 additions & 2 deletions src/content/docs/docs/contribute/build.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ project, and which tests a change must pass.
## What you need

- **Rust**, the toolchain `rust-toolchain.toml` names: the stable channel with
`clippy` and `rustfmt`. The workspace needs Rust 1.98 or later, and 0.2.0
`clippy` and `rustfmt`. The workspace needs Rust 1.98 or later, and 0.2.1
was built with 1.98.0, the toolchain the release records.
- **Node 24.20.0 and npm 12.0.2**, the versions `CONTRIBUTING.md` names and
the repository's checks pin: `console/` and `conformance/` declare
Expand Down Expand Up @@ -86,7 +86,7 @@ what they lack.
To run a change in your own app through the npm launcher, build a local
candidate. It is a pair of private tarballs, the launcher and your machine's
engine, with a version of their own that names the commit, such as
`0.2.0-local.g1a2b3c4d5e6f`. Nothing is published.
`0.2.1-local.g1a2b3c4d5e6f`. Nothing is published.

1. Commit your change. The build refuses uncommitted tracked changes, so
every candidate names the exact source it came from.
Expand Down
6 changes: 3 additions & 3 deletions src/content/docs/docs/data/keep-data.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ npx firenook emulators:start --keep-data
The first start begins empty and says where the data goes:

```text
firenook 0.2.0
firenook 0.2.1
demo-shop · a fresh start
Node 24.20.0 · data in .firenook/state
```
Expand All @@ -34,7 +34,7 @@ Every later start picks the data up, says when it was saved, and counts what
it holds:

```text
firenook 0.2.0
firenook 0.2.1
demo-shop · picking up the data saved just now
Node 24.20.0 · data in .firenook/state

Expand All @@ -52,7 +52,7 @@ Each start gets a new, empty working directory,
`.firenook/runs/session-<id>/state`, and says so:

```text
firenook 0.2.0
firenook 0.2.1
demo-shop · a fresh start
Node 24.20.0 · data in .firenook/runs/session-VLd3PD, for this run
```
Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/docs/data/seeds.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ npx firenook emulators:start --import ./data --keep-data
The first start imports it into `.firenook/state`:

```text
firenook 0.2.0
firenook 0.2.1
demo-shop · first start, importing the seed "data"
Node 24.20.0 · data in .firenook/state

Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/docs/functions/debugging.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ codebase points it out.

### If a save seems to change nothing

In 0.2.0, a save that stops a codebase loading, such as code that throws
In 0.2.1, a save that stops a codebase loading, such as code that throws
while it loads or a param with no default and no value, is reported only on
the terminal screen. The plain output (`--plain`, pipes and CI) and the
`--debug` log print nothing about it, and the version loaded before keeps
Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/docs/functions/scheduled.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ Firenook: schedule event pubsub for nightlyReport (us-central1, gcfv2) via trigg
200 OK http://127.0.0.1:5001/functions/projects/demo-shop/triggers/us-central1-nightlyReport-0
```

A schedule takes no data, so `--event-data '{}'` is enough. In 0.2.0 it is
A schedule takes no data, so `--event-data '{}'` is enough. In 0.2.1 it is
also needed: without it, `functions:invoke` sends a plain HTTPS request,
which a scheduled function does not answer, and the command exits with 1:

Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/docs/get-started/ci.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ looks like this, trimmed:

```text
Firenook: running the script through the shell as the official CLI does; use -- for an argv command without shell interpretation
Firenook 0.2.0; engine 7a9614bea49f8208f96d2126b29ef11ee2f2810b; disk/WAL state <project>/.firenook/runs/session-Syhid2/state
Firenook 0.2.1; engine 6556f79b2fda6ccc53c4700aff5fffc029939cde; disk/WAL state <project>/.firenook/runs/session-Syhid2/state
Services: firestore, auth, storage, functions, pubsub; Emulator UI on; host localhost
Demo project demo-shop: no cloud service is contacted, but user Functions can still reach external providers; this CLI is not a network sandbox.
Working data and launch receipt are preserved in <project>/.firenook/runs/session-Syhid2. No automatic deletion.
Expand Down
8 changes: 4 additions & 4 deletions src/content/docs/docs/get-started/install.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ stops:

```console
$ npx firenook binary-path
Firenook: Missing @firenook/cli-darwin-arm64@0.2.0. Install with optional dependencies enabled. No postinstall script is needed.
Firenook: Missing @firenook/cli-darwin-arm64@0.2.1. Install with optional dependencies enabled. No postinstall script is needed.
```

:::note
Expand Down Expand Up @@ -150,7 +150,7 @@ published with, and prints where it is:

```console
$ npx firenook --version
0.2.0 (engine source 7a9614bea49f8208f96d2126b29ef11ee2f2810b)
0.2.1 (engine source 6556f79b2fda6ccc53c4700aff5fffc029939cde)
$ npx firenook binary-path
~/demo-shop/node_modules/@firenook/cli-darwin-arm64/bin/firenook
```
Expand Down Expand Up @@ -186,8 +186,8 @@ $ npx firenook doctor
},
"warnings": [],
"problems": [],
"version": "0.2.0",
"engineRevision": "7a9614bea49f8208f96d2126b29ef11ee2f2810b"
"version": "0.2.1",
"engineRevision": "6556f79b2fda6ccc53c4700aff5fffc029939cde"
}
```

Expand Down
8 changes: 4 additions & 4 deletions src/content/docs/docs/get-started/new-project.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ Enter takes them all:
╭──────────────────────────────────────────────────────────────────────────╮
│ │
│ ▄█ │
│ ▄███▀ ▄ firenook 0.2.0 │
│ ▄███▀ ▄ firenook 0.2.1 │
│ ▄███▀ ███▄ a new project in ~/my-app │
│ ▀██▀ ███▀ Node 24.20.0 · Claude Code found │
│ █▀▀ │
Expand Down Expand Up @@ -113,7 +113,7 @@ once. Each step gets a line with its time:
│ │
│ Files ✓ 4 ms firebase.json, .firebaserc, rules, functions/, … │
│ Agents ✓ 0 ms .mcp.json for Claude Code │
│ Firenook ✓ 517 ms 0.2.0 in package.json │
│ Firenook ✓ 517 ms 0.2.1 in package.json │
│ Packages ✓ 14.1 s npm install in functions/, 241 packages │
│ Build ✓ 1.1 s tsc, into functions/lib │
│ │
Expand Down Expand Up @@ -211,7 +211,7 @@ The scripts, as `init` writes them for TypeScript:
"emulators": "firenook emulators:start --keep-data --build"
},
"devDependencies": {
"firenook": "0.2.0"
"firenook": "0.2.1"
}
}
```
Expand Down Expand Up @@ -292,7 +292,7 @@ Firenook init: project demo-my-app in ~/my-app
wrote ~/my-app/functions/.gitignore
wrote ~/my-app/.gitignore
done Agents: .mcp.json for Claude Code (0.0 s)
done Firenook: 0.2.0 in package.json (0.4 s)
done Firenook: 0.2.1 in package.json (0.4 s)
done Packages: npm install in functions/, 241 packages (2.3 s)
done Build: tsc, into functions/lib (0.8 s)
Next steps:
Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/docs/get-started/tests.md
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ builds the functions and starts the emulators around it. Trimmed:
```console
$ npm run test:integration
Firenook: running the script through the shell as the official CLI does; use -- for an argv command without shell interpretation
Firenook 0.2.0; engine 7a9614bea49f8208f96d2126b29ef11ee2f2810b; disk/WAL state ~/demo-shop/.firenook/runs/session-Syhid2/state
Firenook 0.2.1; engine 6556f79b2fda6ccc53c4700aff5fffc029939cde; disk/WAL state ~/demo-shop/.firenook/runs/session-Syhid2/state
Services: firestore, auth, storage, functions, pubsub; Emulator UI on; host localhost
Build: functions runs its build script before the emulators start
firenook functions: Loaded functions definitions from source: helloWorld, orderTotal.
Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/docs/help/former-name.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ where Fireside left it. Start with the same `--state-dir`, and the same

```console
$ npx firenook emulators:start --keep-data --state-dir ./local-state --import ./seed
Firenook 0.2.0; engine 7a9614bea49f8208f96d2126b29ef11ee2f2810b; disk/WAL state ~/demo-shop/local-state
Firenook 0.2.1; engine 6556f79b2fda6ccc53c4700aff5fffc029939cde; disk/WAL state ~/demo-shop/local-state
firenook resuming validated native state (seed import skipped)
firenook: indexed the top-level fields of 5 Firestore documents in 0.0 s
All emulators ready
Expand Down
4 changes: 2 additions & 2 deletions src/content/docs/docs/help/report.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Search the open and closed issues first: someone may have reported it, and

```console
$ npx firenook --version
0.2.0 (engine source 7a9614bea49f8208f96d2126b29ef11ee2f2810b)
0.2.1 (engine source 6556f79b2fda6ccc53c4700aff5fffc029939cde)
```

Include the whole line: the engine revision says exactly which engine you
Expand Down Expand Up @@ -51,7 +51,7 @@ log to the run's folder and prints where:

```console
$ npx firenook emulators:start --plain --debug --only firestore
Firenook 0.2.0; engine 7a9614bea49f8208f96d2126b29ef11ee2f2810b; disk/WAL state ~/demo-shop/.firenook/runs/session-12IyTo/state
Firenook 0.2.1; engine 6556f79b2fda6ccc53c4700aff5fffc029939cde; disk/WAL state ~/demo-shop/.firenook/runs/session-12IyTo/state
Services: firestore; Emulator UI on; host localhost
Demo project demo-shop: no cloud service is contacted, but user Functions can still reach external providers; this CLI is not a network sandbox.
Debug log: ~/demo-shop/.firenook/runs/session-12IyTo/firenook-debug.log
Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/docs/help/troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ it where your app connects too. Every emulator needs its own port; see

```console
$ npx firenook emulators:start
Firenook: Missing @firenook/cli-darwin-arm64@0.2.0. Install with optional dependencies enabled. No postinstall script is needed.
Firenook: Missing @firenook/cli-darwin-arm64@0.2.1. Install with optional dependencies enabled. No postinstall script is needed.
```

The native engine for your machine comes in an optional dependency, one
Expand Down
28 changes: 14 additions & 14 deletions src/content/docs/docs/help/versions.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ install one on purpose, and how to check the package and the engine you have.

## Releases

The current release is `0.2.0`, the first for public use. Before it came the
previews, `0.2.0-next.1` to `0.2.0-next.8`. Each release is listed, with what
The current release is `0.2.1`. The first for public use was `0.2.0`, and
before it came the previews, `0.2.0-next.1` to `0.2.0-next.8`. Each release is listed, with what
it changed and what it passed, on the
[releases page](https://github.com/firenook-dev/firenook/releases) and in the
[changelog](/changelog).
Expand All @@ -20,7 +20,7 @@ only held the name before the first release and contains no emulator.

## Channels

npm has two tags for Firenook. `latest` is the release to install, `0.2.0`
npm has two tags for Firenook. `latest` is the release to install, `0.2.1`
today; `npm install firenook` and a bare `npx firenook` get it on any Node
from 20 up. `next` carries previews, which keep their own `-next` versions.
`npm view firenook dist-tags` shows where each tag points.
Expand All @@ -34,9 +34,9 @@ and every CI run gets the same release until you upgrade:
npm install --save-dev firenook
```

npm records it as `^0.2.0`: an update can take a later `0.2` release, never
npm records it as `^0.2.1`: an update can take a later `0.2` release, never
`0.3` or a preview. To install one release in particular, name it, as in
`npm install --save-dev firenook@0.2.0`.
`npm install --save-dev firenook@0.2.1`.

Firenook never upgrades itself. In a terminal, it asks the npm registry for
the version tags at most once a day, in the background, and the next start
Expand All @@ -51,8 +51,8 @@ say whether it changes how data is stored.

## Data between releases

Data kept with `--keep-data` moves between `0.2.0` and the last preview in
both directions:
Data kept with `--keep-data` moves between `0.2.1` and `0.2.0` as it is. It
also moves between `0.2.0` and the last preview, in both directions:

- The first `0.2.0` start of data an earlier release saved builds the
ordered field index once, with one read of every document: 7.4 s for
Expand All @@ -77,14 +77,14 @@ both:

```console
$ npx firenook --version
0.2.0 (engine source 7a9614bea49f8208f96d2126b29ef11ee2f2810b)
0.2.1 (engine source 6556f79b2fda6ccc53c4700aff5fffc029939cde)
```

The launcher records the engine it expects in `release.json`:

```json title="node_modules/firenook/release.json"
{
"engineRevision": "7a9614bea49f8208f96d2126b29ef11ee2f2810b",
"engineRevision": "6556f79b2fda6ccc53c4700aff5fffc029939cde",
"rustToolchain": "1.98.0",
"platforms": {
"darwin-arm64": "aarch64-apple-darwin",
Expand All @@ -101,10 +101,10 @@ cut short:

```json title="node_modules/@firenook/cli-darwin-arm64/receipt.json"
{
"version": "0.2.0",
"version": "0.2.1",
"platform": "darwin-arm64",
"target": "aarch64-apple-darwin",
"engineRevision": "7a9614bea49f8208f96d2126b29ef11ee2f2810b",
"engineRevision": "6556f79b2fda6ccc53c4700aff5fffc029939cde",
"sha256": "…"
}
```
Expand Down Expand Up @@ -152,7 +152,7 @@ They do not replace npm's provenance or your lockfile.

## What a release has passed

Each release on GitHub, tagged `npm-v0.2.0` and so on, names its
Each release on GitHub, tagged `npm-v0.2.1` and so on, names its
engine revision and the CI runs it passed, and carries:

- the published tarballs, the launcher's and each platform's;
Expand All @@ -165,8 +165,8 @@ You can compare what npm serves with the manifest. `npm pack` downloads the
tarball, and its SHA-256 must match the manifest's:

```sh
npm pack firenook@0.2.0
shasum -a 256 firenook-0.2.0.tgz
npm pack firenook@0.2.1
shasum -a 256 firenook-0.2.1.tgz
```

A platform is supported for a release only when that release's run passed on
Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/docs/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ Java and nothing else to download.

## Status

These docs describe Firenook `0.2.0`, the first release for public use. It
These docs describe Firenook `0.2.1`. It
runs on Node 22, 24 or 26, on macOS (Apple silicon and Intel), Linux x64 and
arm64 with glibc 2.28 or newer, and Windows x64. Every release passes
conformance replays against the official emulator and packed installs on all
Expand Down
8 changes: 4 additions & 4 deletions src/content/docs/docs/reference/cli.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: CLI commands
description: Every firenook command and flag in 0.2.0, grouped as firenook --help groups them, with what each does and its default.
description: Every firenook command and flag in 0.2.1, grouped as firenook --help groups them, with what each does and its default.
---

Every command the `firenook` executable takes, grouped as `firenook --help`
Expand All @@ -9,7 +9,7 @@ groups them. Run them through your package manager (`npx firenook ...`,

```console
$ npx firenook --version
0.2.0 (engine source 7a9614bea49f8208f96d2126b29ef11ee2f2810b)
0.2.1 (engine source 6556f79b2fda6ccc53c4700aff5fffc029939cde)
```

`firenook --help`, `-h` or `help` prints one help text for every command,
Expand Down Expand Up @@ -292,8 +292,8 @@ $ npx firenook doctor
...
"warnings": [],
"problems": [],
"version": "0.2.0",
"engineRevision": "7a9614bea49f8208f96d2126b29ef11ee2f2810b"
"version": "0.2.1",
"engineRevision": "6556f79b2fda6ccc53c4700aff5fffc029939cde"
}
```

Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/docs/reference/mcp-tools.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ description: All 54 tools firenook mcp gives a coding agent, by group, with what
import McpTools from '../../../../components/docs/McpTools.astro';

`firenook mcp` serves these 54 tools to a coding agent, in this order. The
list is what the server answers to `tools/list` in 0.2.0. To connect
list is what the server answers to `tools/list` in 0.2.1. To connect
an agent, see [Connect your coding agent](/docs/tools/mcp).

Two marks recur below:
Expand Down
9 changes: 7 additions & 2 deletions src/content/docs/docs/services/auth.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,8 +105,13 @@ console.log('google', user.email, user.providerData.map((p) => p.providerId));
google grace@example.com [ 'google.com' ]
```

`signInWithPopup` and `signInWithRedirect` open the emulator's own helper
page, where you pick an account or add a new one.
`signInWithPopup` and `signInWithRedirect` open the emulator's own sign-in
page. It works over plain http from any address the emulator answers on, such
as a LAN address from a phone, or a container's name. It lists the provider's
test accounts, with a filter once there are eight or more. **New random user**
opens the form filled in with a made-up name and email, which you can change
before signing in, and **Add account** opens it empty. The next sign-in offers
that account like any other. No password is asked for.

## Codes and links

Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/docs/services/functions.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ answering, and the next save loads them again; [if a save seems to change
nothing](/docs/functions/debugging#if-a-save-seems-to-change-nothing), read
the terminal screen or the console. In a terminal, `r` reloads by hand.

In 0.2.0, a function you remove, rename or move to another region (a
In 0.2.1, a function you remove, rename or move to another region (a
`region` param changed in `.env`, for one) keeps its old route until the
emulators restart. A call to the old route answers `500`, and the log says:

Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/docs/tools/mcp.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ agent starts it in, and takes the project id from there. Its first line, on
stderr, says what it found:

```text
firenook mcp 0.2.0: 54 tools over stdio for project demo-shop (from ~/demo-shop/firebase.json); local emulators only
firenook mcp 0.2.1: 54 tools over stdio for project demo-shop (from ~/demo-shop/firebase.json); local emulators only
```

`--project <id>` picks the project, and `--config <path>` reads a
Expand Down
Loading
Loading