Skip to content

Reject stale daemon version fallback in Git checkouts - #416

Merged
zeth merged 1 commit into
mainfrom
fix/daemon-root-version-guard
Nov 9, 2026
Merged

zeth merged 1 commit into
mainfrom
fix/daemon-root-version-guard

Conversation

@zeth

@zeth zeth commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

If root VERSION is missing, a full Git checkout currently accepts a stale generated daemon/VERSION. That can stamp holderd and holderctl with an old product version instead of failing the build.

Reject the fallback when the parent has Git metadata, including a worktree .git file. Standalone source packages still use their prepared local VERSION; unprepared exports now receive an explicit preparation error. Normal checkout builds continue to prefer and track root VERSION.

Validation: the regression fails on the original source and passes with this change. It exercises the production CMake version block, root-only rebuilds, stale fallback rejection for checkouts/worktrees, invalid root values and prepared/unprepared exports. All 20 release tests and 41 staging tests pass; version and core/contract boundary checks and diff checks pass. No C++ runtime code changed.

Continues #130 and #122. Android derivation is separately in #413; end-to-end release-artifact validation remains part of the next actual release.

@zeth
zeth merged commit 9a3f481 into main Nov 9, 2026
63 checks passed
@zeth
zeth deleted the fix/daemon-root-version-guard branch November 9, 2026 00:47
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.

1 participant