myxce/src/tools
Rongsong Shen f4d2c123fd
test(dirty-content-fingerprint): add Nix production path fingerprint check
Adds src/tools/test-dirty-fingerprint-nix-production-path.sh, reusing task
6.1's isolated-git-worktree technique. Runs nix build ./src#xcecore_debug
(no --impure) twice with different tracked-file edits to flake.nix,
cross-checking nix eval's eval-time myDirtyFingerprint value against the
real build log's mesonConfigurePhase flags: line for each.

This sandbox's nix build dispatches by default to an unreachable-in-
practice remote builder, making a directly-runnable binary impractical to
retrieve -- confirmed genuinely expected sandbox behavior. The eval+build-
log cross-check is not a weaker substitute: self.narHash's value is baked
as a literal string into the derivation at eval time, before any build
phase runs, so eval-time and build-time values cannot diverge by
construction. Forcing --builders '' (local-only) was investigated and
reaches real local compilation with a direct log match, but still can't
produce a fully linked binary here due to a second, unrelated network
dependency -- confirming no stronger approach is currently available.

Verified independently by review with real nix build invocations,
including a live-witnessed remote-builder connection attempt and a
genuine local-only run: two builds with different edits produce different
fingerprints in both eval and build-log evidence; reverting reproduces the
original value exactly; --impure never used; no git dependency in the
build sandbox; worktree list and flake.nix/nixSupport/ confirmed clean
before and after every run.

This is the final task of the dirty-content-fingerprint spec -- all 16
sub-tasks are now complete.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 11:12:15 +00:00
..
appimage save works 2026-03-04 18:18:53 +08:00
deploy-ha.sh feat(xce-deploy-ha): support real xcecd worker deployment alongside virtual 2026-08-19 09:48:53 +00:00
go_build feat(dirty-content-fingerprint): go_build injects fingerprint via ldflags 2026-08-21 06:06:05 +00:00
test-build-version-regression.sh test(build-time-versioning): add motivating-incident regression script 2026-08-20 15:14:21 +00:00
test-commit-durability.sh feat(admin-config-tool): drop ha/data/ entirely, match real client TLS 2026-07-22 14:50:51 +00:00
test-dirty-fingerprint-distinguishability.sh test(dirty-content-fingerprint): add dev-loop distinguishability regression 2026-08-21 09:56:12 +00:00
test-dirty-fingerprint-nix-production-path.sh test(dirty-content-fingerprint): add Nix production path fingerprint check 2026-08-21 11:12:15 +00:00
test-dirty-fingerprint-startup-log-unchanged.sh test(dirty-content-fingerprint): add startup-log-unchanged consistency check 2026-08-21 10:17:39 +00:00
test-heartbeat-tolerance.sh feat(admin-config-tool): drop ha/data/ entirely, match real client TLS 2026-07-22 14:50:51 +00:00
test-version-startup-consistency.sh test(build-time-versioning): add version/startup-log consistency check 2026-08-20 16:38:37 +00:00
test-xceadmin-build-install-version.sh test(build-time-versioning): add xceadmin end-to-end build/install/version cycle check 2026-08-20 17:02:01 +00:00
xce-build.sh feat(dirty-content-fingerprint): xce-build.sh computes dev-loop fingerprint 2026-08-21 04:34:00 +00:00