Repository navigation
Seal admitted attempt subjects with validated revisions and public standing - #11333
Merged
Merged
Conversation
Contributor
Author
|
Fixed review 65837 in
— sent from fierce-swift-702 |
6 tasks
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.
An attempt can now retain a typed
AttemptAdmissionSubjectingunbc.roadmap_dispatch_destinationdescribing what it was admitted against: node identity, existing destination identity, admitted base revision with actor/date, public dependency revision and standing, and historical execution roots. Admission refuses missing inputs, and joining a stored seal against current admission refuses changed fields instead of allowing the attempt to inherit a different claim. The structural identity and stale-field comparison derive from one JSON field projection.This PR is based on main, independent of #10994.
node_dispatch_destination(RoadmapNode) -> DispatchDestinationsurvives that PR's NodeSizing unbundling unchanged. #10994 retainsWorkItemDispatchfor its dispatchability binding;AttemptAdmissionSubjectis a different fact.DispatchSpawnOriginremains the observation of what happened at spawn.Both revisions are
extdeps.git.object_store.GitObjectId. Merely declaring that type is insufficient: mint and join re-enterparse_git_object_id_wire, which invokes the Git authority's validating SHA-1/SHA-256 constructors and handles their optional refusal. Join also revalidates the stored seal, so raw digest construction cannot grandfather malformed revisions into admission. Identity retains the family-tagged Git representation. It is a structural fingerprint, not a cryptographic authentication claim.PublicRevisionStandingandpublic_revision_standing_textrelocate unchanged together from gunbc-private 32d7a145. The mechanism follows that head'sstrategy.plan_item_dispatchfinding-2 seal: standing contributes to identity and changes refuse even at a fixed SHA. The private owner deletes its definitions on the coordinated #60 recut; this PR changes no private files.WorkItemExecutionContractremains the authored source-root authority. Admission consumes its roots directly, with no independent roots parameter.sealed_source_rootsis the historical fact the live owner cannot recover after it moves. It must never answer what the current roots are. The join is sealed-versus-current, never current-versus-current. Admission actor/date use the existing acceptance-receipt convention of nonempty attribution text; they do not authenticate an actor or validate a calendar timestamp.The executing public consumer is
test.claim.attempt_admission_subject_witness_test, throughclaim_batch. The source declares the production frontier asList<FrontierRow>and enrolls it incensus_closure_frontier_row_groupsfor the existing dissolution census. Its triggers: private #60 recuts to this typed durable subject, and the separate public belt follow-up stores/reads the seal and binds worktree creation and publication to its destination/base. Neither production route is claimed to execute in this closure.Executed validation: required-witnesses-floor, run 34797606465 assigns
parse,namespace-wave-admission, andfloorto the witnesses lane; the build lane explicitly routes those phases there. The PR head is11d16f97ac821957fa86afe6eca80c8053815469; CI checked its synthetic merge6d0c06d8d8into base23f600f7097ff9096148c4b7245093088abb81d1. At 02:42:19 UTC every following witness reportsstanding=planned-and-passed disposition=planned_as_changed_witness outcome=passed:each_other_sealed_axis_moves_identity_and_refusesmissing_current_standing_refuses_the_joinmissing_inputs_refuse_at_the_node_and_fieldmoved_standing_refuses_the_joinraw_digest_paths_refuse_at_mint_and_joinsha256_admits_without_becoming_sha1unchanged_subject_admitsunobserved_destination_never_defaults_to_gunbcAll four required checks passed. This establishes executed witness coverage of mint, identity, and stale/invalid/missing-input refusal, not an unforgeable-construction claim or private/belt production consumption. The separately proposed standing-omission source mutation did not execute and supplies no evidence. Earlier BuildBuddy attempts were killed before verdicts (the 6 GiB attempt recorded
oom_kill=2); the completed CI verdicts above are the runtime evidence.Review 65837's frontier-enrollment finding was fixed in
11d16f97ac8; review 65853 approves that head with no further requested changes.git diff --checkand the pre-push formatting check pass.