From ab50c357050786d20e1fc4efa55626c15eaeaf58 Mon Sep 17 00:00:00 2001 From: Nehanth Date: Fri, 16 Oct 2026 16:59:31 -0400 Subject: [PATCH] release: 2.0.0, not 3.0.0 (owner's call) Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01MkVLt1BijYxEeNWsgihPdN --- CHANGELOG.md | 6 +++--- CITATION.cff | 2 +- cli/npm-shrinkwrap.json | 4 ++-- cli/package.json | 2 +- docs/releases/{3.0.md => 2.0.md} | 8 ++++---- package-lock.json | 4 ++-- package.json | 2 +- 7 files changed, 14 insertions(+), 14 deletions(-) rename docs/releases/{3.0.md => 2.0.md} (96%) diff --git a/CHANGELOG.md b/CHANGELOG.md index b8359bf2..2754e51c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,11 +4,11 @@ All notable changes to Pooled (called SwarmLLM before September 2026). Format fo ## [Unreleased] -## [3.0.0] - 2026-10-16 +## [2.0.0] - 2026-10-16 -**Run a 125B model from your SSD, in a browser tab, and pool devices to make it faster.** Pooled 3.0 runs Qwen3.8 Flash (**experimental**), a 125B mixture-of-experts model with about 6B active per token. It is far bigger than most GPUs' memory, so each device keeps its share of the experts on its SSD (browser storage for a tab, the model files for `pooled join`), caches recently used experts on its GPU (routing repeats: about 17% of a layer's experts serve about 77% of lookups), and reads the rest from disk as tokens need them. Disk is the slow part; every device that joins holds part of the model in its memory, so less comes from disk and it gets faster: a Mac Studio alone in Chrome decodes about 8 tok/s, and with an RTX 5070 PC joined about 10-12 tok/s, depending on the network. Flash rooms run at up to 64K context (128K is in progress). 3.0 also brings the system-RAM and SSD expert tiers in the terminal, `pooled serve`, channel-bound join auth and the default TURN relay. Release notes and the demo video: [docs/releases/3.0.md](docs/releases/3.0.md). +**Run a 125B model from your SSD, in a browser tab, and pool devices to make it faster.** Pooled 2.0 runs Qwen3.8 Flash (**experimental**), a 125B mixture-of-experts model with about 6B active per token. It is far bigger than most GPUs' memory, so each device keeps its share of the experts on its SSD (browser storage for a tab, the model files for `pooled join`), caches recently used experts on its GPU (routing repeats: about 17% of a layer's experts serve about 77% of lookups), and reads the rest from disk as tokens need them. Disk is the slow part; every device that joins holds part of the model in its memory, so less comes from disk and it gets faster: a Mac Studio alone in Chrome decodes about 8 tok/s, and with an RTX 5070 PC joined about 10-12 tok/s, depending on the network. Flash rooms run at up to 64K context (128K is in progress). 2.0 also brings the system-RAM and SSD expert tiers in the terminal, `pooled serve`, channel-bound join auth and the default TURN relay. Release notes and the demo video: [docs/releases/2.0.md](docs/releases/2.0.md). -Not in 3.0: the CLI on npm (`@pooled/cli` 0.4.1) doesn't have Flash's newest code yet; to lend or host Flash from the terminal, run the CLI from the repo ([cli/README.md](cli/README.md#qwen38-flash-experimental-run-the-cli-from-the-repo)). Flash MTP speculative decoding (#352) is not part of 3.0. +Not in 2.0: the CLI on npm (`@pooled/cli` 0.4.1) doesn't have Flash's newest code yet; to lend or host Flash from the terminal, run the CLI from the repo ([cli/README.md](cli/README.md#qwen38-flash-experimental-run-the-cli-from-the-repo)). Flash MTP speculative decoding (#352) is not part of 2.0. ### Upgrade notes - **`@pooled/openclaw` 0.3.2 bundles the room node from before these changes**: an OpenClaw gateway can't hold Qwen3.8-Flash-Next layers, use `--disk` or the TURN relay until a new plugin release. diff --git a/CITATION.cff b/CITATION.cff index b96413ff..058db6d9 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -9,5 +9,5 @@ abstract: "Pooled runs one open language model across the devices in a room, in repository-code: "https://github.com/Nehanth/pooled" url: "https://pooled.run" license: MIT -version: 3.0.0 +version: 2.0.0 date-released: 2026-10-16 diff --git a/cli/npm-shrinkwrap.json b/cli/npm-shrinkwrap.json index beadb186..d7434c78 100644 --- a/cli/npm-shrinkwrap.json +++ b/cli/npm-shrinkwrap.json @@ -1,12 +1,12 @@ { "name": "@pooled/cli", - "version": "3.0.0", + "version": "2.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@pooled/cli", - "version": "3.0.0", + "version": "2.0.0", "license": "MIT", "dependencies": { "node-datachannel": "0.33.4", diff --git a/cli/package.json b/cli/package.json index 78657896..8ec75a1d 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@pooled/cli", - "version": "3.0.0", + "version": "2.0.0", "description": "Use a Pooled room from the command line: pooled serve (a local OpenAI and Anthropic compatible endpoint), pooled chat (talk to its model), pooled join and pooled host (lend this computer's GPU).", "homepage": "https://pooled.run", "repository": { diff --git a/docs/releases/3.0.md b/docs/releases/2.0.md similarity index 96% rename from docs/releases/3.0.md rename to docs/releases/2.0.md index afd97fb1..1d9c8b09 100644 --- a/docs/releases/3.0.md +++ b/docs/releases/2.0.md @@ -1,8 +1,8 @@ -# Pooled 3.0 +# Pooled 2.0 ## Run a 125B model from your SSD, in a browser tab, and pool devices to make it faster -Pooled 3.0 runs **Qwen3.8 Flash**, a 125B mixture-of-experts model that uses about 6B of its parameters per token (177B with its n-gram table). It is **experimental**. +Pooled 2.0 runs **Qwen3.8 Flash**, a 125B mixture-of-experts model that uses about 6B of its parameters per token (177B with its n-gram table). It is **experimental**. Flash is far bigger than most GPUs' memory, so Pooled runs it from disk: @@ -67,8 +67,8 @@ Full list: [CHANGELOG.md](../../CHANGELOG.md). ## Compatibility and upgrading -- **The room protocol is unchanged (4).** 1.x and 3.0 tabs can share a room, with two limits: a 3.0 creator refuses a Start pressed on a v1.0.0 tab (reload it to press Start), and a v1.0.0 tab turned away with "this tab runs an older Pooled" only needs a reload. -- **To lend a computer to Flash from the terminal, run the CLI from the repo for now.** The CLI on npm (`@pooled/cli` 0.4.1) doesn't have Flash's newest code yet: [cli/README.md](../../cli/README.md#qwen38-flash-experimental-run-the-cli-from-the-repo). An older `pooled join` can still join a 3.0 room and run the other models; a Flash start on it fails with "couldn't load its layers (unknown model qwen3.8-flash)", and a 0.4.1 node dealt a Flash offload refuses it (the host deals again without it). `pooled serve` / `pooled chat` 0.4.x keep working. +- **The room protocol is unchanged (4).** 1.x and 2.0 tabs can share a room, with two limits: a 2.0 creator refuses a Start pressed on a v1.0.0 tab (reload it to press Start), and a v1.0.0 tab turned away with "this tab runs an older Pooled" only needs a reload. +- **To lend a computer to Flash from the terminal, run the CLI from the repo for now.** The CLI on npm (`@pooled/cli` 0.4.1) doesn't have Flash's newest code yet: [cli/README.md](../../cli/README.md#qwen38-flash-experimental-run-the-cli-from-the-repo). An older `pooled join` can still join a 2.0 room and run the other models; a Flash start on it fails with "couldn't load its layers (unknown model qwen3.8-flash)", and a 0.4.1 node dealt a Flash offload refuses it (the host deals again without it). `pooled serve` / `pooled chat` 0.4.x keep working. - `pooled serve` can't use a v1.0.0 host (it has no API) and says so. - Flash checkpoints saved on disk by an older build count as missing (#379): the first question on them reads the prompt again. - Behaviour changes: the layer split defaults to "For speed"; MoE DP4a prefill is on by default on NVIDIA (`?dp4a=0`); `--ram` is on by default when a room is short; iPhone pledges are capped at 1 GB; scripts that join a gated room need the invite link or `--allow-all`. diff --git a/package-lock.json b/package-lock.json index 82ca920d..8c4be30e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "pooled", - "version": "3.0.0", + "version": "2.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "pooled", - "version": "3.0.0", + "version": "2.0.0", "license": "MIT", "devDependencies": { "peer": "^1.0.2", diff --git a/package.json b/package.json index bab71137..cb45c666 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pooled", - "version": "3.0.0", + "version": "2.0.0", "description": "Peer-to-peer LLM inference in the browser: each device holds some of the layers, tabs talk over WebRTC, and our own WebGPU kernels do the math.", "homepage": "https://pooled.run", "repository": {