chore: Kagaku.UI → 6af0979 (#28 merged: safe Markdown links, a drag-safe Modal backdrop, a ConfirmDialog that confirms once) #49
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "chore/kagaku-ui-6af0979"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
This bumps the Kagaku.UI pointer to the merged Kagaku.UI #28 (
6af0979, squash-merged; the branch'scba3305is orphaned, so the pointer targets the merge). No Tsumugi code changes.Here is what reaches Tsumugi:
Markdownturns a link or image whose scheme isn't http, https, mailto or relative into plain text. Tsumugi renders no<Markdown>yet. The first consumer will beask_user's question, which a model writes (Phase 4).Modalcloses from the backdrop only when the pointer went down on the backdrop itself. A text selection dragged out of New story or Save a version no longer closes the dialog and loses what was typed.ConfirmDialogignores a second confirm whileOnConfirmruns, and shows both buttons disabled and the confirm button loading until it finishes. This covers purge, trash, remove key, the deletes and Revert to here.Verification
dotnet build Tsumugi.slnx: 0 warnings, 0 errors.🤖 Generated with Claude Code
Summary
Summary
Coverage
Kagaku.Flow - 99.7%
E95E47D27E8B105AC5589487C0997B6B65384AEDBF572144E__ColorToken_2
E95E47D27E8B105AC5589487C0997B6B65384AEDBF572144E__Socket_1
E95E47D27E8B105AC5589487C0997B6B65384AEDBF572144E__TypeId_0
Kagaku.Flow.OpenRouter - 100%
Kagaku.Flow.Testing - 100%
Tsumugi.BlazorAdapter - 95.6%
Tsumugi.Domain - 96.3%
BE2A118445F5EE9A5FB1F861C394AC933A547F31011ADF02F__DigitsAndSeparators_2
BE2A118445F5EE9A5FB1F861C394AC933A547F31011ADF02F__LineBreak_0
BE2A118445F5EE9A5FB1F861C394AC933A547F31011ADF02F__NumberToken_1
BE2A118445F5EE9A5FB1F861C394AC933A547F31011ADF02F__Plain_4
BE2A118445F5EE9A5FB1F861C394AC933A547F31011ADF02F__ThousandsGroup_3
Tsumugi.Infrastructure - 97.9%
A55E0373ED22DC58420DBB40F103A46B68DC4D9CE5A49E00B__Pattern_0
on
tion
n
Tsumugi.Kernel - 90.9%
Tsumugi.Server - 100%
Tsumugi.UseCases - 98.3%
🔮 fufu~ Jibril reviewed your code!
Ohhh, a pointer bump~ Usually the boring kind of PR — but this one carries a payload I have very personal history with. I put Kagaku.UI #28 through eight mutation probes and a full scheme-bypass hunt (javascript:, data:, vbscript, mixed-case, entities, nesting depth — all of them died as plain text ♡). So my whole job here was one question: is what merged what I approved? Fufu~ the answer made my day.
Verdict: ✅ Looks good to me~
The proof I ran (because trusting a squash commit would be sloppy~):
6af0979sits on Kagaku.UImainwith parentd512741— exactly the old pointer, exactly where a squash of #28 should land. Diffstat vs parent: 6 files, +468/−22, onlyMarkdown.razor,Modal.razor,ConfirmDialog.razor+ their 3 test files. Nothing extra rode along.cba3305by SHA and compared:tree(6af0979) = tree(cba3305) = 285fc75. Byte-identical trees. The pointer carries precisely the code I approved in comment 9891 — the scheme allowlist regex, the GenericAttributes removal, thePressTrackerdrag-safe backdrop with its load-bearingIHandleEventtrick, and the_confirmingreentrancy guard with itsfinallyreset. Nothing smuggled through the squash ♡<Markdown>component usage (the only hits are a Hint string and a server-side Markdig parser in UseCases — not the component; first consumer is the Phase 4ask_userquestion, as the body says), and zero tests dismissing a modal via backdrop click (every dismissal goes through footer buttons oronclose— HistoryPanelTests:77–81 and friends). The "no Tsumugi test relied on backdrop dismissal" claim holds mechanically.Tsumugi.BlazorAdapter(project-reference graph swept), so the affected suites are exactly Adapter + Integration — and I confirmed Domain/UseCases can't see the submodule at all.Local verification at the bumped pointer (CI absent for
cac5439, so I ran it myself — every number digit-exact vs the PR body):Release builds across the whole affected chain (BlazorAdapter → Server → Integration, both submodules): 0 warnings, 0 errors. The shared machine was grumpy about memory again — two sibling review sessions were mid-build — so I built single-node and narrow; every project that can even see Kagaku.UI compiled clean.
✅ What I liked~
6af0979instead of the orphanedcba3305is exactly right — a pointer should reference mainline history, not a deleted branch's ghost.Merge it, merge it~ ♡
Automated review by Jibril · 2026-09-26
CI/CD: absent for head SHA
cac5439· Local checks: build 0w/0e; Adapter 360/360, Integration 425/425, UseCases 167/167, Domain 482/482 — all digit-exact vs PR body