Adjacent release-readiness scope from the project-native roadmap; disjoint from active cache issue #8 / PR #9. No tag, GitHub Release, Zenodo/DOI, hardware, participant data, or publication action is authorized by this issue.
Baseline reproduction on merged main fcb731faa5f46df5a31215621365b039478283f8: the current release.yml PyInstaller commands completed and produced capture_desktop.exe (48,153,315 bytes; SHA-256 096248868205d02644ae56a1ead55da5b648b1c3739d7259a457f7d280c85820). Build success is not functional parity: PyInstaller's generated warning graph explicitly reports capture_analysis.discover, capture_analysis, pyqtgraph, and numpy missing. The public README lists Analysis (QC, features, pose/kinematics, ML bundle jobs) as a product capability.
Objective: make the frozen desktop artifact include the dependencies required for the advertised analysis path, and add a deterministic release contract so future tag builds cannot silently regress to a superficially successful but capability-reduced executable.
Acceptance before any publication of a candidate branch: fresh Python 3.12 release environment; dependency consistency; PyInstaller build succeeds; generated warning/archive evidence shows the intended analysis modules are bundled; existing Python/static gates remain green; changed-input regression proves omission is rejected. Do not launch physical hardware. Any executable smoke test must use isolated/simulator-only state or be replaced by archive/import evidence if safe isolation is unavailable.
Keep the current tag/release/DOI actions gated. Same-author local qualification is not independent validation or end-user acceptance. Preserve the successful-but-incomplete baseline and any rejected repair attempts.
Adjacent release-readiness scope from the project-native roadmap; disjoint from active cache issue #8 / PR #9. No tag, GitHub Release, Zenodo/DOI, hardware, participant data, or publication action is authorized by this issue.
Baseline reproduction on merged main
fcb731faa5f46df5a31215621365b039478283f8: the currentrelease.ymlPyInstaller commands completed and producedcapture_desktop.exe(48,153,315 bytes; SHA-256096248868205d02644ae56a1ead55da5b648b1c3739d7259a457f7d280c85820). Build success is not functional parity: PyInstaller's generated warning graph explicitly reportscapture_analysis.discover,capture_analysis,pyqtgraph, andnumpymissing. The public README lists Analysis (QC, features, pose/kinematics, ML bundle jobs) as a product capability.Objective: make the frozen desktop artifact include the dependencies required for the advertised analysis path, and add a deterministic release contract so future tag builds cannot silently regress to a superficially successful but capability-reduced executable.
Acceptance before any publication of a candidate branch: fresh Python 3.12 release environment; dependency consistency; PyInstaller build succeeds; generated warning/archive evidence shows the intended analysis modules are bundled; existing Python/static gates remain green; changed-input regression proves omission is rejected. Do not launch physical hardware. Any executable smoke test must use isolated/simulator-only state or be replaced by archive/import evidence if safe isolation is unavailable.
Keep the current tag/release/DOI actions gated. Same-author local qualification is not independent validation or end-user acceptance. Preserve the successful-but-incomplete baseline and any rejected repair attempts.