CL3 v1.6.2 今日工作紀錄


 

CL3 v1.6.2 今日工作紀錄

版本結果

今天已完成 CL3 v1.6.2 的開發收斂、DEV 驗收、STG 驗收與 Git tag 發布。

  • main 已推送

  • v1.6.2 tag 已建立並 push

  • DEV 驗收通過

  • STG 驗收通過


本次主題

Logging v1 / Admin Log Center MVP 正式落地

這次不是單點修 bug,而是把 CL3 的 log 能力往前推了一個完整層級,從原本偏向容器 stdout 與人工追查,升級為:

  • 有結構化欄位

  • 可查詢

  • 可過濾

  • 可追 run_id / symbol / driver

  • 可在 Admin 中直接查看


今日完成項目

1. 完成 unified system logs v1

建立 system_logs 的統一欄位結構,正式導入以下核心欄位:

  • timestamp_utc

  • level

  • service

  • module

  • module_version

  • event_code

  • message

  • run_id

  • symbol

  • driver

  • source

  • extra_json

同時保留相容舊欄位,避免一次性硬切造成舊流程失效。


2. 完成 DB migration

完成並套用:

  • 008_logging_audit_foundation_v1.sql

  • 009_system_logs_schema_v1.sql

成果包括:

  • system_logs 新欄位建立

  • 舊資料回填

  • 查詢索引建立

  • DEV / STG 兩環境 migration 驗證成功


3. 完成共用 structured logger

完成 core / api / admin 共用 logging helper 串接,支援:

  • stdout JSON line 輸出

  • DB best-effort 寫入

  • 自動帶入 service/module/module_version

  • 可附帶 run_id / symbol / driver / source / extra_json

並補強:

  • DB write skipped 可見化

  • DB write failed 可見化

避免 logging 寫失敗時完全 silent swallow。


4. 完成 core lifecycle logging

已成功導入並實測進 DB 的核心事件:

  • CORE_RUNNER_STARTED

  • CORE_TICK_START

  • CORE_TICK_DONE

這代表 core tick 的生命週期已經可以被正式追蹤,而不是只能看 console 字串。


5. 完成 asset-level logging

已成功導入並實測進 DB 的資產層事件:

  • ASSET_FETCH_START

  • ASSET_FETCH_OK

  • ASSET_FETCH_EMPTY

  • ASSET_WRITE_OK

這對未來追 driver 問題、空資料問題、基金或 yfinance 異常問題非常重要。


6. 完成 Admin Log Center MVP

新增:

  • /admin/logs

支援:

  • system logs 檢視

  • event_code / service / level / symbol / driver / keyword 查詢

  • 基本欄位呈現

  • 中英文文案整合

這讓 log 不再只能靠 terminal 或直接查 DB,正式進入後台可視化階段。


7. 修正 DEV 環境兩個重要掛載問題

(1) shared 掛載問題

發現 DEV 容器實際載入的是舊版 shared logging,根因是:

  • docker-compose.dev.yml 未掛載 ./shared:/app/shared

修正後,core/admin/api 才真正吃到新版 logger。

(2) locales 掛載問題

發現 Admin UI 顯示 raw i18n keys,根因是:

  • ./admin:/app 覆蓋掉 image 內 /app/locales

  • 但 DEV compose 未把 repo 的 ./locales 掛回容器

修正後補上:

  • ./locales:/app/locales:ro

Admin Log Center i18n 恢復正常。


今日驗收結果

DEV 驗收

已確認:

  • migration 成功

  • 新 event_code 已寫入 DB

  • CORE_TICK_DONE 已取代舊 CORE_TICK_END

  • ASSET_FETCH_* / ASSET_WRITE_OK 成功落地

  • Admin Log Center 可正常使用

  • i18n 顯示正常

STG 驗收

已確認:

  • STG migration 成功

  • core/admin/api 成功重建並啟動

  • structured logs 出現在 container logs

  • 新事件成功寫入 STG system_logs

STG 最近 30 分鐘 event 分布已確認包含:

  • ASSET_FETCH_START

  • ASSET_WRITE_OK

  • ASSET_FETCH_OK

  • ASSET_FETCH_EMPTY

  • APP_START

  • CORE_TICK_DONE

  • CORE_TICK_START

  • CORE_RUNNER_STARTED

代表本次功能不只在 DEV 成立,也已在 STG 成立。


Git / Release 結果

今日最終 Git 狀態:

  • main 已同步到 origin/main

  • working tree clean

  • 已建立並 push:

    • v1.6.2

因此本次工作已正式收斂為:

CL3 v1.6.2 released


本次工作的價值

這次最大的價值不是多一個後台頁,而是 CL3 開始擁有比較完整的「工程除錯基礎設施」。

換句話說,後面遇到這些問題時,會比以前好處理很多:

  • driver 為什麼抓不到

  • 哪個 symbol 空資料

  • 哪次 tick 失敗

  • 哪個模組版本開始異常

  • 哪次 STG 與 DEV 行為不同

  • 哪個事件在 DB 有落地、哪個只有 stdout

這一步很關鍵,因為它會直接影響未來開發速度與穩定度。


下一步建議

下一輪最值得接的三件事:

1. Log Center detail view

可點開單筆 log 檢視 extra_json 與更多上下文。

2. ERROR / WARN 高亮與快捷篩選

讓異常事件在 UI 中更容易被看見。

3. Access / Audit / System 三類 log 體驗整合

把三種 log 的欄位、查詢與導航體驗再整理成更一致的後台介面。


一句收尾

今天這版不是表面功能,而是把 CL3 從「能跑」往「能追、能查、能維運」再往前推進了一步。

留言

這個網誌中的熱門文章

戰未來十年!我的新家 3 層樓 10G 影音內網 + 全屋 Wi-Fi 7 實戰紀實《序章》

Building CL3 — From Manual Trading to a Decision Engine

戰未來十年!《第二章》魔鬼在細節 - 核心設備選型 (血淚史)