From ce4c0b2910e30825506b6bf9f192197cd6970e8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=88=E7=BA=BE?= Date: Thu, 22 Oct 2026 17:55:25 +0800 Subject: [PATCH 1/2] =?UTF-8?q?docs:=20=E4=BF=AE=E6=AD=A3=20McMaster=20?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E4=B8=8E=E5=85=A5=E5=8F=A3=E5=88=A4=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 0c551ef..89957a7 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -19,7 +19,7 @@ pwsh ./pack.ps1 -Version 1.0.0 -OutputRoot artifacts ``` The host expects sibling `PluginManager`, `Plugin.Abstractions`, and -`Hosihikari.McMaster.NETCore.Plugins` checkouts. `pack.ps1` calls the core packer and needs the same +`McMaster.NETCore.Plugins` checkouts. `pack.ps1` calls the core packer and needs the same `PluginManager` checkout. ## Invariants @@ -31,7 +31,8 @@ The host expects sibling `PluginManager`, `Plugin.Abstractions`, and then trusted platform assemblies. - Cache keys cover source text, package-local DLLs, Roslyn version, and runtime version. Keep the checksum check in sync. -- A failed load releases its ALC; one package exposes exactly one `IPlugin` type. +- A failed load releases its ALC. After excluding abstract/interface types and implementations + without a public parameterless constructor, a package exposes exactly one `IPlugin` candidate. - Public default branches are protected. Work on a branch, open a pull request, and squash merge. ## Context From 22b19059b49d2f0db74613de5591b27da3182212 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=88=E7=BA=BE?= Date: Thu, 22 Oct 2026 17:59:45 +0800 Subject: [PATCH 2/2] =?UTF-8?q?docs:=20=E5=85=A5=E5=8F=A3=E8=B7=AF?= =?UTF-8?q?=E5=BE=84=E6=8C=89=E6=B8=85=E5=8D=95=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 89957a7..ef7e8b0 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -25,8 +25,9 @@ The host expects sibling `PluginManager`, `Plugin.Abstractions`, and ## Invariants - The loader package is named `hosihikari-csharp`; it routes on `extraInfo.loader: assembly` with - entry `Hosihikari.PluginLoader.CSharp.dll`. Source packages it handles use - `extraInfo.loader: csharp` and entry `main.cs`. + entry `Hosihikari.PluginLoader.CSharp.dll`. Source packages conventionally use + `extraInfo.loader: csharp` and entry `main.cs`; the loader follows the manifest's `EntryPath`, + so nested or renamed source paths remain valid. - Compile-time references follow the runtime order: framework shared layer, package-local DLLs, then trusted platform assemblies. - Cache keys cover source text, package-local DLLs, Roslyn version, and runtime version. Keep the