fix(markdown): pin upstream ThemeListener compatibility packages - #224
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
YoungSx
marked this pull request as ready for review
September 17, 2026 07:57
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
YoungSx
marked this pull request as draft
September 17, 2026 07:58
Contributor
Author
|
已跟进上游进展: |
YoungSx
force-pushed
the
fix/markdown-native-theme-listener
branch
from
September 23, 2026 14:42
84119de to
6a028e3
Compare
…rification Add an in-app MarkdownThemeProbeDriver that exercises the real seeded markdown conversation end to end: materialized presenter, app theme toggle, native window reactivation, authoritative selection switch to a new plain sibling conversation (unload/dispose) and back (reload). The Skia desktop smoke now enables the probe and requires its complete line to carry passed=True, so a faulted or failed lifecycle cannot pass on the bare marker. The probe waits for the NumberBox probe's completion signal first because that probe owns the content frame while it runs. Reverse verification on this machine, same gate each time: - pin 7.1.206 (published ThemeListener): probe faults, presenter never materializes, gate fails - remove the vendored override entirely (transitive 7.1.206): same failure - vendored 7.1.207-dev.4 containing Uno.WindowsCommunityToolkit#242: gate passes with passed=True Also seed a plain second conversation for the switch, expose the NumberBox probe's completion to sibling probes, and silence the stale Uno0001 listing on RenderTargetBitmap in the touched capture method with runtime evidence recorded in the comment. Co-Authored-By: Claude Code <noreply@anthropic.com>
xUnit2031 flags a Where clause directly before Assert.Single; the overload with a filtering function is the sanctioned shape. Co-Authored-By: Claude Code <noreply@anthropic.com>
YoungSx
force-pushed
the
fix/markdown-native-theme-listener
branch
from
September 24, 2026 14:59
b816915 to
d301e05
Compare
YoungSx
marked this pull request as ready for review
September 24, 2026 15:49
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
This branch was successfully deployed
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.
Problem and change
The non-Windows Markdown control depends on Toolkit 7.1.206. Its ThemeListener dereferences Window.Current.CoreWindow when Skia has a XAML Window but no CoreWindow, so loading or disposing Markdown can raise a dispatcher exception.
Pin the non-Windows UI dependency to unchanged upstream CI artifacts containing Uno.WindowsCommunityToolkit#242. That patch subscribes to the native Window.Activated event and unsubscribes from the captured window. Keep the existing Markdown version; include the three required toolkit packages with exact source mappings, SHA-256 provenance and MIT license.
Upstream PR 242 is still OPEN. These are development CI packages, not a stable release. This Draft preserves the focused candidate; it is NOT ready to merge.
Scope
Validation
Before marking ready
Browser WASM Smoke Gatespassed on the rebased head (d301e05).Skia Desktop GUI SmokeandLinux Desktoppassed on the rebased head.Windows MSIX Packagepassed; NuGet source mapping and vendored SHA-256 provenance unchanged after rebase.Android,iOS Simulator,macOS Desktopareskippingunder the tiered PR gates (they run on the nightly/native-acceptance schedule, not per-PR). The dependency override affects all non-Windows targets, so these must be confirmed via the nightly native acceptance before/at merge.main(uno.sdk 6.7.30); 17 checks pass, 0 fail, 4 skipping (Android/iOS/macOS/Deterministic GUI — tiered to nightly).Real-Agent form/URL acceptance is separate follow-up work and must not block or inflate this focused theme fix.
Ready-for-review note (rebased 2026-09-25)
Rebased onto latest
main— theDirectory.Packages.propsoverlap with the uno.sdk 6.7.30 upgrade merged cleanly (main's SDK bump and this PR's vendored7.1.207-dev.4pin occupy separate lines; no conflict). Per-PR CI is green on the new head.Known debt carried into merge: three vendored
Uno.CommunityToolkit*development.nupkgfiles remain intools/vendor/because upstream Uno.WindowsCommunityToolkit#242 is APPROVED but not yet merged/released. When #242 ships a stable release, a follow-up must remove the vendored packages, the NuGet source mapping and the central pin, and switch to the published dependency.Outstanding before final merge: Android/iOS/macOS native builds are not exercised by per-PR gates (tiered to the nightly native-acceptance schedule); since the dependency override affects all non-Windows targets, confirm the nightly run is green before merging.
Markdown lifecycle gate evidence (7922deb, reverse-verified)
Gate:
scripts/gates/run-skia-desktop-gui-smoke-gates.sh Debugon Linux Skia, same source and command each run.MarkdownThemeProbe: complete ... passed=True; gate additionally requirespassed=Trueon the complete lineLifecycle exercised per run: materialized presenter on the seeded markdown conversation, app theme toggle (Dark→Light→Dark), native window reactivation, authoritative selection switch to the seeded plain sibling conversation (unload/dispose) and back (reload of a new presenter instance). Source identities: gate logs the runtime commit and the exact app artifact path; package identity comes from the pinned central version plus the vendored SHA-256 provenance already in
tools/vendor.Upstream recheck (2026-09-23): Uno.WindowsCommunityToolkit#242 is still open (approved, awaiting maintainer merge, no published release), so the vendored pin remains the correct interim form.