Update: check, verify and stage releases in a new fieldcraft-update crate (#231)

Versions ordered as SemVer, the GitHub Releases API reply read as hostile input, how this
copy is installed (macOS app or CLI, Windows folder, AppImage, tar.gz folder, .deb/.rpm) and
which release asset updates it, the checksum list's minisign signature checked against the
built-in release key, the asset's SHA-256 checked against the list, archives unpacked inside
the staging folder, and the swap planned and applied by renames with undo on failure. The
network and unpacking parts are native only; a mock release server drives the tests.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01UhhZMBTviDQxZvwnyP89fo
This commit is contained in:
jyvikoandClaude Opus 5.5 authored and Irakli Kourtis committed 2026-10-15 01:48:30 -04:00
1 parent 4c18322a34
commit 8fe31545ea
14 files changed
+1997

No files matched your search

+2
View File
@@ -39,6 +39,8 @@ pub const TABLE: &[(&str, Class)] = &[
("model", Class::Layer(0)),
// L0, no workspace dependencies: deterministic thread pool helpers for the solvers.
("parallel", Class::Standalone),
// L0, no workspace dependencies: checking for, verifying and installing releases.
("update", Class::Standalone),
// L1: geometry and math kernels.
("geometry", Class::Layer(1)),
("mesh", Class::Layer(1)),