Skip to content

twin: PR #59 full-matrix run - #63

Closed
ualtinok wants to merge 16 commits into
masterfrom
twin-pr59
Closed

ualtinok wants to merge 16 commits into
masterfrom
twin-pr59

Conversation

@ualtinok

@ualtinok ualtinok commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

CI twin of #59. Not for merge.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith with what you need. Autofix is disabled.

@ualtinok

Copy link
Copy Markdown
Contributor Author

re-kick

CONSUMER-IMPACT: Old daemons ignore the additive optional provenance block during manifest decode, so an absent or present block does not make HELLO incompatible. Rust path-dependency consumers that construct ModuleManifest by literal must update that source promise (16 explicit constructors in-tree add provenance: None; out-of-tree literals can fail E0063 after the protocol bump, or the insula-class E0560 when source and dependency move in the opposite order).
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.
@iceteaSA

Copy link
Copy Markdown
Collaborator

Source branch is now 8b70e02009cee20e938e004750f013de157877ae (PR #59), rebased onto master 0a5f76c with the platform-capability test fix.

This twin is still at 74873bab143f319ff1d5ea08d6a4914539d6edcb; its Windows red is the known pre-fix assertion and is not a result for the revision. Please re-kick from 8b70e02.

Expected matrix behavior after re-kick:

  • Linux/macOS: RUNNING IMAGE: match (<method>), method ∈ {linux_proc_sha256, macos_spawn_inode}.
  • Windows: RUNNING IMAGE: unavailable (unsupported_platform) asserted positively.
  • The never-merge fence remains unconditional on all platforms.

Local Linux: 754 passed, 0 failed, 1 ignored; clippy/fmt clean. macOS and Windows are intentionally not claimed until this twin executes the new head.

@ualtinok

Copy link
Copy Markdown
Contributor Author

Stale twin from the r1 review round — #59 merged long since.

@ualtinok ualtinok closed this Aug 26, 2026
@ualtinok
ualtinok deleted the twin-pr59 branch August 26, 2026 19:19
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.

2 participants