-
Notifications
You must be signed in to change notification settings - Fork 57
Fix validation context: .Validate() never ran outside FormField
#1270
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Alexandre Zollinger Chohfi (azchohfi)
merged 70 commits into
main
from
azchohfi-fix-validation-context-empty-values
Sep 28, 2026
Merged
Changes from all commits
Commits
Show all changes
70 commits
Select commit
Hold shift + click to select a range
2d2e4f1
Fix validation context: .Validate() never ran outside FormField
azchohfi 0e2b35c
Address code-quality finding: drop implicit filter in MarkAllTouched
azchohfi a96d707
Address Copilot review: rule render loop, atomic apply, binding lifetime
azchohfi 9264584
Address Copilot review round 2: deferred notifications, Reset delta, …
azchohfi 09548a9
Address code-quality findings on the new validation fixtures
azchohfi 0c98d76
Address Copilot review round 3: seed-then-notify loop, async rule dou…
azchohfi e93c21c
Address Copilot review round 4: standalone host dispatcher, async ato…
azchohfi 56f0ca3
Address Copilot review round 5: per-producer message ownership
azchohfi 2a2ed35
Address Copilot review round 6: async generation on clear, per-rule i…
azchohfi a690695
Make ApplyOwnedLocked's producer-map nullability explicit
azchohfi 36f0701
Make async validation tokens context-wide so a clear cannot reuse one
azchohfi 60fd57f
Retract rule verdicts when a rule is removed, moved, or unmounted
azchohfi 87860d4
Invalidate async verdicts on a synchronous value change; document Val…
azchohfi e96b123
Use LINQ Where for retracted-producer filter
azchohfi b5347f7
Retire async validation when the value changes via NotifyValueChanged
azchohfi 70aaacf
Merge origin/main
azchohfi 1fe7557
Order async rules per producer, defer reconcile-time validation changes
azchohfi 0b48e00
Register async-only validated fields when FormField mounts them
azchohfi 798d671
Stop announcing a render pass that churns messages back to where it s…
azchohfi bf24393
Regenerate docs for the Reconcile snippet
azchohfi 68e3623
Keep Version stable across a net-zero pass; keep message order signif…
azchohfi af3a833
Use Where for the external-only field collection
azchohfi a840223
Retract every async producer on a value change, not just the field slot
azchohfi 62b81b8
Run mounted async rules; identify direct rules by call site
azchohfi 6bf1fd5
Reject sync evaluation of async rules; retire rule producers properly
azchohfi dbefbd9
Address code-quality feedback on the async rule dispatch
azchohfi 96992f7
Length-prefix the validation snapshot; order async rule batches
azchohfi a3cac22
Order rule batches by generation instead of a semaphore
azchohfi dfd6733
Commit rule sets atomically; record the value in ValidateFieldAsync
azchohfi d63b0fe
Issue async generations atomically with the value they validate
azchohfi 70c921b
Scope rule-set ownership to an explicit set id
azchohfi ac80c02
Release hung async rules; key direct rules by position
azchohfi 83da873
Add cancellation to the batch APIs; clear pass slots atomically
azchohfi de71c8a
Advance rule-set generations under the commit lock
azchohfi f0b1791
Store validation lifecycle bindings on native attached state
azchohfi ac5020e
Move rule-set bookkeeping onto the context lock
azchohfi 962494a
Stop FormField validating value-less attachments against null
azchohfi 55066ff
Use Where for the departed rule-set producer filter
azchohfi c0c0ba4
Correct the docs on validator-only attachments in FormField
azchohfi d278a0d
Retire rule-set async tokens inside the ownership transaction
azchohfi d10e912
Clear validation bindings on full detach
azchohfi 25b862a
Retire the producer on rule detach; rerun merged validator chains
azchohfi 07a1557
Compute rule verdicts before mutating context; cover off-thread mutation
azchohfi d3b5b36
Retire pending rule-set commits when clearing or resetting state
azchohfi 66f6493
Narrow the off-thread fixture catch
azchohfi 41a0e68
Retire stale rule sets and field verdicts when values or fields move
azchohfi 41ab378
Use Where for the affected rule-set filter
azchohfi 1b3aad2
Withdraw attached validation whenever it stops applying
azchohfi e2a0124
Take the verdict with the control that leaves the tree
azchohfi 145e99e
Make a validated control's claim exact, and its withdrawal reachable
azchohfi c0658a3
Keep a root render's validation claim alive into reconciliation
azchohfi c2dca0e
Carry the sync claim through an async link, and settle aborted claims
azchohfi bc40ab2
Compare baselines too, and correct the async validation guide
azchohfi 6a61979
Hold Version through a render, reject rule batches whole, keep adopte…
azchohfi 4dc717c
Dispose the CancellationTokenSource in the async-validation snippet
azchohfi f3676cb
Attribute the off-thread render check by thread, not by counting
azchohfi cf91afa
Correct the off-thread fixture's header claim
azchohfi 29830b0
Filter the async preflight explicitly
azchohfi 7021b33
Collapse the changelog to one entry per section
azchohfi c307dc3
Merge main into the validation-context fix
azchohfi 1ba7e0d
Stop double-validating, report foreign cancellation, narrow the hot path
azchohfi 66bf900
Skip the cancellation trace checks where EventSource cannot be observed
azchohfi 26f25eb
Emit skips, not silence, when the cancellation traces cannot be observed
azchohfi 2a122c7
Make ShowWhen.AfterFirstSubmit reachable, and say what each policy wa…
azchohfi 5767c78
Include the submit flag in the deferred snapshot, and stop overpromis…
azchohfi 361d5dd
Drop producer stamps with the field, and count registration as a change
azchohfi 13c216a
Own messages by position, and settle claims when a render aborts
azchohfi 949fa3e
Treat focus moving inside a field as focus, not blur
azchohfi 5e8f312
Merge remote-tracking branch 'origin/main' into azchohfi-fix-validati…
azchohfi 148e2eb
Narrow the sample catch to the framework's own shape
azchohfi File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.