pikelet-wasm 0.11.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,57 @@ Through 0.6.0 these were published as `pancake-wasm` and
|
|
|
8
8
|
packages are pre-1.0: a minor bump may carry breaking changes, and each entry lists them
|
|
9
9
|
first.
|
|
10
10
|
|
|
11
|
+
## pikelet-wasm 0.12.0 / pikelet 0.12.0 — 2026-10-30
|
|
12
|
+
|
|
13
|
+
Query embedding is about 1.65x faster, because the inline encoder now
|
|
14
|
+
computes in integers, and `pikelet` no longer installs
|
|
15
|
+
`@xenova/transformers`, which took a plain install from 82 packages and a
|
|
16
|
+
critical audit advisory down to two packages. Upgrade if you embed queries
|
|
17
|
+
in the browser or Node, or build `workers-ai` projects with `create`.
|
|
18
|
+
Embeddings shift slightly (see Compatibility); packs compiled before this
|
|
19
|
+
release still verify and serve. Both packages move to 0.12.0 together, and
|
|
20
|
+
`pikelet` requires `pikelet-wasm` ^0.12.0.
|
|
21
|
+
|
|
22
|
+
### Compatibility
|
|
23
|
+
|
|
24
|
+
- **The inline encoder computes in integers, so its embeddings shift
|
|
25
|
+
slightly.** Every projection is now an integer GEMM: activations are
|
|
26
|
+
quantized to int16 per token and multiplied against the u8/u4 weights
|
|
27
|
+
with `i32x4.dot_i16x8_s`, and GELU is vectorized. Embeddings move by at
|
|
28
|
+
most about 3e-4 per component (MiniLM; 9e-5 for BGE-small), inside the
|
|
29
|
+
1e-3 tolerance packs declare for their test vectors, so every pack
|
|
30
|
+
compiled before this still verifies and serves: on every pack tested,
|
|
31
|
+
test vectors, golden queries and abstention probes gave the same results
|
|
32
|
+
under the old and new kernel. A pack rebuilt from the same inputs gets
|
|
33
|
+
slightly different vectors and so a new identity. The kernel uses only
|
|
34
|
+
baseline WASM SIMD, as before, and gives bit-identical embeddings in
|
|
35
|
+
Node, Chromium, Firefox and WebKit.
|
|
36
|
+
|
|
37
|
+
- **`pikelet` no longer depends on `@xenova/transformers`.** `create`
|
|
38
|
+
(embedding mode `workers-ai`) now embeds passages at build time with the
|
|
39
|
+
inline-transformer kernel, running a u8 export of `BAAI/bge-small-en-v1.5`
|
|
40
|
+
rather than transformers.js's ONNX copy. The 36 MiB weight blob downloads
|
|
41
|
+
on the first build, pinned by sha256, into `~/.cache/pikelet/models`
|
|
42
|
+
(`PIKELET_MODEL_CACHE` moves it, `PIKELET_BGE_WEIGHTS_URL` names a
|
|
43
|
+
mirror); a cached blob that fails the pin is fetched again. Passage
|
|
44
|
+
vectors change slightly, so `pikelet rebuild` gives existing projects a
|
|
45
|
+
new index: they are within 0.9999 cosine of fp32 BGE-small where the old
|
|
46
|
+
path's were 0.996 to 0.998, and on BEIR SciFact, scored against live
|
|
47
|
+
Workers AI query vectors, nDCG@10 is 0.6991 against 0.6992 before.
|
|
48
|
+
Passages longer than 512 tokens are mean-pooled across windows instead of
|
|
49
|
+
truncated. `--omit=optional` is no longer needed: a plain install is two
|
|
50
|
+
packages, where it was 82 packages and six audit advisories (one critical)
|
|
51
|
+
inside that dependency.
|
|
52
|
+
|
|
53
|
+
### Changed
|
|
54
|
+
|
|
55
|
+
- **Query embedding is about 1.65x faster.** Single-query p50 on a Ryzen 9
|
|
56
|
+
4900HS: MiniLM 27.5 to 16.4 ms in Node (Chromium 26.4 to 15.8, WebKit
|
|
57
|
+
28.0 to 18.0), BGE-small u8 76.0 to 47.1 ms; long documents about 1.4x.
|
|
58
|
+
u4 weights gain little (about 1.06x): their 32-wide blocks each need a
|
|
59
|
+
conversion and scale. On BEIR SciFact with BGE-small, nDCG@10 is
|
|
60
|
+
unchanged (0.7071) and 298 of 300 top-10 lists are identical.
|
|
61
|
+
|
|
11
62
|
## pikelet-wasm 0.11.0 / pikelet 0.11.0 — 2026-10-24
|
|
12
63
|
|
|
13
64
|
Pack reads on Node no longer go through the runtime's fetch, whose
|
package/README.md
CHANGED
|
@@ -44,7 +44,7 @@ console.log(out.matchQuality, out.results[0]?.title);
|
|
|
44
44
|
// 'strong' 'Snapshot restore'
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
`compile` also takes a live URL (`--source https://docs.example.com`), a repository's commit history (`--git ./repo`), or exported chats (`--conversations <file|folder>`). To install instead of using `npx`, run `npm install -g pikelet
|
|
47
|
+
`compile` also takes a live URL (`--source https://docs.example.com`), a repository's commit history (`--git ./repo`), or exported chats (`--conversations <file|folder>`). To install instead of using `npx`, run `npm install -g pikelet`. `create` builds a deployed search app (a Worker and UI) rather than a file. [QUICKSTART.md](QUICKSTART.md) walks the whole lifecycle; [`packages/pikelet/README.md`](packages/pikelet/README.md) is the full CLI reference.
|
|
48
48
|
|
|
49
49
|
## The shortest demonstration
|
|
50
50
|
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pikelet-wasm",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "Vector search engine and .pikelet artifact readers/builders, in WebAssembly. Compile a corpus into one self-contained, hash-verified search file, or use the underlying HNSW engine directly. Runs in Node.js, browsers, and Cloudflare Workers with no native dependencies.",
|
|
5
5
|
"main": "src/pikelet.js",
|
|
6
6
|
"types": "src/pikelet.d.ts",
|