Skip to content

[Vela OTA] Sub-Issue 11: Delta update engine — binary diff/patch#207

Merged
JusterZhu merged 3 commits into
masterfrom
feat/vela-ota-11
May 19, 2026
Merged

[Vela OTA] Sub-Issue 11: Delta update engine — binary diff/patch#207
JusterZhu merged 3 commits into
masterfrom
feat/vela-ota-11

Conversation

@JusterZhu

Copy link
Copy Markdown
Collaborator

Sub-Issue 11: Delta Update Engine

Implement a binary delta engine that enables efficient incremental updates
by transmitting only the changed bytes between versions.

Design

Vela Delta is a standalone crate (vela-delta) in the vela-core workspace:

vela-delta/
├── src/
│   ├── lib.rs
│   ├── diff.rs
│   ├── patch.rs
│   └── manifest.rs
└── Cargo.toml

API

  • generate_delta(old: &[u8], new: &[u8]) -> DeltaResult<Vec<u8>>
  • apply_patch(base: &[u8], patch: &[u8]) -> DeltaResult<Vec<u8>>
  • DeltaManifest — metadata for delta bundles

Integration with FlashPack

  • Uses PayloadType::Delta when building delta FlashPacks
  • Includes delta.manifest in the .fpk tar archive
  • Version baseline validation via requires_version in FpkHeader

Juster Zhu added 3 commits May 19, 2026 18:09
…ation (#199)

- Add vela-e2e integration test crate with 6 test suites (55 tests)
- Suite 1: Watchdog + EventBus — event emission, subscribers, history
- Suite 2: Slot Manager + Lifecycle — transitions, metrics, terminal states
- Suite 3: Hub Client + Retry + Download — retry exhaustion, checksum, auth
- Suite 4: Full Pipeline — phase order, terminal states, config
- Suite 5: Error Recovery — space errors, retry behavior, fallback path
- Suite 6: Configuration — defaults, custom configs, error conversions
- Add SlotManager + SlotLabel types to vela-slotmgr
- Fix 40+ pre-existing compilation errors across workspace crates
- Fix dependency versions (x509-cert, csbindgen, hmac, ring compat)
- Fix platform compatibility (watchdog on Windows via cfg guards)
- Fix API mismatches in orchestrator, hub client, download, flashpack
…202)

- Add vela-delta crate with sliding-window block-matching algorithm
- Binary diff generator: generate_delta(old, new) -> DeltaResult<Vec<u8>>
- Patch applier: apply_patch(base, delta) -> DeltaResult<Vec<u8>>
- DeltaManifest format for .fpk delta.manifest metadata
- VDLT magic header with SHA-256 integrity verification
- 19 unit tests including roundtrip, hash verification, edge cases
- Integrates with FlashPack PayloadType::Delta
Copilot AI review requested due to automatic review settings May 19, 2026 10:53
@JusterZhu JusterZhu removed the request for review from Copilot May 19, 2026 10:54
@JusterZhu JusterZhu self-assigned this May 19, 2026
@JusterZhu JusterZhu added the features New feature or request label May 19, 2026
@JusterZhu JusterZhu merged commit 7d19966 into master May 19, 2026
4 checks passed
@JusterZhu JusterZhu deleted the feat/vela-ota-11 branch May 19, 2026 10:55
@JusterZhu JusterZhu linked an issue May 19, 2026 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

features New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Vela OTA] Sub-Issue 11: Delta update engine — binary diff/patch

1 participant