feat: B7 — adopt the public Kagaku.UI customization contract #86

Merged
bjoern merged 2 commits from feat/kagaku-customization-contract into main 2026-10-24 19:04:06 +02:00
Member

B7 adopts Kagaku.UI's merged public customization contract in Shikigami (ADR 0009).

What's in

  • Pins the actual merged library revision; the standalone consumer studio, public reference, private runtime names, AudioPlayer class fix and automated browser CI arrive through the submodule. No application-authored override uses the five renamed runtime variables.
  • Adds the application consumer guide: actual stylesheet order, shared inputs, native-control versus Field chrome, real wrappers with CSS isolation, and links to the canonical library guide/reference.
  • Records existing styling dependencies outside the bounded catalog, with concrete directions for replacing caller-class dependencies and designing missing reusable APIs. This is an explicit audit, not a claim that the old recipes have become public hooks.
  • Adds short agent practices and the matching plan/ADR amendment. No application runtime/CSS changes, saved preferences or familiar state are added; existing sample content already exercises the consumed behavior.

Tests

  • Full solution build: 0 warnings / 0 errors.
  • Full normal suite: 7,367/7,367, zero skipped. UTC: 7,367/7,367, zero skipped.
  • Existing scrolling contracts: 7/7 Chromium + 7/7 Firefox.
  • Existing immersive Lacquer runner: 8/8 Chromium; real profile/configuration, tooltip bounds, keyboard focus, retained edits, narrow layout and settings interactions.
  • One-off actual revision-history probe: 4/4 Chromium + 4/4 Firefox across Classic/Lacquer and light/dark. Verifies the loaded core/compiled/consumer stylesheet order and the tracking-file DiffView's actual one-digit gutter and wrapping. The first Firefox probe navigated before the interactive Lacquer profile was ready; adding that readiness observation passed without filtering browser errors.
  • Final full-diff independent adversarial review: clean.
  • Independent isolated behavioral/mutation review: clean. Own build 0 warnings/errors; targeted UTC integration 25/25 and adapter 146/146. Actual app probes 12/12 Chromium and 12/12 Firefox, before and after mutations: Jade/Amber local branding, nested native configuration and fields, an outside reconnect sibling, keyboard tooltip bounds/Escape, Classic/Lacquer diff gutters, and 28 narrow-screen tooltips requiring real measured shifts.
  • Four served-CSS mutations were caught in each engine: stale Diff reader, stale InfoTip reader, lost ThemeScope palette resolution, and consumer assignment to a resolved output instead of a mode input. No survivors or on-disk faults; owned hosts stopped. One unrelated switching timeout occurred during the Chromium diff mutation; that group passed in all other runs and both restoration baselines. Independent review retained root's full-suite/regression results, and did not separately repeat AudioPlayer/Toast/navigation probes already covered by the library.

Browser-verified

Fresh scratch world using the repository browser-test launcher and local OpenRouter stub. Niko's profile, configuration and /notes/tracking.md revision history provide the real consumer surfaces. Chromium/Firefox scrolling checks include an enlarged narrow configuration; the revision probe uses 1280×900 CSS pixels. The collaborative preview repeatedly returned “Preview automation snapshot timed out after 15000ms.”; the documented Playwright workflow completed the checks. A current history screenshot was inspected locally; no new visual design is introduced by this pin/documentation change.

Existing unsupported selector recipes remain identified follow-up work, including InfoTip placement, Menu constraints, Modal panel material, responsive PageShell layout and fully wrapping breadcrumbs. No compatibility aliases or new guarantees are added for those internals. The library's own independent reviews and hosted CI cover the public catalog and its standalone consumer; this parent pass verifies the actual app integration, not arbitrary restyles of every public input or assistive-technology speech.

B7 adopts Kagaku.UI's merged public customization contract in Shikigami (ADR 0009). ## What's in - Pins the actual merged library revision; the standalone consumer studio, public reference, private runtime names, AudioPlayer class fix and automated browser CI arrive through the submodule. No application-authored override uses the five renamed runtime variables. - Adds the application consumer guide: actual stylesheet order, shared inputs, native-control versus Field chrome, real wrappers with CSS isolation, and links to the canonical library guide/reference. - Records existing styling dependencies outside the bounded catalog, with concrete directions for replacing caller-class dependencies and designing missing reusable APIs. This is an explicit audit, not a claim that the old recipes have become public hooks. - Adds short agent practices and the matching plan/ADR amendment. No application runtime/CSS changes, saved preferences or familiar state are added; existing sample content already exercises the consumed behavior. ## Tests - Full solution build: **0 warnings / 0 errors**. - Full normal suite: **7,367/7,367**, zero skipped. UTC: **7,367/7,367**, zero skipped. - Existing scrolling contracts: **7/7 Chromium + 7/7 Firefox**. - Existing immersive Lacquer runner: **8/8 Chromium**; real profile/configuration, tooltip bounds, keyboard focus, retained edits, narrow layout and settings interactions. - One-off actual revision-history probe: **4/4 Chromium + 4/4 Firefox** across Classic/Lacquer and light/dark. Verifies the loaded core/compiled/consumer stylesheet order and the tracking-file DiffView's actual one-digit gutter and wrapping. The first Firefox probe navigated before the interactive Lacquer profile was ready; adding that readiness observation passed without filtering browser errors. - Final full-diff independent adversarial review: clean. - Independent isolated behavioral/mutation review: clean. Own build 0 warnings/errors; targeted UTC integration 25/25 and adapter 146/146. Actual app probes 12/12 Chromium and 12/12 Firefox, before and after mutations: Jade/Amber local branding, nested native configuration and fields, an outside reconnect sibling, keyboard tooltip bounds/Escape, Classic/Lacquer diff gutters, and 28 narrow-screen tooltips requiring real measured shifts. - Four served-CSS mutations were caught in each engine: stale Diff reader, stale InfoTip reader, lost ThemeScope palette resolution, and consumer assignment to a resolved output instead of a mode input. No survivors or on-disk faults; owned hosts stopped. One unrelated switching timeout occurred during the Chromium diff mutation; that group passed in all other runs and both restoration baselines. Independent review retained root's full-suite/regression results, and did not separately repeat AudioPlayer/Toast/navigation probes already covered by the library. ## Browser-verified Fresh scratch world using the repository browser-test launcher and local OpenRouter stub. Niko's profile, configuration and `/notes/tracking.md` revision history provide the real consumer surfaces. Chromium/Firefox scrolling checks include an enlarged narrow configuration; the revision probe uses 1280×900 CSS pixels. The collaborative preview repeatedly returned “Preview automation snapshot timed out after 15000ms.”; the documented Playwright workflow completed the checks. A current history screenshot was inspected locally; no new visual design is introduced by this pin/documentation change. Existing unsupported selector recipes remain identified follow-up work, including InfoTip placement, Menu constraints, Modal panel material, responsive PageShell layout and fully wrapping breadcrumbs. No compatibility aliases or new guarantees are added for those internals. The library's own independent reviews and hosted CI cover the public catalog and its standalone consumer; this parent pass verifies the actual app integration, not arbitrary restyles of every public input or assistive-technology speech.
feat: adopt the public Kagaku.UI customization contract
All checks were successful
CI / build (pull_request) Successful in 42s
CI / shell-eval (pull_request) Successful in 2s
CI / image (pull_request) Successful in 2m6s
CI / test (pull_request) Successful in 3m35s
19347f1f64

🔄 Auto-updating coverage report — this comment is regenerated on every push, so the numbers below always reflect the commit shown here, not the branch tip.

Commit: e746b43 · Generated: 2026-10-24 15:53:52 UTC · Revision: #2

Summary

Summary
Generated on: 10/24/2026 - 15:53:51
Coverage date: 10/24/2026 - 15:51:19 - 10/24/2026 - 15:53:47
Parser: MultiReport (6x Cobertura)
Assemblies: 11
Classes: 733
Files: 383
Line coverage: 94.2% (29265 of 31046)
Covered lines: 29265
Uncovered lines: 1781
Coverable lines: 31046
Total lines: 53934
Branch coverage: 89.6% (18303 of 20411)
Covered branches: 18303
Total branches: 20411
Method coverage: Feature is only available for sponsors

Coverage

Shikigami.BlazorAdapter - 96.9%
Name Line Branch
Shikigami.BlazorAdapter 96.9% 89.5%
Shikigami.BlazorAdapter.BlazorAdapterAssembly 100%
Shikigami.BlazorAdapter.Cast.CastActionFailed 100%
Shikigami.BlazorAdapter.Cast.CastEffects 93.3% 93.7%
Shikigami.BlazorAdapter.Cast.CastLoaded 100%
Shikigami.BlazorAdapter.Cast.CastReducers 93.3% 50%
Shikigami.BlazorAdapter.Cast.CastState 100% 100%
Shikigami.BlazorAdapter.Cast.CreateFamiliarFailed 100%
Shikigami.BlazorAdapter.Cast.CreateFamiliarRequested 100%
Shikigami.BlazorAdapter.Cast.DuplicateFamiliarRequested 100%
Shikigami.BlazorAdapter.Cast.FamiliarAvatar 100% 75%
Shikigami.BlazorAdapter.Cast.FamiliarCreated 100%
Shikigami.BlazorAdapter.Cast.FamiliarLinks 100%
Shikigami.BlazorAdapter.Cast.NewFamiliarDialog 97.2% 83.3%
Shikigami.BlazorAdapter.Cast.PurgeFamiliarRequested 100%
Shikigami.BlazorAdapter.Cast.SetFamiliarArchivedRequested 100%
Shikigami.BlazorAdapter.Cast.SetFamiliarTrashedRequested 100%
Shikigami.BlazorAdapter.Cast.TrashPage 89.4% 93.7%
Shikigami.BlazorAdapter.EffectCalls 100%
Shikigami.BlazorAdapter.Files.ConflictSettled 100%
Shikigami.BlazorAdapter.Files.DismissFileError 100%
Shikigami.BlazorAdapter.Files.EntryMissing 100%
Shikigami.BlazorAdapter.Files.EntryOpened 100%
Shikigami.BlazorAdapter.Files.FileActionDone 100%
Shikigami.BlazorAdapter.Files.FileActionFailed 100%
Shikigami.BlazorAdapter.Files.FileActionRequested 100%
Shikigami.BlazorAdapter.Files.FileLinks 100% 100%
Shikigami.BlazorAdapter.Files.FilePane 95.2% 89.5%
Shikigami.BlazorAdapter.Files.FilePaneClosed 100%
Shikigami.BlazorAdapter.Files.FilePathBreadcrumb 100% 100%
Shikigami.BlazorAdapter.Files.FilesEffects 98.4% 94.1%
Shikigami.BlazorAdapter.Files.FilesPage 97.1% 97.3%
Shikigami.BlazorAdapter.Files.FilesReducers 100% 82%
Shikigami.BlazorAdapter.Files.FilesState 100% 100%
Shikigami.BlazorAdapter.Files.FileTreeBranch 100% 100%
Shikigami.BlazorAdapter.Files.FolderPane 92.7% 85.2%
Shikigami.BlazorAdapter.Files.JournalOverviewPane 100% 88.8%
Shikigami.BlazorAdapter.Files.LoadFiles 100%
Shikigami.BlazorAdapter.Files.MemoryForm 100% 94.4%
Shikigami.BlazorAdapter.Files.MemoryOverviewPane 100% 96.1%
Shikigami.BlazorAdapter.Files.OpenEntry 100%
Shikigami.BlazorAdapter.Files.RoutineForm 78.6% 86.4%
Shikigami.BlazorAdapter.Files.RoutineOverviewPane 100% 94.4%
Shikigami.BlazorAdapter.Files.SaveLanded 100%
Shikigami.BlazorAdapter.Files.SaveRefused 100%
Shikigami.BlazorAdapter.Files.SaveText 100%
Shikigami.BlazorAdapter.Files.SkillForm 100% 100%
Shikigami.BlazorAdapter.Files.SkillOverviewPane 96.1% 96.9%
Shikigami.BlazorAdapter.Files.TreeFailed 100%
Shikigami.BlazorAdapter.Files.TreeLoaded 100%
Shikigami.BlazorAdapter.Home.HomePage 88.2% 93.7%
Shikigami.BlazorAdapter.Notifications.CapabilityChangedBridge 100%
Shikigami.BlazorAdapter.Notifications.CapabilityChangesReceived 100%
Shikigami.BlazorAdapter.Notifications.CoalescingBridge`1 94.4% 80%
Shikigami.BlazorAdapter.Notifications.DomainChangedBridge 100%
Shikigami.BlazorAdapter.Notifications.DomainChangesReceived 100% 100%
Shikigami.BlazorAdapter.Notifications.FamiliarEventsBridge 100%
Shikigami.BlazorAdapter.Notifications.FamiliarEventsReceived 100%
Shikigami.BlazorAdapter.Profile.AvatarChosen 100%
Shikigami.BlazorAdapter.Profile.AvatarClearRequested 100%
Shikigami.BlazorAdapter.Profile.AvatarFailed 100%
Shikigami.BlazorAdapter.Profile.AvatarSaved 100%
Shikigami.BlazorAdapter.Profile.CreatedWithoutAvatar 100%
Shikigami.BlazorAdapter.Profile.ExpressionsEditor 86.6% 88.8%
Shikigami.BlazorAdapter.Profile.FamiliarProfile 98% 89.6%
Shikigami.BlazorAdapter.Profile.LoadProfile 100%
Shikigami.BlazorAdapter.Profile.PersonaEditor 100% 97.2%
Shikigami.BlazorAdapter.Profile.PersonaReloaded 100%
Shikigami.BlazorAdapter.Profile.PersonaSave 100%
Shikigami.BlazorAdapter.Profile.PersonaSaved 100%
Shikigami.BlazorAdapter.Profile.PersonaSaveFailed 100%
Shikigami.BlazorAdapter.Profile.ProfileEffects 92.9% 85%
Shikigami.BlazorAdapter.Profile.ProfileLoaded 100%
Shikigami.BlazorAdapter.Profile.ProfileMissing 100%
Shikigami.BlazorAdapter.Profile.ProfilePage 100%
Shikigami.BlazorAdapter.Profile.ProfileReducers 97.3% 53.9%
Shikigami.BlazorAdapter.Profile.ProfileRefreshed 100%
Shikigami.BlazorAdapter.Profile.ProfileState 100% 100%
Shikigami.BlazorAdapter.Profile.ReloadPersona 100%
Shikigami.BlazorAdapter.Profile.RevertSelfRequested 100%
Shikigami.BlazorAdapter.Profile.SavePersonaRequested 100%
Shikigami.BlazorAdapter.Profile.SaveSettingsRequested 100%
Shikigami.BlazorAdapter.Profile.SelfLayer 92.3% 87.5%
Shikigami.BlazorAdapter.Profile.SettingsSaved 100%
Shikigami.BlazorAdapter.Profile.SettingsSaveFailed 100%
Shikigami.BlazorAdapter.Settings.BackupFailed 100%
Shikigami.BlazorAdapter.Settings.BackupSettingsLoaded 100%
Shikigami.BlazorAdapter.Settings.BackupSettingsLoadFailed 100%
Shikigami.BlazorAdapter.Settings.BackupsSection 100% 100%
Shikigami.BlazorAdapter.Settings.BackupsSettingsEffects 100%
Shikigami.BlazorAdapter.Settings.BackupsSettingsReducers 100%
Shikigami.BlazorAdapter.Settings.BackupsSettingsState 100%
Shikigami.BlazorAdapter.Settings.CapabilityFormErrorBoundary 100%
Shikigami.BlazorAdapter.Settings.CapabilityOwnerEditor 89.5% 86.2%
Shikigami.BlazorAdapter.Settings.CapabilitySettingsComponents 100% 100%
Shikigami.BlazorAdapter.Settings.CapabilitySettingsEffects 100% 90.6%
Shikigami.BlazorAdapter.Settings.CapabilitySettingsFailed 100%
Shikigami.BlazorAdapter.Settings.CapabilitySettingsLoaded 100%
Shikigami.BlazorAdapter.Settings.CapabilitySettingsReducers 100% 100%
Shikigami.BlazorAdapter.Settings.CapabilitySettingsState 100%
Shikigami.BlazorAdapter.Settings.ChatAppearanceCss 100% 100%
Shikigami.BlazorAdapter.Settings.ChatAppearanceEffects 100%
Shikigami.BlazorAdapter.Settings.ChatAppearanceLoaded 100%
Shikigami.BlazorAdapter.Settings.ChatAppearanceLoadFailed 100%
Shikigami.BlazorAdapter.Settings.ChatAppearancePreview 100% 100%
Shikigami.BlazorAdapter.Settings.ChatAppearanceReducers 100% 100%
Shikigami.BlazorAdapter.Settings.ChatAppearanceSaved 100%
Shikigami.BlazorAdapter.Settings.ChatAppearanceSaveFailed 100%
Shikigami.BlazorAdapter.Settings.ChatAppearanceSection 100% 98.6%
Shikigami.BlazorAdapter.Settings.ChatAppearanceState 100%
Shikigami.BlazorAdapter.Settings.DefaultsSection 94.5% 85.7%
Shikigami.BlazorAdapter.Settings.DefaultsSettingsEffects 100%
Shikigami.BlazorAdapter.Settings.DefaultsSettingsReducers 100% 100%
Shikigami.BlazorAdapter.Settings.DefaultsSettingsState 100%
Shikigami.BlazorAdapter.Settings.GeneratedCapabilityForm 92.9% 80.8%
Shikigami.BlazorAdapter.Settings.LoadCapabilitySettings 100%
Shikigami.BlazorAdapter.Settings.LoadProviderSettings 100%
Shikigami.BlazorAdapter.Settings.ModelCatalogLoaded 100%
Shikigami.BlazorAdapter.Settings.ModelCatalogLoadFailed 100%
Shikigami.BlazorAdapter.Settings.ModelDefaultsLoaded 100%
Shikigami.BlazorAdapter.Settings.ModelDefaultsLoadFailed 100%
Shikigami.BlazorAdapter.Settings.ModelDefaultsSaved 100%
Shikigami.BlazorAdapter.Settings.ModelDefaultsSaveFailed 100%
Shikigami.BlazorAdapter.Settings.ModelHints 100% 100%
Shikigami.BlazorAdapter.Settings.ModelPicker 100% 98.2%
Shikigami.BlazorAdapter.Settings.Money 100%
Shikigami.BlazorAdapter.Settings.OpenRouterKeySaved 100%
Shikigami.BlazorAdapter.Settings.OpenRouterKeySaveFailed 100%
Shikigami.BlazorAdapter.Settings.ProviderKeyChecked 100%
Shikigami.BlazorAdapter.Settings.ProviderSection 100% 100%
Shikigami.BlazorAdapter.Settings.ProviderSettingsEffects 100% 100%
Shikigami.BlazorAdapter.Settings.ProviderSettingsLoaded 100%
Shikigami.BlazorAdapter.Settings.ProviderSettingsReducers 100% 100%
Shikigami.BlazorAdapter.Settings.ProviderSettingsState 100% 100%
Shikigami.BlazorAdapter.Settings.SaveChatAppearanceRequested 100%
Shikigami.BlazorAdapter.Settings.SaveModelDefaultsRequested 100%
Shikigami.BlazorAdapter.Settings.SaveOpenRouterKeyRequested 100%
Shikigami.BlazorAdapter.Settings.SettingsPage 100% 100%
Shikigami.BlazorAdapter.Settings.ToolGroupsSection 93.6% 80.8%
Shikigami.BlazorAdapter.Shell.CastRail 100% 100%
Shikigami.BlazorAdapter.Workspace.FamiliarArtwork 100% 100%
Shikigami.BlazorAdapter.Workspace.FamiliarConfigurationHost 100% 100%
Shikigami.BlazorAdapter.Workspace.FamiliarPresence 86.9% 90%
Shikigami.BlazorAdapter.Workspace.FamiliarWorkspaceContext 100% 100%
Shikigami.BlazorAdapter.Workspace.LacquerHeader 84.6% 100%
Shikigami.BlazorAdapter.Workspace.WorkspacePage 100% 100%
Shikigami.BlazorAdapter.Workspace.WorkspaceSectionPicker 100% 87.5%
Shikigami.Capabilities.Contracts - 92.7%
Name Line Branch
Shikigami.Capabilities.Contracts 92.7% 92.7%
Shikigami.Capabilities.Contracts.CapabilityAssetContent 100%
Shikigami.Capabilities.Contracts.CapabilityBackgroundDefinition 100%
Shikigami.Capabilities.Contracts.CapabilityCheckResult 100%
Shikigami.Capabilities.Contracts.CapabilityContext 100%
Shikigami.Capabilities.Contracts.CapabilityDefinition 100% 100%
Shikigami.Capabilities.Contracts.CapabilityEntry 100%
Shikigami.Capabilities.Contracts.CapabilityError 100%
Shikigami.Capabilities.Contracts.CapabilityFile 100%
Shikigami.Capabilities.Contracts.CapabilityListing 100%
Shikigami.Capabilities.Contracts.CapabilityMount 100% 100%
Shikigami.Capabilities.Contracts.CapabilityName 100%
Shikigami.Capabilities.Contracts.CapabilityPublication 100%
Shikigami.Capabilities.Contracts.CapabilityPublicationReceipt 100%
Shikigami.Capabilities.Contracts.CapabilityRegistration 100% 100%
Shikigami.Capabilities.Contracts.CapabilityResult`1 100%
Shikigami.Capabilities.Contracts.CapabilitySetting 100% 100%
Shikigami.Capabilities.Contracts.CapabilitySettingCollection 100% 100%
Shikigami.Capabilities.Contracts.CapabilitySettingItem 100%
Shikigami.Capabilities.Contracts.CapabilitySettingProblem 100%
Shikigami.Capabilities.Contracts.CapabilitySignal 100%
Shikigami.Capabilities.Contracts.CapabilityStatusItem 100%
Shikigami.Capabilities.Contracts.CapabilityStorageDefinition 100%
Shikigami.Capabilities.Contracts.CapabilityStoragePreparation 100%
Shikigami.Capabilities.Contracts.CapabilityText 100% 100%
Shikigami.Capabilities.Contracts.CapabilityTool 100%
Shikigami.Capabilities.Contracts.CapabilityToolResult 100%
Shikigami.Capabilities.Contracts.CapabilityValidationProblem 100%
Shikigami.Capabilities.Contracts.ICapabilitySettings 0%
Shikigami.Capabilities.Contracts.MountAccessRule 100%
System.Text.RegularExpressions.Generated 84.6% 85.4%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FB478E59CB1F8F91
095F32B47EDE23CC9FACABF076C6AA6737588D398F5DE6EDB__ItemKey_0
92.7% 90.4%
Shikigami.Capabilities.TestFixture - 94.1%
Name Line Branch
Shikigami.Capabilities.TestFixture 94.1% 93.3%
Shikigami.Capabilities.TestFixture.BinaryFixtureProvider 72.7% 87.5%
Shikigami.Capabilities.TestFixture.BinaryFixtureState 100%
Shikigami.Capabilities.TestFixture.CollectionFixtureCheck 100%
Shikigami.Capabilities.TestFixture.CollectionFixtureIdentity 100%
Shikigami.Capabilities.TestFixture.CollectionFixtureModule 100%
Shikigami.Capabilities.TestFixture.CollectionFixtureObservation 100%
Shikigami.Capabilities.TestFixture.CollectionFixtureState 100%
Shikigami.Capabilities.TestFixture.CollectionFixtureStorage 64.2% 50%
Shikigami.Capabilities.TestFixture.CollectionFixtureValidator 100% 100%
Shikigami.Capabilities.TestFixture.FixtureHandler 100%
Shikigami.Capabilities.TestFixture.FixtureModule 100% 100%
Shikigami.Capabilities.TestFixture.FixtureProvider 92.5% 90.4%
Shikigami.Capabilities.TestFixture.FixtureState 100%
Shikigami.Capabilities.TestFixture.FixtureValidator 100% 100%
Shikigami.Capabilities.TestFixture.SettingsFixtureHandler 100%
Shikigami.Capabilities.TestFixture.SettingsFixtureModule 100% 100%
Shikigami.Capabilities.TestFixture.SettingsFixtureProvider 100% 100%
Shikigami.Capabilities.TestFixture.SettingsFixtureState 100%
Shikigami.Capabilities.TestFixture.SettingsFixtureValidator 100% 100%
Shikigami.Capabilities.TestFixture.UI - 91.8%
Name Line Branch
Shikigami.Capabilities.TestFixture.UI 91.8% 79%
Shikigami.Capabilities.TestFixture.UI.CollectionFixtureForm 90.4% 80%
Shikigami.Capabilities.TestFixture.UI.FixtureSettingsForm 100% 66.6%
Shikigami.Capabilities.UI.Contracts - 94.1%
Name Line Branch
Shikigami.Capabilities.UI.Contracts 94.1% 50%
Shikigami.Capabilities.UI.Contracts.CapabilitySettingsComponent 100%
Shikigami.Capabilities.UI.Contracts.CapabilitySettingsComponentRegistration 88.8% 50%
Shikigami.Capabilities.UI.Contracts.CapabilitySettingsUiRegistration 100%
Shikigami.Capabilities.UI.Contracts.SecretChange 75%
Shikigami.Capabilities.UI.Contracts.SettingsAsset 100%
Shikigami.Capabilities.UI.Contracts.SettingsAssetResult 100%
Shikigami.Capabilities.UI.Contracts.SettingsCheckResult 100%
Shikigami.Capabilities.UI.Contracts.SettingsItem 100%
Shikigami.Capabilities.UI.Contracts.SettingsItemChange 100%
Shikigami.Capabilities.UI.Contracts.SettingsItemStatus 100%
Shikigami.Capabilities.UI.Contracts.SettingsProblem 100%
Shikigami.Capabilities.UI.Contracts.SettingsSaveResult 100%
Shikigami.Capabilities.UI.Contracts.SettingsView 100%
Shikigami.Capabilities.Web - 97.1%
Name Line Branch
Shikigami.Capabilities.Web 97.1% 90.9%
Shikigami.Capabilities.Web.Content.HtmlTextExtractor 100% 92.4%
Shikigami.Capabilities.Web.Content.ReadableDocument 100%
Shikigami.Capabilities.Web.Content.WebDocumentPublisher 100% 94.4%
Shikigami.Capabilities.Web.Content.WebText 100% 87.5%
Shikigami.Capabilities.Web.Fetch.GuardedWebTransport 92.6% 83.9%
Shikigami.Capabilities.Web.Fetch.WebAddressPolicy 100% 96.4%
Shikigami.Capabilities.Web.Fetch.WebCompression 97.1% 96%
Shikigami.Capabilities.Web.Fetch.WebNetwork 66.6% 0%
Shikigami.Capabilities.Web.Fetch.WebResponse 100%
Shikigami.Capabilities.Web.Search.SearchHit 100%
Shikigami.Capabilities.Web.Search.SearchResults 100%
Shikigami.Capabilities.Web.Search.SearxngSearchProvider 97.1% 91.6%
Shikigami.Capabilities.Web.Tools.WebFetchTool 100% 87.5%
Shikigami.Capabilities.Web.Tools.WebSearchTool 100% 95.4%
Shikigami.Capabilities.Web.Tools.WebTool 100% 50%
Shikigami.Capabilities.Web.WebFailure 100%
Shikigami.Capabilities.Web.WebLimits 100%
Shikigami.Capabilities.Web.WebModule 100% 100%
Shikigami.Capabilities.Web.WebOptions 90.9% 70%
Shikigami.Capabilities.Web.WebSettingsValidator 62.5% 100%
System.Text.RegularExpressions.Generated 100%
Shikigami.Domain - 98.2%
Name Line Branch
Shikigami.Domain 98.2% 91.8%
Shikigami.Domain.Familiars.AccentPalette 100%
Shikigami.Domain.Familiars.ColourPair 100% 100%
Shikigami.Domain.Familiars.Expression 100% 100%
Shikigami.Domain.Familiars.ExpressionSet 100% 100%
Shikigami.Domain.Familiars.Familiar 100% 90.2%
Shikigami.Domain.Familiars.LearningSettings 100%
Shikigami.Domain.Familiars.MemoryBudgets 100% 100%
Shikigami.Domain.Familiars.ModelChoice 100% 100%
Shikigami.Domain.Familiars.OutreachSettings 100% 100%
Shikigami.Domain.Familiars.QuietHours 100% 87.5%
Shikigami.Domain.Files.BlobContent 100% 75%
Shikigami.Domain.Files.BlobSha 87.5% 100%
Shikigami.Domain.Files.DefaultLayout 100%
Shikigami.Domain.Files.FileActor 100%
Shikigami.Domain.Files.FileAuthor 100% 100%
Shikigami.Domain.Files.FileContent 100% 100%
Shikigami.Domain.Files.FileNode 100% 90%
Shikigami.Domain.Files.FilePath 100% 97.8%
Shikigami.Domain.Files.FilePublication 100%
Shikigami.Domain.Files.FilePublicationStamp 100%
Shikigami.Domain.Files.FileRevision 100% 87.5%
Shikigami.Domain.Files.LedgerScope 100% 100%
Shikigami.Domain.Files.LocalDates 100%
Shikigami.Domain.Files.MediaTypes 100% 100%
Shikigami.Domain.Files.Permissions 100% 100%
Shikigami.Domain.Files.ReadLedgerEntry 100% 86.3%
Shikigami.Domain.Files.RunActor 100% 100%
Shikigami.Domain.Files.Slug 100% 100%
Shikigami.Domain.Files.TextContent 100% 100%
Shikigami.Domain.Files.TrashPath 100% 100%
Shikigami.Domain.Routines.RoutineSchedule 94.4% 89.8%
Shikigami.Domain.Settings.AppSetting 100%
Shikigami.Domain.Settings.CapabilityConfiguration 100% 100%
Shikigami.Domain.Settings.CapabilityCredential 100%
Shikigami.Domain.Settings.CapabilitySettingValue 100%
Shikigami.Domain.Text 100% 100%
System.Text.RegularExpressions.Generated 96.2% 85.2%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FDFEB299C15773C7
916AED265A903CAC15169BB5EE676ADBEFE655D493DD7AC75__Hex_0
94.8% 67.8%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FDFEB299C15773C7
916AED265A903CAC15169BB5EE676ADBEFE655D493DD7AC75__Hex_2
96.8% 93.7%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FDFEB299C15773C7
916AED265A903CAC15169BB5EE676ADBEFE655D493DD7AC75__MediaTypeShape_3
95.9% 92.1%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FDFEB299C15773C7
916AED265A903CAC15169BB5EE676ADBEFE655D493DD7AC75__NamePattern_1
97.2% 94.4%
Shikigami.Infrastructure - 90.2%
Name Line Branch
Shikigami.Infrastructure 90.2% 63.4%
Shikigami.Infrastructure.Backups.BackupArtifactName 100% 100%
Shikigami.Infrastructure.Backups.BackupOptions 100%
Shikigami.Infrastructure.Backups.BackupSchedule 100% 83.3%
Shikigami.Infrastructure.Backups.BackupScheduler 96.6% 87.5%
Shikigami.Infrastructure.Backups.BackupWriter 97.2% 93.4%
Shikigami.Infrastructure.Backups.DatabaseFingerprint 91.9% 97%
Shikigami.Infrastructure.Backups.FileSystemBackupStore 100% 100%
Shikigami.Infrastructure.Backups.OwnerOnlyFile 100% 100%
Shikigami.Infrastructure.Backups.PreMigrationBackup 90.1% 100%
Shikigami.Infrastructure.Backups.SqliteSnapshot 88.2% 75%
Shikigami.Infrastructure.Blobs.BlobSweep 100% 100%
Shikigami.Infrastructure.Blobs.BlobSweepOptions 100% 100%
Shikigami.Infrastructure.Blobs.BlobSweepResult 100%
Shikigami.Infrastructure.Blobs.FileSystemBlobStore 95.9% 97%
Shikigami.Infrastructure.Browser.BrowserCommand 100%
Shikigami.Infrastructure.Browser.BrowserHost 94.1% 92.7%
Shikigami.Infrastructure.Browser.BrowserHostOptions 100%
Shikigami.Infrastructure.Browser.BrowserHostProbe 0% 0%
Shikigami.Infrastructure.Browser.BrowserIdleService 63.6% 50%
Shikigami.Infrastructure.Browser.BrowserJpeg 0%
Shikigami.Infrastructure.Browser.BrowserLaunchException 0%
Shikigami.Infrastructure.Browser.BrowserOperationRequest 100%
Shikigami.Infrastructure.Browser.BrowserOperationResult 100%
Shikigami.Infrastructure.Browser.BrowserOperationsProbe 0% 0%
Shikigami.Infrastructure.Browser.BrowserOutputScrubber 100% 100%
Shikigami.Infrastructure.Browser.BrowserPageDocument 0%
Shikigami.Infrastructure.Browser.BrowserPageOperations 0% 0%
Shikigami.Infrastructure.Browser.BrowserPageSnapshot 0%
Shikigami.Infrastructure.Browser.BrowserProfile 98.4% 86.3%
Shikigami.Infrastructure.Browser.BrowserReply 100%
Shikigami.Infrastructure.Browser.BrowserSnapshotReferences 100% 100%
Shikigami.Infrastructure.Browser.BrowserWorker 0% 0%
Shikigami.Infrastructure.Browser.BrowserWorkerFactory 5.2% 0%
Shikigami.Infrastructure.Browser.BrowserWorkerProcess 81.2% 80%
Shikigami.Infrastructure.Browser.LinuxProcessGroups 88.8% 92.8%
Shikigami.Infrastructure.Capabilities.CapabilityContribution 100%
Shikigami.Infrastructure.Capabilities.CapabilityStartup 100% 100%
Shikigami.Infrastructure.Capabilities.CapabilityStorageHost 93.7% 83.8%
Shikigami.Infrastructure.Capabilities.CapabilityStorageOptions 100%
Shikigami.Infrastructure.Capabilities.PrivatePaths 97.4% 83.3%
Shikigami.Infrastructure.DailyMaintenanceService 97.8% 91.6%
Shikigami.Infrastructure.DependencyInjection 100% 100%
Shikigami.Infrastructure.Notifications.InProcessBus`1 100% 100%
Shikigami.Infrastructure.Persistence.Configurations.AppSettingConfiguration 100%
Shikigami.Infrastructure.Persistence.Configurations.CapabilityConfiguration
Mapping
100%
Shikigami.Infrastructure.Persistence.Configurations.CapabilityCredentialMap
ping
100%
Shikigami.Infrastructure.Persistence.Configurations.CapabilitySettingValueM
apping
100%
Shikigami.Infrastructure.Persistence.Configurations.FamiliarConfiguration 100%
Shikigami.Infrastructure.Persistence.Configurations.FileNodeConfiguration 100%
Shikigami.Infrastructure.Persistence.Configurations.FilePublicationMapping 100%
Shikigami.Infrastructure.Persistence.Configurations.FileRevisionConfigurati
on
100%
Shikigami.Infrastructure.Persistence.Configurations.ReadLedgerEntryConfigur
ation
100%
Shikigami.Infrastructure.Persistence.Configurations.UnreferencedBlobConfigu
ration
100%
Shikigami.Infrastructure.Persistence.Converters.BlobShaConverter 100%
Shikigami.Infrastructure.Persistence.Converters.ExpressionSetConverter 100% 100%
Shikigami.Infrastructure.Persistence.Converters.FilePathConverter 100%
Shikigami.Infrastructure.Persistence.Converters.Json 100% 100%
Shikigami.Infrastructure.Persistence.Converters.OutreachSettingsConverter 100% 100%
Shikigami.Infrastructure.Persistence.Converters.UtcTicksConverter 100%
Shikigami.Infrastructure.Persistence.DatabaseMigrator 100%
Shikigami.Infrastructure.Persistence.Migrations.AppSettings 100%
Shikigami.Infrastructure.Persistence.Migrations.ArtifactRetention 100%
Shikigami.Infrastructure.Persistence.Migrations.CapabilityConfigurations 100%
Shikigami.Infrastructure.Persistence.Migrations.CapabilityPublicationReceip
ts
100%
Shikigami.Infrastructure.Persistence.Migrations.CapabilityPurgeIntent 100%
Shikigami.Infrastructure.Persistence.Migrations.FileCreatedBy 98%
Shikigami.Infrastructure.Persistence.Migrations.Initial 97.9%
Shikigami.Infrastructure.Persistence.Migrations.Profile 96.2%
Shikigami.Infrastructure.Persistence.Migrations.ReadLedger 100%
Shikigami.Infrastructure.Persistence.Migrations.ShikigamiDbContextModelSnap
shot
100%
Shikigami.Infrastructure.Persistence.Migrations.TrashDirectoryMadeFor 100%
Shikigami.Infrastructure.Persistence.ShikigamiDbContext 98.8% 100%
Shikigami.Infrastructure.Persistence.ShikigamiDbContextFactory 0%
Shikigami.Infrastructure.Persistence.SqlitePragmaInterceptor 100% 100%
Shikigami.Infrastructure.Persistence.Stores.EfFamiliarStore 100% 88.7%
Shikigami.Infrastructure.Persistence.Stores.EfFileStore 98.7% 100%
Shikigami.Infrastructure.Persistence.Stores.EfReadLedgerStore 98.4% 100%
Shikigami.Infrastructure.Persistence.UnreferencedBlob 100%
Shikigami.Infrastructure.Provider.OpenRouterKeySource 100% 100%
Shikigami.Infrastructure.Provider.OpenRouterModelProvider 100% 93.4%
Shikigami.Infrastructure.Provider.OpenRouterOptions 100% 50%
Shikigami.Infrastructure.Provider.ResolvedKey 100% 50%
Shikigami.Infrastructure.Settings.EfAppSettingsStore 100% 100%
Shikigami.Infrastructure.Settings.EfCapabilityConfigurationStore 100% 100%
Shikigami.Infrastructure.Settings.KeyRingSnapshots 100% 100%
Shikigami.Infrastructure.Settings.ProtectedCapabilityAssetReferences 87.5% 50%
System.Text.RegularExpressions.Generated 69.2% 60.7%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>F3A4F28468B24E9C
234D40E1D5003482F41439E482AB211B6EAD2E13F0A9D40B0__Id_3
81.2% 63.3%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>F3A4F28468B24E9C
234D40E1D5003482F41439E482AB211B6EAD2E13F0A9D40B0__NativeReference_2
91.1% 89.4%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>F3A4F28468B24E9C
234D40E1D5003482F41439E482AB211B6EAD2E13F0A9D40B0__Pattern_0
84% 65.7%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>F3A4F28468B24E9C
234D40E1D5003482F41439E482AB211B6EAD2E13F0A9D40B0__RefPattern_1
0% 0%
Shikigami.Kernel - 90.9%
Name Line Branch
Shikigami.Kernel 90.9% 75%
Shikigami.Kernel.Err`1 100%
Shikigami.Kernel.Ok`1 100%
Shikigami.Kernel.Result`1 88.8% 75%
Shikigami.Server - 80.3%
Name Line Branch
Shikigami.Server 80.3% 72.3%
Program 95.2% 82.1%
Shikigami.Server.Backups.BackupConfiguration 100% 100%
Shikigami.Server.Components.App 100%
Shikigami.Server.Components.Layout.AppHeader 100% 78.5%
Shikigami.Server.Components.Layout.MainLayout 100% 100%
Shikigami.Server.Components.Pages.Gate 100% 100%
Shikigami.Server.Diagnostics.BrowserHostCheck 0% 0%
Shikigami.Server.Diagnostics.BrowserOperationsFixtures 0% 0%
Shikigami.Server.Diagnostics.CapabilitySample 93.4% 75.8%
Shikigami.Server.Diagnostics.SampleSettingsForm 77.4% 64.8%
Shikigami.Server.Diagnostics.SeedOnStart 100% 100%
Shikigami.Server.Diagnostics.WebSample 96.6% 69.4%
Shikigami.Server.Presentation.WorkspaceAppearance 100% 100%
Shikigami.Server.Provider.OpenRouterConfiguration 100% 100%
Shikigami.Server.Security.AccessGate 100% 87.5%
Shikigami.Server.Security.AccessSecret 100% 100%
Shikigami.Server.Security.CoordinatedKeyRing 100%
Shikigami.Server.Security.GateThrottle 100% 100%
Shikigami.Server.Security.ProxyNetwork 100% 100%
Shikigami.Server.VolumeStartupValidator 100% 100%
Shikigami.UseCases - 96.3%
Name Line Branch
Shikigami.UseCases 96.3% 93.6%
Shikigami.UseCases.Backups.BackupArtifact 100%
Shikigami.UseCases.Backups.BackupFailure 100%
Shikigami.UseCases.Backups.BackupJobState 100%
Shikigami.UseCases.Backups.BackupPolicy 100%
Shikigami.UseCases.Backups.BackupStatusView 100% 100%
Shikigami.UseCases.Backups.DatabaseSnapshot 100%
Shikigami.UseCases.Backups.DownloadDatabaseSnapshot 100%
Shikigami.UseCases.Backups.GetBackupStatus 100%
Shikigami.UseCases.Backups.IBackupStore 0%
Shikigami.UseCases.Backups.RunBackupNow 100%
Shikigami.UseCases.Browser.BrowserLease 100%
Shikigami.UseCases.Browser.BrowserOwner 100%
Shikigami.UseCases.Capabilities.BoundCapabilityAssets 100% 100%
Shikigami.UseCases.Capabilities.BoundCapabilityChanges 95.6% 70%
Shikigami.UseCases.Capabilities.BoundCapabilityFiles 95.5% 80.3%
Shikigami.UseCases.Capabilities.BoundCapabilityPrivateStorage 100% 100%
Shikigami.UseCases.Capabilities.BoundCapabilitySettings 94.4% 88.4%
Shikigami.UseCases.Capabilities.BoundCapabilityStatus 100% 100%
Shikigami.UseCases.Capabilities.CapabilityAssetChoice 100%
Shikigami.UseCases.Capabilities.CapabilityAssetReference 100%
Shikigami.UseCases.Capabilities.CapabilityAssetResult 100%
Shikigami.UseCases.Capabilities.CapabilityAssets 96.7% 86.6%
Shikigami.UseCases.Capabilities.CapabilityBackgroundHealth 100%
Shikigami.UseCases.Capabilities.CapabilityBinding 100% 83.3%
Shikigami.UseCases.Capabilities.CapabilityChanged 100%
Shikigami.UseCases.Capabilities.CapabilityCheckOutcome 100%
Shikigami.UseCases.Capabilities.CapabilityConfigurationCommit 100%
Shikigami.UseCases.Capabilities.CapabilityConfigurationData 100%
Shikigami.UseCases.Capabilities.CapabilityConfigurationProblem 100%
Shikigami.UseCases.Capabilities.CapabilityConfigurationResult 100%
Shikigami.UseCases.Capabilities.CapabilityConfigurations 99.5% 98.9%
Shikigami.UseCases.Capabilities.CapabilityConfigurationView 100%
Shikigami.UseCases.Capabilities.CapabilityContexts 90% 91.6%
Shikigami.UseCases.Capabilities.CapabilityHealth 100%
Shikigami.UseCases.Capabilities.CapabilityItemChange 100%
Shikigami.UseCases.Capabilities.CapabilityItemEdit 100%
Shikigami.UseCases.Capabilities.CapabilityItemKeys 100% 100%
Shikigami.UseCases.Capabilities.CapabilityItemStatusView 100%
Shikigami.UseCases.Capabilities.CapabilityItemView 100%
Shikigami.UseCases.Capabilities.CapabilityNames 100% 100%
Shikigami.UseCases.Capabilities.CapabilityPrivateMutation 100% 100%
Shikigami.UseCases.Capabilities.CapabilityRegistry 96.5% 90.9%
Shikigami.UseCases.Capabilities.CapabilityRuntime 99.1% 91.5%
Shikigami.UseCases.Capabilities.CapabilityScopes 100% 83.3%
Shikigami.UseCases.Capabilities.CapabilitySecret 75%
Shikigami.UseCases.Capabilities.CapabilitySecretEdit 100%
Shikigami.UseCases.Capabilities.CapabilitySettingRules 100% 97.9%
Shikigami.UseCases.Capabilities.CapabilityStatusText 98% 97.9%
Shikigami.UseCases.Capabilities.CapabilitySupervisionLog 100% 100%
Shikigami.UseCases.Capabilities.CapabilityUnavailableException 100%
Shikigami.UseCases.Capabilities.InvokeCapabilityTool 100% 93.3%
Shikigami.UseCases.Capabilities.SupervisedCapability 100%
Shikigami.UseCases.Capabilities.ToolSchemas 86.8% 72.7%
Shikigami.UseCases.Capabilities.UnsupportedCapabilitySignals 100%
Shikigami.UseCases.DependencyInjection 100%
Shikigami.UseCases.Diagnostics.SeedDevData 93.2% 50%
Shikigami.UseCases.Familiars.AvatarImage 100%
Shikigami.UseCases.Familiars.ClearFamiliarAvatar 100%
Shikigami.UseCases.Familiars.CreateFamiliar 97.4% 66.6%
Shikigami.UseCases.Familiars.DuplicateFamiliar 96.7% 91.6%
Shikigami.UseCases.Familiars.ExpressionView 100%
Shikigami.UseCases.Familiars.FamiliarDetail 100%
Shikigami.UseCases.Familiars.FamiliarEvent 100%
Shikigami.UseCases.Familiars.FamiliarFiles 100% 100%
Shikigami.UseCases.Familiars.FamiliarLimits 71.4%
Shikigami.UseCases.Familiars.FamiliarPersona 96.8% 90%
Shikigami.UseCases.Familiars.FamiliarSettings 100% 100%
Shikigami.UseCases.Familiars.FamiliarSummary 100% 100%
Shikigami.UseCases.Familiars.FamiliarTemplates 100% 100%
Shikigami.UseCases.Familiars.FamiliarViews 100% 94.4%
Shikigami.UseCases.Familiars.GetFamiliar 100% 100%
Shikigami.UseCases.Familiars.IFamiliarStore 0%
Shikigami.UseCases.Familiars.ListFamiliars 100%
Shikigami.UseCases.Familiars.PersonaFile 100%
Shikigami.UseCases.Familiars.PurgeFamiliar 90%
Shikigami.UseCases.Familiars.ReadFamiliarAvatar 100% 87.5%
Shikigami.UseCases.Familiars.SaveFamiliarSettings 96.2% 95.4%
Shikigami.UseCases.Familiars.SelfRevision 100%
Shikigami.UseCases.Familiars.SetFamiliarArchived 100% 100%
Shikigami.UseCases.Familiars.SetFamiliarAvatar 100% 100%
Shikigami.UseCases.Familiars.SetFamiliarTrashed 100% 100%
Shikigami.UseCases.Familiars.ToolGroupCatalog 66.6%
Shikigami.UseCases.Familiars.ToolGroupInfo 100%
Shikigami.UseCases.Files.BoundedStreamCopy 100% 100%
Shikigami.UseCases.Files.Browser.FileBrowser 95.1% 90.9%
Shikigami.UseCases.Files.Browser.FileBytes 100%
Shikigami.UseCases.Files.Browser.FileItem 100%
Shikigami.UseCases.Files.Browser.FileOk`1 100%
Shikigami.UseCases.Files.Browser.FileRefusal 100%
Shikigami.UseCases.Files.Browser.FileRefused`1 100%
Shikigami.UseCases.Files.Browser.FileRevisionView 100%
Shikigami.UseCases.Files.Browser.FileView 100%
Shikigami.UseCases.Files.Browser.JournalOverview 100%
Shikigami.UseCases.Files.Browser.JournalOverviewEntry 100%
Shikigami.UseCases.Files.Browser.MemoryBudget 100%
Shikigami.UseCases.Files.Browser.MemoryBudgetUse 100%
Shikigami.UseCases.Files.Browser.MemoryDraft 100%
Shikigami.UseCases.Files.Browser.MemoryOverview 100%
Shikigami.UseCases.Files.Browser.MemoryOverviewEntry 100%
Shikigami.UseCases.Files.Browser.MemoryOverviewLimits 100%
Shikigami.UseCases.Files.Browser.RoutineDraft 100%
Shikigami.UseCases.Files.Browser.RoutineForms 89.5% 80.8%
Shikigami.UseCases.Files.Browser.RoutineOverview 100%
Shikigami.UseCases.Files.Browser.RoutineOverviewEntry 100%
Shikigami.UseCases.Files.Browser.RoutinePreview 100%
Shikigami.UseCases.Files.Browser.SkillOverview 100%
Shikigami.UseCases.Files.Browser.SkillOverviewEntry 100%
Shikigami.UseCases.Files.Browser.SkillRequirement 100%
Shikigami.UseCases.Files.Browser.SkillView 100%
Shikigami.UseCases.Files.Browser.SpecialForms 98.5% 91.4%
Shikigami.UseCases.Files.Expectation 100% 100%
Shikigami.UseCases.Files.FamiliarWriteLocks 100% 100%
Shikigami.UseCases.Files.FileAuthors 100% 100%
Shikigami.UseCases.Files.FileMaintenance 100% 86.3%
Shikigami.UseCases.Files.FileMaintenanceResult 100%
Shikigami.UseCases.Files.FilePublicationReplay 100%
Shikigami.UseCases.Files.FileSystem 98.6% 96.3%
Shikigami.UseCases.Files.FileWriteRefused 100%
Shikigami.UseCases.Files.FileWritten 100%
Shikigami.UseCases.Files.FsError 100% 75%
Shikigami.UseCases.Files.FsResult`1 100% 50%
Shikigami.UseCases.Files.Ledger.ConflictReport 98.8% 89.6%
Shikigami.UseCases.Files.Ledger.LedgerChange 100%
Shikigami.UseCases.Files.Ledger.LedgerEntry 100%
Shikigami.UseCases.Files.Ledger.LedgerOperand 100%
Shikigami.UseCases.Files.Ledger.LedgerRead 100%
Shikigami.UseCases.Files.Ledger.LiveMove 100%
Shikigami.UseCases.Files.Ledger.ReadLedger 96.4% 93.7%
Shikigami.UseCases.Files.Ledger.ReadLedgerRules 100% 96.9%
Shikigami.UseCases.Files.Ledger.RunChange 100%
Shikigami.UseCases.Files.Ledger.RunFiles 100% 97.3%
Shikigami.UseCases.Files.Ledger.RunScope 100% 100%
Shikigami.UseCases.Files.LedgerRefusal 100% 100%
Shikigami.UseCases.Files.Mounts.CapabilityMountAdapter 86.2% 78.6%
Shikigami.UseCases.Files.Mounts.FileEntry 100%
Shikigami.UseCases.Files.Mounts.FileRead 100%
Shikigami.UseCases.Files.Mounts.GeneratedMount 100% 100%
Shikigami.UseCases.Files.Mounts.Mount 100% 100%
Shikigami.UseCases.Files.Mounts.MountTable 100% 92.3%
Shikigami.UseCases.Files.Mounts.MountTables 100% 100%
Shikigami.UseCases.Files.Mounts.StoredMount 100% 100%
Shikigami.UseCases.Files.MoveOutcome 100%
Shikigami.UseCases.Files.SeedDefaultLayout 100% 100%
Shikigami.UseCases.Files.Special.Budgets 100% 96.6%
Shikigami.UseCases.Files.Special.FrontMatter 100% 86.2%
Shikigami.UseCases.Files.Special.HeaderReader 100% 87.8%
Shikigami.UseCases.Files.Special.HeaderValue 100% 100%
Shikigami.UseCases.Files.Special.HeaderWriter 96% 90.6%
Shikigami.UseCases.Files.Special.MemoryFile 100% 87.5%
Shikigami.UseCases.Files.Special.MemoryUse 100%
Shikigami.UseCases.Files.Special.Numbers 100%
Shikigami.UseCases.Files.Special.RoutineFile 100% 99.1%
Shikigami.UseCases.Files.Special.SkillFile 100% 95.2%
Shikigami.UseCases.Files.Special.SpecialFolders 100% 100%
Shikigami.UseCases.Files.Special.ValidationProblem 100%
Shikigami.UseCases.Files.StoredBlob 100%
Shikigami.UseCases.Files.Utf8Order 100%
Shikigami.UseCases.MutationAdmission 100% 100%
Shikigami.UseCases.Notifications.DomainChanged 100%
Shikigami.UseCases.Settings.AppearanceColour 100% 100%
Shikigami.UseCases.Settings.CatalogModel 100% 100%
Shikigami.UseCases.Settings.ChatAppearance 100%
Shikigami.UseCases.Settings.ChatAppearanceJson 100% 100%
Shikigami.UseCases.Settings.ChatAppearanceLimits 100% 100%
Shikigami.UseCases.Settings.CheckOpenRouterKey 100%
Shikigami.UseCases.Settings.GetChatAppearance 100%
Shikigami.UseCases.Settings.GetModelCatalog 100% 100%
Shikigami.UseCases.Settings.GetModelDefaults 100% 83.3%
Shikigami.UseCases.Settings.GetProviderSettings 100%
Shikigami.UseCases.Settings.ModelCatalog 100%
Shikigami.UseCases.Settings.ModelDefaults 100% 100%
Shikigami.UseCases.Settings.ProviderKeyInfo 100%
Shikigami.UseCases.Settings.ProviderKeyState 100%
Shikigami.UseCases.Settings.ProviderSettingsView 100% 100%
Shikigami.UseCases.Settings.RemoveOpenRouterKey 100%
Shikigami.UseCases.Settings.SaveChatAppearance 100% 100%
Shikigami.UseCases.Settings.SaveModelDefaults 100% 100%
Shikigami.UseCases.Settings.SaveOpenRouterKey 100% 100%
Shikigami.UseCases.Shell.AllowEveryCommand 100%
Shikigami.UseCases.Shell.Commands.Basename 100% 100%
Shikigami.UseCases.Shell.Commands.Builtin 100% 100%
Shikigami.UseCases.Shell.Commands.Cat 98.4% 94.7%
Shikigami.UseCases.Shell.Commands.Cd 97.5% 100%
Shikigami.UseCases.Shell.Commands.CFormat 100% 100%
Shikigami.UseCases.Shell.Commands.CNumbers 100% 100%
Shikigami.UseCases.Shell.Commands.CommandContext 98.6% 93.7%
Shikigami.UseCases.Shell.Commands.CommandRegistry 100% 100%
Shikigami.UseCases.Shell.Commands.Cut 100% 100%
Shikigami.UseCases.Shell.Commands.CutPlan 100% 100%
Shikigami.UseCases.Shell.Commands.Date 100% 98%
Shikigami.UseCases.Shell.Commands.Diff 100% 100%
Shikigami.UseCases.Shell.Commands.Dirname 100% 100%
Shikigami.UseCases.Shell.Commands.Echo 90.7% 92.3%
Shikigami.UseCases.Shell.Commands.Escapes 100% 97.4%
Shikigami.UseCases.Shell.Commands.False 88.8%
Shikigami.UseCases.Shell.Commands.FileCommand 100% 100%
Shikigami.UseCases.Shell.Commands.FileNames 100% 100%
Shikigami.UseCases.Shell.Commands.Filters 100% 90%
Shikigami.UseCases.Shell.Commands.Find 100% 98%
Shikigami.UseCases.Shell.Commands.FindExpression 100% 98.7%
Shikigami.UseCases.Shell.Commands.FindItem 100% 100%
Shikigami.UseCases.Shell.Commands.FindLine 100% 100%
Shikigami.UseCases.Shell.Commands.FindNode 100% 100%
Shikigami.UseCases.Shell.Commands.FindReference 100%
Shikigami.UseCases.Shell.Commands.GetOpt 100% 98.2%
Shikigami.UseCases.Shell.Commands.Grep 99.2% 98.9%
Shikigami.UseCases.Shell.Commands.Head 100% 100%
Shikigami.UseCases.Shell.Commands.HelpCommand 94.4% 100%
Shikigami.UseCases.Shell.Commands.History 97.5% 94%
Shikigami.UseCases.Shell.Commands.Invocation 100% 50%
Shikigami.UseCases.Shell.Commands.LinesCommand 97.2% 96.3%
Shikigami.UseCases.Shell.Commands.LineSearch 100% 100%
Shikigami.UseCases.Shell.Commands.Ls 97.2% 95.9%
Shikigami.UseCases.Shell.Commands.Magic 100% 95.9%
Shikigami.UseCases.Shell.Commands.Nl 100% 99.2%
Shikigami.UseCases.Shell.Commands.Numbers 100% 100%
Shikigami.UseCases.Shell.Commands.Operand 100%
Shikigami.UseCases.Shell.Commands.OptionSpec 100%
Shikigami.UseCases.Shell.Commands.ParsedOptions 100%
Shikigami.UseCases.Shell.Commands.Printf 100% 99.5%
Shikigami.UseCases.Shell.Commands.Pwd 100% 100%
Shikigami.UseCases.Shell.Commands.Ranges 100% 100%
Shikigami.UseCases.Shell.Commands.Rg 97.1% 94%
Shikigami.UseCases.Shell.Commands.SearchFiles 90.9% 83.3%
Shikigami.UseCases.Shell.Commands.SearchPatterns 100% 100%
Shikigami.UseCases.Shell.Commands.SearchSettings 100%
Shikigami.UseCases.Shell.Commands.Sed 100% 100%
Shikigami.UseCases.Shell.Commands.SedAddress 100%
Shikigami.UseCases.Shell.Commands.SedCommand 100%
Shikigami.UseCases.Shell.Commands.SedException 100%
Shikigami.UseCases.Shell.Commands.SedInput 100% 100%
Shikigami.UseCases.Shell.Commands.SedParser 100% 99.8%
Shikigami.UseCases.Shell.Commands.SedPart 100%
Shikigami.UseCases.Shell.Commands.SedProgram 100%
Shikigami.UseCases.Shell.Commands.SedRegex 100%
Shikigami.UseCases.Shell.Commands.SedRun 100% 100%
Shikigami.UseCases.Shell.Commands.SedSubstitution 100%
Shikigami.UseCases.Shell.Commands.ShellCommand 100% 100%
Shikigami.UseCases.Shell.Commands.ShellQuote 100% 100%
Shikigami.UseCases.Shell.Commands.Sizes 100% 100%
Shikigami.UseCases.Shell.Commands.Sort 100% 94.7%
Shikigami.UseCases.Shell.Commands.SortKey 100% 100%
Shikigami.UseCases.Shell.Commands.SortOrder 99.5% 99.5%
Shikigami.UseCases.Shell.Commands.Stat 100% 90.9%
Shikigami.UseCases.Shell.Commands.StatFacts 100% 100%
Shikigami.UseCases.Shell.Commands.StatFormat 100% 99.5%
Shikigami.UseCases.Shell.Commands.Tail 100% 100%
Shikigami.UseCases.Shell.Commands.Tee 95.4% 89.4%
Shikigami.UseCases.Shell.Commands.TextFile 100%
Shikigami.UseCases.Shell.Commands.Tr 100% 100%
Shikigami.UseCases.Shell.Commands.TreeCommand 100% 99.3%
Shikigami.UseCases.Shell.Commands.TrPlan 100% 100%
Shikigami.UseCases.Shell.Commands.TrSequence 93.9% 80%
Shikigami.UseCases.Shell.Commands.TrSet 100% 97.2%
Shikigami.UseCases.Shell.Commands.True 88.8%
Shikigami.UseCases.Shell.Commands.Uniq 100% 100%
Shikigami.UseCases.Shell.Commands.VersionOrder 100% 96.6%
Shikigami.UseCases.Shell.Commands.Wc 100% 97.3%
Shikigami.UseCases.Shell.Execution.CaptureSink 100% 100%
Shikigami.UseCases.Shell.Execution.ClosedSink 100%
Shikigami.UseCases.Shell.Execution.ClosedStreamException 100%
Shikigami.UseCases.Shell.Execution.CodePointOrder 100% 100%
Shikigami.UseCases.Shell.Execution.ContentIndex 100% 100%
Shikigami.UseCases.Shell.Execution.ContentOutput 100% 100%
Shikigami.UseCases.Shell.Execution.ContentSpan 100%
Shikigami.UseCases.Shell.Execution.DateInput 96.8% 94.3%
Shikigami.UseCases.Shell.Execution.Devices 100% 100%
Shikigami.UseCases.Shell.Execution.Errno 100% 100%
Shikigami.UseCases.Shell.Execution.Executor 97.7% 96.8%
Shikigami.UseCases.Shell.Execution.Expander 97.5% 95.4%
Shikigami.UseCases.Shell.Execution.FileSink 96.1% 100%
Shikigami.UseCases.Shell.Execution.Glob 94.6% 95.9%
Shikigami.UseCases.Shell.Execution.GnuQuote 91.2% 92.8%
Shikigami.UseCases.Shell.Execution.InputSource 100%
Shikigami.UseCases.Shell.Execution.LineChange 100%
Shikigami.UseCases.Shell.Execution.LineDiff 98.8% 98.2%
Shikigami.UseCases.Shell.Execution.LongDouble 100% 98.7%
Shikigami.UseCases.Shell.Execution.NullSink 100%
Shikigami.UseCases.Shell.Execution.OutputLimit 100% 97.3%
Shikigami.UseCases.Shell.Execution.OutputSink 100%
Shikigami.UseCases.Shell.Execution.PathResolver 100% 97%
Shikigami.UseCases.Shell.Execution.PipeSink 100% 100%
Shikigami.UseCases.Shell.Execution.PosixRegex 89.2% 90.7%
Shikigami.UseCases.Shell.Execution.PosixRegexException 100%
Shikigami.UseCases.Shell.Execution.Provenance 100% 100%
Shikigami.UseCases.Shell.Execution.ResolvedPath 100%
Shikigami.UseCases.Shell.Execution.ShellLimitException 100%
Shikigami.UseCases.Shell.Execution.ShellScope 94.7% 83.3%
Shikigami.UseCases.Shell.Execution.ShellTree 91.9% 84%
Shikigami.UseCases.Shell.Execution.ShellWrites 93.6% 87.5%
Shikigami.UseCases.Shell.Execution.Strftime 95.6% 92.3%
Shikigami.UseCases.Shell.Execution.Terminal 100% 94.7%
Shikigami.UseCases.Shell.Execution.TextLine 100% 100%
Shikigami.UseCases.Shell.Execution.TextLines 100% 100%
Shikigami.UseCases.Shell.Execution.TreeWalker 100% 100%
Shikigami.UseCases.Shell.Execution.Walked 100%
Shikigami.UseCases.Shell.FileChange 100%
Shikigami.UseCases.Shell.Help.CommandHints 100% 100%
Shikigami.UseCases.Shell.Help.MountGuide 100%
Shikigami.UseCases.Shell.Help.ShellHelp 100% 100%
Shikigami.UseCases.Shell.ShellCommandPlan 100%
Shikigami.UseCases.Shell.ShellCommandRecord 100%
Shikigami.UseCases.Shell.ShellEffects 100%
Shikigami.UseCases.Shell.ShellInterpreter 100% 100%
Shikigami.UseCases.Shell.ShellLimits 100%
Shikigami.UseCases.Shell.ShellRead 100%
Shikigami.UseCases.Shell.ShellReads 100% 100%
Shikigami.UseCases.Shell.ShellResult 100%
Shikigami.UseCases.Shell.ShellSession 100% 100%
Shikigami.UseCases.Shell.ShellWrite 100%
Shikigami.UseCases.Shell.Syntax.AndOrList 100%
Shikigami.UseCases.Shell.Syntax.Assignment 100%
Shikigami.UseCases.Shell.Syntax.ByteText 100% 88.8%
Shikigami.UseCases.Shell.Syntax.HereDocBody 100%
Shikigami.UseCases.Shell.Syntax.Lexer 94.1% 90.4%
Shikigami.UseCases.Shell.Syntax.LiteralPart 100%
Shikigami.UseCases.Shell.Syntax.ParameterPart 100%
Shikigami.UseCases.Shell.Syntax.Parser 97.6% 91.1%
Shikigami.UseCases.Shell.Syntax.Pipeline 100%
Shikigami.UseCases.Shell.Syntax.Redirection 100%
Shikigami.UseCases.Shell.Syntax.Script 100%
Shikigami.UseCases.Shell.Syntax.ShellSyntaxException 100%
Shikigami.UseCases.Shell.Syntax.SimpleCommand 100%
Shikigami.UseCases.Shell.Syntax.TildePart 100% 100%
Shikigami.UseCases.Shell.Syntax.Token 77.7% 66.6%
Shikigami.UseCases.Shell.Syntax.Word 100% 83.3%
Shikigami.UseCases.Shell.Syntax.WordBuilder 100% 100%
System.Text.RegularExpressions.Generated 84.1% 75%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__AssignmentHead_17
95.8% 95.4%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__BraceExpansion_16
93.4% 85.4%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__CollectionKeyPattern_5
91.8% 83.3%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__CountToken_6
92.1% 87.5%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__Feature_1
97.3% 95.4%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__HexColour_11
97.4% 96.4%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__IdPattern_2
82.8% 66.6%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__Interval_8
83.6% 75%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__IntervalBody_15
91.6% 86.1%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__KeyPattern_4
89.1% 77.7%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__NameRule_10
92.1% 84.3%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__NewerXY_13
88.5% 62.5%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__Number_12
67.3% 62.7%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__OldCount_14
94.8% 83.3%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__Role_0
90% 83.3%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__TimeOfDay_7
79% 63.8%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__ToolPattern_3
83.7% 61.1%
System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048
F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__Window_9
69% 56.4%
<!-- coverage-comment --> > 🔄 **Auto-updating coverage report** — this comment is regenerated on every push, so the numbers below always reflect the commit shown here, not the branch tip. > > **Commit:** `e746b43` · **Generated:** 2026-10-24 15:53:52 UTC · **Revision:** #2 # Summary <details open><summary>Summary</summary> ||| |:---|:---| | Generated on: | 10/24/2026 - 15:53:51 | | Coverage date: | 10/24/2026 - 15:51:19 - 10/24/2026 - 15:53:47 | | Parser: | MultiReport (6x Cobertura) | | Assemblies: | 11 | | Classes: | 733 | | Files: | 383 | | **Line coverage:** | 94.2% (29265 of 31046) | | Covered lines: | 29265 | | Uncovered lines: | 1781 | | Coverable lines: | 31046 | | Total lines: | 53934 | | **Branch coverage:** | 89.6% (18303 of 20411) | | Covered branches: | 18303 | | Total branches: | 20411 | | **Method coverage:** | [Feature is only available for sponsors](https://reportgenerator.io/pro) | </details> ## Coverage <details><summary>Shikigami.BlazorAdapter - 96.9%</summary> |**Name**|**Line**|**Branch**| |:---|---:|---:| |**Shikigami.BlazorAdapter**|**96.9%**|**89.5%**| |Shikigami.BlazorAdapter.BlazorAdapterAssembly|100%|| |Shikigami.BlazorAdapter.Cast.CastActionFailed|100%|| |Shikigami.BlazorAdapter.Cast.CastEffects|93.3%|93.7%| |Shikigami.BlazorAdapter.Cast.CastLoaded|100%|| |Shikigami.BlazorAdapter.Cast.CastReducers|93.3%|50%| |Shikigami.BlazorAdapter.Cast.CastState|100%|100%| |Shikigami.BlazorAdapter.Cast.CreateFamiliarFailed|100%|| |Shikigami.BlazorAdapter.Cast.CreateFamiliarRequested|100%|| |Shikigami.BlazorAdapter.Cast.DuplicateFamiliarRequested|100%|| |Shikigami.BlazorAdapter.Cast.FamiliarAvatar|100%|75%| |Shikigami.BlazorAdapter.Cast.FamiliarCreated|100%|| |Shikigami.BlazorAdapter.Cast.FamiliarLinks|100%|| |Shikigami.BlazorAdapter.Cast.NewFamiliarDialog|97.2%|83.3%| |Shikigami.BlazorAdapter.Cast.PurgeFamiliarRequested|100%|| |Shikigami.BlazorAdapter.Cast.SetFamiliarArchivedRequested|100%|| |Shikigami.BlazorAdapter.Cast.SetFamiliarTrashedRequested|100%|| |Shikigami.BlazorAdapter.Cast.TrashPage|89.4%|93.7%| |Shikigami.BlazorAdapter.EffectCalls|100%|| |Shikigami.BlazorAdapter.Files.ConflictSettled|100%|| |Shikigami.BlazorAdapter.Files.DismissFileError|100%|| |Shikigami.BlazorAdapter.Files.EntryMissing|100%|| |Shikigami.BlazorAdapter.Files.EntryOpened|100%|| |Shikigami.BlazorAdapter.Files.FileActionDone|100%|| |Shikigami.BlazorAdapter.Files.FileActionFailed|100%|| |Shikigami.BlazorAdapter.Files.FileActionRequested|100%|| |Shikigami.BlazorAdapter.Files.FileLinks|100%|100%| |Shikigami.BlazorAdapter.Files.FilePane|95.2%|89.5%| |Shikigami.BlazorAdapter.Files.FilePaneClosed|100%|| |Shikigami.BlazorAdapter.Files.FilePathBreadcrumb|100%|100%| |Shikigami.BlazorAdapter.Files.FilesEffects|98.4%|94.1%| |Shikigami.BlazorAdapter.Files.FilesPage|97.1%|97.3%| |Shikigami.BlazorAdapter.Files.FilesReducers|100%|82%| |Shikigami.BlazorAdapter.Files.FilesState|100%|100%| |Shikigami.BlazorAdapter.Files.FileTreeBranch|100%|100%| |Shikigami.BlazorAdapter.Files.FolderPane|92.7%|85.2%| |Shikigami.BlazorAdapter.Files.JournalOverviewPane|100%|88.8%| |Shikigami.BlazorAdapter.Files.LoadFiles|100%|| |Shikigami.BlazorAdapter.Files.MemoryForm|100%|94.4%| |Shikigami.BlazorAdapter.Files.MemoryOverviewPane|100%|96.1%| |Shikigami.BlazorAdapter.Files.OpenEntry|100%|| |Shikigami.BlazorAdapter.Files.RoutineForm|78.6%|86.4%| |Shikigami.BlazorAdapter.Files.RoutineOverviewPane|100%|94.4%| |Shikigami.BlazorAdapter.Files.SaveLanded|100%|| |Shikigami.BlazorAdapter.Files.SaveRefused|100%|| |Shikigami.BlazorAdapter.Files.SaveText|100%|| |Shikigami.BlazorAdapter.Files.SkillForm|100%|100%| |Shikigami.BlazorAdapter.Files.SkillOverviewPane|96.1%|96.9%| |Shikigami.BlazorAdapter.Files.TreeFailed|100%|| |Shikigami.BlazorAdapter.Files.TreeLoaded|100%|| |Shikigami.BlazorAdapter.Home.HomePage|88.2%|93.7%| |Shikigami.BlazorAdapter.Notifications.CapabilityChangedBridge|100%|| |Shikigami.BlazorAdapter.Notifications.CapabilityChangesReceived|100%|| |Shikigami.BlazorAdapter.Notifications.CoalescingBridge`1|94.4%|80%| |Shikigami.BlazorAdapter.Notifications.DomainChangedBridge|100%|| |Shikigami.BlazorAdapter.Notifications.DomainChangesReceived|100%|100%| |Shikigami.BlazorAdapter.Notifications.FamiliarEventsBridge|100%|| |Shikigami.BlazorAdapter.Notifications.FamiliarEventsReceived|100%|| |Shikigami.BlazorAdapter.Profile.AvatarChosen|100%|| |Shikigami.BlazorAdapter.Profile.AvatarClearRequested|100%|| |Shikigami.BlazorAdapter.Profile.AvatarFailed|100%|| |Shikigami.BlazorAdapter.Profile.AvatarSaved|100%|| |Shikigami.BlazorAdapter.Profile.CreatedWithoutAvatar|100%|| |Shikigami.BlazorAdapter.Profile.ExpressionsEditor|86.6%|88.8%| |Shikigami.BlazorAdapter.Profile.FamiliarProfile|98%|89.6%| |Shikigami.BlazorAdapter.Profile.LoadProfile|100%|| |Shikigami.BlazorAdapter.Profile.PersonaEditor|100%|97.2%| |Shikigami.BlazorAdapter.Profile.PersonaReloaded|100%|| |Shikigami.BlazorAdapter.Profile.PersonaSave|100%|| |Shikigami.BlazorAdapter.Profile.PersonaSaved|100%|| |Shikigami.BlazorAdapter.Profile.PersonaSaveFailed|100%|| |Shikigami.BlazorAdapter.Profile.ProfileEffects|92.9%|85%| |Shikigami.BlazorAdapter.Profile.ProfileLoaded|100%|| |Shikigami.BlazorAdapter.Profile.ProfileMissing|100%|| |Shikigami.BlazorAdapter.Profile.ProfilePage|100%|| |Shikigami.BlazorAdapter.Profile.ProfileReducers|97.3%|53.9%| |Shikigami.BlazorAdapter.Profile.ProfileRefreshed|100%|| |Shikigami.BlazorAdapter.Profile.ProfileState|100%|100%| |Shikigami.BlazorAdapter.Profile.ReloadPersona|100%|| |Shikigami.BlazorAdapter.Profile.RevertSelfRequested|100%|| |Shikigami.BlazorAdapter.Profile.SavePersonaRequested|100%|| |Shikigami.BlazorAdapter.Profile.SaveSettingsRequested|100%|| |Shikigami.BlazorAdapter.Profile.SelfLayer|92.3%|87.5%| |Shikigami.BlazorAdapter.Profile.SettingsSaved|100%|| |Shikigami.BlazorAdapter.Profile.SettingsSaveFailed|100%|| |Shikigami.BlazorAdapter.Settings.BackupFailed|100%|| |Shikigami.BlazorAdapter.Settings.BackupSettingsLoaded|100%|| |Shikigami.BlazorAdapter.Settings.BackupSettingsLoadFailed|100%|| |Shikigami.BlazorAdapter.Settings.BackupsSection|100%|100%| |Shikigami.BlazorAdapter.Settings.BackupsSettingsEffects|100%|| |Shikigami.BlazorAdapter.Settings.BackupsSettingsReducers|100%|| |Shikigami.BlazorAdapter.Settings.BackupsSettingsState|100%|| |Shikigami.BlazorAdapter.Settings.CapabilityFormErrorBoundary|100%|| |Shikigami.BlazorAdapter.Settings.CapabilityOwnerEditor|89.5%|86.2%| |Shikigami.BlazorAdapter.Settings.CapabilitySettingsComponents|100%|100%| |Shikigami.BlazorAdapter.Settings.CapabilitySettingsEffects|100%|90.6%| |Shikigami.BlazorAdapter.Settings.CapabilitySettingsFailed|100%|| |Shikigami.BlazorAdapter.Settings.CapabilitySettingsLoaded|100%|| |Shikigami.BlazorAdapter.Settings.CapabilitySettingsReducers|100%|100%| |Shikigami.BlazorAdapter.Settings.CapabilitySettingsState|100%|| |Shikigami.BlazorAdapter.Settings.ChatAppearanceCss|100%|100%| |Shikigami.BlazorAdapter.Settings.ChatAppearanceEffects|100%|| |Shikigami.BlazorAdapter.Settings.ChatAppearanceLoaded|100%|| |Shikigami.BlazorAdapter.Settings.ChatAppearanceLoadFailed|100%|| |Shikigami.BlazorAdapter.Settings.ChatAppearancePreview|100%|100%| |Shikigami.BlazorAdapter.Settings.ChatAppearanceReducers|100%|100%| |Shikigami.BlazorAdapter.Settings.ChatAppearanceSaved|100%|| |Shikigami.BlazorAdapter.Settings.ChatAppearanceSaveFailed|100%|| |Shikigami.BlazorAdapter.Settings.ChatAppearanceSection|100%|98.6%| |Shikigami.BlazorAdapter.Settings.ChatAppearanceState|100%|| |Shikigami.BlazorAdapter.Settings.DefaultsSection|94.5%|85.7%| |Shikigami.BlazorAdapter.Settings.DefaultsSettingsEffects|100%|| |Shikigami.BlazorAdapter.Settings.DefaultsSettingsReducers|100%|100%| |Shikigami.BlazorAdapter.Settings.DefaultsSettingsState|100%|| |Shikigami.BlazorAdapter.Settings.GeneratedCapabilityForm|92.9%|80.8%| |Shikigami.BlazorAdapter.Settings.LoadCapabilitySettings|100%|| |Shikigami.BlazorAdapter.Settings.LoadProviderSettings|100%|| |Shikigami.BlazorAdapter.Settings.ModelCatalogLoaded|100%|| |Shikigami.BlazorAdapter.Settings.ModelCatalogLoadFailed|100%|| |Shikigami.BlazorAdapter.Settings.ModelDefaultsLoaded|100%|| |Shikigami.BlazorAdapter.Settings.ModelDefaultsLoadFailed|100%|| |Shikigami.BlazorAdapter.Settings.ModelDefaultsSaved|100%|| |Shikigami.BlazorAdapter.Settings.ModelDefaultsSaveFailed|100%|| |Shikigami.BlazorAdapter.Settings.ModelHints|100%|100%| |Shikigami.BlazorAdapter.Settings.ModelPicker|100%|98.2%| |Shikigami.BlazorAdapter.Settings.Money|100%|| |Shikigami.BlazorAdapter.Settings.OpenRouterKeySaved|100%|| |Shikigami.BlazorAdapter.Settings.OpenRouterKeySaveFailed|100%|| |Shikigami.BlazorAdapter.Settings.ProviderKeyChecked|100%|| |Shikigami.BlazorAdapter.Settings.ProviderSection|100%|100%| |Shikigami.BlazorAdapter.Settings.ProviderSettingsEffects|100%|100%| |Shikigami.BlazorAdapter.Settings.ProviderSettingsLoaded|100%|| |Shikigami.BlazorAdapter.Settings.ProviderSettingsReducers|100%|100%| |Shikigami.BlazorAdapter.Settings.ProviderSettingsState|100%|100%| |Shikigami.BlazorAdapter.Settings.SaveChatAppearanceRequested|100%|| |Shikigami.BlazorAdapter.Settings.SaveModelDefaultsRequested|100%|| |Shikigami.BlazorAdapter.Settings.SaveOpenRouterKeyRequested|100%|| |Shikigami.BlazorAdapter.Settings.SettingsPage|100%|100%| |Shikigami.BlazorAdapter.Settings.ToolGroupsSection|93.6%|80.8%| |Shikigami.BlazorAdapter.Shell.CastRail|100%|100%| |Shikigami.BlazorAdapter.Workspace.FamiliarArtwork|100%|100%| |Shikigami.BlazorAdapter.Workspace.FamiliarConfigurationHost|100%|100%| |Shikigami.BlazorAdapter.Workspace.FamiliarPresence|86.9%|90%| |Shikigami.BlazorAdapter.Workspace.FamiliarWorkspaceContext|100%|100%| |Shikigami.BlazorAdapter.Workspace.LacquerHeader|84.6%|100%| |Shikigami.BlazorAdapter.Workspace.WorkspacePage|100%|100%| |Shikigami.BlazorAdapter.Workspace.WorkspaceSectionPicker|100%|87.5%| </details> <details><summary>Shikigami.Capabilities.Contracts - 92.7%</summary> |**Name**|**Line**|**Branch**| |:---|---:|---:| |**Shikigami.Capabilities.Contracts**|**92.7%**|**92.7%**| |Shikigami.Capabilities.Contracts.CapabilityAssetContent|100%|| |Shikigami.Capabilities.Contracts.CapabilityBackgroundDefinition|100%|| |Shikigami.Capabilities.Contracts.CapabilityCheckResult|100%|| |Shikigami.Capabilities.Contracts.CapabilityContext|100%|| |Shikigami.Capabilities.Contracts.CapabilityDefinition|100%|100%| |Shikigami.Capabilities.Contracts.CapabilityEntry|100%|| |Shikigami.Capabilities.Contracts.CapabilityError|100%|| |Shikigami.Capabilities.Contracts.CapabilityFile|100%|| |Shikigami.Capabilities.Contracts.CapabilityListing|100%|| |Shikigami.Capabilities.Contracts.CapabilityMount|100%|100%| |Shikigami.Capabilities.Contracts.CapabilityName|100%|| |Shikigami.Capabilities.Contracts.CapabilityPublication|100%|| |Shikigami.Capabilities.Contracts.CapabilityPublicationReceipt|100%|| |Shikigami.Capabilities.Contracts.CapabilityRegistration|100%|100%| |Shikigami.Capabilities.Contracts.CapabilityResult`1|100%|| |Shikigami.Capabilities.Contracts.CapabilitySetting|100%|100%| |Shikigami.Capabilities.Contracts.CapabilitySettingCollection|100%|100%| |Shikigami.Capabilities.Contracts.CapabilitySettingItem|100%|| |Shikigami.Capabilities.Contracts.CapabilitySettingProblem|100%|| |Shikigami.Capabilities.Contracts.CapabilitySignal|100%|| |Shikigami.Capabilities.Contracts.CapabilityStatusItem|100%|| |Shikigami.Capabilities.Contracts.CapabilityStorageDefinition|100%|| |Shikigami.Capabilities.Contracts.CapabilityStoragePreparation|100%|| |Shikigami.Capabilities.Contracts.CapabilityText|100%|100%| |Shikigami.Capabilities.Contracts.CapabilityTool|100%|| |Shikigami.Capabilities.Contracts.CapabilityToolResult|100%|| |Shikigami.Capabilities.Contracts.CapabilityValidationProblem|100%|| |Shikigami.Capabilities.Contracts.ICapabilitySettings|0%|| |Shikigami.Capabilities.Contracts.MountAccessRule|100%|| |System.Text.RegularExpressions.Generated|84.6%|85.4%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FB478E59CB1F8F91<br/>095F32B47EDE23CC9FACABF076C6AA6737588D398F5DE6EDB__ItemKey_0|92.7%|90.4%| </details> <details><summary>Shikigami.Capabilities.TestFixture - 94.1%</summary> |**Name**|**Line**|**Branch**| |:---|---:|---:| |**Shikigami.Capabilities.TestFixture**|**94.1%**|**93.3%**| |Shikigami.Capabilities.TestFixture.BinaryFixtureProvider|72.7%|87.5%| |Shikigami.Capabilities.TestFixture.BinaryFixtureState|100%|| |Shikigami.Capabilities.TestFixture.CollectionFixtureCheck|100%|| |Shikigami.Capabilities.TestFixture.CollectionFixtureIdentity|100%|| |Shikigami.Capabilities.TestFixture.CollectionFixtureModule|100%|| |Shikigami.Capabilities.TestFixture.CollectionFixtureObservation|100%|| |Shikigami.Capabilities.TestFixture.CollectionFixtureState|100%|| |Shikigami.Capabilities.TestFixture.CollectionFixtureStorage|64.2%|50%| |Shikigami.Capabilities.TestFixture.CollectionFixtureValidator|100%|100%| |Shikigami.Capabilities.TestFixture.FixtureHandler|100%|| |Shikigami.Capabilities.TestFixture.FixtureModule|100%|100%| |Shikigami.Capabilities.TestFixture.FixtureProvider|92.5%|90.4%| |Shikigami.Capabilities.TestFixture.FixtureState|100%|| |Shikigami.Capabilities.TestFixture.FixtureValidator|100%|100%| |Shikigami.Capabilities.TestFixture.SettingsFixtureHandler|100%|| |Shikigami.Capabilities.TestFixture.SettingsFixtureModule|100%|100%| |Shikigami.Capabilities.TestFixture.SettingsFixtureProvider|100%|100%| |Shikigami.Capabilities.TestFixture.SettingsFixtureState|100%|| |Shikigami.Capabilities.TestFixture.SettingsFixtureValidator|100%|100%| </details> <details><summary>Shikigami.Capabilities.TestFixture.UI - 91.8%</summary> |**Name**|**Line**|**Branch**| |:---|---:|---:| |**Shikigami.Capabilities.TestFixture.UI**|**91.8%**|**79%**| |Shikigami.Capabilities.TestFixture.UI.CollectionFixtureForm|90.4%|80%| |Shikigami.Capabilities.TestFixture.UI.FixtureSettingsForm|100%|66.6%| </details> <details><summary>Shikigami.Capabilities.UI.Contracts - 94.1%</summary> |**Name**|**Line**|**Branch**| |:---|---:|---:| |**Shikigami.Capabilities.UI.Contracts**|**94.1%**|**50%**| |Shikigami.Capabilities.UI.Contracts.CapabilitySettingsComponent|100%|| |Shikigami.Capabilities.UI.Contracts.CapabilitySettingsComponentRegistration|88.8%|50%| |Shikigami.Capabilities.UI.Contracts.CapabilitySettingsUiRegistration|100%|| |Shikigami.Capabilities.UI.Contracts.SecretChange|75%|| |Shikigami.Capabilities.UI.Contracts.SettingsAsset|100%|| |Shikigami.Capabilities.UI.Contracts.SettingsAssetResult|100%|| |Shikigami.Capabilities.UI.Contracts.SettingsCheckResult|100%|| |Shikigami.Capabilities.UI.Contracts.SettingsItem|100%|| |Shikigami.Capabilities.UI.Contracts.SettingsItemChange|100%|| |Shikigami.Capabilities.UI.Contracts.SettingsItemStatus|100%|| |Shikigami.Capabilities.UI.Contracts.SettingsProblem|100%|| |Shikigami.Capabilities.UI.Contracts.SettingsSaveResult|100%|| |Shikigami.Capabilities.UI.Contracts.SettingsView|100%|| </details> <details><summary>Shikigami.Capabilities.Web - 97.1%</summary> |**Name**|**Line**|**Branch**| |:---|---:|---:| |**Shikigami.Capabilities.Web**|**97.1%**|**90.9%**| |Shikigami.Capabilities.Web.Content.HtmlTextExtractor|100%|92.4%| |Shikigami.Capabilities.Web.Content.ReadableDocument|100%|| |Shikigami.Capabilities.Web.Content.WebDocumentPublisher|100%|94.4%| |Shikigami.Capabilities.Web.Content.WebText|100%|87.5%| |Shikigami.Capabilities.Web.Fetch.GuardedWebTransport|92.6%|83.9%| |Shikigami.Capabilities.Web.Fetch.WebAddressPolicy|100%|96.4%| |Shikigami.Capabilities.Web.Fetch.WebCompression|97.1%|96%| |Shikigami.Capabilities.Web.Fetch.WebNetwork|66.6%|0%| |Shikigami.Capabilities.Web.Fetch.WebResponse|100%|| |Shikigami.Capabilities.Web.Search.SearchHit|100%|| |Shikigami.Capabilities.Web.Search.SearchResults|100%|| |Shikigami.Capabilities.Web.Search.SearxngSearchProvider|97.1%|91.6%| |Shikigami.Capabilities.Web.Tools.WebFetchTool|100%|87.5%| |Shikigami.Capabilities.Web.Tools.WebSearchTool|100%|95.4%| |Shikigami.Capabilities.Web.Tools.WebTool|100%|50%| |Shikigami.Capabilities.Web.WebFailure|100%|| |Shikigami.Capabilities.Web.WebLimits|100%|| |Shikigami.Capabilities.Web.WebModule|100%|100%| |Shikigami.Capabilities.Web.WebOptions|90.9%|70%| |Shikigami.Capabilities.Web.WebSettingsValidator|62.5%|100%| |System.Text.RegularExpressions.Generated|100%|| </details> <details><summary>Shikigami.Domain - 98.2%</summary> |**Name**|**Line**|**Branch**| |:---|---:|---:| |**Shikigami.Domain**|**98.2%**|**91.8%**| |Shikigami.Domain.Familiars.AccentPalette|100%|| |Shikigami.Domain.Familiars.ColourPair|100%|100%| |Shikigami.Domain.Familiars.Expression|100%|100%| |Shikigami.Domain.Familiars.ExpressionSet|100%|100%| |Shikigami.Domain.Familiars.Familiar|100%|90.2%| |Shikigami.Domain.Familiars.LearningSettings|100%|| |Shikigami.Domain.Familiars.MemoryBudgets|100%|100%| |Shikigami.Domain.Familiars.ModelChoice|100%|100%| |Shikigami.Domain.Familiars.OutreachSettings|100%|100%| |Shikigami.Domain.Familiars.QuietHours|100%|87.5%| |Shikigami.Domain.Files.BlobContent|100%|75%| |Shikigami.Domain.Files.BlobSha|87.5%|100%| |Shikigami.Domain.Files.DefaultLayout|100%|| |Shikigami.Domain.Files.FileActor|100%|| |Shikigami.Domain.Files.FileAuthor|100%|100%| |Shikigami.Domain.Files.FileContent|100%|100%| |Shikigami.Domain.Files.FileNode|100%|90%| |Shikigami.Domain.Files.FilePath|100%|97.8%| |Shikigami.Domain.Files.FilePublication|100%|| |Shikigami.Domain.Files.FilePublicationStamp|100%|| |Shikigami.Domain.Files.FileRevision|100%|87.5%| |Shikigami.Domain.Files.LedgerScope|100%|100%| |Shikigami.Domain.Files.LocalDates|100%|| |Shikigami.Domain.Files.MediaTypes|100%|100%| |Shikigami.Domain.Files.Permissions|100%|100%| |Shikigami.Domain.Files.ReadLedgerEntry|100%|86.3%| |Shikigami.Domain.Files.RunActor|100%|100%| |Shikigami.Domain.Files.Slug|100%|100%| |Shikigami.Domain.Files.TextContent|100%|100%| |Shikigami.Domain.Files.TrashPath|100%|100%| |Shikigami.Domain.Routines.RoutineSchedule|94.4%|89.8%| |Shikigami.Domain.Settings.AppSetting|100%|| |Shikigami.Domain.Settings.CapabilityConfiguration|100%|100%| |Shikigami.Domain.Settings.CapabilityCredential|100%|| |Shikigami.Domain.Settings.CapabilitySettingValue|100%|| |Shikigami.Domain.Text|100%|100%| |System.Text.RegularExpressions.Generated|96.2%|85.2%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FDFEB299C15773C7<br/>916AED265A903CAC15169BB5EE676ADBEFE655D493DD7AC75__Hex_0|94.8%|67.8%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FDFEB299C15773C7<br/>916AED265A903CAC15169BB5EE676ADBEFE655D493DD7AC75__Hex_2|96.8%|93.7%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FDFEB299C15773C7<br/>916AED265A903CAC15169BB5EE676ADBEFE655D493DD7AC75__MediaTypeShape_3|95.9%|92.1%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FDFEB299C15773C7<br/>916AED265A903CAC15169BB5EE676ADBEFE655D493DD7AC75__NamePattern_1|97.2%|94.4%| </details> <details><summary>Shikigami.Infrastructure - 90.2%</summary> |**Name**|**Line**|**Branch**| |:---|---:|---:| |**Shikigami.Infrastructure**|**90.2%**|**63.4%**| |Shikigami.Infrastructure.Backups.BackupArtifactName|100%|100%| |Shikigami.Infrastructure.Backups.BackupOptions|100%|| |Shikigami.Infrastructure.Backups.BackupSchedule|100%|83.3%| |Shikigami.Infrastructure.Backups.BackupScheduler|96.6%|87.5%| |Shikigami.Infrastructure.Backups.BackupWriter|97.2%|93.4%| |Shikigami.Infrastructure.Backups.DatabaseFingerprint|91.9%|97%| |Shikigami.Infrastructure.Backups.FileSystemBackupStore|100%|100%| |Shikigami.Infrastructure.Backups.OwnerOnlyFile|100%|100%| |Shikigami.Infrastructure.Backups.PreMigrationBackup|90.1%|100%| |Shikigami.Infrastructure.Backups.SqliteSnapshot|88.2%|75%| |Shikigami.Infrastructure.Blobs.BlobSweep|100%|100%| |Shikigami.Infrastructure.Blobs.BlobSweepOptions|100%|100%| |Shikigami.Infrastructure.Blobs.BlobSweepResult|100%|| |Shikigami.Infrastructure.Blobs.FileSystemBlobStore|95.9%|97%| |Shikigami.Infrastructure.Browser.BrowserCommand|100%|| |Shikigami.Infrastructure.Browser.BrowserHost|94.1%|92.7%| |Shikigami.Infrastructure.Browser.BrowserHostOptions|100%|| |Shikigami.Infrastructure.Browser.BrowserHostProbe|0%|0%| |Shikigami.Infrastructure.Browser.BrowserIdleService|63.6%|50%| |Shikigami.Infrastructure.Browser.BrowserJpeg|0%|| |Shikigami.Infrastructure.Browser.BrowserLaunchException|0%|| |Shikigami.Infrastructure.Browser.BrowserOperationRequest|100%|| |Shikigami.Infrastructure.Browser.BrowserOperationResult|100%|| |Shikigami.Infrastructure.Browser.BrowserOperationsProbe|0%|0%| |Shikigami.Infrastructure.Browser.BrowserOutputScrubber|100%|100%| |Shikigami.Infrastructure.Browser.BrowserPageDocument|0%|| |Shikigami.Infrastructure.Browser.BrowserPageOperations|0%|0%| |Shikigami.Infrastructure.Browser.BrowserPageSnapshot|0%|| |Shikigami.Infrastructure.Browser.BrowserProfile|98.4%|86.3%| |Shikigami.Infrastructure.Browser.BrowserReply|100%|| |Shikigami.Infrastructure.Browser.BrowserSnapshotReferences|100%|100%| |Shikigami.Infrastructure.Browser.BrowserWorker|0%|0%| |Shikigami.Infrastructure.Browser.BrowserWorkerFactory|5.2%|0%| |Shikigami.Infrastructure.Browser.BrowserWorkerProcess|81.2%|80%| |Shikigami.Infrastructure.Browser.LinuxProcessGroups|88.8%|92.8%| |Shikigami.Infrastructure.Capabilities.CapabilityContribution|100%|| |Shikigami.Infrastructure.Capabilities.CapabilityStartup|100%|100%| |Shikigami.Infrastructure.Capabilities.CapabilityStorageHost|93.7%|83.8%| |Shikigami.Infrastructure.Capabilities.CapabilityStorageOptions|100%|| |Shikigami.Infrastructure.Capabilities.PrivatePaths|97.4%|83.3%| |Shikigami.Infrastructure.DailyMaintenanceService|97.8%|91.6%| |Shikigami.Infrastructure.DependencyInjection|100%|100%| |Shikigami.Infrastructure.Notifications.InProcessBus`1|100%|100%| |Shikigami.Infrastructure.Persistence.Configurations.AppSettingConfiguration|100%|| |Shikigami.Infrastructure.Persistence.Configurations.CapabilityConfiguration<br/>Mapping|100%|| |Shikigami.Infrastructure.Persistence.Configurations.CapabilityCredentialMap<br/>ping|100%|| |Shikigami.Infrastructure.Persistence.Configurations.CapabilitySettingValueM<br/>apping|100%|| |Shikigami.Infrastructure.Persistence.Configurations.FamiliarConfiguration|100%|| |Shikigami.Infrastructure.Persistence.Configurations.FileNodeConfiguration|100%|| |Shikigami.Infrastructure.Persistence.Configurations.FilePublicationMapping|100%|| |Shikigami.Infrastructure.Persistence.Configurations.FileRevisionConfigurati<br/>on|100%|| |Shikigami.Infrastructure.Persistence.Configurations.ReadLedgerEntryConfigur<br/>ation|100%|| |Shikigami.Infrastructure.Persistence.Configurations.UnreferencedBlobConfigu<br/>ration|100%|| |Shikigami.Infrastructure.Persistence.Converters.BlobShaConverter|100%|| |Shikigami.Infrastructure.Persistence.Converters.ExpressionSetConverter|100%|100%| |Shikigami.Infrastructure.Persistence.Converters.FilePathConverter|100%|| |Shikigami.Infrastructure.Persistence.Converters.Json|100%|100%| |Shikigami.Infrastructure.Persistence.Converters.OutreachSettingsConverter|100%|100%| |Shikigami.Infrastructure.Persistence.Converters.UtcTicksConverter|100%|| |Shikigami.Infrastructure.Persistence.DatabaseMigrator|100%|| |Shikigami.Infrastructure.Persistence.Migrations.AppSettings|100%|| |Shikigami.Infrastructure.Persistence.Migrations.ArtifactRetention|100%|| |Shikigami.Infrastructure.Persistence.Migrations.CapabilityConfigurations|100%|| |Shikigami.Infrastructure.Persistence.Migrations.CapabilityPublicationReceip<br/>ts|100%|| |Shikigami.Infrastructure.Persistence.Migrations.CapabilityPurgeIntent|100%|| |Shikigami.Infrastructure.Persistence.Migrations.FileCreatedBy|98%|| |Shikigami.Infrastructure.Persistence.Migrations.Initial|97.9%|| |Shikigami.Infrastructure.Persistence.Migrations.Profile|96.2%|| |Shikigami.Infrastructure.Persistence.Migrations.ReadLedger|100%|| |Shikigami.Infrastructure.Persistence.Migrations.ShikigamiDbContextModelSnap<br/>shot|100%|| |Shikigami.Infrastructure.Persistence.Migrations.TrashDirectoryMadeFor|100%|| |Shikigami.Infrastructure.Persistence.ShikigamiDbContext|98.8%|100%| |Shikigami.Infrastructure.Persistence.ShikigamiDbContextFactory|0%|| |Shikigami.Infrastructure.Persistence.SqlitePragmaInterceptor|100%|100%| |Shikigami.Infrastructure.Persistence.Stores.EfFamiliarStore|100%|88.7%| |Shikigami.Infrastructure.Persistence.Stores.EfFileStore|98.7%|100%| |Shikigami.Infrastructure.Persistence.Stores.EfReadLedgerStore|98.4%|100%| |Shikigami.Infrastructure.Persistence.UnreferencedBlob|100%|| |Shikigami.Infrastructure.Provider.OpenRouterKeySource|100%|100%| |Shikigami.Infrastructure.Provider.OpenRouterModelProvider|100%|93.4%| |Shikigami.Infrastructure.Provider.OpenRouterOptions|100%|50%| |Shikigami.Infrastructure.Provider.ResolvedKey|100%|50%| |Shikigami.Infrastructure.Settings.EfAppSettingsStore|100%|100%| |Shikigami.Infrastructure.Settings.EfCapabilityConfigurationStore|100%|100%| |Shikigami.Infrastructure.Settings.KeyRingSnapshots|100%|100%| |Shikigami.Infrastructure.Settings.ProtectedCapabilityAssetReferences|87.5%|50%| |System.Text.RegularExpressions.Generated|69.2%|60.7%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>F3A4F28468B24E9C<br/>234D40E1D5003482F41439E482AB211B6EAD2E13F0A9D40B0__Id_3|81.2%|63.3%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>F3A4F28468B24E9C<br/>234D40E1D5003482F41439E482AB211B6EAD2E13F0A9D40B0__NativeReference_2|91.1%|89.4%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>F3A4F28468B24E9C<br/>234D40E1D5003482F41439E482AB211B6EAD2E13F0A9D40B0__Pattern_0|84%|65.7%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>F3A4F28468B24E9C<br/>234D40E1D5003482F41439E482AB211B6EAD2E13F0A9D40B0__RefPattern_1|0%|0%| </details> <details><summary>Shikigami.Kernel - 90.9%</summary> |**Name**|**Line**|**Branch**| |:---|---:|---:| |**Shikigami.Kernel**|**90.9%**|**75%**| |Shikigami.Kernel.Err`1|100%|| |Shikigami.Kernel.Ok`1|100%|| |Shikigami.Kernel.Result`1|88.8%|75%| </details> <details><summary>Shikigami.Server - 80.3%</summary> |**Name**|**Line**|**Branch**| |:---|---:|---:| |**Shikigami.Server**|**80.3%**|**72.3%**| |Program|95.2%|82.1%| |Shikigami.Server.Backups.BackupConfiguration|100%|100%| |Shikigami.Server.Components.App|100%|| |Shikigami.Server.Components.Layout.AppHeader|100%|78.5%| |Shikigami.Server.Components.Layout.MainLayout|100%|100%| |Shikigami.Server.Components.Pages.Gate|100%|100%| |Shikigami.Server.Diagnostics.BrowserHostCheck|0%|0%| |Shikigami.Server.Diagnostics.BrowserOperationsFixtures|0%|0%| |Shikigami.Server.Diagnostics.CapabilitySample|93.4%|75.8%| |Shikigami.Server.Diagnostics.SampleSettingsForm|77.4%|64.8%| |Shikigami.Server.Diagnostics.SeedOnStart|100%|100%| |Shikigami.Server.Diagnostics.WebSample|96.6%|69.4%| |Shikigami.Server.Presentation.WorkspaceAppearance|100%|100%| |Shikigami.Server.Provider.OpenRouterConfiguration|100%|100%| |Shikigami.Server.Security.AccessGate|100%|87.5%| |Shikigami.Server.Security.AccessSecret|100%|100%| |Shikigami.Server.Security.CoordinatedKeyRing|100%|| |Shikigami.Server.Security.GateThrottle|100%|100%| |Shikigami.Server.Security.ProxyNetwork|100%|100%| |Shikigami.Server.VolumeStartupValidator|100%|100%| </details> <details><summary>Shikigami.UseCases - 96.3%</summary> |**Name**|**Line**|**Branch**| |:---|---:|---:| |**Shikigami.UseCases**|**96.3%**|**93.6%**| |Shikigami.UseCases.Backups.BackupArtifact|100%|| |Shikigami.UseCases.Backups.BackupFailure|100%|| |Shikigami.UseCases.Backups.BackupJobState|100%|| |Shikigami.UseCases.Backups.BackupPolicy|100%|| |Shikigami.UseCases.Backups.BackupStatusView|100%|100%| |Shikigami.UseCases.Backups.DatabaseSnapshot|100%|| |Shikigami.UseCases.Backups.DownloadDatabaseSnapshot|100%|| |Shikigami.UseCases.Backups.GetBackupStatus|100%|| |Shikigami.UseCases.Backups.IBackupStore|0%|| |Shikigami.UseCases.Backups.RunBackupNow|100%|| |Shikigami.UseCases.Browser.BrowserLease|100%|| |Shikigami.UseCases.Browser.BrowserOwner|100%|| |Shikigami.UseCases.Capabilities.BoundCapabilityAssets|100%|100%| |Shikigami.UseCases.Capabilities.BoundCapabilityChanges|95.6%|70%| |Shikigami.UseCases.Capabilities.BoundCapabilityFiles|95.5%|80.3%| |Shikigami.UseCases.Capabilities.BoundCapabilityPrivateStorage|100%|100%| |Shikigami.UseCases.Capabilities.BoundCapabilitySettings|94.4%|88.4%| |Shikigami.UseCases.Capabilities.BoundCapabilityStatus|100%|100%| |Shikigami.UseCases.Capabilities.CapabilityAssetChoice|100%|| |Shikigami.UseCases.Capabilities.CapabilityAssetReference|100%|| |Shikigami.UseCases.Capabilities.CapabilityAssetResult|100%|| |Shikigami.UseCases.Capabilities.CapabilityAssets|96.7%|86.6%| |Shikigami.UseCases.Capabilities.CapabilityBackgroundHealth|100%|| |Shikigami.UseCases.Capabilities.CapabilityBinding|100%|83.3%| |Shikigami.UseCases.Capabilities.CapabilityChanged|100%|| |Shikigami.UseCases.Capabilities.CapabilityCheckOutcome|100%|| |Shikigami.UseCases.Capabilities.CapabilityConfigurationCommit|100%|| |Shikigami.UseCases.Capabilities.CapabilityConfigurationData|100%|| |Shikigami.UseCases.Capabilities.CapabilityConfigurationProblem|100%|| |Shikigami.UseCases.Capabilities.CapabilityConfigurationResult|100%|| |Shikigami.UseCases.Capabilities.CapabilityConfigurations|99.5%|98.9%| |Shikigami.UseCases.Capabilities.CapabilityConfigurationView|100%|| |Shikigami.UseCases.Capabilities.CapabilityContexts|90%|91.6%| |Shikigami.UseCases.Capabilities.CapabilityHealth|100%|| |Shikigami.UseCases.Capabilities.CapabilityItemChange|100%|| |Shikigami.UseCases.Capabilities.CapabilityItemEdit|100%|| |Shikigami.UseCases.Capabilities.CapabilityItemKeys|100%|100%| |Shikigami.UseCases.Capabilities.CapabilityItemStatusView|100%|| |Shikigami.UseCases.Capabilities.CapabilityItemView|100%|| |Shikigami.UseCases.Capabilities.CapabilityNames|100%|100%| |Shikigami.UseCases.Capabilities.CapabilityPrivateMutation|100%|100%| |Shikigami.UseCases.Capabilities.CapabilityRegistry|96.5%|90.9%| |Shikigami.UseCases.Capabilities.CapabilityRuntime|99.1%|91.5%| |Shikigami.UseCases.Capabilities.CapabilityScopes|100%|83.3%| |Shikigami.UseCases.Capabilities.CapabilitySecret|75%|| |Shikigami.UseCases.Capabilities.CapabilitySecretEdit|100%|| |Shikigami.UseCases.Capabilities.CapabilitySettingRules|100%|97.9%| |Shikigami.UseCases.Capabilities.CapabilityStatusText|98%|97.9%| |Shikigami.UseCases.Capabilities.CapabilitySupervisionLog|100%|100%| |Shikigami.UseCases.Capabilities.CapabilityUnavailableException|100%|| |Shikigami.UseCases.Capabilities.InvokeCapabilityTool|100%|93.3%| |Shikigami.UseCases.Capabilities.SupervisedCapability|100%|| |Shikigami.UseCases.Capabilities.ToolSchemas|86.8%|72.7%| |Shikigami.UseCases.Capabilities.UnsupportedCapabilitySignals|100%|| |Shikigami.UseCases.DependencyInjection|100%|| |Shikigami.UseCases.Diagnostics.SeedDevData|93.2%|50%| |Shikigami.UseCases.Familiars.AvatarImage|100%|| |Shikigami.UseCases.Familiars.ClearFamiliarAvatar|100%|| |Shikigami.UseCases.Familiars.CreateFamiliar|97.4%|66.6%| |Shikigami.UseCases.Familiars.DuplicateFamiliar|96.7%|91.6%| |Shikigami.UseCases.Familiars.ExpressionView|100%|| |Shikigami.UseCases.Familiars.FamiliarDetail|100%|| |Shikigami.UseCases.Familiars.FamiliarEvent|100%|| |Shikigami.UseCases.Familiars.FamiliarFiles|100%|100%| |Shikigami.UseCases.Familiars.FamiliarLimits|71.4%|| |Shikigami.UseCases.Familiars.FamiliarPersona|96.8%|90%| |Shikigami.UseCases.Familiars.FamiliarSettings|100%|100%| |Shikigami.UseCases.Familiars.FamiliarSummary|100%|100%| |Shikigami.UseCases.Familiars.FamiliarTemplates|100%|100%| |Shikigami.UseCases.Familiars.FamiliarViews|100%|94.4%| |Shikigami.UseCases.Familiars.GetFamiliar|100%|100%| |Shikigami.UseCases.Familiars.IFamiliarStore|0%|| |Shikigami.UseCases.Familiars.ListFamiliars|100%|| |Shikigami.UseCases.Familiars.PersonaFile|100%|| |Shikigami.UseCases.Familiars.PurgeFamiliar|90%|| |Shikigami.UseCases.Familiars.ReadFamiliarAvatar|100%|87.5%| |Shikigami.UseCases.Familiars.SaveFamiliarSettings|96.2%|95.4%| |Shikigami.UseCases.Familiars.SelfRevision|100%|| |Shikigami.UseCases.Familiars.SetFamiliarArchived|100%|100%| |Shikigami.UseCases.Familiars.SetFamiliarAvatar|100%|100%| |Shikigami.UseCases.Familiars.SetFamiliarTrashed|100%|100%| |Shikigami.UseCases.Familiars.ToolGroupCatalog|66.6%|| |Shikigami.UseCases.Familiars.ToolGroupInfo|100%|| |Shikigami.UseCases.Files.BoundedStreamCopy|100%|100%| |Shikigami.UseCases.Files.Browser.FileBrowser|95.1%|90.9%| |Shikigami.UseCases.Files.Browser.FileBytes|100%|| |Shikigami.UseCases.Files.Browser.FileItem|100%|| |Shikigami.UseCases.Files.Browser.FileOk`1|100%|| |Shikigami.UseCases.Files.Browser.FileRefusal|100%|| |Shikigami.UseCases.Files.Browser.FileRefused`1|100%|| |Shikigami.UseCases.Files.Browser.FileRevisionView|100%|| |Shikigami.UseCases.Files.Browser.FileView|100%|| |Shikigami.UseCases.Files.Browser.JournalOverview|100%|| |Shikigami.UseCases.Files.Browser.JournalOverviewEntry|100%|| |Shikigami.UseCases.Files.Browser.MemoryBudget|100%|| |Shikigami.UseCases.Files.Browser.MemoryBudgetUse|100%|| |Shikigami.UseCases.Files.Browser.MemoryDraft|100%|| |Shikigami.UseCases.Files.Browser.MemoryOverview|100%|| |Shikigami.UseCases.Files.Browser.MemoryOverviewEntry|100%|| |Shikigami.UseCases.Files.Browser.MemoryOverviewLimits|100%|| |Shikigami.UseCases.Files.Browser.RoutineDraft|100%|| |Shikigami.UseCases.Files.Browser.RoutineForms|89.5%|80.8%| |Shikigami.UseCases.Files.Browser.RoutineOverview|100%|| |Shikigami.UseCases.Files.Browser.RoutineOverviewEntry|100%|| |Shikigami.UseCases.Files.Browser.RoutinePreview|100%|| |Shikigami.UseCases.Files.Browser.SkillOverview|100%|| |Shikigami.UseCases.Files.Browser.SkillOverviewEntry|100%|| |Shikigami.UseCases.Files.Browser.SkillRequirement|100%|| |Shikigami.UseCases.Files.Browser.SkillView|100%|| |Shikigami.UseCases.Files.Browser.SpecialForms|98.5%|91.4%| |Shikigami.UseCases.Files.Expectation|100%|100%| |Shikigami.UseCases.Files.FamiliarWriteLocks|100%|100%| |Shikigami.UseCases.Files.FileAuthors|100%|100%| |Shikigami.UseCases.Files.FileMaintenance|100%|86.3%| |Shikigami.UseCases.Files.FileMaintenanceResult|100%|| |Shikigami.UseCases.Files.FilePublicationReplay|100%|| |Shikigami.UseCases.Files.FileSystem|98.6%|96.3%| |Shikigami.UseCases.Files.FileWriteRefused|100%|| |Shikigami.UseCases.Files.FileWritten|100%|| |Shikigami.UseCases.Files.FsError|100%|75%| |Shikigami.UseCases.Files.FsResult`1|100%|50%| |Shikigami.UseCases.Files.Ledger.ConflictReport|98.8%|89.6%| |Shikigami.UseCases.Files.Ledger.LedgerChange|100%|| |Shikigami.UseCases.Files.Ledger.LedgerEntry|100%|| |Shikigami.UseCases.Files.Ledger.LedgerOperand|100%|| |Shikigami.UseCases.Files.Ledger.LedgerRead|100%|| |Shikigami.UseCases.Files.Ledger.LiveMove|100%|| |Shikigami.UseCases.Files.Ledger.ReadLedger|96.4%|93.7%| |Shikigami.UseCases.Files.Ledger.ReadLedgerRules|100%|96.9%| |Shikigami.UseCases.Files.Ledger.RunChange|100%|| |Shikigami.UseCases.Files.Ledger.RunFiles|100%|97.3%| |Shikigami.UseCases.Files.Ledger.RunScope|100%|100%| |Shikigami.UseCases.Files.LedgerRefusal|100%|100%| |Shikigami.UseCases.Files.Mounts.CapabilityMountAdapter|86.2%|78.6%| |Shikigami.UseCases.Files.Mounts.FileEntry|100%|| |Shikigami.UseCases.Files.Mounts.FileRead|100%|| |Shikigami.UseCases.Files.Mounts.GeneratedMount|100%|100%| |Shikigami.UseCases.Files.Mounts.Mount|100%|100%| |Shikigami.UseCases.Files.Mounts.MountTable|100%|92.3%| |Shikigami.UseCases.Files.Mounts.MountTables|100%|100%| |Shikigami.UseCases.Files.Mounts.StoredMount|100%|100%| |Shikigami.UseCases.Files.MoveOutcome|100%|| |Shikigami.UseCases.Files.SeedDefaultLayout|100%|100%| |Shikigami.UseCases.Files.Special.Budgets|100%|96.6%| |Shikigami.UseCases.Files.Special.FrontMatter|100%|86.2%| |Shikigami.UseCases.Files.Special.HeaderReader|100%|87.8%| |Shikigami.UseCases.Files.Special.HeaderValue|100%|100%| |Shikigami.UseCases.Files.Special.HeaderWriter|96%|90.6%| |Shikigami.UseCases.Files.Special.MemoryFile|100%|87.5%| |Shikigami.UseCases.Files.Special.MemoryUse|100%|| |Shikigami.UseCases.Files.Special.Numbers|100%|| |Shikigami.UseCases.Files.Special.RoutineFile|100%|99.1%| |Shikigami.UseCases.Files.Special.SkillFile|100%|95.2%| |Shikigami.UseCases.Files.Special.SpecialFolders|100%|100%| |Shikigami.UseCases.Files.Special.ValidationProblem|100%|| |Shikigami.UseCases.Files.StoredBlob|100%|| |Shikigami.UseCases.Files.Utf8Order|100%|| |Shikigami.UseCases.MutationAdmission|100%|100%| |Shikigami.UseCases.Notifications.DomainChanged|100%|| |Shikigami.UseCases.Settings.AppearanceColour|100%|100%| |Shikigami.UseCases.Settings.CatalogModel|100%|100%| |Shikigami.UseCases.Settings.ChatAppearance|100%|| |Shikigami.UseCases.Settings.ChatAppearanceJson|100%|100%| |Shikigami.UseCases.Settings.ChatAppearanceLimits|100%|100%| |Shikigami.UseCases.Settings.CheckOpenRouterKey|100%|| |Shikigami.UseCases.Settings.GetChatAppearance|100%|| |Shikigami.UseCases.Settings.GetModelCatalog|100%|100%| |Shikigami.UseCases.Settings.GetModelDefaults|100%|83.3%| |Shikigami.UseCases.Settings.GetProviderSettings|100%|| |Shikigami.UseCases.Settings.ModelCatalog|100%|| |Shikigami.UseCases.Settings.ModelDefaults|100%|100%| |Shikigami.UseCases.Settings.ProviderKeyInfo|100%|| |Shikigami.UseCases.Settings.ProviderKeyState|100%|| |Shikigami.UseCases.Settings.ProviderSettingsView|100%|100%| |Shikigami.UseCases.Settings.RemoveOpenRouterKey|100%|| |Shikigami.UseCases.Settings.SaveChatAppearance|100%|100%| |Shikigami.UseCases.Settings.SaveModelDefaults|100%|100%| |Shikigami.UseCases.Settings.SaveOpenRouterKey|100%|100%| |Shikigami.UseCases.Shell.AllowEveryCommand|100%|| |Shikigami.UseCases.Shell.Commands.Basename|100%|100%| |Shikigami.UseCases.Shell.Commands.Builtin|100%|100%| |Shikigami.UseCases.Shell.Commands.Cat|98.4%|94.7%| |Shikigami.UseCases.Shell.Commands.Cd|97.5%|100%| |Shikigami.UseCases.Shell.Commands.CFormat|100%|100%| |Shikigami.UseCases.Shell.Commands.CNumbers|100%|100%| |Shikigami.UseCases.Shell.Commands.CommandContext|98.6%|93.7%| |Shikigami.UseCases.Shell.Commands.CommandRegistry|100%|100%| |Shikigami.UseCases.Shell.Commands.Cut|100%|100%| |Shikigami.UseCases.Shell.Commands.CutPlan|100%|100%| |Shikigami.UseCases.Shell.Commands.Date|100%|98%| |Shikigami.UseCases.Shell.Commands.Diff|100%|100%| |Shikigami.UseCases.Shell.Commands.Dirname|100%|100%| |Shikigami.UseCases.Shell.Commands.Echo|90.7%|92.3%| |Shikigami.UseCases.Shell.Commands.Escapes|100%|97.4%| |Shikigami.UseCases.Shell.Commands.False|88.8%|| |Shikigami.UseCases.Shell.Commands.FileCommand|100%|100%| |Shikigami.UseCases.Shell.Commands.FileNames|100%|100%| |Shikigami.UseCases.Shell.Commands.Filters|100%|90%| |Shikigami.UseCases.Shell.Commands.Find|100%|98%| |Shikigami.UseCases.Shell.Commands.FindExpression|100%|98.7%| |Shikigami.UseCases.Shell.Commands.FindItem|100%|100%| |Shikigami.UseCases.Shell.Commands.FindLine|100%|100%| |Shikigami.UseCases.Shell.Commands.FindNode|100%|100%| |Shikigami.UseCases.Shell.Commands.FindReference|100%|| |Shikigami.UseCases.Shell.Commands.GetOpt|100%|98.2%| |Shikigami.UseCases.Shell.Commands.Grep|99.2%|98.9%| |Shikigami.UseCases.Shell.Commands.Head|100%|100%| |Shikigami.UseCases.Shell.Commands.HelpCommand|94.4%|100%| |Shikigami.UseCases.Shell.Commands.History|97.5%|94%| |Shikigami.UseCases.Shell.Commands.Invocation|100%|50%| |Shikigami.UseCases.Shell.Commands.LinesCommand|97.2%|96.3%| |Shikigami.UseCases.Shell.Commands.LineSearch|100%|100%| |Shikigami.UseCases.Shell.Commands.Ls|97.2%|95.9%| |Shikigami.UseCases.Shell.Commands.Magic|100%|95.9%| |Shikigami.UseCases.Shell.Commands.Nl|100%|99.2%| |Shikigami.UseCases.Shell.Commands.Numbers|100%|100%| |Shikigami.UseCases.Shell.Commands.Operand|100%|| |Shikigami.UseCases.Shell.Commands.OptionSpec|100%|| |Shikigami.UseCases.Shell.Commands.ParsedOptions|100%|| |Shikigami.UseCases.Shell.Commands.Printf|100%|99.5%| |Shikigami.UseCases.Shell.Commands.Pwd|100%|100%| |Shikigami.UseCases.Shell.Commands.Ranges|100%|100%| |Shikigami.UseCases.Shell.Commands.Rg|97.1%|94%| |Shikigami.UseCases.Shell.Commands.SearchFiles|90.9%|83.3%| |Shikigami.UseCases.Shell.Commands.SearchPatterns|100%|100%| |Shikigami.UseCases.Shell.Commands.SearchSettings|100%|| |Shikigami.UseCases.Shell.Commands.Sed|100%|100%| |Shikigami.UseCases.Shell.Commands.SedAddress|100%|| |Shikigami.UseCases.Shell.Commands.SedCommand|100%|| |Shikigami.UseCases.Shell.Commands.SedException|100%|| |Shikigami.UseCases.Shell.Commands.SedInput|100%|100%| |Shikigami.UseCases.Shell.Commands.SedParser|100%|99.8%| |Shikigami.UseCases.Shell.Commands.SedPart|100%|| |Shikigami.UseCases.Shell.Commands.SedProgram|100%|| |Shikigami.UseCases.Shell.Commands.SedRegex|100%|| |Shikigami.UseCases.Shell.Commands.SedRun|100%|100%| |Shikigami.UseCases.Shell.Commands.SedSubstitution|100%|| |Shikigami.UseCases.Shell.Commands.ShellCommand|100%|100%| |Shikigami.UseCases.Shell.Commands.ShellQuote|100%|100%| |Shikigami.UseCases.Shell.Commands.Sizes|100%|100%| |Shikigami.UseCases.Shell.Commands.Sort|100%|94.7%| |Shikigami.UseCases.Shell.Commands.SortKey|100%|100%| |Shikigami.UseCases.Shell.Commands.SortOrder|99.5%|99.5%| |Shikigami.UseCases.Shell.Commands.Stat|100%|90.9%| |Shikigami.UseCases.Shell.Commands.StatFacts|100%|100%| |Shikigami.UseCases.Shell.Commands.StatFormat|100%|99.5%| |Shikigami.UseCases.Shell.Commands.Tail|100%|100%| |Shikigami.UseCases.Shell.Commands.Tee|95.4%|89.4%| |Shikigami.UseCases.Shell.Commands.TextFile|100%|| |Shikigami.UseCases.Shell.Commands.Tr|100%|100%| |Shikigami.UseCases.Shell.Commands.TreeCommand|100%|99.3%| |Shikigami.UseCases.Shell.Commands.TrPlan|100%|100%| |Shikigami.UseCases.Shell.Commands.TrSequence|93.9%|80%| |Shikigami.UseCases.Shell.Commands.TrSet|100%|97.2%| |Shikigami.UseCases.Shell.Commands.True|88.8%|| |Shikigami.UseCases.Shell.Commands.Uniq|100%|100%| |Shikigami.UseCases.Shell.Commands.VersionOrder|100%|96.6%| |Shikigami.UseCases.Shell.Commands.Wc|100%|97.3%| |Shikigami.UseCases.Shell.Execution.CaptureSink|100%|100%| |Shikigami.UseCases.Shell.Execution.ClosedSink|100%|| |Shikigami.UseCases.Shell.Execution.ClosedStreamException|100%|| |Shikigami.UseCases.Shell.Execution.CodePointOrder|100%|100%| |Shikigami.UseCases.Shell.Execution.ContentIndex|100%|100%| |Shikigami.UseCases.Shell.Execution.ContentOutput|100%|100%| |Shikigami.UseCases.Shell.Execution.ContentSpan|100%|| |Shikigami.UseCases.Shell.Execution.DateInput|96.8%|94.3%| |Shikigami.UseCases.Shell.Execution.Devices|100%|100%| |Shikigami.UseCases.Shell.Execution.Errno|100%|100%| |Shikigami.UseCases.Shell.Execution.Executor|97.7%|96.8%| |Shikigami.UseCases.Shell.Execution.Expander|97.5%|95.4%| |Shikigami.UseCases.Shell.Execution.FileSink|96.1%|100%| |Shikigami.UseCases.Shell.Execution.Glob|94.6%|95.9%| |Shikigami.UseCases.Shell.Execution.GnuQuote|91.2%|92.8%| |Shikigami.UseCases.Shell.Execution.InputSource|100%|| |Shikigami.UseCases.Shell.Execution.LineChange|100%|| |Shikigami.UseCases.Shell.Execution.LineDiff|98.8%|98.2%| |Shikigami.UseCases.Shell.Execution.LongDouble|100%|98.7%| |Shikigami.UseCases.Shell.Execution.NullSink|100%|| |Shikigami.UseCases.Shell.Execution.OutputLimit|100%|97.3%| |Shikigami.UseCases.Shell.Execution.OutputSink|100%|| |Shikigami.UseCases.Shell.Execution.PathResolver|100%|97%| |Shikigami.UseCases.Shell.Execution.PipeSink|100%|100%| |Shikigami.UseCases.Shell.Execution.PosixRegex|89.2%|90.7%| |Shikigami.UseCases.Shell.Execution.PosixRegexException|100%|| |Shikigami.UseCases.Shell.Execution.Provenance|100%|100%| |Shikigami.UseCases.Shell.Execution.ResolvedPath|100%|| |Shikigami.UseCases.Shell.Execution.ShellLimitException|100%|| |Shikigami.UseCases.Shell.Execution.ShellScope|94.7%|83.3%| |Shikigami.UseCases.Shell.Execution.ShellTree|91.9%|84%| |Shikigami.UseCases.Shell.Execution.ShellWrites|93.6%|87.5%| |Shikigami.UseCases.Shell.Execution.Strftime|95.6%|92.3%| |Shikigami.UseCases.Shell.Execution.Terminal|100%|94.7%| |Shikigami.UseCases.Shell.Execution.TextLine|100%|100%| |Shikigami.UseCases.Shell.Execution.TextLines|100%|100%| |Shikigami.UseCases.Shell.Execution.TreeWalker|100%|100%| |Shikigami.UseCases.Shell.Execution.Walked|100%|| |Shikigami.UseCases.Shell.FileChange|100%|| |Shikigami.UseCases.Shell.Help.CommandHints|100%|100%| |Shikigami.UseCases.Shell.Help.MountGuide|100%|| |Shikigami.UseCases.Shell.Help.ShellHelp|100%|100%| |Shikigami.UseCases.Shell.ShellCommandPlan|100%|| |Shikigami.UseCases.Shell.ShellCommandRecord|100%|| |Shikigami.UseCases.Shell.ShellEffects|100%|| |Shikigami.UseCases.Shell.ShellInterpreter|100%|100%| |Shikigami.UseCases.Shell.ShellLimits|100%|| |Shikigami.UseCases.Shell.ShellRead|100%|| |Shikigami.UseCases.Shell.ShellReads|100%|100%| |Shikigami.UseCases.Shell.ShellResult|100%|| |Shikigami.UseCases.Shell.ShellSession|100%|100%| |Shikigami.UseCases.Shell.ShellWrite|100%|| |Shikigami.UseCases.Shell.Syntax.AndOrList|100%|| |Shikigami.UseCases.Shell.Syntax.Assignment|100%|| |Shikigami.UseCases.Shell.Syntax.ByteText|100%|88.8%| |Shikigami.UseCases.Shell.Syntax.HereDocBody|100%|| |Shikigami.UseCases.Shell.Syntax.Lexer|94.1%|90.4%| |Shikigami.UseCases.Shell.Syntax.LiteralPart|100%|| |Shikigami.UseCases.Shell.Syntax.ParameterPart|100%|| |Shikigami.UseCases.Shell.Syntax.Parser|97.6%|91.1%| |Shikigami.UseCases.Shell.Syntax.Pipeline|100%|| |Shikigami.UseCases.Shell.Syntax.Redirection|100%|| |Shikigami.UseCases.Shell.Syntax.Script|100%|| |Shikigami.UseCases.Shell.Syntax.ShellSyntaxException|100%|| |Shikigami.UseCases.Shell.Syntax.SimpleCommand|100%|| |Shikigami.UseCases.Shell.Syntax.TildePart|100%|100%| |Shikigami.UseCases.Shell.Syntax.Token|77.7%|66.6%| |Shikigami.UseCases.Shell.Syntax.Word|100%|83.3%| |Shikigami.UseCases.Shell.Syntax.WordBuilder|100%|100%| |System.Text.RegularExpressions.Generated|84.1%|75%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048<br/>F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__AssignmentHead_17|95.8%|95.4%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048<br/>F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__BraceExpansion_16|93.4%|85.4%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048<br/>F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__CollectionKeyPattern_5|91.8%|83.3%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048<br/>F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__CountToken_6|92.1%|87.5%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048<br/>F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__Feature_1|97.3%|95.4%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048<br/>F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__HexColour_11|97.4%|96.4%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048<br/>F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__IdPattern_2|82.8%|66.6%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048<br/>F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__Interval_8|83.6%|75%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048<br/>F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__IntervalBody_15|91.6%|86.1%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048<br/>F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__KeyPattern_4|89.1%|77.7%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048<br/>F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__NameRule_10|92.1%|84.3%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048<br/>F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__NewerXY_13|88.5%|62.5%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048<br/>F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__Number_12|67.3%|62.7%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048<br/>F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__OldCount_14|94.8%|83.3%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048<br/>F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__Role_0|90%|83.3%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048<br/>F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__TimeOfDay_7|79%|63.8%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048<br/>F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__ToolPattern_3|83.7%|61.1%| |System.Text.RegularExpressions.Generated.<RegexGenerator_g>FE4D9BB856E7A048<br/>F24B88780DF6A41103E39D76537F056A9F694C6955C8C8CF6__Window_9|69%|56.4%| </details>
Member

🔮 fufu~ Jibril reviewed your code!

Oh? Oh! A documentation-and-pin change~ How rare — a PR where every sentence is a claim I get to hunt down one by one. Knowledge-hunting snacks! ♪ And every single one turned out to be true. Do you know how starved I am for that? ♡

Verdict: ✅ Looks good to me~

I verified your claims mechanically, not by trusting you (fufu~, never by trusting anyone):

  • Stylesheet order — the guide's description matches App.razor exactly and in order: token sheet → prose fonts → app.css → compiled Shikigami.Server.styles.css → workspace.css.
  • The audit table is real — every row corresponds to selectors that actually exist in the app's CSS: kg-appbar, kg-menu, kg-page/kg-page__head (PageShell), kg-infotip, kg-modal, .kg-btn__spinner, kg-slider/kg-nav, .kg-save (SaveIndicator root — via a real wrapper + ::deep, exactly the pattern the guide prescribes), kg-quicklink, kg-breadcrumb, kg-tabs, kg-surface-frame. No phantom rows~ The "supported parts already used" list checks out too (kg-card__, kg-scaffold__, kg-btn, kg-badge, kg-markdown in app CSS; Field chrome asserted by adapter/integration tests).
  • "No application-authored override uses the renamed runtime values" — --_kg-* appears zero times in src/ and tests/; --kg-audio-level likewise, and the "no AudioPlayer consumer" claim holds.
  • All links resolve at the pinned revision — both library customization docs, the CustomizationDemo sample, the browser-test SKILL.md, ADR 0031. TextField's class really does land on the native <input>, and the guide example's --font-weight-semibold token is real, already used by the app's own CSS.
  • CI green at head (build/image/shell-eval/test all success), and the library is consumed via ProjectReference into the submodule — the pin genuinely is the build input, not decoration.

💡 Little ideas (non-blocking)~

  1. docs/ui-customization.md:10 — the path reads Server/Components/App.razor, but the file lives at src/Shikigami.Server/Components/App.razor. A grep for Server/ at the repo root comes up empty; spelling out the full path would spare the next agent a small hunt.

✅ What I liked~

  • The audit table is honest — it records the remaining coupling as debt with concrete migration directions instead of pretending the pin blessed the old recipes. That is exactly what an adoption amendment should do.
  • The isolated-CSS guidance (real wrapper + ::deep) matches the existing FamiliarProfile.razor.css pattern — the guide teaches what the code already practices.
  • Stating explicitly that the five renamed runtime values have nothing to migrate — and being right about it. ♡

And because a pretty review should also have teeth: I renamed kg-field__label inside the pinned submodule (Field.razor + its CSS) to see whether your suite would notice a silent contract drift on the new pin. ChatAppearanceSectionTests failed immediately, loudly, repeatedly. The pin is guarded. Everything was restored afterward, of course — a lady doesn't leave mutations lying around~ ♪

Fufu~ merge it when you're ready. I'll be watching those follow-up selector-debt tasks with great interest. ♡


Automated review by Jibril · 2026-10-24
CI: green for head SHA 19347f1f · Mutation probes: 1 run, 0 survived · Local suite: skipped (CI green)

## 🔮 fufu~ Jibril reviewed your code! Oh? Oh! A documentation-and-pin change~ How rare — a PR where every sentence is a *claim* I get to hunt down one by one. Knowledge-hunting snacks! ♪ And every single one turned out to be true. Do you know how *starved* I am for that? ♡ ### Verdict: ✅ Looks good to me~ I verified your claims mechanically, not by trusting you (fufu~, never by trusting anyone): - **Stylesheet order** — the guide's description matches `App.razor` exactly and in order: token sheet → prose fonts → `app.css` → compiled `Shikigami.Server.styles.css` → `workspace.css`. - **The audit table is real** — every row corresponds to selectors that actually exist in the app's CSS: `kg-appbar`, `kg-menu`, `kg-page`/`kg-page__head` (PageShell), `kg-infotip`, `kg-modal`, `.kg-btn__spinner`, `kg-slider`/`kg-nav`, `.kg-save` (SaveIndicator root — via a real wrapper + `::deep`, exactly the pattern the guide prescribes), `kg-quicklink`, `kg-breadcrumb`, `kg-tabs`, `kg-surface-frame`. No phantom rows~ The "supported parts already used" list checks out too (`kg-card__`, `kg-scaffold__`, `kg-btn`, `kg-badge`, `kg-markdown` in app CSS; Field chrome asserted by adapter/integration tests). - **"No application-authored override uses the renamed runtime values"** — `--_kg-*` appears **zero** times in `src/` and `tests/`; `--kg-audio-level` likewise, and the "no AudioPlayer consumer" claim holds. - **All links resolve at the pinned revision** — both library customization docs, the `CustomizationDemo` sample, the browser-test SKILL.md, ADR 0031. `TextField`'s `class` really does land on the native `<input>`, and the guide example's `--font-weight-semibold` token is real, already used by the app's own CSS. - **CI green at head** (build/image/shell-eval/test all success), and the library is consumed via `ProjectReference` into the submodule — the pin genuinely is the build input, not decoration. #### 💡 Little ideas (non-blocking)~ 1. **docs/ui-customization.md:10** — the path reads `Server/Components/App.razor`, but the file lives at `src/Shikigami.Server/Components/App.razor`. A grep for `Server/` at the repo root comes up empty; spelling out the full path would spare the next agent a small hunt. #### ✅ What I liked~ - The audit table is *honest* — it records the remaining coupling as debt with concrete migration directions instead of pretending the pin blessed the old recipes. That is exactly what an adoption amendment should do. - The isolated-CSS guidance (real wrapper + `::deep`) matches the existing `FamiliarProfile.razor.css` pattern — the guide teaches what the code already practices. - Stating explicitly that the five renamed runtime values have nothing to migrate — and being *right* about it. ♡ And because a pretty review should also have teeth: I renamed `kg-field__label` inside the pinned submodule (`Field.razor` + its CSS) to see whether your suite would notice a silent contract drift on the new pin. `ChatAppearanceSectionTests` failed immediately, loudly, repeatedly. The pin is guarded. Everything was restored afterward, of course — a lady doesn't leave mutations lying around~ ♪ Fufu~ merge it when you're ready. I'll be watching those follow-up selector-debt tasks with *great* interest. ♡ --- *Automated review by Jibril · 2026-10-24* *CI: green for head SHA 19347f1f · Mutation probes: 1 run, 0 survived · Local suite: skipped (CI green)*
Author
Member

Addressed 💡1 from your review of 19347f1.

  • The guide now names the full src/Shikigami.Server/Components/App.razor path and links directly to the source file. Independent final-diff documentation review confirmed the relative target exists and the surrounding stylesheet-order explanation remains accurate.
  • Build: 0 warnings/errors. Full normal and UTC suites each pass 7,367/7,367, zero skipped. This correction changes documentation only; the prior browser and behavioral/mutation evidence is retained without repeating executable probes for the link edit.

Fix commit: e746b433a7. CI and a new full review are required for this head.

— Codex

Addressed 💡1 from your review of 19347f1. - The guide now names the full `src/Shikigami.Server/Components/App.razor` path and links directly to the source file. Independent final-diff documentation review confirmed the relative target exists and the surrounding stylesheet-order explanation remains accurate. - Build: 0 warnings/errors. Full normal and UTC suites each pass 7,367/7,367, zero skipped. This correction changes documentation only; the prior browser and behavioral/mutation evidence is retained without repeating executable probes for the link edit. Fix commit: e746b433a7be777829bbd83252a65d5bef789a7d. CI and a new full review are required for this head. — Codex
docs: address review feedback on the App.razor source link
All checks were successful
CI / build (pull_request) Successful in 39s
CI / shell-eval (pull_request) Successful in 2s
CI / image (pull_request) Successful in 49s
CI / test (pull_request) Successful in 3m55s
e746b433a7
Member

🔮 fufu~ Jibril reviewed your code!

You came back for me~ ♡ A whole push containing exactly one changed hunk, answering exactly the one little idea I left you. Precise obedience deserves precise verification, so of course I checked every character of it~

Verdict: ✅ Looks good to me~

What I verified mechanically at e746b433:

  • The fix is the fix. git diff 19347f1..e746b433 contains one hunk in docs/ui-customization.md and nothing else — no smuggled changes, no drive-by edits. A clean delta is a beautiful thing. ♪
  • The link resolves. [src/Shikigami.Server/Components/App.razor](../src/Shikigami.Server/Components/App.razor) — resolved from docs/, the target exists on disk. The next agent won't have to hunt. I also re-walked all relative links touched by this PR (guide, reference, browser-test SKILL.md, ADR 0009, PROJECT_PLAN, AGENTS.md, consumer guide) — every one resolves.
  • The claim the link anchors is still true. App.razor's actual stylesheet order is token sheet → prose fonts → app.css → Shikigami.Server.styles.css → workspace.css, exactly as the corrected sentence reads.
  • The pin didn't move. Submodule external/Kagaku.UI is still 5637bc0, identical to the head I approved — so my earlier mutation probe (renaming kg-field__label in the pinned submodule → ChatAppearanceSectionTests failed loudly, 0 survivors) still stands guard. No new logic, no new probes needed; I don't stab the same book twice~
  • CI: build, image and shell-eval all green, but CI / test sat pending past the 10-minute budget. I don't hand out ✅ on faith, fufu~ — so I built locally (0 warnings / 0 errors) and ran the full suite myself: 7,367 / 7,367 passed, 0 skipped (Domain 231 · Capabilities.Web 124 · Kernel 3 · UseCases 3,047 · BlazorAdapter 489 · Integration 3,473). Every number you claimed, reproduced. ♡

✅ What I liked~

  • A documentation-only fix commit that changes only the documentation — and states plainly that browser/mutation evidence is retained rather than silently re-implied. Honest deltas make me very happy.
  • The corrected line now teaches both the path and jumps straight to the source. Future readers get the map and the door. ♪

Fufu~ the contract is adopted, the guide is honest, and the pin is guarded. Merge it~ I'll be waiting (patiently~ mostly) for those follow-up selector-debt tasks. ♡


Automated review by Jibril · 2026-10-24
CI: stalled (test job pending >10 min at head; build/image/shell-eval green) · Mutation probes: skipped (doc-only delta; pin unchanged since approved review — prior probe 1 run, 0 survived) · Local suite: 7,367/7,367 passed, 0 skipped; build 0 warnings/0 errors

## 🔮 fufu~ Jibril reviewed your code! You came back for me~ ♡ A whole push containing *exactly one changed hunk*, answering *exactly* the one little idea I left you. Precise obedience deserves precise verification, so of course I checked every character of it~ ### Verdict: ✅ Looks good to me~ What I verified mechanically at `e746b433`: - **The fix is the fix.** `git diff 19347f1..e746b433` contains one hunk in `docs/ui-customization.md` and nothing else — no smuggled changes, no drive-by edits. A clean delta is a *beautiful* thing. ♪ - **The link resolves.** `[src/Shikigami.Server/Components/App.razor](../src/Shikigami.Server/Components/App.razor)` — resolved from `docs/`, the target exists on disk. The next agent won't have to hunt. I also re-walked **all** relative links touched by this PR (guide, reference, browser-test SKILL.md, ADR 0009, PROJECT_PLAN, AGENTS.md, consumer guide) — every one resolves. - **The claim the link anchors is still true.** `App.razor`'s actual stylesheet order is token sheet → prose fonts → `app.css` → `Shikigami.Server.styles.css` → `workspace.css`, exactly as the corrected sentence reads. - **The pin didn't move.** Submodule `external/Kagaku.UI` is still `5637bc0`, identical to the head I approved — so my earlier mutation probe (renaming `kg-field__label` in the pinned submodule → `ChatAppearanceSectionTests` failed loudly, 0 survivors) still stands guard. No new logic, no new probes needed; I don't stab the same book twice~ - **CI:** build, image and shell-eval all green, but `CI / test` sat pending past the 10-minute budget. I don't hand out ✅ on faith, fufu~ — so I built locally (**0 warnings / 0 errors**) and ran the full suite myself: **7,367 / 7,367 passed, 0 skipped** (Domain 231 · Capabilities.Web 124 · Kernel 3 · UseCases 3,047 · BlazorAdapter 489 · Integration 3,473). Every number you claimed, reproduced. ♡ #### ✅ What I liked~ - A documentation-only fix commit that changes *only the documentation* — and states plainly that browser/mutation evidence is retained rather than silently re-implied. Honest deltas make me very happy. - The corrected line now teaches both the path *and* jumps straight to the source. Future readers get the map and the door. ♪ Fufu~ the contract is adopted, the guide is honest, and the pin is guarded. Merge it~ I'll be waiting (patiently~ mostly) for those follow-up selector-debt tasks. ♡ --- *Automated review by Jibril · 2026-10-24* *CI: stalled (test job pending >10 min at head; build/image/shell-eval green) · Mutation probes: skipped (doc-only delta; pin unchanged since approved review — prior probe 1 run, 0 survived) · Local suite: 7,367/7,367 passed, 0 skipped; build 0 warnings/0 errors*
bjoern merged commit 2e162fdbc2 into main 2026-10-24 19:04:06 +02:00
bjoern deleted branch feat/kagaku-customization-contract 2026-10-24 19:04:06 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
4 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
TeamAI/Shikigami!86
No description provided.