diff --git a/docs/superpowers/plans/2026-09-15-m1-data-collection-foundation.md b/docs/superpowers/plans/2026-09-15-m1-data-collection-foundation.md index 613ee23..88e8f1b 100644 --- a/docs/superpowers/plans/2026-09-15-m1-data-collection-foundation.md +++ b/docs/superpowers/plans/2026-09-15-m1-data-collection-foundation.md @@ -1232,6 +1232,7 @@ export function getSessionId(): string { } ``` `context.ts`:`buildEnvContext()`(UA 正则判 device_type/os/browser;`navigator.language`、`Intl.DateTimeFormat().resolvedOptions().timeZone`、`screen.width+"x"+screen.height`、`navigator.hardwareConcurrency`、`navigator.connection?.effectiveType`);`parseUtm(search)`;`sanitizeUrl(path)`;`pageContext()` → `{path: sanitized, title: document.title, referrer: document.referrer, referrer_domain, utm}`。 +**UA 检测顺序(规格修订)**:device_type 先判 iPad/Tablet 再判 Mobile/Android/iPhone(真实 iPad UA 恒含 Mobile 串,后判必误判手机;Firefox Android 平板显式 "; Tablet;" 同修);browser 顺序 MicroMessenger → Edg → Firefox/FxiOS → Chrome → Safari(微信/iOS-Firefox 的 UA 必含引擎串,放后面是死代码)。 - [ ] **Step 3: 测试通过,Commit** `feat(sdk): 身份与环境上下文模块` ### Task 14: transport.ts 批量传输