Show per-package install progress and quiet run-log hints #26

Merged
kleb merged 1 commit from fix/pkg-progress-log-hints into main 2026-06-25 00:29:26 +02:00
Owner

Summary

Two installer UX fixes plus the regenerated integrity manifest.

1. Per-package install progress

installPackage no longer hides the apt batch behind a single
"Installing N package(s)" spinner. Required and optional packages now
install sequentially with a running counter:

== System [15%]: Installing required packages ==
  -> Installing required packages (1/9)
       Installing: cron (via apt)
  -> Installing required packages (2/9)
       Installing: sudo (via apt)
  ...

The up-front "all required packages exist" check is preserved (a typo
still fails fast before anything installs). The optional path is now
best-effort per-package instead of batch-with-fallback.

2. Quiet run-log hints

The Run log: / View with: tail -F ... startup lines are hidden by
default. They are shown with the new --verbose flag (or
KINIT_VERBOSE=TRUE), and finalizeRunLog still prints the path
automatically when a run fails. The active live-TTY navigation line is
unchanged.

Validation

  • bash -n + shellcheck -S warning clean on kInit.sh and utils.sh.
  • Unit-tested the counter loop and the hint gating with stubs.
  • Regenerated checksums.sha256 via .scripts/unix/checksum.sh;
    sha256sum -c passes and both embedded bootstrap hashes match.

Not run: a live root/apt end-to-end (needs a Debian/Ubuntu host).

## Summary Two installer UX fixes plus the regenerated integrity manifest. ### 1. Per-package install progress `installPackage` no longer hides the apt batch behind a single "Installing N package(s)" spinner. Required and optional packages now install sequentially with a running counter: ``` == System [15%]: Installing required packages == -> Installing required packages (1/9) Installing: cron (via apt) -> Installing required packages (2/9) Installing: sudo (via apt) ... ``` The up-front "all required packages exist" check is preserved (a typo still fails fast before anything installs). The optional path is now best-effort per-package instead of batch-with-fallback. ### 2. Quiet run-log hints The `Run log:` / `View with: tail -F ...` startup lines are hidden by default. They are shown with the new `--verbose` flag (or `KINIT_VERBOSE=TRUE`), and `finalizeRunLog` still prints the path automatically when a run fails. The active live-TTY navigation line is unchanged. ## Validation - `bash -n` + `shellcheck -S warning` clean on `kInit.sh` and `utils.sh`. - Unit-tested the counter loop and the hint gating with stubs. - Regenerated `checksums.sha256` via `.scripts/unix/checksum.sh`; `sha256sum -c` passes and both embedded bootstrap hashes match. Not run: a live root/apt end-to-end (needs a Debian/Ubuntu host).
installPackage now installs required and optional apt packages one at a
time with a running counter, surfacing each package name (e.g.
"Installing required packages (1/9)" / "Installing: cron (via apt)")
instead of a single batched spinner.

Run-log location hints ("Run log:" / "View with: tail -F ...") are hidden
by default behind a new --verbose / KINIT_VERBOSE flag and are still
printed automatically at the end of a failed run.

Regenerate the integrity manifest and embedded bootstrap hashes.
Collaborator

kReview review

Verdict: no findings

No findings to address in the reviewed diff.

Overall risk is low; no concrete regressions are provable from the supplied diff and context.

Reviewed by kReview at bfe93b9b08. This comment is conservative and based only on the PR diff, metadata, and supplied repository context.

Est. cost ~$0.19 (36.6k in / 554 out / gpt-5.5).

<!-- codex-forgejo-review --> <!-- codex-forgejo-review-head:bfe93b9b089b495c09d016f524e1456a975e2fe0 --> ## kReview review **Verdict:** no findings No findings to address in the reviewed diff. Overall risk is low; no concrete regressions are provable from the supplied diff and context. _Reviewed by kReview at `bfe93b9b08`. This comment is conservative and based only on the PR diff, metadata, and supplied repository context._ _Est. cost ~$0.19 (36.6k in / 554 out / gpt-5.5)._ <!-- codex-forgejo-review-state:eyJoZWFkU2hhIjoiYmZlOTNiOWIwODliNDk1YzA5ZDAxNmY1MjRlMTQ1NmE5NzVlMmZlMCIsInN1bW1hcnkiOiJPdmVyYWxsIHJpc2sgaXMgbG93OyBubyBjb25jcmV0ZSByZWdyZXNzaW9ucyBhcmUgcHJvdmFibGUgZnJvbSB0aGUgc3VwcGxpZWQgZGlmZiBhbmQgY29udGV4dC4iLCJmaW5kaW5ncyI6W10sImN1bXVsYXRpdmVDb3N0Ijp7InVzZCI6MC4xODg5MTYsImlucHV0VG9rZW5zIjozNjY0OCwib3V0cHV0VG9rZW5zIjo1NTQsIm1vZGVsIjoiZ3B0LTUuNSJ9fQ== -->
kleb merged commit f234faa963 into main 2026-06-25 00:29:26 +02:00
kleb deleted branch fix/pkg-progress-log-hints 2026-06-25 00:29:26 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kleb/kInit!26
No description provided.