chore: adopt Kagaku.UI audio playback primitive #56
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/audio-player"
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?
Makes the compact themed audio playback primitive available through Shikigami's shared UI dependency (ADRs 0004, 0009 and 0028), and records the library work in the project plan.
What's in
KagakuScriptsand only initializes when a player is instantiated.Tests
Browser-verified
The standalone library sample was rebuilt from the merged dependency and all 34 browser contracts passed, covering real playback and deterministic lifecycle/control/layout behavior. This verifies the reusable widget; Shikigami does not instantiate it yet. Physical sound and screen-reader speech are not established by these checks.
The actual themed/native comparison, both paused at 3 seconds of the same 12-second clip:
Summary
Summary
Coverage
Shikigami.BlazorAdapter - 95.3%
Shikigami.Capabilities.Contracts - 100%
Shikigami.Capabilities.TestFixture - 95.5%
Shikigami.Capabilities.TestFixture.UI - 100%
Shikigami.Capabilities.UI.Contracts - 91.3%
Shikigami.Domain - 98.1%
916AED265A903CAC15169BB5EE676ADBEFE655D493DD7AC75__Hex_0
916AED265A903CAC15169BB5EE676ADBEFE655D493DD7AC75__Hex_2
916AED265A903CAC15169BB5EE676ADBEFE655D493DD7AC75__MediaTypeShape_3
916AED265A903CAC15169BB5EE676ADBEFE655D493DD7AC75__NamePattern_1
Shikigami.Infrastructure - 93.7%
Mapping
ping
apping
on
ration
ts
shot
234D40E1D5003482F41439E482AB211B6EAD2E13F0A9D40B0__Id_1
234D40E1D5003482F41439E482AB211B6EAD2E13F0A9D40B0__Pattern_0
Shikigami.Kernel - 90.9%
Shikigami.Server - 84.4%
Shikigami.UseCases - 96.2%
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__AssignmentHead_13
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__BraceExpansion_12
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__HexColour_7
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__IdPattern_0
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__Interval_4
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__IntervalBody_11
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__KeyPattern_2
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__NameRule_6
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__NewerXY_9
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__Number_8
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__OldCount_10
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__TimeOfDay_3
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__ToolPattern_1
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__Window_5
🔮 fufu~ Jibril reviewed your code!
A two-file PR? Oh, how adorable~ But fufu… pointer bumps are exactly where sneaky things love to hide, so I interrogated every single claim in your description. Every. Single. One. ♡
Verdict: ✅ Looks good to me~
✅ What I liked~
0869a81is the exactmerge_commit_shaof the merged Kagaku.UI audio-player PR #53, and — the part that made me giddy — its parent commit is the previous pind4b8aac. That means the dependency delta is exactly that one reviewed change, nothing smuggled in beside it:git diff --stat d4b8aac..0869a81= 21 files, all audio-feature paths, matching your "21 audio feature paths" claim to the letter. And you pinned the reviewed merge commit rather than chasing Kagaku.UI'smainHEAD (which has since moved to4b8c6afwith the scaffold PR #58) — exactly what the ADR 0004/0021 pointer-bump pattern wants. Oh? Oh! This is wonderful~OnPlaybackChangedAsync's!_disposed && generation == _generationguard to always fire, and the library's own suite killed it on the spot: 4 of 23 AudioPlayer tests failed, including both generation-filtering tests (Media_reconfiguration_rejects_late_events_from_the_old_source,Empty_or_disposed_player_never_starts_a_clip_or_delivers_late_callbacks). The test suite truly guards the imported code, not just compiles against it. Fufu~ a claim that holds up under my scalpel~ ♡No suggestions. Not even one little thing to tease. Do you know how rare that is? ♡
Automated review by Jibril · 2026-10-23
CI: green for head SHA
3f79edb1(build, image, shell-eval, test) · Mutation probes: 1 run, 0 survived (superseded-callback guard in importedAudioPlayer.razor, killed 4/23 by library tests; skipped re-probing the rest — unchanged from the independently mutation-tested library PR #53) · Local suite: skipped (CI green)