開發日誌

返回文件首頁

開發日誌

本日誌記錄文件 repo 與未來程式 repo 的重要進度,方便回顧每次完成內容、完成時間與下一步。

2026-05-20

前導文件與網站發布

項目內容
狀態已完成
完成時間2026-05-20
repohs-device-control-template-docs
內容建立架構方向、第一階段開工規格、README、docs 文件、前導完成檢查表
驗證GitHub repo 已推送,Cloudflare Pages 已發布

手機閱讀版與 PDF 版檢查

項目內容
狀態已完成
完成時間2026-05-20
內容修正手機版排版、PDF 首頁空白頁、Markdown 文件列印標題重複
驗證線上頁面已確認無水平溢出,PDF 頁數正常

開發進度追蹤規則

項目內容
狀態已完成
完成時間2026-05-20
內容新增開發進度總覽與完成時間欄位規則
下一步建立程式碼 repo 後,開始同步更新模組進度

程式 repo 建立

項目內容
狀態已完成
完成時間2026-05-20
repohs-device-control-template
內容建立智慧設備順序控制系統共用程式骨架 repository
下一步建立 .NET 5.0 Solution、Core、Adapters、ConsoleHost 與測試專案骨架

.NET 5.0 程式碼骨架初版

項目內容
狀態已完成
完成時間2026-05-20
repohs-device-control-template
commit96347b2
內容建立 HS.DeviceControl.sln、Core、Adapters、ConsoleHost、Core.Tests、Adapters.Tests、WorkflowSimulation.Tests
驗證dotnet test 通過 7 個測試;ConsoleHost 可執行燈號導引 + Sensor 驗證代表流程
注意.NET 5.0 會出現 EOL 警告,屬於目前指定版本的預期現象
下一步補強 Workflow / Config / Log / TaskEngine 細節

註解撰寫規則

項目內容
狀態已完成
完成時間2026-05-20
repo文件 repo / 程式 repo
內容新增中文註解、XML 註解、一般註解的撰寫規範
驗證文件 repo 與程式 repo 均已加入 AGENTS.md;程式 repo 已啟用 XML 文件輸出設定
下一步後續補強公開 API 時,同步補 XML 註解

程式碼 XML 註解補強

項目內容
狀態已完成
完成時間2026-05-20
repohs-device-control-template
內容Core 與 Adapters 的公開類別、介面、方法、屬性與 enum 補上繁體中文 XML 註解
驗證公開 API 缺註解檢查無遺漏;dotnet test 通過 7 個測試
下一步進入 Config / Workflow Schema / Log 格式與 TaskEngine 細節補強

Workflow 定義驗證規則

項目內容
狀態已完成
完成時間2026-05-20
repohs-device-control-template
內容新增 WorkflowDefinition.Validate(),檢查 WorkflowId、StartNodeId、節點清單、重複 NodeId、CommandName、Timeout、RetryCount、起始節點與下一節點連結
驗證dotnet test 通過 13 個測試;ConsoleHost 代表流程可正常完成
下一步補上 devices.json、workflows.json、appsettings.json 設定檔範例

2026-05-21

驗證節點規則

項目內容
狀態已完成
完成時間2026-05-21
repo文件 repo / 程式 repo
內容明確定義驗證節點不是每次小修改都要做,而是在狀態機、Workflow、Adapter、ConsoleHost、Config、文件網站等可驗收節點完成後,用來說明實際效果
驗證新增 docs/verification-node.md;文件 repo 與程式 repo 的 AGENTS.md 均已補充驗證節點規則;HTML 與 public 發布包已同步
下一步後續每完成一個功能節點時,提供驗證節點回報,讓使用者判斷實際效果是否可接受

設定檔範例與 Config Validator

項目內容
狀態已完成
完成時間2026-05-21
repohs-device-control-template
commit4691101
內容新增 samples/config 範例、設定模型、ConfigValidatorCFG-0001 錯誤代碼與驗證測試
驗證dotnet test 通過 20 個測試;ConsoleHost 代表流程可正常完成;範例 JSON 已納入反序列化與驗證測試
下一步建立 Config Loader,將 JSON 檔案載入成設定物件,再交由 ConfigValidator 驗證

前端人工驗證範圍

項目內容
狀態已完成
完成時間2026-05-21
repohs-device-control-template-docs
內容補充第一階段前端人工驗證範圍,明確區分文件網站 / 手機閱讀 / PDF 需要人工檢查,Core / Workflow / StateMachine / ConfigValidator 以自動測試與驗證節點回報為主
驗證架構方向、第一階段開工規格、前導完成檢查表與 public 發布包同步更新
下一步後續若建立 WinForms Debug Tool 或 Web UI,再建立正式操作畫面人工驗證清單

Config Loader

項目內容
狀態已完成
完成時間2026-05-21
repohs-device-control-template
commit35b4c69
內容新增 ConfigLoaderConfigLoadResult,可從資料夾載入 devices.jsonworkflows.jsonappsettings.json,並交由 ConfigValidator 驗證
驗證dotnet test 通過 25 個測試;涵蓋範例設定載入、資料夾不存在、缺少必要檔案、JSON 格式錯誤、載入後驗證失敗
下一步建立 Config Mapper,將 WorkflowConfiguration 轉成可執行的 WorkflowDefinition,或先讓 ConsoleHost 從設定檔載入代表流程

Config Mapper

項目內容
狀態已完成
完成時間2026-05-21
repohs-device-control-template
commit9110e4c
內容新增 WorkflowConfigurationMapperWorkflowDefinitionMapResult,可將 WorkflowConfiguration 轉成 WorkflowEngine 可執行的 WorkflowDefinition
驗證dotnet test 通過 30 個測試;新增 sample config 載入、轉換後交由 WorkflowEngine 完成代表流程的流程模擬測試;ConsoleHost 既有代表流程仍可正常執行
下一步評估是否讓 ConsoleHost 從 samples/config 載入代表流程,或先補強 FileLogWriter / ConsoleLogWriter 格式

ConsoleHost 設定檔啟動

項目內容
狀態已完成
完成時間2026-05-21
repohs-device-control-template
commit637e35f
內容ConsoleHost 預設改為從 samples/config 載入設定,依序執行 ConfigLoaderConfigValidatorWorkflowConfigurationMapperWorkflowEngine
驗證dotnet test 通過 30 個測試;dotnet run --project src\HS.DeviceControl.ConsoleHost 可從 sample config 完成 light-onsensor-verify;指定 samples\config LIGHT_SENSOR_DEMO 也可正常完成
下一步補強 FileLogWriter / ConsoleLogWriter 格式,或補齊 Config / ConsoleHost 驗證節點回報文件

2026-05-22

Log 輸出格式

項目內容
狀態已完成
完成時間2026-05-22
repohs-device-control-template
commit4fb2947
內容新增 LogEntryFormatterFileLogWriter,並讓 ConsoleLogWriter 共用穩定的單行 key-value 格式;WorkflowEngine 會依節點結果寫入 INFOERROR
驗證dotnet test 通過 33 個測試;dotnet run --project src\HS.DeviceControl.ConsoleHost -- samples\config LIGHT_SENSOR_DEMO 可輸出 level="INFO"taskIdnodeIdnodeNamecommandstatuserrorCodemessage 欄位
注意.NET 5.0 仍會出現 EOL 警告,屬於目前指定版本的預期現象
下一步補齊 Config / ConsoleHost 驗證節點回報文件,或評估 Workflow 執行模型是否需要保存 DeviceId

Config / ConsoleHost 驗證節點紀錄

項目內容
狀態已完成
完成時間2026-05-22
repohs-device-control-template-docs
內容新增 docs/verification-records.md,補齊 Config Loader、Config Mapper、ConsoleHost 設定檔啟動的驗證目的、驗證方式、實際結果、限制與下一步
驗證重新執行 dotnet test 通過 33 個測試;重新執行 dotnet run --project src\HS.DeviceControl.ConsoleHost -- samples\config LIGHT_SENSOR_DEMO 可完成兩節點代表流程;HTML 與 public 發布包同步更新
下一步評估 Workflow 執行模型是否需要保存 DeviceId,或補強設備離線、逾時與重試相關驗證案例

DeviceId 執行鏈路

項目內容
狀態已完成
完成時間2026-05-22
repohs-device-control-template
commitc2460b8
內容DeviceIdWorkflowNodeConfig 串接至 WorkflowNodeDeviceCommandLogEntry,Console / File Log 會輸出 deviceId 欄位
驗證dotnet test 通過 35 個測試;dotnet run --project src\HS.DeviceControl.ConsoleHost -- samples\config LIGHT_SENSOR_DEMO 可輸出 deviceId="LED_001"deviceId="SENSOR_001"
下一步補強設備離線、節點逾時、重試後成功、重試後仍失敗等驗證案例,或評估 Adapter 分派器

節點失敗與重試驗證

項目內容
狀態已完成
完成時間2026-05-22
repohs-device-control-template
commit0ea990d
內容WorkflowEngine 新增節點重試與同步逾時判斷,Log 補上 retryCounttimeTakenMs;新增設備離線、逾時、重試後成功、重試耗盡失敗測試
驗證dotnet test 通過 39 個測試;dotnet run --project src\HS.DeviceControl.ConsoleHost -- samples\config LIGHT_SENSOR_DEMO 可正常完成並輸出 retry / timeTaken 欄位
下一步評估 Adapter 分派器,或規劃 TaskEngine 與更完整的任務生命週期

Adapter 分派器

項目內容
狀態已完成
完成時間2026-05-22
repohs-device-control-template
commit1cb8891
內容新增 DeviceAdapterDispatcher,可依 DeviceId 將命令分派到不同設備 Adapter;ConsoleHost 會依 devices.json 建立並註冊各設備 Mock Adapter;新增 DEV-0003 表示找不到對應 Adapter
驗證dotnet test 通過 41 個測試;dotnet run --project src\HS.DeviceControl.ConsoleHost -- samples\config LIGHT_SENSOR_DEMO 可正常完成並透過 Dispatcher 執行 LED_001SENSOR_001
下一步規劃 TaskEngine 與更完整的任務生命週期,或補 Adapter Connect / Disconnect / GetStatus 生命週期

TaskEngine 最小版本

項目內容
狀態已完成
完成時間2026-05-22
repohs-device-control-template
commit9a55d17
內容新增 TaskEngineTaskExecutionRecord,將 Workflow 執行包裝成可追蹤任務,記錄 TaskId、WorkflowId、狀態、開始時間、結束時間、耗時與結果
驗證dotnet test 通過 44 個測試;dotnet run --project src\HS.DeviceControl.ConsoleHost -- samples\config LIGHT_SENSOR_DEMO 仍可正常完成
下一步評估 Adapter Connect / Disconnect / GetStatus 生命週期,或補 TaskEngine 暫停、取消與背景執行

Adapter 生命週期

項目內容
狀態已完成
完成時間2026-05-22
repohs-device-control-template
commit60e61b5
內容IDeviceAdapter 新增 ConnectDisconnectGetStatus;新增 DeviceConnectionStatus;Mock Adapter 會追蹤 Connected / Disconnected 狀態;Dispatcher 可對所有註冊 Adapter 執行連線與斷線
驗證dotnet test 通過 49 個測試;dotnet run --project src\HS.DeviceControl.ConsoleHost -- samples\config LIGHT_SENSOR_DEMO 會先連線 Mock Adapter,再正常完成代表流程
下一步討論真實設備 Adapter 設定欄位、連線失敗重試策略與狀態查詢格式

2026-05-25

開發狀態自動同步驗證

項目內容
狀態已完成
完成時間2026-05-25
repohs-device-control-template / hs-device-control-template-docs
commit程式 repo 3c05cf5;文件 repo 自動同步 1e1fd11
內容修正文件 repo apply-code-status.yml payload 解析方式,完成程式 repo push 後自動通知文件 repo 更新 status.json 的驗證。
驗證Cloudflare Pages 公開 status.json 顯示 shortCommit=3c05cf5branch=poc/nmodbus-tcpsource=github-actions;本機 UTF-8 JSON parser 確認中文欄位正確。
下一步持續觀察後續正式程式 commit 是否會自動更新首頁;若未更新,先查 notify-docsapply-code-status 兩個 workflow。

2026-05-30

MySqlSchemaSqlGenerator 第一版實作與驗證紀錄

項目內容
狀態已完成
完成時間2026-05-30
repohs-device-control-template / hs-device-control-template-docs
commit程式 repo 實作 9bd1ec1;驗證分支最新 6c5cd01;程式 repo main 同步 fdabf8d
內容補齊 MySqlSchemaSqlGenerator 第一版實作後的驗證紀錄,確認第一版只產生 CREATE TABLE IF NOT EXISTS SQL 字串,不連線 MySQL、不執行 DDL。
驗證dotnet test 通過 270 個測試;新增 docs/mysql-sql-generator-implementation-record.md 與 HTML 發布版。
下一步進入 ALTER TABLE / Schema Initializer 實作前確認,先確認 schema diff、Dry Run 與真實 DB 連線邊界。

ALTER TABLE / Schema Initializer 實作前確認

項目內容
狀態已完成
完成時間2026-05-30
repohs-device-control-template-docs
commit本次文件 commit
內容補齊 ALTER TABLE / Schema Initializer 實作前確認,將工作拆成可自動執行、需回報確認、必須停下確認三個分級。
驗證文件包含 ALTER TABLE ADD COLUMNADD INDEX、Dry Run Plan、Schema Inspector、Schema Executor 與真實 MySQL 連線邊界。
下一步依確認清單進入 ALTER TABLE SQL 產生器與 Dry Run Plan 第一版實作,但真實 DB 連線與 DDL 執行仍需使用者明確確認。

ALTER TABLE SQL 產生器與 Dry Run Plan 第一版

項目內容
狀態已完成
完成時間2026-05-30
repohs-device-control-template
commitdb0b1b8
內容新增 SchemaMigrationPlanSchemaMigrationOperationSchemaMigrationOperationType,並擴充 MySqlSchemaSqlGenerator 產生 ADD COLUMNADD INDEX 與 Dry Run Plan。
驗證dotnet test 通過 278 個測試;測試確認不產生 DROPMODIFYCHANGE 破壞性 SQL。
下一步進入 Schema Inspector / information_schema 實作前確認,此節點將牽涉 MySQL 套件與連線資訊,需先停下確認。

Schema Inspector / information_schema 實作前確認

項目內容
狀態已完成
完成時間2026-05-30
repohs-device-control-template-docs
commit本次文件 commit
內容整理 Schema Inspector 第一版的只讀範圍、information_schema.TABLES / COLUMNS / STATISTICS / KEY_COLUMN_USAGE 查詢欄位、MySQL 5.6.2 注意事項、測試策略與需停下確認項目。
驗證文件明確標示不導入 MySQL 套件、不連線 DB、不執行 DDL,並建議先做 ISchemaInspector 與 mock inspector。
下一步進入 Schema Inspector 抽象介面與 mock inspector 實作前確認,先確認介面與測試案例;若要直接做真實 MySQL Inspector,需先確認 MySQL 套件與連線資訊。

Schema Inspector 抽象介面與 mock inspector 實作前確認

項目內容
狀態已完成
完成時間2026-05-30
repohs-device-control-template-docs
commit本次文件 commit
內容整理 ISchemaInspectorSchemaInspectRequestSchemaInspectResult、mock inspector 行為、測試案例與不納入範圍。
驗證文件明確限制本節點不新增 MySQL 套件、不連線 DB、不查詢 information_schema、不執行 DDL,下一步可安全進入第一版程式實作。
下一步進入 Schema Inspector 抽象介面與 mock inspector 第一版實作,只建立介面、模型、mock 實作與單元測試。

Schema Inspector 抽象介面與 mock inspector 第一版實作

項目內容
狀態已完成
完成時間2026-05-30
repohs-device-control-template
commite8fd1b0
內容新增 ISchemaInspectorSchemaInspectRequestSchemaInspectResultMockSchemaInspectorSchemaInspectionFailedSchemaInspectorTests
驗證dotnet test 通過 286 個測試;本節點未新增 MySQL 套件、未連線 DB、未查詢 information_schema、未執行 DDL。
下一步進入 Schema Inspector 與 Dry Run Plan 串接服務設計,先確認是否建立不執行 DDL 的 SchemaDryRunPlanner

Schema Inspector 與 Dry Run Plan 串接服務設計

項目內容
狀態已完成
完成時間2026-05-30
repohs-device-control-template-docs
commit本次文件 commit
內容整理 SchemaDryRunPlanner 的必要性、責任邊界、request/result model、錯誤處理、測試案例與不納入範圍。
驗證文件明確限制本節點不新增 MySQL 套件、不連線 DB、不查詢 information_schema、不執行 DDL,下一步可安全進入純流程服務實作。
下一步進入 SchemaDryRunPlanner 第一版實作,只建立 request、result、planner 與單元測試。

SchemaDryRunPlanner 第一版實作

項目內容
狀態已完成
完成時間2026-05-30
repohs-device-control-template
commitb69046e
內容新增 SchemaDryRunRequestSchemaDryRunResultSchemaDryRunPlannerSchemaDryRunPlannerTests,完成 inspector snapshot 與 GenerateDryRunPlan 的純流程串接。
驗證dotnet test tests\HS.DeviceControl.Core.Tests\HS.DeviceControl.Core.Tests.csproj 通過 152 個測試;dotnet test 通過 297 個測試。
下一步進入 SchemaDryRunPlanner ConsoleHost / Initializer 承接設計,先決定只顯示 Dry Run、分離 DryRun / Apply 模式,以及真實 MySQL Inspector 導入前條件。

SchemaDryRunPlanner ConsoleHost / Initializer 承接設計

項目內容
狀態已完成
完成時間2026-05-30
repohs-device-control-template-docs
commit本次文件 commit
內容整理 SchemaDryRunPlanner 後續如何承接到 ConsoleHost 顯示層、Schema Initializer 協調層與未來 Schema Executor 執行層。
驗證文件明確限制本節點不導入 MySQL 套件、不連線 DB、不執行 DDL、不改 ConsoleHost 啟動方式,並定義 DryRun / Apply 分離規則。
下一步進入 SchemaDryRunPlanner ConsoleHost 顯示實作前確認,先確認 ConsoleHost 要顯示的欄位、formatter 與測試範圍。

SchemaDryRunPlanner ConsoleHost 顯示實作前確認

項目內容
狀態已完成
完成時間2026-05-30
repohs-device-control-template-docs
commit本次文件 commit
內容整理 ConsoleHost dry run 顯示格式、formatter 建議、測試清單、禁止範圍與人工驗證重點。
驗證文件明確限制下一步實作只做 ConsoleHost 顯示與 formatter,不導入 MySQL 套件、不連線 DB、不執行 DDL、不改啟動方式。
下一步進入 SchemaDryRunPlanner ConsoleHost 顯示第一版實作,補 formatter、mock dry run demo、測試與實作紀錄。

SchemaDryRunPlanner ConsoleHost 顯示第一版實作

項目內容
狀態已完成
完成時間2026-05-30
repohs-device-control-template
commitc09da28
內容實作 ConsoleHost Schema Dry Run 顯示格式器、mock dry run demo、SQL preview / manual review / warning / failed result 輸出,並新增 ConsoleHost 顯示測試。
驗證dotnet test tests\HS.DeviceControl.ModbusPoc.Tests\HS.DeviceControl.ModbusPoc.Tests.csproj 通過 32 個測試;dotnet test 通過 303 個測試;dotnet run --project src\HS.DeviceControl.ConsoleHost 可看到 Schema dry run 與 CREATE TABLE preview。
下一步進入 ConsoleHost Schema Dry Run 顯示人工驗證紀錄,把實際輸出、限制與下一個 Schema Initializer 節點整理成可驗收紀錄。

ConsoleHost Schema Dry Run 顯示人工驗證紀錄

項目內容
狀態已完成
完成時間2026-05-30
repohs-device-control-template-docs
commit本次文件 commit
內容補 ConsoleHost Schema Dry Run 顯示人工驗證紀錄,整理實際 ConsoleHost 輸出、SQL preview、安全限制與驗證判斷。
驗證dotnet run --project src\HS.DeviceControl.ConsoleHost 可看到 Workflow 完成、Task node history、Recent tasks 與 Schema dry run 區塊;本機頁面檢查無亂碼。
下一步進入 Schema Initializer DryRun 流程設計,先定義 initializer 協調層、DryRun / Apply 分離與真實 MySQL Inspector 導入條件。

Schema Initializer DryRun 流程設計

項目內容
狀態已完成
完成時間2026-05-30
repohs-device-control-template-docs
commit本次文件 commit
內容定義 Schema Initializer 的 DryRun 協調流程、元件分工、Request / Result、Error / Warning、ConsoleHost 接入策略與驗收標準。
驗證文件檢查確認本節點只做設計,不導入 MySQL 套件、不連線 DB、不讀取 information_schema、不執行 DDL、不修改 ConsoleHost 啟動方式。
下一步進入 Schema Initializer DryRun 實作前確認,確認 class 邊界、測試放置位置與是否先使用 MockSchemaInspector。

Schema Initializer DryRun 實作前確認

項目內容
狀態已完成
完成時間2026-05-30
repohs-device-control-template-docs
commit本次文件 commit
內容整理 SchemaInitializerSchemaInitializerDryRunRequestSchemaInitializerResult、Core tests 與 MockSchemaInspector 的第一版實作範圍。
驗證文件明確限制下一步不新增 MySQL 套件、不連線 MySQL、不讀取 information_schema、不執行 DDL、不修改 ConsoleHost 啟動方式、不實作 Apply。
下一步進入 Schema Initializer DryRun 第一版實作,只建立協調層、request/result model 與單元測試。

Schema Initializer DryRun 第一版實作

項目內容
狀態已完成
完成時間2026-05-30
repohs-device-control-template
commit52adfab
內容新增 SchemaInitializerSchemaInitializerDryRunRequestSchemaInitializerResult 與 10 個 Core 測試,完成 DryRun 協調層第一版。
驗證dotnet test tests\HS.DeviceControl.Core.Tests\HS.DeviceControl.Core.Tests.csproj 通過 162 個測試;全專案 dotnet test 通過 313 個測試;未新增 MySQL 套件、未連線 DB、未執行 DDL、未修改 ConsoleHost 啟動方式。
下一步進入 Schema Initializer DryRun ConsoleHost 接入設計,先確認是否讓 ConsoleHost 改由 initializer 取得 dry run result。

Schema Initializer DryRun ConsoleHost 接入設計

項目內容
狀態已完成
完成時間2026-05-30
repohs-device-control-template-docs
commit本次文件 commit
內容整理 ConsoleHost 從直接呼叫 SchemaDryRunPlanner 改為透過 SchemaInitializer 取得 dry run result 的小步接入策略、顯示格式、測試範圍與禁止項目。
驗證文件明確限制本節點不修改程式、不改 ConsoleHost 啟動方式、不連 MySQL、不執行 DDL、不實作 Apply。
下一步進入 Schema Initializer DryRun ConsoleHost 接入實作前確認,確認 formatter、demo 建立流程與測試項目。

2026-05-31

Schema Initializer DryRun ConsoleHost 接入實作前確認

項目內容
狀態已完成
完成時間2026-05-31
repohs-device-control-template-docs
commit本次文件 commit
內容補齊 ConsoleHost 小步接入 SchemaInitializer 的實作前確認,明確限定下一步只新增 initializer formatter、demo request 與顯示測試。
驗證文件明確限制下一步不改 ConsoleHost 啟動方式、不新增 MySQL package、不連 DB、不讀取 information_schema、不執行 DDL、不實作 Apply。
下一步進入 Schema Initializer DryRun ConsoleHost 接入實作,修改程式 repo 的 ConsoleHost 顯示層並補測試。

Schema Initializer DryRun ConsoleHost 接入實作

項目內容
狀態已完成
完成時間2026-05-31
repohs-device-control-template
commitac52376
內容ConsoleHost schema dry run 顯示改由 SchemaInitializer 取得 SchemaInitializerResult,並新增 initializer formatter 與 5 個顯示測試。
驗證dotnet test tests\HS.DeviceControl.ModbusPoc.Tests\HS.DeviceControl.ModbusPoc.Tests.csproj 通過 37 個測試;全專案 dotnet test 通過 318 個測試;dotnet run --project src\HS.DeviceControl.ConsoleHost 可看到 Schema initializer dry run:
下一步ConsoleHost Schema Initializer DryRun 人工驗證紀錄,整理實際輸出、限制與後續建議。

ConsoleHost Schema Initializer DryRun 人工驗證紀錄

項目內容
狀態已完成
完成時間2026-05-31
repohs-device-control-template-docs
commit本次文件 commit
內容補齊 ConsoleHost 實際輸出驗證紀錄,確認 Workflow 代表流程、Schema initializer dry run、SQL preview、Source / CorrelationId 與安全警告皆符合預期。
驗證文件明確記錄本節點仍使用 mock schema snapshot,不連 MySQL、不讀取 information_schema、不執行 DDL、不修改 ConsoleHost 啟動方式。
下一步進入 Schema Automation 第一輪收尾檢查,確認是否可進入真實 MySQL Inspector 前置確認。

Schema Automation 第一輪收尾檢查

項目內容
狀態已完成
完成時間2026-05-31
repohs-device-control-template-docs
commit本次文件 commit
內容整理 Schema Automation 第一輪完成邊界,確認 SQL Generator、ALTER TABLE Dry Run、Mock Inspector、SchemaDryRunPlanner、SchemaInitializer、ConsoleHost 顯示與人工驗證已形成完整閉環。
驗證文件明確列出已完成項目、尚未完成但不屬於第一輪的項目,以及進入真實 MySQL Inspector 前必須停下確認的範圍。
下一步進入 真實 MySQL Inspector 前置確認,但導入 MySQL 套件、連線 DB、讀取 information_schema 或執行 DDL 前仍需另行確認。

真實 MySQL Inspector 前置確認

項目內容
狀態已完成
完成時間2026-05-31
repohs-device-control-template-docs
commit本次文件 commit
內容整理真實 MySQL Inspector 的唯讀 metadata 目標、連線資訊安全規則、information_schema 查詢欄位、MySQL 5.6.2 注意事項、測試策略與停止條件。
驗證文件明確標示本節點不導入 MySQL 套件、不連線 DB、不讀取真實 metadata、不執行 DDL。
下一步整理 MySqlSchemaInspector 實作前確認清單;若要導入 MySqlConnector、建立連線資訊、讀取 information_schema 或接 ConsoleHost 啟動參數,需先確認。

MySqlSchemaInspector 實作前確認清單

項目內容
狀態已完成
完成時間2026-05-31
repohs-device-control-template-docs
commit本次文件 commit
內容整理 MySqlSchemaInspector 的實作位置、套件導入條件、query builder 範圍、row mapping 規則、錯誤格式、測試案例與人工驗證節點。
驗證文件明確標示本節點仍不導入 MySqlConnector、不修改 .csproj、不連線 DB、不讀取真實 information_schema、不執行 DDL。
下一步先確認是否允許導入 MySqlConnector;若尚未允許,可先做 Query Builder / Row Mapper 設計。

MySqlSchemaInspector Query Builder / Row Mapper 設計

項目內容
狀態已完成
完成時間2026-05-31
repohs-device-control-template-docs
commit本次文件 commit
內容整理不連 DB 的 query builder、table filter、metadata row mapping、snapshot assembly、錯誤格式與單元測試設計。
驗證文件明確標示仍不導入 MySqlConnector、不修改 .csproj、不連線 MySQL、不讀取真實 information_schema、不執行 DDL。
下一步整理 Query Builder / Row Mapper 實作前確認,列出要新增的 class、method、測試檔與不改 public contract 的方式。

Query Builder / Row Mapper 實作前確認

項目內容
狀態已完成
完成時間2026-05-31
repohs-device-control-template-docs
commit本次文件 commit
內容整理 Query Builder / Row Mapper 第一版實作前確認,列出可新增的 class、method、測試檔、影響範圍與停止線。
驗證文件明確標示仍不導入 MySqlConnector、不修改 .csproj、不連線 MySQL、不讀取真實 information_schema、不執行 DDL、不改 public method 簽章。
下一步進入程式 repo 結構檢查與第一版實作範圍盤點,先確認現有 namespace、schema model、ISchemaInspector 簽章與測試專案位置。

程式 repo 結構檢查與第一版實作範圍盤點

項目內容
狀態已完成
完成時間2026-05-31
repo文件 repo / 程式 repo 檢查
程式 repo 版本ac52376
內容已確認 Schema 相關程式集中在 src/HS.DeviceControl.Core/Schema,測試集中在 tests/HS.DeviceControl.Core.Tests,既有 ISchemaInspector / SchemaInspectRequest / SchemaInspectResult 可承接不連 DB 的第一版 helper。
驗證僅做結構盤點與文件同步,未修改程式 repo、未新增套件、未修改 .csproj、未連線 MySQL。
下一步確認 helper class 採 publicinternal + InternalsVisibleTo;建議採 internal + InternalsVisibleTo,但需使用者確認。

MySQL Schema Inspector 純程式 helper

項目內容
狀態已完成
完成時間2026-05-31
repohs-device-control-template
commit51cb17c
內容新增 internal Query Builder、metadata row mapper、metadata row model、snapshot assembler 與 InternalsVisibleTo,先完成不連 DB 的 metadata 解析前置能力。
驗證dotnet test 合計 329 個測試通過;GitHub Action「通知文件 repo 更新開發狀態」成功。
下一步進入 MySqlSchemaInspector 真實 DB provider 實作前確認;新增 MySqlConnector、修改 .csproj、連線 DB 或讀取真實 information_schema 前仍需確認。

文件網站資訊架構整理規劃

項目內容
狀態已完成
完成時間2026-05-31
repohs-device-control-template-docs
commit本次文件 commit
內容整理首頁減量、第二階段分頁、資料庫可視化儀表板、驗證節點總覽與完整文件索引的建議資訊架構。
驗證新增規劃文件並同步 README / docs 索引;本次不調整 progress.json 結構、不移除既有文件、不改 Actions 或部署流程。
下一步建立 phase-two-dashboarddatabase-dashboard,確認可承接細節後再精簡首頁卡片。

第二階段與資料庫可視化儀表板

項目內容
狀態已完成
完成時間2026-05-31
repohs-device-control-template-docs
commit本次文件 commit
內容新增第二階段儀表板與資料庫可視化儀表板,將已完成 / 未完成邊界、MySQL 主線進度、Schema Automation 流程與資料表草圖集中呈現。
驗證新增 Markdown、HTML 與 public 發布版本,並同步 README / docs 索引;本次未修改程式 repo、未改 progress.json 結構、未導入任何前端框架。
下一步精簡 index.html 首頁卡片,讓首頁只保留總覽、階段邊界、目前主線、下一步與少量快速入口。

首頁卡片精簡與導覽重整

項目內容
狀態已完成
完成時間2026-05-31
repohs-device-control-template-docs
commit本次文件 commit
內容精簡 index.html 首頁卡片,將大量第二階段 MySQL 細節移往第二階段儀表板、資料庫可視化儀表板與 docs 文件索引。
驗證首頁主卡維持 6 張,細節卡由 38 張降為 8 張;public/index.html 已同步。
下一步檢查首頁手機版與線上部署效果,確認精簡後入口是否足夠清楚。

MySqlSchemaInspector 真實 DB provider 實作前確認

項目內容
狀態已完成
完成時間2026-06-01
repohs-device-control-template-docs
commit本次文件 commit
內容整理從純程式 helper 進入真實 DB provider 前的決策點,包含 MySqlConnector 導入、Infrastructure 分層、連線資訊來源、唯讀 inspect 流程、錯誤處理、測試策略、人工驗證節點與必須停下確認事項。
驗證文件明確標示本節點不導入套件、不修改 .csproj、不建立 connection string、不連線 MySQL、不讀取真實 information_schema、不執行 DDL。
下一步做「provider 實作前程式結構檢查」,確認程式 repo 是否需要新增 Infrastructure 專案,以及 MySqlConnector 應放在哪一層。

後續記錄格式

每次重要開發後,建議新增一段:

## YYYY-MM-DD

### 模組或工作名稱

| 項目 | 內容 |
|---|---|
| 狀態 | 已完成 / 進行中 / 待確認 |
| 完成時間 | YYYY-MM-DD 或尚未完成 |
| repo | 文件 repo / 程式 repo |
| commit | commit hash 或 PR 連結 |
| 內容 | 本次完成的重點 |
| 驗證 | 測試、頁面檢查或人工確認 |
| 下一步 | 下一個建議動作 |

返回文件首頁