Skip to content

Kendr Optimizer v0.1.3 (pre-alpha)

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 15 Aug 22:37
· 2 commits to main since this release
Immutable release. Only release title and notes can be modified.
07b9899

Kendr Optimizer v0.1.3

This pre-alpha release adds a guarded self-update path so an official Kendr CLI
installation can discover and install later releases without another manual
bootstrap.

Update workflow

  • kendr-opt update --check reports whether the newest published channel
    release passes the metadata eligibility gates without downloading its
    archive or changing the executable.
  • kendr-opt update installs that release only after every gate passes; it does
    not silently fall back past a newer mutable or incomplete release. Both
    commands support --json for a kendr.update/v1 result and
    --channel stable|preview for explicit channel selection.
  • Official installers record the preview channel in
    .kendr-opt-install.json. The adjacent receipt records the repository,
    platform target, installed version, and channel.
  • kendr-opt update --reinstall re-verifies and reinstalls the same eligible
    version for repair and release smoke testing. It cannot downgrade the CLI.
  • Interactive kendr-opt setup and kendr-opt run can print one cached update
    notice to stderr. They do not check when stderr lacks a terminal or during CI;
    KENDR_NO_UPDATE_CHECK=1 disables passive checks.

The published v0.1.2 executable does not contain the updater. Install v0.1.3
once with the v0.1.3 installer from GitHub Releases. Later official releases can
then be installed with kendr-opt update.

An older same-name Kendr OpenClaw adapter is now migrated automatically during
setup. Kendr still refuses to replace an unmanaged adapter or another occupant
of OpenClaw's exclusive context-engine slot unless the operator supplies
--force.

Verification and replacement boundary

The production updater is pinned to the public Kendr-AI/Kendr-Optimizer
repository identity. A candidate must be a published, non-draft GitHub Release
reported as immutable and eligible for the selected semantic-version channel.
Before replacement, Kendr:

  1. requires the current platform archive and SHA256SUMS assets with bounded
    sizes and GitHub-recorded SHA-256 digests;
  2. requires the checksum manifest to cover the exact release asset set and to
    agree with every GitHub digest;
  3. validates the exact seven-member archive layout, paths, file types,
    permissions, and per-member limits, then extracts only the binary;
  4. runs bounded --version and engines --compact smoke tests against the
    candidate;
  5. fetches the release again and rejects a changed release fingerprint; and
  6. backs up the installed executable, replaces it, repeats the smoke tests,
    writes the updated receipt, and restores the backup if validation fails.

Normal replacement requires a matching official install receipt. --force
can authorize a deliberately copied standalone executable, but it does not
bypass repository identity, channel, immutability, checksum, archive, smoke, or
anti-downgrade checks. Package-manager-owned binaries should continue to be
updated through their package manager.

Security limits

Normal optimization remains local and the core crates remain network-free. An
explicit or passive update check sends only repository/release requests to
GitHub; asset downloads occur only for an explicit install. Kendr does not send
prompts, tool results, recovery data, model/provider settings, provider credentials, or
traffic to Kendr.org. GitHub and its asset delivery network can still observe
the client's IP address, request timing, and version-bearing user agent.

GitHub release immutability and the two agreeing SHA-256 records detect
corruption and post-publication release changes within the GitHub trust
boundary. They do not authenticate the original publisher independently. The
release is not yet protected by a maintainer signature, Sigstore identity, or
operating-system code signature, so compromise of the GitHub organization,
release workflow, or initial upload remains a supply-chain risk.

Backup-backed rollback covers detected replacement and post-install validation
failures. It is not a journaled, power-loss-safe transaction; a machine or
kernel failure during replacement can still require a manual reinstall.

The updater changes the running native CLI and its adjacent install receipt,
and retains an empty sibling .kendr-opt-update.lock for cross-process update
serialization. Bundled adapters are refreshed by the next kendr-opt setup or
kendr-opt run.