reeflog-client 0.7.25 → 0.7.27

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.
Files changed (2) hide show
  1. package/README.md +19 -5
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -10,11 +10,11 @@ durable cursor, no catch-up. Every project rebuilds reconnect, dedup,
10
10
  gap-fill, and reorg handling, or silently loses events. reeflog makes that
11
11
  one daemon, one file, one cursor.
12
12
 
13
- **Status: v0.7.25 (2026-11-13), live against mainnet-beta — no Rust toolchain needed: `npm install reeflog-client`, then `import { bootstrap } from 'reeflog-client'; await bootstrap()` (downloads the prebuilt release archive and verifies its sha256 against what the GitHub release API publishes). The client itself is zero-dependency: one package, no `node_modules` of its own, and it installs without `git` on the machine.**
13
+ **Status: v0.7.27 (2026-11-15), live against mainnet-beta — no Rust toolchain needed: `npm install reeflog-client`, then `import { bootstrap } from 'reeflog-client'; await bootstrap()` (downloads the prebuilt release archive and verifies its sha256 against what the GitHub release API publishes). The client itself is zero-dependency: one package, no `node_modules` of its own, and it installs without `git` on the machine.**
14
14
 
15
15
  The same client from the tagged release:
16
- `npm install github:auroraxo/reeflog#v0.7.25`. Or from source:
17
- `cargo install --git https://github.com/auroraxo/reeflog --tag v0.7.25`.
16
+ `npm install github:auroraxo/reeflog#v0.7.27`. Or from source:
17
+ `cargo install --git https://github.com/auroraxo/reeflog --tag v0.7.27`.
18
18
 
19
19
  **Honest state:** it works, and it is measured — but so far every real
20
20
  consumer belongs to the project itself. There is no unaffiliated third-party
@@ -37,7 +37,7 @@ no data source on public RPC serves that), or a managed hosted feed
37
37
  ## Quickstart (verified run, ~1 minute)
38
38
 
39
39
  Everything below was executed against `api.mainnet-beta.solana.com` on
40
- 2026-11-13 with the published v0.7.24 binary; your numbers will differ with
40
+ 2026-11-13 with the published v0.7.25 binary; your numbers will differ with
41
41
  chain traffic.
42
42
 
43
43
  ```bash
@@ -155,6 +155,7 @@ detail and every raw number in
155
155
  | Archive depth | 39 holes at ~24 h depth filled and verified anchored |
156
156
  | Retractions | proven against a **real fork of a real chain**, 47/47 checks |
157
157
  | Refusals | every documented CLI line runs against the binary in CI (`tests/documented_surface.rs`); unknown flags are refused, never ignored |
158
+ | Gap ledger | one hole = one episode: the published v0.7.26 asset counted scans (one hole → two open rows, `gaps_open: 1` forever on a healed journal); measured on the published asset, fixed in v0.7.27 |
158
159
 
159
160
  ## Conditions and limits — the honest part
160
161
 
@@ -180,6 +181,19 @@ detail and every raw number in
180
181
  - **A consumer must read the exit code.** `tail` exits 3 when a row's
181
182
  payload is still owed and holds the cursor there; treating every
182
183
  non-zero as "retry everything" replays forever. `exit 1` is a refusal.
184
+ - **A `--limit` is a budget, not a hint, and the push report is the queue.**
185
+ `webhook push --limit 0` sends zero bytes and moves no cursor; a bounded
186
+ pass reports `remaining_behind_cursor` and `truncated` so a page can never
187
+ read as a drained mailbox (measured on the published v0.7.25 asset, fixed
188
+ in v0.7.26 — see the deep dive).
189
+ - **One hole is one episode, and a heal closes it.** The gap ledger used to
190
+ count SCANS: every `verify` over the same hole opened another `hole` row,
191
+ and `repair` closed only the oldest one — so a journal the chain called
192
+ whole still reported `gaps_open: 1`, forever. `gaps_open` is the field
193
+ every operator and monitoring caller reads to decide whether the mailbox
194
+ is whole; a permanent false alarm there trains the reader to ignore it.
195
+ Measured on the published v0.7.26 asset, fixed in v0.7.27 (see the deep
196
+ dive).
183
197
  - **The client is zero-dependency since v0.7.25.** Until then the npm
184
198
  manifest named *itself* as a dependency on github:, so every
185
199
  `npm install reeflog-client` also cloned a second, older copy of the
@@ -192,7 +206,7 @@ detail and every raw number in
192
206
  ## Deep dives
193
207
 
194
208
  - [docs/measured-history.md](https://github.com/auroraxo/reeflog/blob/main/docs/measured-history.md) — the complete
195
- README measurement and contract history through v0.7.25, unbroken.
209
+ README measurement and contract history through v0.7.27, unbroken.
196
210
  - [`research/`](research/) — every committed measurement artifact behind the
197
211
  numbers above (raw JSON reports, pinned by tests).
198
212
  - [`tests/`](tests/) and [`test/`](test/) — the contract tests: the CLI
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reeflog-client",
3
- "version": "0.7.25",
3
+ "version": "0.7.27",
4
4
  "description": "Node client for reeflog, the durable local mailbox for Solana events: cursor-based event delivery, retractions, health and repair.",
5
5
  "license": "MIT",
6
6
  "type": "module",