Version crypto stores and align the SAS dependency floor - #30
Conversation
|
The initial macOS run installed mx.api 0.3.0.2 successfully, then the general dependency step tried to upgrade it to the newly published 0.3.1 but downloaded the stale 0.3.0 macOS binary. Package checking correctly rejected the resulting version below DESCRIPTION's floor. The follow-up CI commit moves the version-controlled source installs after general dependencies and lets mx.api resolve from CRAN source, with drat as a fallback. The crypto commit remains pinned to 0.2.2. Local checks confirm the ordering, repository list, immutable pin, and actual invocation of the test double; no package code changed in this follow-up. |
|
Applied the requested revision in
The actual mx.client 0.2.0.10 build was exercised in a separate process against temporary state. It rejects the previous envelope writer (negative control) and accepts the corrected writer with unchanged identity and matching one-time-key maps. No live store or console installation was changed. The source suite now passes 792/792; local package check reports 0 errors, 0 warnings, 0 notes. |
Changes
sessions.jsonwhile continuing to read unversioned legacy and four-map session stores.cross-signing.jsonand supported JSON account envelopes. Unknown/malformed versions are rejected before unpickling; errors identify the full file path.account.picklewrites in the existing raw encrypted format. The version-1 envelope reader remains available, but loading never rewrites the file. Envelope writes are deferred to a later release.Compatibility
Account files saved by this PR remain readable by older mx.client versions. There is no account-file format migration. Session stores add a version field without changing the existing session maps; cross-signing files retain their existing versioned format.
The reader also accepts version-1 JSON account envelopes without rewriting them on load. A later explicit save writes the raw form, preserving the current account state. Unknown envelope versions are refused.
Validation
tinypkgr::check(args = "--no-manual"): 0 errors, 0 warnings, 0 notes, including tests and vignette rebuild.This PR remains open for review. Drat separately serves mx.client 0.2.0.10; the 0.2.0.11 changes have not been published there or deployed.