4D Application plugin contract commit / push 前確認

返回 docs

4D Application plugin contract commit / push 前確認

本文件整理程式 repo poc/nmodbus-tcp 在提交 新增 4D 最小 Application plugin contract 前的變更範圍、測試證據、停止線與建議 commit 訊息,並補充實際 stage / commit / push / Actions 查驗結果。

本文件不代表同意建立真正 PluginLoader、IPluginLoader、plugin folder 掃描、外部 DLL 載入、config schema、Adapter contract 或 DB audit table。

0. 確認摘要

項目內容
確認日期2026-06-06
程式 repohs-device-control-template
程式 branchpoc/nmodbus-tcp
前一已提交基準a846212 新增 4C ServiceHost 第一版與驗收測試
4D commit 狀態已 commit:6f34bb9 新增 4D 最小 Application plugin contract
push 狀態已 push 至 origin/poc/nmodbus-tcp
GitHub ActionsRun 27064992270 success
決策來源4D 最小 contract 確認 七項皆同意
建議動作同步文件 repo 的 4D 紀錄、status.jsonprogress.json 與 public mirror

1. 程式 repo 變更範圍

建議本次程式 repo stage 僅納入下列 4D 最小 Application plugin contract 相關檔案。

類型檔案
修改src/HS.DeviceControl.Application/Common/ApplicationErrorCodes.cs
修改src/HS.DeviceControl.Application/Plugins/PluginCatalogService.cs
修改src/HS.DeviceControl.Application/Plugins/PluginDescriptor.cs
修改tests/HS.DeviceControl.Application.Tests/PluginCatalogServiceTests.cs
新增src/HS.DeviceControl.Application/Plugins/PluginLoadState.cs
新增src/HS.DeviceControl.Application/Plugins/PluginVerificationCheck.cs
新增src/HS.DeviceControl.Application/Plugins/PluginVerificationResult.cs
新增src/HS.DeviceControl.Application/Plugins/PluginAuditRecord.cs
新增src/HS.DeviceControl.Application/Plugins/PluginContractTextSafety.cs
新增tests/HS.DeviceControl.Application.Tests/PluginVerificationResultTests.cs
新增tests/HS.DeviceControl.Application.Tests/PluginAuditRecordTests.cs
未納入Core、Adapters、WebApi、ServiceHost、Infrastructure、config schema、DB DDL、外部 DLL

2. 已完成驗證

驗證項目結果
Application testsdotnet test tests\HS.DeviceControl.Application.Tests\HS.DeviceControl.Application.Tests.csproj:40 passed,0 failed。
sandbox 內初次重跑因 NuGet AppData lock 中止,不是測試 assertion 失敗;已用授權外部執行重跑通過。
solution testsdotnet test HS.DeviceControl.sln:492 passed,0 failed。
Loader / DLL 停止線掃描Assembly.LoadLoadFrom(LoadFile(IPluginLoaderclass PluginLoader 無命中。
git diff --check無 whitespace error;僅有 Windows LF / CRLF 提醒。
文件 repo JSONprogress.jsonstatus.jsonpublic/ 對應檔案可解析。
文件 repo public hashsource 與 public mirror hash 比對通過。
污染字串掃描未命中既定污染字串。

3. 停止線確認

停止線是否符合
不建立真正 PluginLoader符合
不建立 IPluginLoader public contract符合
不掃描 plugin folder符合
不載入外部 DLL符合
不執行外部 plugin 程式碼符合
不修改 Adapter public contract符合
不修改 config schema符合
不新增 WebApi route / controller符合
不修改 ServiceHost lifecycle符合
不新增 DB table、DDL、ALTER TABLE 或 Apply符合
不新增 NuGet package 或更換核心框架符合

4. 建議 stage 指令

建議使用精準路徑 stage,避免納入非 4D 變更。

git add `
  src/HS.DeviceControl.Application/Common/ApplicationErrorCodes.cs `
  src/HS.DeviceControl.Application/Plugins/PluginCatalogService.cs `
  src/HS.DeviceControl.Application/Plugins/PluginDescriptor.cs `
  src/HS.DeviceControl.Application/Plugins/PluginLoadState.cs `
  src/HS.DeviceControl.Application/Plugins/PluginVerificationCheck.cs `
  src/HS.DeviceControl.Application/Plugins/PluginVerificationResult.cs `
  src/HS.DeviceControl.Application/Plugins/PluginAuditRecord.cs `
  src/HS.DeviceControl.Application/Plugins/PluginContractTextSafety.cs `
  tests/HS.DeviceControl.Application.Tests/PluginCatalogServiceTests.cs `
  tests/HS.DeviceControl.Application.Tests/PluginVerificationResultTests.cs `
  tests/HS.DeviceControl.Application.Tests/PluginAuditRecordTests.cs

stage 後建議再執行:

git diff --cached --check
git status --short --branch

5. 建議 commit 訊息

新增 4D 最小 Application plugin contract

- 新增 plugin state、verification result、audit record 與安全摘要 helper
- 擴充 PluginDescriptor 與 PluginCatalogService metadata 驗證
- 補 APP-033x 錯誤碼與 Application.Tests
- 保留 Loader、DLL、config、Adapter、DB 停止線

6. 建議執行順序

  1. 先依本文件精準 stage 程式 repo 4D 檔案。
  2. 執行 git diff --cached --checkgit status --short --branch
  3. 確認 staged 範圍無誤後 commit。
  4. 使用者明確指示後再 push poc/nmodbus-tcp
  5. 程式 repo push 後,再同步文件 repo stage / commit / push 與部署查驗。

7. 結論

4D 最小 Application plugin contract 已完成程式 repo stage / commit / push,且 GitHub Actions success。下一步應同步文件 repo stage / commit / push 與部署查驗,確保文件網站反映 6f34bb9 與 4D 完成狀態。