Skip to content

fix(cli): report installed binary identity on update - #1822

Closed
ScriptedAlchemy wants to merge 4 commits into
masterfrom
cursor/update-identity-70d5
Closed

ScriptedAlchemy wants to merge 4 commits into
masterfrom
cursor/update-identity-70d5

Conversation

@ScriptedAlchemy

Copy link
Copy Markdown
Owner

Summary

  • tracedecay update failed readiness against the binary it had just installed (0.1.0-beta.47+<sha> vs 0.1.0-beta.47) because the GitHub upgrade path recorded the release tag as the daemon identity.
  • Both install paths now record the installed binary's own --version. A missing probe stays None so restore fails closed instead of accepting the tag.
  • Protocol comparison stays exact string equality. A missing build id is not treated as a wildcard, so two commits of one release remain distinguishable.

Motivation

The daemon advertises {release}+{sha} (PRODUCT_BUILD_VERSION). Readiness and version-skew checks compare that string exactly. The package-manager path already asked the installed binary for that string. The GitHub path substituted the catalog tag, which omits the commit, so the maintenance window waited for an identity the new daemon never reports.

The comparison widening in #1797 (5e03dfa9c5) papers over that assignment. It would also hide the commit skew the comparison exists to catch whenever one side omits build metadata. This PR does not take that slice and does not touch handshake, probe, or proxy comparison sites.

Tip this branch is based on: 3f71bccb2dba. Fix commit: b63b775245c392c7adf80916f43ce72153c339b2.

Changes

  • crates/tracedecay-cli/src/upgrade.rs: one probe (probed_installed_version) supplies UpgradeOutcome::Installed.version for GitHub releases and package-manager installs.

Test plan

  • cargo test -p tracedecay-cli --bin tracedecay -- upgrade::tests::version_probe:: upgrade::tests::delegation:: — 11 passed, 0 failed (including a_release_install_reports_the_binary_identity_not_the_catalog_tag and an_unreadable_release_binary_is_not_labeled_with_the_catalog_tag)
  • cargo nextest run --workspace --no-fail-fast passes
  • cargo clippy has no new warnings

Checklist

  • CHANGELOG.md updated (under [Unreleased] if no version bump)
  • No secrets, credentials, or .env files included
  • Breaking changes documented (if any) — none
Open in Web Open in Cursor 

The GitHub upgrade path recorded the release tag as the daemon
identity. The daemon advertises {release}+{sha}, and readiness
compares those strings exactly, so update refused the binary it had
just installed. Both install paths now record the binary's own
--version and never substitute the tag.

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
@changeset-bot

changeset-bot Bot commented Sep 19, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: fb58663

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@ScriptedAlchemy

Copy link
Copy Markdown
Owner Author

Duplicate of #1799 (same root: GitHub run_versioned_upgrade storing the catalog tag instead of installed --version). Also overlaps draft #1809.

Prefer #1799 as the landing PR. Close this once #1799 is merged (or if #1799 already contains equivalent version_probe coverage).

ScriptedAlchemy and others added 3 commits September 19, 2026 08:30
Master run 35431539771 failed Check formatting (projector.rs, query.rs) and
Clippy (items_after_test_module in query.rs) after #1844/#1845 merged
without CI.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
`cargo clippy --workspace --all-targets --locked -- -D warnings` failed
with clippy::question_mark on `probed_installed_version`'s `let...else`,
which only returned `None`. Behaviour is unchanged.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@ScriptedAlchemy

Copy link
Copy Markdown
Owner Author

Superseded: update-identity / partial-gen work already on master via #1797 (Session Miner handoff). Closing as duplicate; do not revive.

@ScriptedAlchemy

Copy link
Copy Markdown
Owner Author

Closing per Session Miner: already on master via #1797.

@ScriptedAlchemy

Copy link
Copy Markdown
Owner Author

Landed through #1848: this PR's head fb58663 is an ancestor of master 51990b1.

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