mirror of
https://github.com/morluto/rea.git
synced 2026-11-06 06:46:10 +00:00
* fix(ghidra): keep a changed existing project's refusal typed through launch When the selected REA_GHIDRA_PROJECT_PATH project changes after open_binary commits its profile, the launcher's verified copy refuses it with AnalysisArtifactChangedError. GhidraHeadlessLauncher wraps that in GhidraLaunchError, and the session error's cause became the wrapper, so the projection missed the existing artifact_changed branch and returned generic execution_failure with rea doctor advice. Read the launcher's primary failure when it is an AnalysisArtifactChangedError, so the refusal reaches callers as artifact_changed with the changed path and the existing reopen guidance. The refusal stays fail-closed: no automatic reopen or fresh-import fallback. Other launch failures keep their current projection. Fixes #8217 * fix(ghidra): describe a project profile mismatch without a timing claim When the owned copy of a selected Ghidra project no longer matches the fingerprint committed by open_binary, copyExistingGhidraProject threw RegularFileChangedError, so the artifact_changed reason said the input "changed while being read". A digest mismatch only shows that the project differs from its committed profile; the change may have happened before the copy started. Throw AnalysisArtifactChangedError directly with a reason that states the mismatch and leaves the time of the change unestablished. Changes observed while files are being read keep their existing reason.