From 8e4d5a3be51d272a6ce2a6b6b7c508fdb6a74e42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=85=E5=BF=B5?= Date: Tue, 15 Sep 2026 15:57:57 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20Task13=20=E8=A7=84=E6=A0=BC=E4=BF=AE?= =?UTF-8?q?=E8=AE=A2=E2=80=94=E2=80=94UA=20=E6=A3=80=E6=B5=8B=E9=A1=BA?= =?UTF-8?q?=E5=BA=8F=EF=BC=88iPad/Tablet=20=E5=85=88=E5=88=A4=E3=80=81FxiO?= =?UTF-8?q?S=20=E5=89=8D=E7=A7=BB=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Code --- .../plans/2026-09-15-m1-data-collection-foundation.md | 1 + 1 file changed, 1 insertion(+) 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 批量传输