ResearchPocket 2.2.2
ResearchPocket 2.2.2 fixes native restoration of a valid private library when
several cross-device updates arrive in reverse causal order. The hosted owner
app already restored this history correctly; the native CLI and TUI now reach
the same converged library.
Install
With Rust installed:
cargo install --locked --force researchOr download the verified archive for Linux, macOS, or Windows from the GitHub
release and check it against SHA256SUMS.
What changed
- Native deferred updates retry to a fixed point. A deferred update can
depend on another deferred update that sorts after it. Native persistence now
re-offers the set in bounded rounds until no additional predecessor can be
satisfied instead of treating one unsuccessful pass as missing history. - Interrupted restores repair themselves after upgrade. A failed native
restore may already have recorded every immutable remote object. A later sync
now retries those persisted deferred envelopes even when there is nothing to
download, then continues with normal aggregate synchronization. - Incomplete histories still fail closed. If a predecessor is genuinely
absent after replay reaches a fixed point, synchronization stops before any
local update is uploaded and keeps the same integrity error.
The fix was verified against a production-sized private repository that exposed
the failure and with a three-device contract test delivering a grandchild,
child, and predecessor in reverse order.
Upgrade an affected library
Revoke any credential that has been exposed in terminal output or shell history,
upgrade the native client, and run a normal synchronization cycle:
cargo install --locked --force research
research --version
research sync runThe expected version is research 2.2.2. Do not reconnect or delete the local
library after the earlier integrity error. The next sync reuses its durable
receipts and repairs the deferred projection without downloading or rewriting
the immutable history again.
This release does not change the synchronization protocol, SQLite schema,
operation-pack format, checkpoint format, aggregate generation, or repository
layout. Existing native and hosted clients remain wire-compatible.
GitHub release archives
| Platform | Release asset |
|---|---|
| Linux GNU/glibc x86-64 (glibc 2.35 or newer) | research-v2.2.2-linux-amd64.tar.gz |
| Windows x86-64 | research-v2.2.2-windows-amd64.zip |
| macOS Intel | research-v2.2.2-macos-amd64.tar.gz |
| macOS Apple Silicon | research-v2.2.2-macos-arm64.tar.gz |
The archives remain unsigned. Verify the selected file with SHA256SUMS, or
build the exact tag with the pinned toolchain:
git clone --branch v2.2.2 --depth 1 \
https://github.com/ResearchPocket/researchpocket.github.io.git
cd researchpocket.github.io
cargo build --locked --release