智慧設備順序控制系統共用骨架|文件首頁

這裡是專案總覽入口,先回答「目前完成了什麼、哪些還沒做、我的需求是否已被納入」,再連到細節文件。

正式網站:https://hs-device-control-template-docs.pages.dev/
現在看這裡

專案邊界總覽

第一階段已完成控制核心;第二階段 A 已完成 MySQL TaskStore 與 Schema Automation PoC;第二階段 B 已完成 DB LogWriter / TraceStore 第一版、manual-only xUnit 驗證入口、真實 DB 驗證前確認清單、TaskTraceStore 查詢邊界設計、Apply 安全策略與測試 DB DDL 與真實 DB 驗證通過紀錄;第三階段 3A、3B、3C、3D 已完成總收斂確認,程式 repo 最新已提交基準為 a846212;4A 邊界分析、決策確認表、4B / 4C / 4D 切分表、第四階段標準包、4B WebApi 第一版與 4C ServiceHost 第一版均已完成並 push;ServiceHost tests 7 passed、solution tests 482 passed,Actions run 27057194166 success。Plugin Loader、外部 DLL 載入、WebApi 正式部署安全模型、正式 DB Apply 與真實硬體控制仍屬後續節點。

第一階段100%

控制核心、ConsoleHost、Adapter、Log、Config 與驗證節點已完成。

第二階段整體100%

第二階段 A / B 已完成;DB LogWriter / TraceStore、測試 DB DDL、task_log_traces 寫入 / 查詢 / cleanup、TaskTraceStore 查詢邊界與 Schema Apply 安全策略已收斂。

長期完整平台88%

包含資料庫、WebApi、ServiceHost、WinForms、真實硬體與部署成熟度。

第三階段主線目前狀態目前邊界下一個可執行項目
3A Trace 查詢能力已完成已新增 ITaskTraceStore、Core 查詢 DTO、MySqlTaskTraceStore fake gateway 查詢、HasMore 分頁、遮罩與錯誤測試,並完成測試 DB write/read/cleanup 補驗:寫入 2 筆、查回 2 筆、cleanup 刪除 2 筆。3A 已收斂,作為 3B 前置基礎。
3B DB 初始化安全流程完成稽核與線上驗收已完成程式 commit 13c14ca 已新增 ManualApplyPreview model、builder、PlanHash、CanApply=False、風險分級、ConsoleHost 顯示與完成稽核;文件網站已完成首頁、稽核頁與 status.json 內容比對;仍未執行 DDL 或正式 Apply。可另行確認真實 DB read-only preview 驗證。
3C Service / API 入口線上驗收已完成程式 commit aee6ab6 已新增 Application 專案、測試專案、Task / Device / Schema / Health contract 與薄 service;Application tests 15 passed,solution tests 453 passed;文件網站已完成 3C 線上內容比對;尚未導入 WebApi / ServiceHost,不改啟動方式。3C 已收斂,3D 邊界分析已建立。
3D Plugin / 多設備單元Application contract 第一版已完成程式 commit a158551 已新增 ControlUnits、Resources、Commands、Plugins、APP-03xx 與 Application.Tests;Application tests 30 passed,solution tests 468 passed;第三階段總收斂確認表已判定 3A 至 3D 均完成。已進入第四階段;Plugin Loader 仍留到 4D,不載入外部 DLL、不改 Adapter public contract 或 config schema。
4B WebApi第一版已完成程式 commit 9527773 已新增 WebApi 專案、controller、DTO 與 WebApi tests;WebApi tests 7 passed,solution tests 475 passed,本機 API 驗收與 Actions success 均通過。4B 已可作為 4C 文件基準;WebApi auth / Swagger / 正式部署設定仍需另行確認。
4C ServiceHost本機完成已新增 ServiceHost 專案、runtime、state、status、options 與 tests;ServiceHost tests 7 passed、solution tests 482 passed,主程式 Running -> Stopped。下一步進入程式 repo stage / commit 前確認;仍不做 Windows Service、外部 queue、正式 DB 或真實硬體。
狀態同步

最新程式狀態與進度快照

程式狀態由程式 repo push 後同步;進度快照在完成可驗收節點後整理。

最新程式狀態

目前階段
第三階段總收斂已完成;第四階段標準包、4B WebApi 第一版與 4C ServiceHost 第一版均已完成並 push。
最新更新
2026-06-06
程式 repo
hs-device-control-template
最新版本
a846212 分支:poc/nmodbus-tcp
Commit 訊息
新增 4B WebApi 第一版與驗收測試
下一步
進入 4D PluginLoader 邊界分析與決策確認,暫不授權外部 DLL 載入或正式部署設定。

正在讀取程式 repo 狀態資料...

第二階段分項進度

第二階段規劃與主軸選型
100%
MySQL schema / 自動建表設計
100%
真實 MySQL Inspector / metadata 讀取
100%
TaskStore 第一版 PoC 與真實 DB 驗證
100%
TaskStore 多表擴充與 node_executions
100%
DB LogWriter / TraceStore 第一版與真實 DB 驗證
100%
Schema Apply 安全策略與停止線
100%

第二階段 A 已完成 MySQL TaskStore PoC 與 Schema 自動化;第二階段 B 已完成 DB LogWriter / TraceStore 第一版、manual-only xUnit 入口、測試 DB DDL 建表、task_log_traces 寫入 / 查詢 / cleanup 驗證與收斂稽核;public 查詢介面、正式 DDL Executor 與 Host DB 初始化移到後續階段。

需求地圖

我的需求是否已被納入?

用「已符合 / 部分符合 / 尚未符合」標示目前狀態,避免把後續平台能力誤看成已完成。

看完整需求地圖
需求目前狀態現在已具備尚未完成 / 所屬階段
程式邏輯、設備動作可由 JSON 或工具編程,不影響核心部分符合已有 JSON 設定、Config Loader / Mapper / Validator、Workflow 與 Adapter 抽象。圖形化工具、設定版本控管、熱更新與回滾屬後續平台。
使用 API 呼叫,由 Server 控制設備狀態並查詢設備狀態尚未符合已有 Workflow / Adapter / Task / Log / Application contract 基礎,第二與第三階段已補上 TaskStore、Trace、ManualApplyPreview、Task / Device / Schema / Health 與多設備單元 contract。WebApi、API route、認證授權與正式設備狀態 API 屬 4A 之後,需先決策確認。
控制端透過 Service 掌握順序控制或控制裝置尚未符合ConsoleHost 已可驗證核心流程,Application contract 已可支撐未來背景服務協調層。ServiceHost、背景常駐、任務佇列、重啟恢復屬 4A 之後,需先決策確認。
裝置可動態載入外部 DLL,例如馬達、面板或其他設備模組尚未符合已有 IDeviceAdapter 抽象作為擴充基礎,3D 已建立 Plugin 邊界分析。Plugin Loader、DLL 掃描、版本控管與載入安全仍需另行確認後才可實作。
一台控制主機管理多個設備單元部分符合已有 DeviceId、Adapter Dispatcher、Workflow 綁定設備與 DeviceId Log,3D 已整理 ControlUnitId / StationId / DeviceId 邊界。ControlUnitId / StationId 實作、Resource Lock、Command Queue、急停與狀態隔離仍需另行確認。
階段邊界

第一階段 / 第二階段完成與未完成

這裡只列邊界,不取代細節文件;需要完整歷程時進入開發進度總覽或 docs 索引。

第一階段已完成

控制核心與驗證入口

  • Core / Workflow / StateMachine / TaskEngine 骨架完成。
  • Config Loader / Mapper / Validator 與 ConsoleHost 設定啟動完成。
  • Mock Adapter、Adapter Data、Workflow 條件轉移與 Log 承接完成。
  • Modbus TCP Adapter 第一版、錯誤輸出、節點歷程與人工驗證紀錄完成。
  • 第一階段驗收進度正式標記 100%。
第一階段未完成 / 不納入

移出第一階段邊界

  • MySQL 任務持久化、正式資料庫建表與查詢不屬於第一階段。
  • WebApi、ServiceHost、WinForms Debug Tool 不屬於第一階段交付。
  • 真實案場硬體連線驗收、長時間穩定性與部署維運列入後續階段。
  • .NET 版本升級屬正式化前評估。
第二階段 A 已完成

資料庫與 Schema 自動化 PoC

  • 第二階段規劃總覽與第一個主軸選型完成。
  • MySQL 5.6.2、行前連線資訊、套件選型與 Schema 自動建表設計已整理。
  • Schema Attribute、SQL Generator、ALTER TABLE Dry Run、Schema Inspector 抽象與 mock 已完成。
  • ConsoleHost Dry Run 顯示、Schema Initializer DryRun 與人工驗證已完成。
  • MySQL Schema Inspector 已完成真實 metadata 讀取、manual-only 基本驗證、成功輸出補強與 detailed logger 證據回填。
  • MySQL TaskStore 已完成 task_executions 與 node_executions 真實 DB manual-only 驗證。
  • DB LogWriter / TraceStore 第一版、manual-only xUnit 入口與真實 DB 驗證前確認清單已完成,確認詳細診斷資料可由 LogEntry 映射到 task_log_traces,且不直接塞入 MySqlTaskStore.Save。
第二階段 B 完成

DB Log、Trace 與 Apply 安全收斂

  • DB LogWriter / TraceStore 已完成邊界設計、實作前確認、第一版程式實作、manual-only xUnit 驗證入口與真實 DB 驗證前確認清單。
  • task_log_traces schema class、LogEntry mapper、payload sanitizer、fake gateway 測試、fallback、HS_MYSQL_LOGWRITER_* gate、查詢 / cleanup helper、測試 DB DDL 建表與真實 DB 寫入 / 查詢 / cleanup 驗證已完成。
  • TaskTraceStore 查詢邊界設計已完成,public 查詢 contract 改列第三階段前置。
  • 正式 Apply 模式、DDL executor、備份與 rollback 策略改列後續專題。
  • WebApi、ServiceHost、WinForms Debug Tool、Plugin Loader、外部 DLL 與正式部署流程移到第四階段,需先完成 4A 決策確認。
只留主要入口

下一步看哪裡?

首頁保留五個主要入口,其餘細節收進下方「其他文件」。

需求總覽

平台化需求地圖

查看使用者需求是否已納入,以及已符合、部分符合、尚未符合。

開啟
進度總覽

開發進度總覽

查看百分比、完成時間、測試數、commit 與長期平台進度。

開啟
第二階段

第二階段儀表板

查看第二階段 A / B 已完成內容與後續階段保留項。

開啟
第三階段

第三階段執行儀表板

查看 3A Trace 查詢、3B DB 初始化、3C Service / API、3D Plugin / 多設備單元的狀態與下一步。

開啟
第三階段

第三階段總收斂確認表

集中確認 3A、3B、3C、3D 都已在核准範圍內完成,並列出停止線與非阻擋殘留項。

開啟
第四階段 4A

4A 邊界分析

確認 WebApi、ServiceHost、Plugin Loader、Application 共用協調層、部署維運與停止線。

開啟
第四階段 4A

4A 決策確認表

逐項確認 WebApi、ServiceHost、Plugin Loader、Application 共用協調層、部署維運與停止線七項決策。

開啟
第四階段

4B / 4C / 4D 執行切分

暫定 WebApi 在 4B、ServiceHost 在 4C、Plugin Loader 在 4D,並列出各階段停止線。

開啟
第四階段

4A / 4B 線上驗收

確認 Cloudflare Pages 首頁、4A 決策確認表、切分表、第三階段儀表板與 progress.json 已反映 f071c87。

開啟
第四階段

標準與驗收條件

定義第四階段總標準、文件清單、4A / 4B / 4C / 4D 施作範圍與驗收條件。

開啟
第四階段

目標完成稽核

確認第四階段文件型目標模式已完成,並列出尚未授權的程式實作停止線。

開啟
第四階段 4B

WebApi contract

固定最小 WebApi route、DTO、錯誤格式、Application mapping、API 測試與 DB 非破壞性驗收。

開啟
第四階段 4B

WebApi 決策確認

記錄使用者已確認七項建議,允許最小 WebApi 第一版,並保留 ServiceHost、Plugin Loader 與 DB DDL 停止線。

開啟
第四階段 4B

WebApi 實作與驗收

記錄 WebApi 第一版、API 測試、solution tests、DB 非破壞性驗收、本機 API 驗收與 Actions 結果。

開啟
第四階段 4C

ServiceHost contract

固定背景生命週期、Adapter lifecycle、Health、Log / Trace、DB / Schema 非破壞性邊界、候選檔案、測試策略與停止線。

開啟
第四階段 4C

ServiceHost 決策確認

記錄使用者已同意七項建議,允許進入程式 repo 結構檢查與最小 ServiceHost 第一版。

開啟
第四階段 4C

ServiceHost 程式結構檢查

確認新增 ServiceHost 與測試專案的檔案範圍,並固定不改 Core / Application public contract。

開啟
第四階段 4C

ServiceHost 實作驗收

記錄 ServiceHost runtime、測試結果、全 solution 482 passed 與主程式 Running -> Stopped。

開啟
第四階段 4C

ServiceHost 完成稽核

彙整 4C 範圍符合性、剩餘限制與進入 stage / commit 前確認的條件。

開啟
第三階段 3B

ManualApplyPreview 實作前確認

確認 DB 初始化安全 preview 的資料模型、風險分類、輸出格式與停止線。

開啟
第三階段 3B

3B 決策確認表

逐項確認 ManualApplyPreview 進程式實作前的七項決策。

開啟
第三階段 3B

ManualApplyPreview 實作紀錄

查看第一版安全預覽、測試結果與後續停止線。

開啟
第三階段 3B

3B 完成稽核表

確認 ManualApplyPreview 第一版是否可驗收完成,以及後續仍需確認的項目。

開啟
第三階段 3B

3B 線上驗收紀錄

確認文件 repo push 後,Cloudflare Pages 首頁、稽核頁與 status.json 已反映最新 3B 狀態。

開啟
第三階段 3C

3C Service / API 邊界分析

確認 ServiceHost、WebApi、Application Service、DTO、權限與停止線。

開啟
第三階段 3C

3C 決策確認表

逐項確認 Application Service、ServiceHost、WebApi、Task Control、Device Status、Schema Preview 與停止線。

開啟
第三階段 3C

3C 實作前確認

唯讀盤點程式 repo 結構、可承接能力、候選檔案、測試策略與停止線。

開啟
第三階段 3C

3C 提交前確認

Application contract 第一版已完成,提交前變更範圍、測試證據與建議 commit 訊息已整理。

開啟
第三階段 3C

3C 線上驗收紀錄

確認文件 repo push 後,Cloudflare Pages 首頁、第三階段儀表板、3C 提交前確認頁與 status.json 已反映 3C 狀態。

開啟
第三階段 3D

3D 邊界分析

確認 Plugin DLL、多設備單元、Resource Lock、Command Queue、設定版本與停止線。

開啟
第三階段 3D

3D 決策確認表

逐項確認多設備單元命名、Resource Lock、Command Queue、Plugin metadata、Adapter contract 與停止線。

開啟
第三階段 3D

3D contract 實作前確認

確認多設備單元 DTO、Resource Lock、Command Queue、Plugin metadata、測試策略與停止線。

開啟
第三階段 3D

3D contract 決策確認

逐項回覆多設備單元 contract、Resource Lock、Command Queue、Plugin metadata 與停止線。

開啟
第三階段 3D

3D 完成稽核表

確認 3D contract 前置節點已完成,並保留 Plugin Loader、DLL、Adapter contract 與 config schema 停止線。

開啟
第三階段 3D

3D 線上驗收紀錄

確認文件 repo push 後,Cloudflare Pages 首頁、第三階段儀表板、3D 稽核頁與 status.json 已反映 3D 狀態。

開啟
第三階段 3D

3D 程式 repo 結構檢查

唯讀盤點 Application、Adapter dispatcher、config schema 與 Plugin Loader 停止線,確認 3D contract 承接位置。

開啟
第三階段 3D

3D 結構檢查線上驗收

確認文件 repo push 後,Cloudflare Pages 首頁、新結構檢查頁、第三階段儀表板與 status.json 已反映結構檢查狀態。

開啟
第三階段 3D

3D Application contract 草案

整理 ControlUnits、Resources、Commands、Plugins、Application error code 與測試策略七項確認,確認前不進程式實作。

開啟
第三階段 3D

3D Application contract 決策

記錄使用者已同意七項 Application contract 決策,並保留 ServiceHost、WebApi、Plugin Loader、DLL 與 config schema 停止線。

開啟
完整索引

docs 文件索引

查找所有規劃、驗證紀錄、實作前確認與開發日誌。

開啟
其他基礎文件