Repository navigation
Publish JumpToRecord at once from two Find dialog handlers - #1243
Merged
Merged
Conversation
Find Record in the Notebook and Find Wordform in Texts & Words now publish JumpToRecord to their own window, so the window's active clerk selects the chosen record before the handler returns. Until now each queued it with the Mediator's BroadcastMessageUntilHandled, which ran after the handler had returned and offered the jump to every colleague of the window. The two senders are GoLinkRecordDlgListener.OnGotoRecord and MorphologyListener.OnGotoWfiWordform. The jump can run at once because each handler publishes as its last step, after its dialog has closed. When a filter hides the chosen record, the clerk's prompt to turn the filter off now opens inside the handler. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1243 +/- ##
==========================================
+ Coverage 40.70% 40.71% +0.01%
==========================================
Files 1567 1569 +2
Lines 356900 357048 +148
Branches 41754 41782 +28
==========================================
+ Hits 145264 145375 +111
- Misses 182305 182331 +26
- Partials 29331 29342 +11
🚀 New features to boost your workflow:
|
thejambi
approved these changes
Nov 11, 2026
thejambi
left a comment
Contributor
There was a problem hiding this comment.
@thejambi reviewed 2 files and all commit messages, and made 1 comment.
Reviewable status:complete! all files reviewed, all discussions resolved (waiting on mark-sil).
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.
Find Record in the Notebook and Find Wordform in Texts & Words now publish JumpToRecord to their own window, so the window's active clerk selects the chosen record before the handler returns. Until now each queued it with the Mediator's BroadcastMessageUntilHandled, which ran after the handler had returned and offered the jump to every colleague of the window.
The two senders are GoLinkRecordDlgListener.OnGotoRecord and MorphologyListener.OnGotoWfiWordform.
The jump can run at once because each handler publishes as its last step, after its dialog has closed. When a filter hides the chosen record, the clerk's prompt to turn the filter off now opens inside the handler.
Reviewer notes
Start here:
Src/LexText/LexTextControls/RecordDlgListener.cs,GoLinkRecordDlgListener.OnGotoRecord-- the whole change is this swap, made twice.The unknown: what does an immediate jump change? The only Pub/Sub subscriber is
RecordClerk.JumpToRecordViaPublisher, which acts only in the window's active clerk, and both ends are scoped to the main window.concordanceWords) is active: Word Analyses, Word List Concordance and Bulk Edit Wordforms. It is hidden in the Concordance tool, soConcordanceControlis never involved.Where to look.
MorphologyListener.cs: the addedusing staticis the only other change.Deliberately not here. Four other senders that jump after a dialog stay on the Mediator.
GoLinkEntryDlgListener.OnGotoLexEntry(WinForms and Avalonia Go-to-Entry) andReversalListener.OnGotoReversalEntry: in Dictionary and Reversal Indexes the previewXhtmlDocViewis a High-priority Mediator colleague and hears the jump before the clerk. A clerk-only publish would drop its "Entry not published" warning and its preview regeneration. They convert once the doc view hears JumpToRecord over Pub/Sub.FwXWindow.JumpToPopupLexEntry: it runs inside Insert Entry's closing handler, and in Lexicon Edit the dialogs that link an entry run their linking code after it.Verification.
build.ps1 -CommentHygiene -TokenHygiene: 0 warnings, 0 errors.No Jira ticket: Pub/Sub work gets none.
Next: approve, or tell me what to change.
Found in passing
The JumpToRecord senders converted in #1054 have the same gap with the doc view. In Lexicon > Dictionary with a publication selected, Insert > Entry and choosing an existing entry that is excluded from that publication no longer shows the "Entry not published" warning; Edit > Find lexical entry on the same entry still does. Reproduced on main, and the warning appears in a build from before #1054. Not changed here; it will be fixed with the doc view's Pub/Sub path.
Preflight review details
Code Review Summary
Branch: claude/pubsub-jump-after-dialog-senders-25d97c
Base: origin/main (merge base 21935d3; one unrelated commit on main since)
Date: 2026-11-11
Review model: Claude Fable 5.2
Files changed: 2 (1 commit)
Overview
Part of retiring the xCore Mediator: two deferred
BroadcastMessageUntilHandled("JumpToRecord")senders become an immediate, window-scoped
Publisher.Publish. They areGoLinkRecordDlgListener.OnGotoRecord(Notebook, Edit > Find Record) andMorphologyListener.OnGotoWfiWordform(Texts & Words, Edit > Find Wordform). The only subscriberis
RecordClerk.JumpToRecordViaPublisher, which acts only in the window's active clerk.Four other senders that jump after a dialog were examined and left on the Mediator.
GoLinkEntryDlgListener.OnGotoLexEntry(two sites) andReversalListener.OnGotoReversalEntryfirein tools whose
XhtmlDocViewhears a Mediator JumpToRecord before the clerk (it is a High-prioritytarget and
Mediator.InvokeRecursivelyorders targets by priority); a clerk-only publish woulddrop the Dictionary tool's "Entry not published" warning and the preview's regeneration.
FwXWindow.JumpToPopupLexEntrypublishes from inside Insert Entry's closing handler, and on theLexicon Edit linking-dialog paths the launcher's linking code runs after it.
Contract/API Changes
None. No public member changes.
Findings
Critical - Must address before merge
None.
Important - Should address before merge
None.
Minor - Consider
The two converted handlers have no automated test(each opens a modal Go dialog beforethe publish; the author keeps the handlers as they are instead of extracting the post-dialog
step only for a test, as in Publish JumpToRecord at once from three detail-pane handlers #1241; the manual runs below cover them)
The filter prompt now opens inside the handler(each handler publishes as its laststep, with its dialog closed; manual steps covered both answers in both areas)
Required Validation / Evidence
./build.ps1 -CommentHygiene -TokenHygiene: clean, 0 warnings, 0 errors.prompt answered No and Yes; Find Record > Create; a jump in one of two windows leaves the other
alone.
filter-hidden wordform with No and Yes; the Concordance tool's Edit menu has no Find Wordform;
two windows.
Jira: none, per the standing rule that Pub/Sub work gets no tickets.
Positive Observations
receiver that acted.
Interview Notes
XhtmlDocViewand no codeafter the jump, and to leave the other four on the Mediator.
by LT-21483: Part 1 - Move JumpToRecord to Pub/Sub (SendMessage) #1054: Insert Entry in the Dictionary tool, choosing an existing entry excluded from the
selected publication, no longer shows the "Entry not published" warning. The author reproduced
it on main and saw the warning in an older build. It is tracked separately and is not changed
here.
concordanceWords, the wordform-listclerk, so it never reaches the Concordance tool's
ConcordanceControl.Suggested Review Focus
m_propertyTable.GetWindow().MorphologyListener.cs: the addedusing staticis the only other change.🤖 Generated with Claude Code
This change is