Repository navigation
Conversation
Grammar > Exception "Features" (ProdRestrictEdit) was not on the list of tools that open in the Avalonia detail view, so with New UI on it fell back to the WinForms DataTree. The tool filter list that #1146 taught the composer to apply never reached a live tool. Add the tool to LexiconFeatureCatalog. Its rows (Name, Abbreviation, Description and Subitems) already compose, and basicPlusFilter.xml withholds Status, Discussion, Confidence, Researchers and Restrictions, so the view matches the WinForms one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1210 +/- ##
=======================================
Coverage 40.00% 40.00%
=======================================
Files 1544 1544
Lines 355308 355313 +5
Branches 41357 41357
=======================================
+ Hits 142142 142153 +11
+ Misses 183833 183826 -7
- Partials 29333 29334 +1
🚀 New features to boost your workflow:
|
thejambi
marked this pull request as ready for review
October 27, 2026 17:47
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/Common/FwAvalonia/LexiconFeatureCatalog.cs. The one new entry there turns the tool on; the other four files are its two strings and two test rows.Grammar > Exception "Features" (
ProdRestrictEdit) now opens in the Avalonia detail view when New UI is on. Until now it wasn't in the catalog, so it fell back to the WinForms DataTree even in New UI.Why this is LT-22802. #1146 made
DetailComposer.Walkapply a tool's filter list. But no tool that opened in Avalonia had a filter list naming a real slice, so the ticket's acceptance steps ran in WinForms, and step 9 compared WinForms with itself. With this change those steps exercise the Avalonia view.Is it safe to turn a tool on with no new view code? Here, yes.
basicPlusFilter.xmlwithholds Status, Discussion, Confidence, Researchers and Restrictions. That leaves Name, Abbreviation and Description, the same multi-string rows Categories (posEdit) already shows in Avalonia. The Subitems row is hidden because the production-restrictions list has only one level (Depth1 in the new-project template).Where to look
RegisteredRecordEditTools_ResolveToAvalonia_WhenUIModeIsNew("ProdRestrictEdit")andBaseDetailEditorTools_StayActive("ProdRestrictEdit").AToolsFilterList_ReachesTheComposer_ThroughTheView, added in LT-22802: Apply a tool's slice filter list in the Avalonia detail view #1146.Not here
Verification
build.ps1 -CommentHygiene -TokenHygiene: clean.Next: review, then a tester runs LT-22802's acceptance steps, which now exercise Avalonia.
Reading this a year from now -- start here
This PR adds a tool to the list of tools that open in the Avalonia detail view. A tool opens in Avalonia only when two things are true: every row its layout uses composes in Avalonia, and the tool is in
LexiconFeatureCatalog.Features. The registry builds its supported tools from that list. Exception "Features" already met the first condition, so this PR changes only the list. Nothing was deleted from the tree, because the branch never added working documents.Decisions, and why
/convert-sliceconverts one slice type, and every row this tool shows already composes. LT-22802's acceptance test needed a tool that opens in Avalonia and has a real filter list. This was the smallest change that gives it one.AllStrings_ResolveFromLocalizationAccessorchecks that they resolve.UIModeDisabledTools) as a string and does not list catalog entries.Evidence
CmPossibilitydefault detail layout isNameAllA,AbbreviationAllA,DescriptionAllA, Status, Discussion, Confidence, Researchers, Restrictions, and SubPossibilities (nested). The filter removes the middle five. SubPossibilities is wrapped in a<choice>that hides it when the owning list'sDepthis less than 2.NewLangProj.fwdatagives the ProdRestrict listDepth1.SliceFilter.IncludeSlice(WinForms) andDetailComposer.Walk(Avalonia) drop filtered rows before the visibility check.visibility="ifdata". Without the filter they would appear even on a new, empty item, so their absence shows the filter is working.Preflight review details
Code Review Summary
Branch: LT-22802-exception-features-avalonia
Base: origin/main (380cc90)
Date: 2026-10-27
Review model: Claude Opus 5.5 (Claude Code)
Files changed: 5 (1 commit, 14 insertions)
Overview
The author's purpose: put Grammar > Exception "Features" (
ProdRestrictEdit) onthe list of tools that open in the Avalonia detail view. LT-22802's code
(#1146) applies a tool's filter list in
DetailComposer.Walk. But no tool thatopened in Avalonia had a filter list naming a real slice, so the ticket's
acceptance steps ran in the WinForms DataTree and step 9 compared WinForms with
itself.
The change is one
LexiconFeatureCatalogentry, two localized strings, and atest row in each of the two places that list active tools. The tool's detail
rows (Name, Abbreviation, Description, and Subitems when the list has more than
one level) already composed in Avalonia.
basicPlusFilter.xmlwithholds Status,Discussion, Confidence, Researchers and Restrictions, so no new view code is
needed.
Contract/API Changes
Additive only:
LexiconFeatureCatalog.FeaturesandToolNamesgainProdRestrictEdit.UIFrameworkRegistry.DefaultSupportedToolsis built from this list.FwAvaloniaStrings.FeatureProdRestrictEditNameandFeatureProdRestrictEditDescription, with matching.resxkeys.The behaviour change is gated: the tool opens in Avalonia only when UIMode=New,
which is off by default. A user can still opt the tool out through
UIModeDisabledTools. The Options dialog does not list catalog entries, sothere is no new Options row.
Findings
Critical - Must address before merge
None.
Important - Should address before merge
None.
Minor - Consider
None.
Required Validation / Evidence
./build.ps1 -CommentHygiene -TokenHygiene: clean on the rebased base(
380cc907f)../test.ps1 -TestProject xWorksTests(switch, filter, composer, windowconfiguration integrity, seeding): 150 passed, including
RegisteredRecordEditTools_ResolveToAvalonia_WhenUIModeIsNew("ProdRestrictEdit")and
AToolsFilterList_ReachesTheComposer_ThroughTheView../test.ps1 -TestProject FwAvaloniaTests(UIFramework, FeatureCatalog,Localization): 65 passed, including
BaseDetailEditorTools_StayActive("ProdRestrictEdit").origin/main..HEAD: clean.typing.
"Edit the Exception Features" jump link (Jason's steps 3–7);
Positive Observations
(
posEdit/notebookEdit), with no new view code.ask.
because the filter withholds Discussion.
Depth1 inNewLangProj.fwdata). The Subitems row is therefore hidden, which matchesLT-22802's updated expected rows.
Interview Notes
Feature in FLEx. All passed.
were not exercised. They are recorded above as unverified.
Suggested Review Focus
separate turn-on ticket.
including steps 3–7.
🤖 Generated with Claude Code
This change is