Skip to content

feat(sync): add transactional bloom-sync engine - #651

Closed
boburning wants to merge 3 commits into
mainfrom
feature/sync02-transaction-engine
Closed

boburning wants to merge 3 commits into
mainfrom
feature/sync02-transaction-engine

Conversation

@boburning

@boburning boburning commented Aug 31, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • add the transport-neutral bloom-sync transaction engine for authenticated Ed25519 save bundles
  • enforce bounded canonical manifests, immutable bundle IDs, peer key/epoch trust, ordered compatibility/conflict classification, quarantine, and explicit resolution
  • publish only verified whole-save snapshots with same-directory atomic replacement and rollback of both live bytes and lineage state on late failure
  • expose the bounded bloomctl sync grammar and make bloom-network-sync status report engine readiness without starting transport or listeners
  • package the sync contract/schema, refresh provenance inventories, and document the architecture/security boundary
  • route the shipped OpenSSL through BloomOS-owned runtime libraries; this was discovered and regression-tested with a read-only Mini Plus capability probe
  • make the RetroArch identity regression test mutate current legacy inventory totals structurally instead of hard-coding a stale generated snapshot
  • record SYNC-02 as device-gate pending in the authoritative v3 ledger while leaving SYNC-03 and SYNC-04 planned

This slice deliberately provides no cloud/provider/transport implementation and opens no network listener.

Verification

  • native test suite: 595/595
  • AddressSanitizer suite: 595/595
  • full shell matrix: 850/850 across 8 shards
  • focused sync/network/provenance/FAT suite: 47/47
  • focused bloom-sync and ledger suite: 19/19
  • UI gallery: 10/10, byte-identical goldens and 0 changed pixels
  • full cppcheck: exit 0 (existing warnings only)
  • clean pinned local ARM cross-build on runtime commit 8077e94481c202a93f64d512a05bbf7c85384952: all primary and external owners completed; ci-build [READY!]
  • Linux RetroArch identity regression suite on test-only head 9ce3b5ddb148382f39ac15fc4d9e0b0963248574: 3/3
  • hosted exact-head checks on a9fd690627738985a016cb7df824574d6de14b4c: native, AddressSanitizer, 850-test shell, static analysis, and clean ARM all passed
  • current Mini Plus read-only capability probe: Ed25519 public DER 44 bytes, signature 64 bytes, canonical jq sorting passed, runtime-owned OpenSSL library scope passed, temporary probe scope cleaned

Device gate

Risk 3 / Warm. No SYNC-02 candidate was deployed. The signed UI-12 candidate from #644 remains the sole installed testing candidate and still needs the user's physical observation of normal shutdown text and actual power-off. After that gate, this PR still requires its own signed Mini Plus candidate deployment, structured health/feature evidence, cleanup, rollback verification, and any required physical validation before merge.

Closes #650

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(sync): add transport-neutral transactional bloom-sync engine (SYNC-02)

1 participant