Skip to content

Per-capsule signed records and only-changed-capsule updates (#274), with installer progress lines (#277) - #353

Merged
andersalm merged 21 commits into
developfrom
feat/274-records
Oct 14, 2026
Merged

andersalm merged 21 commits into
developfrom
feat/274-records

Conversation

@andersalm

Copy link
Copy Markdown
Contributor

Per-capsule signed records (#274), built on Sasha's installer progress lines (#277, his commits unchanged; this PR lands both).

  • Each capsule archive gets its own signed elastos.capsule.record/v1 record in the release (capsule_records, 123 records, 76 KB of the 256 KB limit). Homes verify a changed capsule's record before any download or write and replace only capsules whose record changed; optional now, required one release later. Old Homes (alpha.13-15) ignore the new key.
  • Only the Runtime compiles in the release version: home-cli, shell, object-provider and the VZ supervisor are byte-identical across version stamps.
  • feat(setup): one progress line per component with signed sizes #277's Linux stack overflow fixed by boxing the Browser image and Carrier downloads (setup future 69,536 B -> 14,696 B).
    Slot-6 Linux full check PASS on c12069a.

SashaMIT and others added 21 commits October 6, 2026 20:56
A caller can scope a progress sink around a Carrier fetch. Replies then read in 64 KiB chunks and report bytes read against the declared length. Callers outside the scope keep the single read.

Co-authored-by: Cursor <cursoragent@cursor.com>
Each component gets one numbered line with its signed size, a bar, percent, elapsed time and the result. Pipes, NO_COLOR, CI and dumb terminals get plain lines. The download and verification order stays the same.

Refs #252

Co-authored-by: Cursor <cursoragent@cursor.com>
The header count leaves out components the loop skips for a missing source, URL or install path, and the size total saturates. A refresh reason rides on the component's result line. A failed executable link on an installed component ends its line as failed.

Refs #252

Co-authored-by: Cursor <cursoragent@cursor.com>
A rich line fills 80 columns, so the reason stays on the plain result line. The signed-size comment moves back to pending_signed_size.

Refs #252

Co-authored-by: Cursor <cursoragent@cursor.com>
…gress

# Conflicts:
#	elastos/crates/elastos-server/src/setup.rs
…gress

Conflicts in carrier.rs and setup.rs came from the alpha.10 slow-link fix (#296).
- carrier.rs: develop folded the byte-reply read into fetch_bytes with idle-only
  timeouts and removed read_carrier_len_prefixed_bytes. The scoped progress sink
  now reports from fetch_bytes' body loop, at most once per 64 KiB, outside any
  scope it reports nothing. The progress test follows the new read path.
- setup.rs: keep develop's download_http_client() and the quiet-mode guard on
  the "Resolving" line.

Co-authored-by: Cursor <cursoragent@cursor.com>
…gress

Keep the pending-count loop; develop now skips the unsupported local engine
before the loop, so the in-loop llama-server host check is gone. Keep both
setup tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
…gress

Develop now installs every component over Carrier only and drops the
direct gateway download path and its URL helper. Take develop's
download_component and media-tools prerequisite, and keep our one progress
line around them and the reporting guard on its printed lines. A release
download without its source is no longer skipped by the loop, so the
pending count follows that and its test is updated.

Co-authored-by: Cursor <cursoragent@cursor.com>
…gress

Co-authored-by: Cursor <cursoragent@cursor.com>
…#194)

Home CLI, the shell and the Browser VZ supervisor no longer read
ELASTOS_RELEASE_VERSION, so release builds of unchanged code keep identical
bytes. The terminal Home shows the Runtime version from the Runtime status;
the shell logs its own crate version; the supervisor's in-process VM manifest
uses the crate version (its version field is never read).
…ture stays small

Every component download embedded the 66 KiB Browser image transfer future;
with #277's progress wrapper, setup's future reached 69 KiB and overflowed the
2 MiB test thread stack in Linux debug builds. Setup's future is now 14 KiB.
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.

2 participants