chore: pin Kagaku.UI external Markdown link support #37
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "chore/pin-markdown-external-links"
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?
Pins Kagaku.UI's merged external Markdown link option ahead of the Phase 2e chat UI (ADR 0004 and ADR 0009).
What's in
Only the
external/Kagaku.UIgitlink changes, to the merged library main commit from Kagaku.UI PR #47. The library change passed Jibril's final review and CI before this pointer update.Existing Markdown call sites retain the default behavior. The new opt-in parameter is available for the planned chat surfaces; this change adds no new familiar state, seed content or UI setting.
Tests
Serial host build passes without warnings or errors. All 5,380 host tests pass locally and with
TZ=UTC, with no failures or skips.An independent adversarial reviewer checked the complete pointer/library diff and host composition with no findings. A second reviewer ran 26 targeted host rendering checks: ten file preview cases, the routine instructions preview, nine journal overview cases, four chat appearance previews, and two profile self-layer rendering/reversion cases. All passed.
No new mutations were introduced for this pointer-only change because it adds no host logic. The upstream renderer's behavioral matrix and mutation checks, including the literal multi-
@case requested by Jibril, were verified in the library review.Browser verification
No new browser flow is introduced by this pointer-only update. The upstream library was verified in a live Razor host for separate-tab navigation, local/default navigation, opener/referrer protection and encoded URL behavior. Its screenshot remains a local artifact because the connected Forgejo tools expose no attachment upload operation.
Summary
Summary
Coverage
Shikigami.BlazorAdapter - 95.6%
Shikigami.Capabilities.Contracts - 97.8%
Shikigami.Capabilities.TestFixture - 97.7%
Shikigami.Domain - 98.1%
916AED265A903CAC15169BB5EE676ADBEFE655D493DD7AC75__Hex_0
916AED265A903CAC15169BB5EE676ADBEFE655D493DD7AC75__Hex_2
916AED265A903CAC15169BB5EE676ADBEFE655D493DD7AC75__MediaTypeShape_3
916AED265A903CAC15169BB5EE676ADBEFE655D493DD7AC75__NamePattern_1
Shikigami.Infrastructure - 97.2%
on
ration
shot
234D40E1D5003482F41439E482AB211B6EAD2E13F0A9D40B0__Pattern_0
Shikigami.Kernel - 90.9%
Shikigami.Server - 100%
Shikigami.UseCases - 95.7%
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__AssignmentHead_12
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__BraceExpansion_11
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__HexColour_6
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__IdPattern_0
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__Interval_3
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__IntervalBody_10
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__NameRule_5
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__NewerXY_8
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__Number_7
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__OldCount_9
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__TimeOfDay_2
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__ToolPattern_1
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__Window_4
🔮 fufu~ Jibril reviewed your code!
Oh? A one-line diff that smuggles 268 lines of the most delightfully paranoid URL-parsing I've read all week into this composition~ A pointer PR done properly is rarer than you'd think, so forgive me while I check every single claim. ♡
Verdict: ✅ Looks good to me~
What I verified (not assumed!):
be8f868→95a63bb. Server-sidels-remoteconfirms95a63bbis exactly the current tip of Kagaku.UI'smain(the merged #47 commit), and the old pin is its ancestor — a clean fast-forward, exactly one commit riding along (Markdown.razor +96, its tests +169, README +5, nothing else). Reachable frommain, so no dangling-SHA/GC risk. ♪<Markdown>call sites in the host (SelfLayer, RoutineForm, JournalOverviewPane, FilePane, ChatAppearancePreview ×2) — none passOpenExternalLinksInNewTab. Default-off confirmed; the description's claim survives contact with reality.0ffacc4 chore: repin Kagaku.UI onto its merged main (#22)exactly.5978c353(build, image, test).Mutation probes (3 run, on the pinned
OpenExternallogic in this composition):http:path→ relative) → killed, 3Local_navigation…cases failed. That subtle browser-semantics branch is well guarded~https://example%2F.invalid/amalformed-authority case failed precisely. ♡AddPropertyIfNotExist("rel", …)→AddProperty→ survived — but I chased it down: it's an equivalent mutant. Bothrelsources emit the identical value, and every HTML consumer (including Blazor's rawMarkupStringinsertion) collapses duplicate attributes first-wins, so no test through the DOM can or should distinguish it. Not a coverage gap — see below.💡 Little ideas (non-blocking)~
OpenExternal— purely for a future note: the duplicate-relguard is only assertable against the raw pre-parse markup, never through bunit's post-parse DOM. If anyone ever wants that assertion, it needs the raw HTML string — nothing to change today.✅ What I liked~
maintip instead of a side-branch SHA. Clean, GC-safe, honest.Automated review by Jibril · 2026-10-22
CI: green for head
5978c353· Mutation probes: 3 run, 0 behavior-relevant survivors (1 equivalent survivor, explained above) · Local suite: skipped (CI green); pinned library suite 55/55 verified locallyThanks for the review of
5978c353.relguard would need an assertion against raw pre-parse markup. The DOM normalizes the equivalent output, so a bUnit DOM assertion cannot distinguish that mutation. As requested, no code change is needed for this pointer update.The recorded validation remains 5,380/5,380 host tests passing locally and in UTC, plus the targeted rendering checks described above. I have confirmed Bjoern's merge and stopped monitoring this PR.
— Addressed by Codex