Repository navigation
Preserve HermitCrab trace failure facts in Try A Word - #1173
Open
johnml1135 wants to merge 1 commit into
Open
johnml1135 wants to merge 1 commit into
johnml1135 wants to merge 1 commit into
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1173 +/- ##
==========================================
+ Coverage 39.30% 39.34% +0.03%
==========================================
Files 1523 1523
Lines 353047 353124 +77
Branches 40750 40761 +11
==========================================
+ Hits 138782 138934 +152
+ Misses 185001 184931 -70
+ Partials 29264 29259 -5
🚀 New features to boost your workflow:
|
jasonleenaylor
approved these changes
Oct 7, 2026
jasonleenaylor
left a comment
Contributor
There was a problem hiding this comment.
Looks good. Two questions and a note, none blocking:
- Is there a Jira issue to pin this to?
- One question inline on the blocking display.
- HCSynthByGloss has its own copy of the trace manager and stylesheet, which keep the single
Environmentelement, the emptyBlocked, and theMatchTypetest. Perhaps a follow-up Jira issue to write, or something to discuss with Andy.
This review was assisted by Claude Opus 5.5.
| <xsl:call-template name="GetAnalysisFont"/> | ||
| </xsl:attribute> | ||
| <xsl:text>Blocked: </xsl:text> | ||
| <xsl:value-of select="Rule"/> |
Contributor
There was a problem hiding this comment.
For template blocking, Machine passes the stratum as the rule (SynthesisAffixTemplatesRule.cs:110 in v3.9.2). How does this line read in that case?
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.
Start here:
Src/LexText/ParserCore/FwXmlTraceManager.cspreserves the facts;Src/Transforms/Presentation/FormatHCTrace.xsldisplays them in Try A Word.Try A Word drops or miswrites facts HermitCrab already supplies. This fixes the
existing callback XML and its presentation against the pinned SIL.Machine 3.9.2,
without rerunning parser checks or changing dependencies.
Environment element per failed alternative.
identity, and replacement output. The trace displays a clickable blocking
entry and preserves subsequent parse completion.
NonHeadProdRestrictMprFeatures here; an unrecognized reason stays unknown.
uses OR for the required at-least-one restrictions, includes blocking in
traversal/expandability, and displays unknown causes explicitly.
Synthetic before/after trace examples (headless callback/stylesheet cases):
/ e _, prefix/ p _, suffix/ _ s/ e _Environment values/ e _,/ p _,/ _ srootEnvironment incorrect for allomorph 'root': / p _/ _ s.Environment incorrect for allomorph 'root': / p _, / _ s.pastreplaced byvemBlocked: past. Blocking entry = vemandOutput = vemactual1actual2/required1required2actual1 and actual2/required1 or required2(Reason: Unknown reason.)Build passed with zero warnings/errors; all 75 ParserCore tests passed, including
17 new callback and transform cases. Both required hygiene checks passed.
The full repository suite and live desktop checks were not run.
The optional detailed callbacks and additional facts in
sillsdev/machine#534 await a Machine
release and a follow-up FieldWorks PR. No Jira key was supplied; the repository's
AI PR workflow expects an LT ticket for this visible behavior.
Next: review the trace presentation and associate the appropriate Jira ticket.
Preflight review details
Four files changed: two production files and two test fixtures. No interface,
package, native, COM, installer, or persisted language-project changes. The trace
XML is transient; blocking preserves CurrentTrace and completion remains on the
existing path. Allomorph and blocking identities use the existing cache lookup
and clickable id conventions; unresolved blocking identities display as unknown.
New presentation text follows the stylesheet's existing xsl:text convention.
Read-only inspection of Machine's v3.9.2 AnalysisCompoundingRule confirmed that
productivity restrictions are the sole emitted reason on this callback. Other
failure gates must wait for a released version containing the Machine changes.
The serializer never derives a cause from a neighboring trace or repeats a gate.
Validation on Windows/x64:
The build compiled native prerequisites before managed code and finished with
zero warnings/errors. The test script ran 75/75 passing ParserCore cases against
that fresh build. The pre-fix focused run had 15 expected failures among 17 cases.
Regression coverage includes distinct circumfix halves, supplied environment
alternatives/allomorph identity, replacement entry/output and completion,
unresolved cache lookup, reason-versus-operand attribution, list punctuation,
blocking traversal/expandability, and both writing directions. Comment hygiene,
token hygiene, PowerShell compatibility, and whitespace checks passed.
The sandboxed restore could not reach NuGet; the network-enabled build succeeded.
No full-suite, live desktop, or screenshot claim is made. Self-review found no
remaining correctness defects; maintainers should confirm blocking wording and
navigation. No Jira key was supplied, and no tracked working documents enter
the PR.
This change is
🤖 Generated with Claude Code