更新紀錄

Miles Start Page 的每次更新,記錄在此。

v6-05-16:12:00
  • 修復 Nginx add_header 繼承缺陷:所有子路徑(/game/、/trade/、/kody/ 等 10 個)恢復安全頭(CSP、HSTS、X-Content-Type、X-Frame、Referrer-Policy),之前因子 location 區塊覆蓋全局頭而全部丟失
  • 建立共享安全頭文件 extension/miles.bar/security-headers.conf,所有子路徑 include 統一管理
  • 主頁面加入 HSTS(2年 + includeSubDomains + preload),Nginx 重載後生效
  • 主站 API 加入 CDN-Cache-Control:search-suggest 60s stale-while-revalidate,Cloudflare 邊緣緩存
  • kody-screener:引入 esbuild 構建管線 — JS 41KB→24KB min→7.7KB Brotli(81% 縮減),CSS 23KB→18KB min→4.6KB Brotli(80%)
  • kody-screener:CSS 加入 content-visibility: auto,離屏卡片跳過渲染,大列表性能提升 3–5×
  • kody-screener:Express 層啟用 Brotli[email protected]),CDN-Cache-Control 分層緩存策略
  • kody-screener:localStorage watchlist 緩存讀取,避免重複 JSON.parse
  • kody-screener:加入 esbuild --watch + node --watch 雙 watch 開發模式
  • kody-screener:skip-link、:focus-visible 鍵盤焦點、prefers-reduced-motion、print styles
  • kody-screener:search combobox 完整 ARIA(aria-expanded、role=combobox/listbox/option)
  • kody-screener:modal focus trap + Escape 關閉、aria-live 動態公告、全局錯誤處理
  • /test/:移除 user-scalable=no,加入 meta description + OG + canonical + favicon
  • 修復 /21/ 21點遊戲:PM2 blackjack-21 上線(port 3001),加入 compression + 安全頭 + 優雅關閉
  • /21/:修復 Nginx 路徑映射(/21/ → root /),WebSocket 升級已配置
  • 建立 /vid/ 頁面:HLS 影片播放器(之前目錄缺失返回 404)
  • kody-screener:Open Graph + Twitter Card + canonical + JSON-LD(WebApplication schema)
  • kody-screener:robots.txt + sitemap.xml 端點
  • kody-screener:preconnect Yahoo Finance API 來源
v5-27-09:41:38
  • 壁纸预加载使用响应式 -1200 变体(160KB),取代完整分辨率文件(1.2–2.0MB),LCP 减少约10倍
  • 内联关键 CSS 值与外部样式表对齐(clock、search、hero),消除外部 CSS 加载时的布局偏移(CLS)
  • 加入 Speculation Rules API,对 /game/ 和 /trade/ 启用 moderate prerender
  • 全面移除自定义光标:删除 cursor: url() 声明、@media pointer:fine 区块、cursor-glow DOM 元素、ui-effects.ts 逻辑、mouse.jpeg/png 文件
  • 内联 CSS 值对齐 base.css:#clock、#date、#hero-section、#search-input、.search-wrapper、移动端 breakpoint
  • background-wallpaper.ts normalizeWallpaperUrl 非缩图路径解析为 -1200 变体
v5-25-17:31:09
  • 移除 Nginx CSP 中未使用的 static.cloudflareinsights.com,解決華為瀏覽器廣告攔截誤報(已阻止3條廣告)
v5-24-10:30:28
  • Admin token 加固:移除 query string 支援,僅接受 x-admin-token header
  • WebSocket 連線加入 origin 校驗,阻擋跨站劫持
  • 登入加入速率限制:5 次 / 15 分鐘 / IP
  • 移除原始碼中的硬編碼 admin 密碼,改為環境變數
  • 設定 express.json 請求體大小上限 100kb
  • 新增全域安全 headers:X-Content-Type-Options、X-Frame-Options、Referrer-Policy、Permissions-Policy
  • Trade 寫入端點加入 CSRF origin 校驗
  • Nginx 加入 Cloudflare real_ip 配置
  • h1 標題修正為繁體中文
  • 移除無效 JSON-LD Article 節點、WebSite.dateModified
  • 隱私政策頁面加入 sitemap.xml
  • robots.txt bot token 修正(Googlebot、Bingbot)
  • 補充 twitter:creator 與 og:image:type
  • 新增全站 :focus-visible 鍵盤焦點環
  • 擴展 prefers-reduced-motion 涵蓋更多動畫
  • 修復隱私鏈接 pointer-events 遮擋問題
  • 新增跳至主要內容(skip-to-content)鏈接
  • emoji 加入 aria-hidden 包裹
  • CWV INP observer 加入 durationThreshold 過濾非交互事件
  • esbuild target 從 es2018 升級至 es2020
v5-22-07:03:57
  • 搜尋建議 CJK 查詢優先使用 Bing,IME 輸入完成後自動觸發
  • 天氣代碼對映重構為查表模式,提升可維護性
  • 前端背景壁紙模組優化,改善載入順序
v5-21-22:04:29
  • 刪除 CSS 重複區塊約 108 行
  • 合併 JS 重複函數,減少冗餘
  • 天氣代碼對映初步整理
v5-20-03:59:00
  • 壁紙回應式變體:按 viewport 自動選用 -800 / -1200 / 原始尺寸,移動端 LCP 從 1–2MB 降至 18–100KB
  • GPU 動畫暫停:ambient-blob 在非活躍狀態設為 animation-play-state: paused,節省 GPU 合成
  • Service Worker 擴展:新增 CORE_CACHE,cache-first 策略快取 CSS/JS 建置檔與備用壁紙
  • 壁紙縮圖 prefetch:首頁預載 6 張 thumbnail,modal 即開即現
v5-19-16:11:16
  • 管理圖片頁面(/managepic)重構:liquid glass 風格,支援批次上傳與排序
  • 520 留言模組上線
  • 壁紙上傳 API 優化,R2 儲存路徑標準化
v5-14-10:25:42
  • DNS 管理全面遷移至 Cloudflare,移除 GoDaddy _domainconnect CNAME
  • Cloudflare zone 配置定案:Brotli、Polish (Lossless)、Early Hints、Hotlink Protection 全線啟用
  • Nginx CSP 政策定型,media-src / connect-src 明確指定 media.miles.bar
  • 敏感檔案阻擋規則完善(.env、*.bak、node_modules 等)
  • JSON-LD @graph 結構化資料:WebSite、WebApplication、2× WebPage、Person、Organization
  • <noscript> SSR 內容區塊,無 JS 爬蟲可直接解析
  • hreflang 標籤(zh-HK + x-default)、canonical URL、OG / Twitter Card 全覆蓋
  • RSL 1.0 meta 標籤:授權、AI 訓練退出、AI 搜尋允許
  • Cloudflare WAF 規則:放行已驗證爬蟲(Google、Bing),阻擋 8 組社交/AI 爬蟲 UA
  • robots.txt 六組獨立 bot 規則(GPTBot、ClaudeBot、PerplexityBot、OAI-SearchBot、Googlebot、Bingbot)
  • sitemap.xml 註冊,www → non-www 301,/game → /game/ 301
  • 隱私政策頁面上線(/privacy/)
  • 五子棋與交易頁面 SEO 標籤補全
v5-13-04:03:33
  • SQLite 交易引擎(tradeStore.js,~1500 行):帳戶、訂單、持倉、PnL 全功能
  • 支援 BTC/USDT、ETH/USDT、SOL/USDT、TON/USDT 四個交易對
  • 市場/限價單、止損/止盈、1x–100x 槓桿、強制平倉、維護保證金
  • 前端交易終端 SPA(/trade/)與管理後台(/trade-admin/)
v5-12-11:36:00
  • .well-known/api-catalog:RFC 9727 API 目錄,指向 openapi.json 與 /health
  • .well-known/agent-skills/index.json:註冊 8 個 agent skills
  • .well-known/mcp/server-card.json:MCP server card,3 個 WebMCP 工具(search、weather_video、wallpapers)
  • OAuth 2.0 授權伺服器與保護資源中繼資料
  • OpenID Connect discovery
  • openapi.json:OpenAPI 3.1.0 規範(7 個公開端點)
  • llms.txt:RSL 1.0 授權,AI 爬蟲引導
  • Markdown 內容協商:Accept: text/markdown → /index.md
  • 首頁 Link 回應頭:廣告 API catalog、OpenAPI、docs、agent-skills、MCP server card
v5-10-15:35:02
  • managepic 全面切換為 WebAuthn platform passkey 認證
  • 舊有帳號密碼登入端點(/api/admin/login)停用
  • 憑證僅儲存公鑰與計數器,禁止預先建立憑證檔案
  • 首次註冊綁定為唯一管理員 passkey
v5-10-07:36:29
  • 合成市場引擎(tradeMarket.js):布朗運動模擬價格,支援 OHLCV
  • WebSocket 即時行情(tradeRealtime.js):價格推送、訂單成交、資產更新
  • 手續費與保證金計算模組(tradeFees.js)
  • 交易 API 金鑰認證(tradeAuth.js)
  • TypeScript 模組拆分:search-dashboard、time、ui-effects 獨立檔案
  • 搜尋意圖系統(search-intents.ts):!yt、!b、!g 快捷指令、URL 辨識
v5-9-14:57:07
  • WebAuthn / Passkey 基礎設施(webauthn.js):支援 iOS / 桌面平台生物認證
  • managepic 後台開始遷移至 passkey 認證流程
  • 交易系統 MVP 規劃與基礎設施搭建
v5-8-12:12:00
  • iPhone Safari 視口修復:全螢幕容器 100vh → 100dvh,消除底部白邊與內容遮擋
  • viewport meta 加入 viewport-fit=cover
  • 全站引入 env(safe-area-inset-*),避開瀏覽器工具欄
  • 行動端模組排序優化:日程優先於日曆
  • 磨砂玻璃渲染即時化,消除 0.8s 延遲
  • DESIGN.md 建立,規範 Liquid Glass 視覺系統與版本號規則
v5-7-12:36:47
  • 社群壁紙遷移至 Cloudflare R2:上傳、刪除、URL 建構(r2Storage.js)
  • 壁紙檔案命名標準化(wallpaperImages.js)
  • 舊本地上傳目錄(/uploads/)保留為 legacy 兼容
v5-3-00:00:00
  • 儀表板日程課表模組:當日課程時間線顯示(A–E 週輪替)
  • 月曆檢視(calendar-wrap),支援前後月份切換
  • 當天日程結束後自動切換為第二天課表
  • 磨砂玻璃深色模式儀表板(dashboard-stage)
  • 新訪客預設靜態 Bing 壁紙(取代影片模式),現有用戶 localStorage 偏好不受影響
  • CJK 中文輸入法體驗優化:IME composition 結束後才觸發搜尋建議
  • 首次進入儀表板/日曆時,壁紙偏好快捷鍵短暫高亮提示
v5-2-04:13:00
  • 後端模組化:app.js 拆分為 lib/ 獨立路由模組(adminRoutes、gameRoutes、wallpaperRoutes、videoRoutes、weatherRoutes)
  • show.miles.bar 子域名退役,Nginx 移除相關配置,前端中繼資料清理
  • Cloudflare Worker miles-optimizer 上線:API GET 300s 邊緣快取,HLS .ts 片段 immutable 1 年
  • Nginx 靜態資源 immutable 快取策略:JS/CSS/WebP 1 年,圖片 30 天,首頁 60s + stale-while-revalidate
v5-1-10:08:00
  • Open-Meteo 天氣 API 代理(/api/weather),鎖定香港觀塘區
  • 天氣代碼 → HLS 影片對映系統:晴天、陰天、雨天、雷暴等場景自動切換
  • HLS 自適應碼率串流:根據網速自動調整清晰度
  • 影片背景雙層緩衝(bg-a / bg-b),淡入淡出無縫切換
  • /api/background/weather-video 端點:回傳天氣匹配的 HLS playlist
  • /api/background/music 端點:Low Roar 閒置背景音樂
  • 用戶 7 秒無操作 → UI 自動淡出,僅保留全螢幕影片背景
  • Low Roar 歌曲從 20 秒處起播,與影片背景音疊加
  • 點擊螢幕或移動滑鼠 → UI 恢復、音樂隱去
  • 閒置背景音樂播放器(idle-music),循環播放不中斷
v4-30-00:49:00
  • 首頁搜尋欄自動聚焦,鍵盤即打即搜
  • 搜尋建議下拉選單(role="combobox" + aria-autocomplete)
  • 多引擎搜尋建議後端(Bing CJK → Google → DuckDuckGo 依序降級)
v4-29-11:03:46
  • 雙人房間制 Gomoku(/game/),支援自訂房間名稱
  • Server-Sent Events 即時棋步同步,無需 WebSocket
  • 伺服器端棋局驗證(勝負判定、禁手檢查)
  • 閒置房間 10 分鐘自動清理
  • Liquid Glass 風格遊戲 UI,桌面/行動端適配