Repository navigation
Read goal replies before taking the registry publication lock - #2638
Merged
Merged
Conversation
trissim
force-pushed
the
next/goal-reply-lock-scope
branch
from
October 23, 2026 07:14
69fbc6c to
a43f3f8
Compare
trissim
marked this pull request as ready for review
October 23, 2026 07:24
There was a problem hiding this comment.
Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.
An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.
This was referenced Oct 23, 2026
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.
Goal standby, closed-wait recovery, terminal-turn release and completed-reply settlement decoded saved replies while holding the registry’s exclusive lock. A worker thread still kept every other registry user waiting for that same lock.
Reply review now runs outside EX through the existing action preparation hook and a shared GoalWaitReview publication context. It retains the actual held bus cut and captured owner, goal, exact wait, turn and dependency state. Publication preserves observed input-row validation, rechecks the original RegistryOwner fence, and clears only the exact recorded wait. Real replies arriving after review remain eligible. Notices are re-read outside EX; unrelated recipients, titles and renames do not veto publication. No global revision veto, second action runner, cache, persisted snapshot or producer.
Review corrections at a43f3f8:
Independent-main result: CLEAN. The five implementation commits are based directly on main 2cb721d; no #2630 commit is an ancestor. The first experiment exposed an accidental dependency on its private _received_sequences helper; using the existing typed-table existence query removed that dependency. #2638 targets main and lands independently. The temporary remote next/goal-reply-lock-main is deleted; origin next/goal-reply-lock-scope equals a43f3f8.
Validation:
Assumed: Linux flock semantics; ordinary production bus publication retains its existing shared registry lock through append; the installation owner performs affected installed/native qualification. No additional live run, input replay or latency claim is included.
Original 269-site receipt preserved byte-for-byte at goal-read-publication-source.json. Comparable lexical-anchor refresh at goal-read-publication-source-after.json follows those original selected sites on this independent-main head: 464 source modules, 257 matched current sites, 15 unmatched baseline records and 3 ambiguity records. Missing/moved/repeated anchors stay OPEN; this is neither a debt score nor a binding proof. New ownership declarations/calls remain in the complete main-source-after receipt. Generated with the supplied main Python3.14 + mi-source-deps/NRA overlays, original ModuleSyntaxIndex and node-index enclosing_function_name, without dependency installation.