IMMI-Case- 是澳洲移民法庭案例的下載、管理與分析平台。從 AustLII 抓取 9 個法院 / 仲裁庭(149,016 筆案件,2000–2026)。提供全文搜尋、法官排行榜、視覺化分析,以及 LLM Council 智能摘要。 主要使用者是自助申請的移民申請人——非法律專業人士,在壓力情境下使用。
品牌定位:權威 · 精準 · 學術。美學方向:「法律典籍」(暖米白 + 深海軍藍 + 琥珀金)。
根本原因:LATERAL unnest 在 149K 行上展開法官陣列,執行 3 次全表掃描。加索引 7.3x → 再加 Cache API TTL=600s → 合計 383x。
vite.config.ts manualChunks 從 object 改為 arrow function。i18next + react-i18next + 2x locale JSON(115 KB)拆成獨立 lazy chunk。
wrangler.toml 加 cron trigger,scheduled() 執行 SELECT 1 保持 Worker isolate + Hyperdrive TCP 連線池存活,消除冷啟動。
success-rate 冷啟動 8.9s(LATERAL unnest judges 欄位),visa-families 5.5s。四個端點加 Cache API,納入 cron 預熱。
三個 concept 分析端點,LATERAL unnest legal_concepts 欄位,其中 concept-cooccurrence 冷啟動 13.0s。全部加 Cache API TTL=600s,URL key 含 limit/min_count 參數。
judge-compare 冷啟動 6.6s(平行 LATERAL unnest 最多 4 法官)、taxonomy/countries 4.3s(GROUP BY country_of_origin 149K 行)。
Wave 5 部署後全部端點顯示冷啟動。根本原因:cron 只預熱 4 個端點,curl 打到不同 CF PoP。scheduled() 擴展至 8 個 handler,覆蓋所有高影響分析頁。
Telegram Widget → Worker HMAC 驗證 → AuthNonce DO replay 防護 → DB upsert user → HS256 JWT(5min access + 7d refresh cookie)→ Supabase RLS 透過 SET LOCAL request.jwt.claims 實現多租戶隔離。
每個認證 DB 查詢發出 JSON 結構化日誌(kid、tenant_id、user_id、query_ms、ok)。4 個 schema mismatch 修正。Sidebar + Topbar 接入 auth state。
tests/integration/rls_isolation.sql(跨租戶查詢驗證)、test_revoke_member.py(成員移除閉環,高風險 race condition 修正)、tests/k6/auth-latency.js(auth 端點壓力測試,thresholds:p95<800ms)。
caches.default.put() 只填充請求落地的那個 PoP。Cron 預熱也只預熱「cron 執行的 PoP」(通常是澳洲)。非 APAC 用戶第一次請求仍是冷的——這不是 bug,是 HTTP CDN 的設計。澳洲使用者(Sydney/Melbourne PoP)享有穩定的暖路徑。const sql = postgres(...) 放在函數外都會導致「Cannot perform I/O on behalf of a different request」錯誤。Hyperdrive 管理 TCP 連線池,Worker 只傳 connectionString。set_config('request.jwt.claims', '...', true)。true = transaction-local,隨 transaction 結束消失。若設 false(session-local),Hyperdrive 連線池重用時前一個用戶的 claims 會洩漏給下一個請求——跨租戶資料洩漏。_cache.match(),命中直接 return cached。Hyperdrive 連線池在 Cache API 命中的請求中完全不被觸及。這降低了 DB 負載和連線使用,是 Cache API 成本收益的核心。idFromName("flask-v15") 定位容器。改名 = 新實例(冷狀態)。只有刻意重置時才改(例如強制取得新 container image)。目前版本 v15,見 workers/proxy.js:2475。buildCasesWhere() 對 tag 參數回傳 null,Worker 檢測到 null 就 fallthrough 到 FlaskBackend DO。Pipe-delimited 陣列邏輯只在 Python 端有。新增 Worker handler 時無需處理 tag 過濾。refresh_sessions(jti, user_id, expires_at, revoked_at) 表,refresh token 加 jti claim,AuthNonce DO 或 DB 驗證 jti 未撤銷。根據近期動態與未閉環事項推斷。非指令,而是「動能指向哪裡」的描述。