架構決策 (ADR)
架構決策 (ADR)
- ADR — Architecture Decision Records
- Admin 生成 endpoint 獨立於家長端(不複用 /v1/contents/generate)
- GenerationJob 允許 family_id 與 child_profile_id 為 NULL(curated 生成用)
- IoT Simulator 以 async task 在 FastAPI server-side 運行(非瀏覽器端)
- IoT Simulator 每個模擬裝置使用獨立 WebSocket + 狀態 in-memory
- 人機協作文件六層架構與單向 Sync Pipeline
- Spectra 五尺度約束升級與 Upstream Drift 防護
- Sub-agent Context Boundary 與 Agent Role Taxonomy
- BDD Spec-Test Traceability -- docstring trace 機制
- Harness Engineering 採納策略 — Fowler 框架對照 YiBi MVP
- 棄用 MQTT 改採 HTTPS Event-Driven + WSS + Offline-First SD Queue
- Multi-child shared device: persona binding owns device-side child identity; current-child selection stays app-local
- Adopt Clean Architecture repository pattern with full domain entity separation; incremental migration
- Celery worker/beat 遷移至 Cloud Run worker_pool + RedBeat scheduler
- 媒體儲存雙軌策略 — 精選內容用 Cloudflare R2 + CDN;UGC 用 GCS Signed URL
- 臨時內容即時下發機制(on-demand content push)— offline-first 下的低延遲下發選項
- 採 Firebase Auth 當 identity broker,後端 token exchange 保留自有 JWT 與 device HMAC
- Firebase 治理:Terraform 管結構、CLI/CI 管部署、config 改 secret 注入
- 固定 Flutter SDK 版本於 CI 與本機 toolchain(停用 stable channel 浮動)
- TestFlight 內測 build numbering 與 mobile/backend 版本脫鉤
- Google Play AAB 上傳採 keyless WIF(r0adkll/upload-google-play + google-github-actions/auth),不建 SA JSON key
- Spec 一致性 CI 把關用開源 @fission-ai/openspec CLI(ubuntu),而非 macOS-only 的 Spectra GUI binary