Skip to content

Keystead Core 0.5.4

Latest

Choose a tag to compare

@MidCoard MidCoard released this 05 Sep 09:09

Fixes cross-platform sync identity instability: importing unchanged records between Windows and macOS could change content keys and event IDs because profile serialization used platform-specific line endings and did not reliably sort property entries.

  • Serialize future sync profiles with sorted property entries and LF delimiters, preserving escaping of actual user content.
  • Add canonicalSyncContentKey(record): authenticate the original ciphertext, advertised content key, and typed payload before returning a canonical comparison key.
  • Preserve compatibility with authenticated historical CRLF and differently ordered profiles. Existing records do not need to be deleted or rewritten to compare correctly.

Validation: LF → CRLF → LF subprocess round trips now preserve record identity. Legacy representation fixtures remain equivalent, while forged keys, corrupt ciphertext, and invalid typed payloads are rejected. Local Core checks and Javadoc passed: 422 tests passed, 9 platform-dependent skips.

Maven coordinates: top.focess:keystead-core:0.5.4. Applications comparing legacy sync records should use the authenticated canonical comparison API. Both desktop clients should be updated to the corresponding fixed release.