twin: PR#59 r3 matrix run - #65
Merged
Merged
Conversation
The manifest block introduced earlier in this branch named its commit field build_commit, while master already ships build_git_sha and build_lock_digest on server.describe, consumed by ck's dashboard and its build-skew detector. Two names for one fact inside a single response is a reader trap, and renaming the shipped field would have broken an older ck against a newer daemon by making the skew check fail open. Align the unreleased name onto the shipped vocabulary instead. CONSUMER-IMPACT: Renames ManifestProvenance.build_commit to build_git_sha in subc-protocol. The field is unreleased -- it was introduced earlier in this same branch and has never appeared in a published crate -- so no out-of-tree consumer can have decoded or constructed it under the old name, and there is no deprecation window to honour. Net effect against master is unchanged from the introducing commit: one additive optional block whose fields old daemons ignore during manifest decode, with Rust literal constructors of ModuleManifest still needing the source update that commit described. Wire field names on server.describe and the daemon provenance record are untouched by this commit and remain byte-identical to master.
The sweep enumerated ManifestProvenance's fields by hand, so a field added later would escape it silently. Destructuring makes that a compile error (E0027) at the sweep instead.
CONSUMER-IMPACT: Manifests carrying non-printable or over-long provenance values are now refused where they were previously accepted; this changes behavior for any module already sending such values.
CONSUMER-IMPACT: Manifest provenance values that are empty are now rejected during HELLO decoding; modules previously sending empty declarations must omit the field or provide a non-empty value.
The CK_BUILD_REV rename replaced names that already ship on master (build.rs emission, server.describe build fields, the ck skew check) — subconscious's own provenance skew detector. Reverting per the #58 ruling keeps the rename from silently retargeting it. The two names now mark two different provenance sources rather than one name meaning either: SUBC_BUILD_* is this repo's build.rs git probe, while CK_BUILD_REV is injected as a process env by release scripts in other fleet repos. Blast radius is four in-crate sites; cargo:rustc-env never escapes the crate build, so no consumer sees the change. CONSUMER-IMPACT: none — reverts to the names already shipped on master.
…pelling The provenance human-output test pinned linux_proc_sha256, so it failed honestly on macOS (which reports macos_spawn_inode) and on Windows (which has no probe and correctly reports unavailable). The cfg split now lands on capability rather than spelling: probe-capable platforms assert a match plus membership in the closed RunningImageEvidence set, and platforms without a probe assert the unavailable verdict positively rather than skipping. CONSUMER-IMPACT: none — test-only.
Windows CI rejected `subc-core` (lib) under -D warnings: both RunningImageEvidence constructors are cfg-gated to their probing platform (LinuxProcSha256 under target_os="linux", MacosSpawnInode under any(target_os="macos", test)), so on a platform with no probe the unqualified import had no user. The gate is the union of its users, including `test`, and that term is load-bearing rather than defensive: compare_spawn_inode is compiled under cfg(test) on every platform, so a Windows *test* build does construct the type. Gating on any(linux, macos) alone would have traded the lib break for a test break on the same platform. Verified by mutation: narrowing the gate to target_os="macos" fails the Linux build at both constructor sites (E0433, 2 errors). Windows itself remains unverifiable locally -- no rustup, so no cross-target check -- and is left to the twin. CONSUMER-IMPACT: none -- compile-gating only, no behavior or wire change.
…tic conflict with timing instrumentation)
…nder -D warnings)
Contributor
Author
|
Twin served its purpose: full matrix green at 3e3d984 after the rebase; content merged to master via the twin branch. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
CI-only twin of PR #59 at aa1f2f8 (fork PRs skip the Rust matrix). Not for merge.
Need help on this PR? Tag
@codesmithwith what you need. Autofix is disabled.