[PR #5275] fix(hopper): clarify version-mismatched unsupported builds #6852

Open
opened 2026-11-01 21:43:32 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/5275
Author: @gietabhi10
Created: 10/19/2026
Status: 🔄 Open

Base: main ← Head: fix/unsupported-hopper-build-version-mismatch


📝 Commits (7)

  • 63a5051 fix(hopper): improve unsupported_hopper_build diagnostics for version-mismatched extracted builds
  • 7b2ec08 fix(hopper): preserve macOS launcher path semantics
  • 7f2b61c fix(hopper): address PR review feedback on unsupported_hopper_build messages
  • 7c757d8 Merge remote-tracking branch 'upstream/main' into fix/unsupported-hopper-build-version-mismatch
  • 76e8041 fix(doctor): retain Hopper verification failure causes
  • 37b3330 test(hopper): cover current release download failures
  • 53a9c85 Merge branch 'main' into fix/unsupported-hopper-build-version-mismatch

📊 Changes

5 files changed (+105 additions, -9 deletions)

View changed files

📝 src/application/Doctor.test.ts (+44 -1)
📝 src/application/DoctorDiagnostics.ts (+17 -6)
📝 src/application/LinuxHopperPublisher.ts (+1 -1)
📝 src/domain/hopperStartupFailure.ts (+1 -1)
📝 tests/boundary/setup/linuxHopperPublisherVerification.test.ts (+42 -0)

📄 Description

Summary

Fixes #5245.

After a REA upgrade, a manually extracted older official Linux Hopper binary can be rejected because it no longer matches the current authenticated feed release. Keep the existing admission policy, while making the mismatch and recovery path explicit.

Problem and expected behavior

HOPPER_LAUNCHER_PATH pointing at an extracted older official Hopper .deb binary fails as unsupported_hopper_build after the live current release advances. The diagnostic did not distinguish this version mismatch from other verification failures.

Change and scope

  • Include the authenticated current demo version in the rejection message.
  • Explain that unattended Linux analysis admits the current authenticated demo or a retained authenticated package, and direct users to rea setup --yes --install-hopper.
  • Update rea doctor remediation for configured extracted builds.
  • Preserve POSIX macOS Hopper launcher paths independent of the host running the diagnostic tests.

Existing release verification and package-retention semantics are unchanged. Contribution scope fit: ordinary diagnostics and test fix; maintainer scope decision not applicable.

Contract and boundary impact

  • Semantic owner and earliest changed stage: Hopper publisher verification presentation and doctor diagnostic projection.

  • CLI and MCP/tool-catalog contract: user-facing diagnostic prose only; no schema or operation changes.

  • Provider, bridge, target-format, or platform compatibility: Hopper Linux diagnostics and macOS launcher discovery path representation.

  • Evidence, artifact, provenance, or reconstruction contract: unchanged.

  • Target selection, authority, upstream behavior, and cleanup details: no target execution, mutation, or cleanup changes.

  • Generated metadata, package, or installation impact: none.

  • Documentation or usability only; no target interaction.

Evidence and regression coverage

  • Tests added or updated: Updated the configured-launcher remediation assertion; existing macOS launcher path tests now exercise POSIX path ownership on Windows.
  • Base reproduction or other evidence: Source-derived from the live-current-release hash comparison; the retained-package admission path remains unchanged.
  • User-visible CLI/MCP output: rejection now identifies the current official Linux demo version and doctor names the extracted-build recovery command.
  • Remaining proof gaps: no live Hopper release or Linux provider verification run in this Windows workspace.

Validation performed

  • node node_modules/vitest/vitest.mjs run --project services src/application/MacHopperPaths.test.ts src/application/Doctor.test.ts --pool=forks --maxWorkers=1 --reporter=verbose — 35 passed.
  • node_modules\\.bin\\oxfmt.cmd --check src/application/MacHopperPaths.ts src/application/MacHopperPaths.test.ts src/application/DoctorDiagnostics.ts src/application/LinuxHopperPublisher.ts src/domain/hopperStartupFailure.ts src/application/Doctor.test.ts — passed.
  • git diff --check — passed.

Compatibility, safety, and release

  • Breaking changes or migration steps: none.
  • Real Hopper/Ghidra, browser, or OS coverage: not run; diagnostics-only change, with source tests on Windows.
  • Package or release metadata impact: none.
  • Security, privacy, process, or containment review: existing authenticated-release and retained-package verification boundaries are preserved.

Author readiness

Human owner: @gietabhi10

  • I reviewed the final diff and relevant existing code, understand the change and its edge cases, and take responsibility for the complete PR, including AI-assisted work.
  • I checked the evidence above, confirmed it supports the current change, and recorded meaningful validation gaps.
  • I declare this PR ready for initial maintainer review.

Before merge

  • This PR addresses a concrete problem or an agreed enhancement.
  • Material scope and authority questions are resolved, and any required maintainer scope decision covers the final diff.
  • The PR has one focused outcome and the title follows type(scope): outcome.
  • Related issue is linked above.
  • Tests cover changed observable behavior and meaningful failure paths.
  • Owning docs, contracts, and generated metadata are updated where needed.
  • User-visible CLI/MCP changes include representative output.
  • I checked the final diff for secrets, unrelated cleanup, and unsupported claims.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/5275 **Author:** [@gietabhi10](https://github.com/gietabhi10) **Created:** 10/19/2026 **Status:** 🔄 Open **Base:** `main` ← **Head:** `fix/unsupported-hopper-build-version-mismatch` --- ### 📝 Commits (7) - [`63a5051`](https://github.com/morluto/rea/commit/63a50511270e9ffec44af96674656086b60500f7) fix(hopper): improve unsupported_hopper_build diagnostics for version-mismatched extracted builds - [`7b2ec08`](https://github.com/morluto/rea/commit/7b2ec083ef6524c1e0abf705c7c862e78b5adb84) fix(hopper): preserve macOS launcher path semantics - [`7f2b61c`](https://github.com/morluto/rea/commit/7f2b61c8c3e0e8466eb292690e24e9b139792ed0) fix(hopper): address PR review feedback on unsupported_hopper_build messages - [`7c757d8`](https://github.com/morluto/rea/commit/7c757d8133cc64aef202ff8f80db04a504f62623) Merge remote-tracking branch 'upstream/main' into fix/unsupported-hopper-build-version-mismatch - [`76e8041`](https://github.com/morluto/rea/commit/76e804164a5c8eb7ab530239e90613bf71d419e3) fix(doctor): retain Hopper verification failure causes - [`37b3330`](https://github.com/morluto/rea/commit/37b333055c01eb94dc09a0d16f66c5985f5c6e0b) test(hopper): cover current release download failures - [`53a9c85`](https://github.com/morluto/rea/commit/53a9c8579db3aaace4326fe7bdc03d62af7a8ca5) Merge branch 'main' into fix/unsupported-hopper-build-version-mismatch ### 📊 Changes **5 files changed** (+105 additions, -9 deletions) <details> <summary>View changed files</summary> 📝 `src/application/Doctor.test.ts` (+44 -1) 📝 `src/application/DoctorDiagnostics.ts` (+17 -6) 📝 `src/application/LinuxHopperPublisher.ts` (+1 -1) 📝 `src/domain/hopperStartupFailure.ts` (+1 -1) 📝 `tests/boundary/setup/linuxHopperPublisherVerification.test.ts` (+42 -0) </details> ### 📄 Description ## Summary Fixes #5245. After a REA upgrade, a manually extracted older official Linux Hopper binary can be rejected because it no longer matches the current authenticated feed release. Keep the existing admission policy, while making the mismatch and recovery path explicit. ## Problem and expected behavior `HOPPER_LAUNCHER_PATH` pointing at an extracted older official Hopper `.deb` binary fails as `unsupported_hopper_build` after the live current release advances. The diagnostic did not distinguish this version mismatch from other verification failures. ## Change and scope - Include the authenticated current demo version in the rejection message. - Explain that unattended Linux analysis admits the current authenticated demo or a retained authenticated package, and direct users to `rea setup --yes --install-hopper`. - Update `rea doctor` remediation for configured extracted builds. - Preserve POSIX macOS Hopper launcher paths independent of the host running the diagnostic tests. Existing release verification and package-retention semantics are unchanged. Contribution scope fit: ordinary diagnostics and test fix; maintainer scope decision not applicable. ## Contract and boundary impact - Semantic owner and earliest changed stage: Hopper publisher verification presentation and doctor diagnostic projection. - CLI and MCP/tool-catalog contract: user-facing diagnostic prose only; no schema or operation changes. - Provider, bridge, target-format, or platform compatibility: Hopper Linux diagnostics and macOS launcher discovery path representation. - Evidence, artifact, provenance, or reconstruction contract: unchanged. - Target selection, authority, upstream behavior, and cleanup details: no target execution, mutation, or cleanup changes. - Generated metadata, package, or installation impact: none. - [x] Documentation or usability only; no target interaction. ## Evidence and regression coverage - Tests added or updated: Updated the configured-launcher remediation assertion; existing macOS launcher path tests now exercise POSIX path ownership on Windows. - Base reproduction or other evidence: Source-derived from the live-current-release hash comparison; the retained-package admission path remains unchanged. - User-visible CLI/MCP output: rejection now identifies the current official Linux demo version and doctor names the extracted-build recovery command. - Remaining proof gaps: no live Hopper release or Linux provider verification run in this Windows workspace. ## Validation performed - `node node_modules/vitest/vitest.mjs run --project services src/application/MacHopperPaths.test.ts src/application/Doctor.test.ts --pool=forks --maxWorkers=1 --reporter=verbose` — 35 passed. - `node_modules\\.bin\\oxfmt.cmd --check src/application/MacHopperPaths.ts src/application/MacHopperPaths.test.ts src/application/DoctorDiagnostics.ts src/application/LinuxHopperPublisher.ts src/domain/hopperStartupFailure.ts src/application/Doctor.test.ts` — passed. - `git diff --check` — passed. ## Compatibility, safety, and release - Breaking changes or migration steps: none. - Real Hopper/Ghidra, browser, or OS coverage: not run; diagnostics-only change, with source tests on Windows. - Package or release metadata impact: none. - Security, privacy, process, or containment review: existing authenticated-release and retained-package verification boundaries are preserved. ## Author readiness Human owner: @gietabhi10 - [x] I reviewed the final diff and relevant existing code, understand the change and its edge cases, and take responsibility for the complete PR, including AI-assisted work. - [x] I checked the evidence above, confirmed it supports the current change, and recorded meaningful validation gaps. - [x] I declare this PR ready for initial maintainer review. ## Before merge - [ ] This PR addresses a concrete problem or an agreed enhancement. - [ ] Material scope and authority questions are resolved, and any required maintainer scope decision covers the final diff. - [x] The PR has one focused outcome and the title follows `type(scope): outcome`. - [x] Related issue is linked above. - [x] Tests cover changed observable behavior and meaningful failure paths. - [x] Owning docs, contracts, and generated metadata are updated where needed. - [x] User-visible CLI/MCP changes include representative output. - [x] I checked the final diff for secrets, unrelated cleanup, and unsupported claims. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
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
morluto/rea#6852
No description provided.