Skip to content

ResearchPocket 2.2.2

Latest

Choose a tag to compare

@github-actions github-actions released this 24 Aug 06:08
· 2 commits to main since this release
5f4e48f

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 research

Or 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 run

The 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