@skillbuilder/miniapp-simulator 0.2.2 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/docs/assets/audit-auto-stop-config-2026-10-21.jpg +0 -0
  2. package/docs/assets/audit-balanced-panel-2026-10-16.jpg +0 -0
  3. package/docs/assets/audit-lcp-input-2026-10-20.jpg +0 -0
  4. package/docs/assets/audit-paint-game3d-2026-10-16.jpg +0 -0
  5. package/docs/assets/audit-paint-webgl-2026-10-16.jpg +0 -0
  6. package/docs/assets/audit-paint-webgl-apm-excerpt-2026-10-16.json +397 -0
  7. package/docs/assets/audit-poetry-2026-10-16.jpg +0 -0
  8. package/docs/assets/audit-remaining-results-2026-10-16.json +2749 -0
  9. package/docs/assets/miniapp-audit-risk-review-2026-10-13.png +0 -0
  10. package/docs/assets/miniapp-audit-runtime-hung-2026-10-13.png +0 -0
  11. package/docs/audit-data-collection.codex.md +105 -0
  12. package/docs/audit-local-validation.codex.md +165 -0
  13. package/docs/audit-score-design.codex.md +222 -0
  14. package/docs/audit-score-design.md +832 -0
  15. package/docs/audit-score-tech-plan.md +450 -0
  16. package/docs/audit-tech-design.codex.md +485 -0
  17. package/docs/electron-review.md +223 -12
  18. package/docs/quality-evaluation-redoc.xml +163 -0
  19. package/docs/tracker.md +3 -2
  20. package/lib/client-BjYHK9LR.mjs +1220 -0
  21. package/lib/{index-D5AYVv8s.mjs → index-CqClPZVv.mjs} +230 -184
  22. package/lib/index.js +2204 -1999
  23. package/lib/remote-client.js +2 -2
  24. package/lib/types/host/shadow-host.d.ts +10 -0
  25. package/lib/types/injection/registry.d.ts +5 -0
  26. package/lib/types/remote/audit-controller.d.ts +61 -0
  27. package/lib/types/remote/audit-leave-monitor.d.ts +12 -0
  28. package/lib/types/remote/audit-package-sources.d.ts +9 -0
  29. package/lib/types/remote/audit-telemetry.d.ts +36 -0
  30. package/lib/types/remote/audit-watchdog.d.ts +14 -0
  31. package/lib/types/remote/client.d.ts +25 -1
  32. package/lib/types/remote/load-timing.d.ts +5 -0
  33. package/lib/types/remote/protocol.d.ts +162 -1
  34. package/lib/types/remote/runtime.d.ts +2 -0
  35. package/lib/types/remote-client.d.ts +2 -2
  36. package/lib/types/runtime/jsapi-modules/interaction.d.ts +1 -1
  37. package/lib/types/runtime/jsapi-modules/local-media.d.ts +4 -0
  38. package/lib/types/runtime/jsapi-modules/media.d.ts +1 -1
  39. package/lib/types/runtime/jsapi-modules/note-publish-media.d.ts +9 -0
  40. package/lib/types/sw/service-worker-host.d.ts +15 -0
  41. package/lib/types/tracker/constants.d.ts +1 -1
  42. package/lib/types/tracker/default-tracker.d.ts +9 -1
  43. package/lib/types/types/options.d.ts +24 -0
  44. package/lib/workbench.js +1 -1
  45. package/package.json +1 -1
  46. package/lib/client-_vNHVHSm.mjs +0 -775
@@ -0,0 +1,2749 @@
1
+ [
2
+ {
3
+ "file": "拜月亮.zip",
4
+ "slug": "01-moon",
5
+ "actions": "择地、选择主祭、5项设案、供品分类与必需供品、点红烛、起香、念祝词和叩拜",
6
+ "notes": "2分钟自动结算时尚未完成九步全部仪式;已覆盖到第5步,后续流程不属于本次指标窗口。",
7
+ "payload": {
8
+ "sessionId": "d93b0991-21fa-4b4d-9be9-10f4925d9d52",
9
+ "report": {
10
+ "status": "scored",
11
+ "blocking": {
12
+ "passed": true,
13
+ "enforced": false,
14
+ "failures": []
15
+ },
16
+ "score": {
17
+ "total": 100,
18
+ "byCategory": {
19
+ "performance": {
20
+ "got": 15,
21
+ "max": 15
22
+ },
23
+ "package": {
24
+ "got": 10,
25
+ "max": 10
26
+ },
27
+ "experience": {
28
+ "got": 0,
29
+ "max": 0
30
+ },
31
+ "stability": {
32
+ "got": 1,
33
+ "max": 1
34
+ },
35
+ "memory": {
36
+ "got": 17,
37
+ "max": 17
38
+ }
39
+ }
40
+ },
41
+ "coverage": {
42
+ "ratio": 1,
43
+ "applicable": [
44
+ "peakHeap",
45
+ "heapGrowth",
46
+ "decodedImages",
47
+ "jsError",
48
+ "fcp",
49
+ "lcp",
50
+ "fps",
51
+ "longTask",
52
+ "unpackedSize",
53
+ "singleImage",
54
+ "uncompressedJs"
55
+ ],
56
+ "naReasons": {
57
+ "texWatermark": "未检测到 webgl 能力",
58
+ "canvasBuffer": "未检测到 canvas2d / webgl 能力",
59
+ "wasmMemory": "未检测到 wasm 能力",
60
+ "workerCount": "未检测到 worker 能力"
61
+ }
62
+ },
63
+ "items": [
64
+ {
65
+ "id": "peakHeap",
66
+ "category": "memory",
67
+ "weight": 6,
68
+ "verdict": "pass",
69
+ "score": 100,
70
+ "measured": 0,
71
+ "threshold": 32,
72
+ "unit": "MB",
73
+ "applicable": true
74
+ },
75
+ {
76
+ "id": "heapGrowth",
77
+ "category": "memory",
78
+ "weight": 7,
79
+ "verdict": "pass",
80
+ "score": 100,
81
+ "measured": 1,
82
+ "threshold": 8,
83
+ "unit": "MB/min",
84
+ "applicable": true
85
+ },
86
+ {
87
+ "id": "texWatermark",
88
+ "category": "memory",
89
+ "weight": 6,
90
+ "verdict": "na",
91
+ "applicable": false,
92
+ "naReason": "未检测到 webgl 能力",
93
+ "unit": "MB"
94
+ },
95
+ {
96
+ "id": "canvasBuffer",
97
+ "category": "memory",
98
+ "weight": 3,
99
+ "verdict": "na",
100
+ "applicable": false,
101
+ "naReason": "未检测到 canvas2d / webgl 能力",
102
+ "unit": "MB"
103
+ },
104
+ {
105
+ "id": "decodedImages",
106
+ "category": "memory",
107
+ "weight": 4,
108
+ "verdict": "pass",
109
+ "score": 100,
110
+ "measured": 0,
111
+ "threshold": 48,
112
+ "unit": "MB",
113
+ "applicable": true
114
+ },
115
+ {
116
+ "id": "wasmMemory",
117
+ "category": "memory",
118
+ "weight": 3,
119
+ "verdict": "na",
120
+ "applicable": false,
121
+ "naReason": "未检测到 wasm 能力",
122
+ "unit": "MB"
123
+ },
124
+ {
125
+ "id": "workerCount",
126
+ "category": "memory",
127
+ "weight": 2,
128
+ "verdict": "na",
129
+ "applicable": false,
130
+ "naReason": "未检测到 worker 能力",
131
+ "unit": "个"
132
+ },
133
+ {
134
+ "id": "jsError",
135
+ "category": "stability",
136
+ "weight": 1,
137
+ "verdict": "pass",
138
+ "score": 100,
139
+ "measured": 0,
140
+ "threshold": 0,
141
+ "unit": "次",
142
+ "applicable": true
143
+ },
144
+ {
145
+ "id": "fcp",
146
+ "category": "performance",
147
+ "weight": 4,
148
+ "verdict": "pass",
149
+ "score": 100,
150
+ "measured": 132,
151
+ "threshold": 1800,
152
+ "unit": "ms",
153
+ "note": "Guest navigation 口径;良好边界约 90 分,非端到端加载时长",
154
+ "applicable": true
155
+ },
156
+ {
157
+ "id": "lcp",
158
+ "category": "performance",
159
+ "weight": 10,
160
+ "verdict": "pass",
161
+ "score": 100,
162
+ "measured": 168,
163
+ "threshold": 2500,
164
+ "unit": "ms",
165
+ "note": "Guest navigation 口径;良好边界约 90 分,非端到端加载时长",
166
+ "applicable": true
167
+ },
168
+ {
169
+ "id": "fps",
170
+ "category": "performance",
171
+ "weight": 0,
172
+ "verdict": "fail",
173
+ "score": 33,
174
+ "measured": 30,
175
+ "threshold": 30,
176
+ "unit": "fps",
177
+ "applicable": true
178
+ },
179
+ {
180
+ "id": "longTask",
181
+ "category": "performance",
182
+ "weight": 1,
183
+ "verdict": "pass",
184
+ "score": 100,
185
+ "measured": 244,
186
+ "threshold": 500,
187
+ "unit": "ms",
188
+ "applicable": true
189
+ },
190
+ {
191
+ "id": "unpackedSize",
192
+ "category": "package",
193
+ "weight": 4,
194
+ "verdict": "pass",
195
+ "score": 100,
196
+ "measured": 0.1,
197
+ "threshold": 2,
198
+ "unit": "MB",
199
+ "applicable": true
200
+ },
201
+ {
202
+ "id": "singleImage",
203
+ "category": "package",
204
+ "weight": 3,
205
+ "verdict": "pass",
206
+ "score": 100,
207
+ "measured": 0,
208
+ "threshold": 300,
209
+ "unit": "KB",
210
+ "applicable": true
211
+ },
212
+ {
213
+ "id": "uncompressedJs",
214
+ "category": "package",
215
+ "weight": 3,
216
+ "verdict": "pass",
217
+ "score": 100,
218
+ "measured": 0,
219
+ "threshold": 0,
220
+ "unit": "KB",
221
+ "applicable": true
222
+ }
223
+ ],
224
+ "quality": {
225
+ "effectiveMs": 115002,
226
+ "complete": true,
227
+ "reloadCount": 0,
228
+ "probeSaturated": false,
229
+ "sampleCount": 116,
230
+ "sufficient": true,
231
+ "insufficientReasons": [],
232
+ "infrastructureErrorCount": 0,
233
+ "interactionCount": 12,
234
+ "firstInteractionAt": 1001,
235
+ "coreReached": true,
236
+ "coreReachedAt": 55269
237
+ },
238
+ "appType": "tool",
239
+ "tagMismatch": false,
240
+ "paintTiming": {
241
+ "fcpMs": 132,
242
+ "lcpMs": 168,
243
+ "fcpStatus": "measured",
244
+ "lcpStatus": "measured",
245
+ "lcpFinalized": true,
246
+ "finalizeReason": "interaction"
247
+ },
248
+ "versions": {
249
+ "policyVersion": "phase1-balanced-v2-2026-10-16",
250
+ "rulesVersion": "1.1.2",
251
+ "probeVersion": "1.1.0"
252
+ }
253
+ },
254
+ "metrics": {
255
+ "fcpMs": 132,
256
+ "lcpMs": 168,
257
+ "peakHeapBytes": 0,
258
+ "heapGrowthMBPerMin": 0.9918439304999784,
259
+ "slopeSampleCount": 93,
260
+ "texWatermarkBytes": 0,
261
+ "bufWatermarkBytes": 0,
262
+ "canvasWatermarkBytes": 0,
263
+ "imgWatermarkBytes": 0,
264
+ "wasmPeakBytes": 0,
265
+ "maxWorkers": 0,
266
+ "fpsP5": 29,
267
+ "fpsMedian": 30,
268
+ "longTaskTotal": 2,
269
+ "longTaskMaxMs": 244,
270
+ "jsErrorTotal": 0,
271
+ "unpackedBytes": 78395,
272
+ "largestImageBytes": 0,
273
+ "uncompressedJsBytes": 0
274
+ }
275
+ },
276
+ "deliveries": [
277
+ "12:06:30 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":10}",
278
+ "12:06:40 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":10}",
279
+ "12:06:46 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":3}",
280
+ "12:06:46 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":6}"
281
+ ]
282
+ },
283
+ {
284
+ "file": "深夜读信人-windows黑屏.zip",
285
+ "slug": "02-night-letter",
286
+ "actions": "打开首封信、拆信、标记83天线索、阅读7段、进入编辑处理并保存草稿",
287
+ "notes": "已走通单封信阅读—线索—编辑—保存路径;未发布内容,未覆盖七夜全剧情。",
288
+ "payload": {
289
+ "sessionId": "53d40ef9-1d37-4b5a-95b0-913a06bc7b6d",
290
+ "report": {
291
+ "status": "scored",
292
+ "blocking": {
293
+ "passed": true,
294
+ "enforced": false,
295
+ "failures": []
296
+ },
297
+ "score": {
298
+ "total": 98,
299
+ "byCategory": {
300
+ "performance": {
301
+ "got": 15,
302
+ "max": 15
303
+ },
304
+ "package": {
305
+ "got": 9,
306
+ "max": 10
307
+ },
308
+ "experience": {
309
+ "got": 0,
310
+ "max": 0
311
+ },
312
+ "stability": {
313
+ "got": 1,
314
+ "max": 1
315
+ },
316
+ "memory": {
317
+ "got": 20,
318
+ "max": 20
319
+ }
320
+ }
321
+ },
322
+ "coverage": {
323
+ "ratio": 1,
324
+ "applicable": [
325
+ "peakHeap",
326
+ "heapGrowth",
327
+ "canvasBuffer",
328
+ "decodedImages",
329
+ "jsError",
330
+ "fcp",
331
+ "lcp",
332
+ "fps",
333
+ "longTask",
334
+ "unpackedSize",
335
+ "singleImage",
336
+ "uncompressedJs"
337
+ ],
338
+ "naReasons": {
339
+ "texWatermark": "未检测到 webgl 能力",
340
+ "wasmMemory": "未检测到 wasm 能力",
341
+ "workerCount": "未检测到 worker 能力"
342
+ }
343
+ },
344
+ "items": [
345
+ {
346
+ "id": "peakHeap",
347
+ "category": "memory",
348
+ "weight": 6,
349
+ "verdict": "pass",
350
+ "score": 100,
351
+ "measured": 0,
352
+ "threshold": 32,
353
+ "unit": "MB",
354
+ "applicable": true
355
+ },
356
+ {
357
+ "id": "heapGrowth",
358
+ "category": "memory",
359
+ "weight": 7,
360
+ "verdict": "pass",
361
+ "score": 100,
362
+ "measured": -6,
363
+ "threshold": 8,
364
+ "unit": "MB/min",
365
+ "applicable": true
366
+ },
367
+ {
368
+ "id": "texWatermark",
369
+ "category": "memory",
370
+ "weight": 6,
371
+ "verdict": "na",
372
+ "applicable": false,
373
+ "naReason": "未检测到 webgl 能力",
374
+ "unit": "MB"
375
+ },
376
+ {
377
+ "id": "canvasBuffer",
378
+ "category": "memory",
379
+ "weight": 3,
380
+ "verdict": "pass",
381
+ "score": 100,
382
+ "measured": 5,
383
+ "threshold": 32,
384
+ "unit": "MB",
385
+ "applicable": true
386
+ },
387
+ {
388
+ "id": "decodedImages",
389
+ "category": "memory",
390
+ "weight": 4,
391
+ "verdict": "pass",
392
+ "score": 100,
393
+ "measured": 24,
394
+ "threshold": 48,
395
+ "unit": "MB",
396
+ "applicable": true
397
+ },
398
+ {
399
+ "id": "wasmMemory",
400
+ "category": "memory",
401
+ "weight": 3,
402
+ "verdict": "na",
403
+ "applicable": false,
404
+ "naReason": "未检测到 wasm 能力",
405
+ "unit": "MB"
406
+ },
407
+ {
408
+ "id": "workerCount",
409
+ "category": "memory",
410
+ "weight": 2,
411
+ "verdict": "na",
412
+ "applicable": false,
413
+ "naReason": "未检测到 worker 能力",
414
+ "unit": "个"
415
+ },
416
+ {
417
+ "id": "jsError",
418
+ "category": "stability",
419
+ "weight": 1,
420
+ "verdict": "pass",
421
+ "score": 100,
422
+ "measured": 0,
423
+ "threshold": 0,
424
+ "unit": "次",
425
+ "applicable": true
426
+ },
427
+ {
428
+ "id": "fcp",
429
+ "category": "performance",
430
+ "weight": 4,
431
+ "verdict": "pass",
432
+ "score": 100,
433
+ "measured": 72,
434
+ "threshold": 1800,
435
+ "unit": "ms",
436
+ "note": "Guest navigation 口径;良好边界约 90 分,非端到端加载时长",
437
+ "applicable": true
438
+ },
439
+ {
440
+ "id": "lcp",
441
+ "category": "performance",
442
+ "weight": 10,
443
+ "verdict": "pass",
444
+ "score": 100,
445
+ "measured": 140,
446
+ "threshold": 2500,
447
+ "unit": "ms",
448
+ "note": "Guest navigation 口径;良好边界约 90 分,非端到端加载时长",
449
+ "applicable": true
450
+ },
451
+ {
452
+ "id": "fps",
453
+ "category": "performance",
454
+ "weight": 0,
455
+ "verdict": "fail",
456
+ "score": 33,
457
+ "measured": 30,
458
+ "threshold": 30,
459
+ "unit": "fps",
460
+ "applicable": true
461
+ },
462
+ {
463
+ "id": "longTask",
464
+ "category": "performance",
465
+ "weight": 1,
466
+ "verdict": "pass",
467
+ "score": 100,
468
+ "measured": 97,
469
+ "threshold": 500,
470
+ "unit": "ms",
471
+ "applicable": true
472
+ },
473
+ {
474
+ "id": "unpackedSize",
475
+ "category": "package",
476
+ "weight": 4,
477
+ "verdict": "pass",
478
+ "score": 76,
479
+ "measured": 3.2,
480
+ "threshold": 2,
481
+ "unit": "MB",
482
+ "applicable": true
483
+ },
484
+ {
485
+ "id": "singleImage",
486
+ "category": "package",
487
+ "weight": 3,
488
+ "verdict": "pass",
489
+ "score": 100,
490
+ "measured": 286,
491
+ "threshold": 300,
492
+ "unit": "KB",
493
+ "applicable": true
494
+ },
495
+ {
496
+ "id": "uncompressedJs",
497
+ "category": "package",
498
+ "weight": 3,
499
+ "verdict": "pass",
500
+ "score": 100,
501
+ "measured": 0,
502
+ "threshold": 0,
503
+ "unit": "KB",
504
+ "applicable": true
505
+ }
506
+ ],
507
+ "quality": {
508
+ "effectiveMs": 56000,
509
+ "complete": true,
510
+ "reloadCount": 0,
511
+ "probeSaturated": false,
512
+ "sampleCount": 57,
513
+ "sufficient": true,
514
+ "insufficientReasons": [],
515
+ "infrastructureErrorCount": 0,
516
+ "interactionCount": 8,
517
+ "firstInteractionAt": 5000,
518
+ "coreReached": true,
519
+ "coreReachedAt": 40906
520
+ },
521
+ "appType": "tool",
522
+ "tagMismatch": false,
523
+ "paintTiming": {
524
+ "fcpMs": 72,
525
+ "lcpMs": 140,
526
+ "fcpStatus": "measured",
527
+ "lcpStatus": "measured",
528
+ "lcpFinalized": true,
529
+ "finalizeReason": "interaction"
530
+ },
531
+ "versions": {
532
+ "policyVersion": "phase1-balanced-v2-2026-10-16",
533
+ "rulesVersion": "1.1.2",
534
+ "probeVersion": "1.1.0"
535
+ }
536
+ },
537
+ "metrics": {
538
+ "fcpMs": 72,
539
+ "lcpMs": 140,
540
+ "peakHeapBytes": 0,
541
+ "heapGrowthMBPerMin": -5.983443883442787,
542
+ "slopeSampleCount": 46,
543
+ "texWatermarkBytes": 0,
544
+ "bufWatermarkBytes": 0,
545
+ "canvasWatermarkBytes": 5266560,
546
+ "imgWatermarkBytes": 25164504,
547
+ "wasmPeakBytes": 0,
548
+ "maxWorkers": 0,
549
+ "fpsP5": 30,
550
+ "fpsMedian": 30,
551
+ "longTaskTotal": 4,
552
+ "longTaskMaxMs": 97,
553
+ "jsErrorTotal": 0,
554
+ "unpackedBytes": 3364327,
555
+ "largestImageBytes": 293026,
556
+ "uncompressedJsBytes": 0
557
+ }
558
+ },
559
+ "deliveries": [
560
+ "12:08:09 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":10}",
561
+ "12:08:19 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":10}",
562
+ "12:08:22 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":3}",
563
+ "12:08:22 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":2}"
564
+ ]
565
+ },
566
+ {
567
+ "file": "九霄宗门模拟器.zip",
568
+ "slug": "03-clan",
569
+ "actions": "创建评测家族、派遣4名族人、通商族议、扩建灵田、进入宗门、任命掌门和打开弟子页",
570
+ "notes": "出现 installPageClipboardBridge 的 Cannot redefine property: clipboard 提示;经营、资源扣减和任命功能仍可执行。需区分模拟器注入错误与应用业务错误。",
571
+ "payload": {
572
+ "sessionId": "ce032e6a-b08f-40e6-be0f-e2d83d09b830",
573
+ "report": {
574
+ "status": "scored",
575
+ "blocking": {
576
+ "passed": true,
577
+ "enforced": false,
578
+ "failures": []
579
+ },
580
+ "score": {
581
+ "total": 100,
582
+ "byCategory": {
583
+ "performance": {
584
+ "got": 15,
585
+ "max": 15
586
+ },
587
+ "package": {
588
+ "got": 10,
589
+ "max": 10
590
+ },
591
+ "experience": {
592
+ "got": 0,
593
+ "max": 0
594
+ },
595
+ "stability": {
596
+ "got": 1,
597
+ "max": 1
598
+ },
599
+ "memory": {
600
+ "got": 17,
601
+ "max": 17
602
+ }
603
+ }
604
+ },
605
+ "coverage": {
606
+ "ratio": 1,
607
+ "applicable": [
608
+ "peakHeap",
609
+ "heapGrowth",
610
+ "decodedImages",
611
+ "jsError",
612
+ "fcp",
613
+ "lcp",
614
+ "fps",
615
+ "longTask",
616
+ "unpackedSize",
617
+ "singleImage",
618
+ "uncompressedJs"
619
+ ],
620
+ "naReasons": {
621
+ "texWatermark": "未检测到 webgl 能力",
622
+ "canvasBuffer": "未检测到 canvas2d / webgl 能力",
623
+ "wasmMemory": "未检测到 wasm 能力",
624
+ "workerCount": "未检测到 worker 能力"
625
+ }
626
+ },
627
+ "items": [
628
+ {
629
+ "id": "peakHeap",
630
+ "category": "memory",
631
+ "weight": 6,
632
+ "verdict": "pass",
633
+ "score": 100,
634
+ "measured": 0,
635
+ "threshold": 32,
636
+ "unit": "MB",
637
+ "applicable": true
638
+ },
639
+ {
640
+ "id": "heapGrowth",
641
+ "category": "memory",
642
+ "weight": 7,
643
+ "verdict": "pass",
644
+ "score": 100,
645
+ "measured": 2.2,
646
+ "threshold": 8,
647
+ "unit": "MB/min",
648
+ "applicable": true
649
+ },
650
+ {
651
+ "id": "texWatermark",
652
+ "category": "memory",
653
+ "weight": 6,
654
+ "verdict": "na",
655
+ "applicable": false,
656
+ "naReason": "未检测到 webgl 能力",
657
+ "unit": "MB"
658
+ },
659
+ {
660
+ "id": "canvasBuffer",
661
+ "category": "memory",
662
+ "weight": 3,
663
+ "verdict": "na",
664
+ "applicable": false,
665
+ "naReason": "未检测到 canvas2d / webgl 能力",
666
+ "unit": "MB"
667
+ },
668
+ {
669
+ "id": "decodedImages",
670
+ "category": "memory",
671
+ "weight": 4,
672
+ "verdict": "pass",
673
+ "score": 100,
674
+ "measured": 2.2,
675
+ "threshold": 48,
676
+ "unit": "MB",
677
+ "applicable": true
678
+ },
679
+ {
680
+ "id": "wasmMemory",
681
+ "category": "memory",
682
+ "weight": 3,
683
+ "verdict": "na",
684
+ "applicable": false,
685
+ "naReason": "未检测到 wasm 能力",
686
+ "unit": "MB"
687
+ },
688
+ {
689
+ "id": "workerCount",
690
+ "category": "memory",
691
+ "weight": 2,
692
+ "verdict": "na",
693
+ "applicable": false,
694
+ "naReason": "未检测到 worker 能力",
695
+ "unit": "个"
696
+ },
697
+ {
698
+ "id": "jsError",
699
+ "category": "stability",
700
+ "weight": 1,
701
+ "verdict": "pass",
702
+ "score": 100,
703
+ "measured": 0,
704
+ "threshold": 0,
705
+ "unit": "次",
706
+ "applicable": true
707
+ },
708
+ {
709
+ "id": "fcp",
710
+ "category": "performance",
711
+ "weight": 4,
712
+ "verdict": "pass",
713
+ "score": 100,
714
+ "measured": 104,
715
+ "threshold": 1800,
716
+ "unit": "ms",
717
+ "note": "Guest navigation 口径;良好边界约 90 分,非端到端加载时长",
718
+ "applicable": true
719
+ },
720
+ {
721
+ "id": "lcp",
722
+ "category": "performance",
723
+ "weight": 10,
724
+ "verdict": "pass",
725
+ "score": 100,
726
+ "measured": 140,
727
+ "threshold": 2500,
728
+ "unit": "ms",
729
+ "note": "Guest navigation 口径;良好边界约 90 分,非端到端加载时长",
730
+ "applicable": true
731
+ },
732
+ {
733
+ "id": "fps",
734
+ "category": "performance",
735
+ "weight": 0,
736
+ "verdict": "fail",
737
+ "score": 33,
738
+ "measured": 30,
739
+ "threshold": 30,
740
+ "unit": "fps",
741
+ "applicable": true
742
+ },
743
+ {
744
+ "id": "longTask",
745
+ "category": "performance",
746
+ "weight": 1,
747
+ "verdict": "pass",
748
+ "score": 100,
749
+ "measured": 127,
750
+ "threshold": 500,
751
+ "unit": "ms",
752
+ "applicable": true
753
+ },
754
+ {
755
+ "id": "unpackedSize",
756
+ "category": "package",
757
+ "weight": 4,
758
+ "verdict": "pass",
759
+ "score": 100,
760
+ "measured": 1.1,
761
+ "threshold": 2,
762
+ "unit": "MB",
763
+ "applicable": true
764
+ },
765
+ {
766
+ "id": "singleImage",
767
+ "category": "package",
768
+ "weight": 3,
769
+ "verdict": "pass",
770
+ "score": 100,
771
+ "measured": 146,
772
+ "threshold": 300,
773
+ "unit": "KB",
774
+ "applicable": true
775
+ },
776
+ {
777
+ "id": "uncompressedJs",
778
+ "category": "package",
779
+ "weight": 3,
780
+ "verdict": "pass",
781
+ "score": 100,
782
+ "measured": 0,
783
+ "threshold": 0,
784
+ "unit": "KB",
785
+ "applicable": true
786
+ }
787
+ ],
788
+ "quality": {
789
+ "effectiveMs": 67000,
790
+ "complete": true,
791
+ "reloadCount": 0,
792
+ "probeSaturated": false,
793
+ "sampleCount": 68,
794
+ "sufficient": true,
795
+ "insufficientReasons": [],
796
+ "infrastructureErrorCount": 0,
797
+ "interactionCount": 6,
798
+ "firstInteractionAt": 11000,
799
+ "coreReached": true,
800
+ "coreReachedAt": 56806
801
+ },
802
+ "appType": "tool",
803
+ "tagMismatch": false,
804
+ "paintTiming": {
805
+ "fcpMs": 104,
806
+ "lcpMs": 140,
807
+ "fcpStatus": "measured",
808
+ "lcpStatus": "measured",
809
+ "lcpFinalized": true,
810
+ "finalizeReason": "interaction"
811
+ },
812
+ "versions": {
813
+ "policyVersion": "phase1-balanced-v2-2026-10-16",
814
+ "rulesVersion": "1.1.2",
815
+ "probeVersion": "1.1.0"
816
+ }
817
+ },
818
+ "metrics": {
819
+ "fcpMs": 104,
820
+ "lcpMs": 140,
821
+ "peakHeapBytes": 0,
822
+ "heapGrowthMBPerMin": 2.235519825510948,
823
+ "slopeSampleCount": 55,
824
+ "texWatermarkBytes": 0,
825
+ "bufWatermarkBytes": 0,
826
+ "canvasWatermarkBytes": 0,
827
+ "imgWatermarkBytes": 2329216,
828
+ "wasmPeakBytes": 0,
829
+ "maxWorkers": 0,
830
+ "fpsP5": 30,
831
+ "fpsMedian": 30,
832
+ "longTaskTotal": 2,
833
+ "longTaskMaxMs": 127,
834
+ "jsErrorTotal": 0,
835
+ "unpackedBytes": 1185487,
836
+ "largestImageBytes": 149298,
837
+ "uncompressedJsBytes": 0
838
+ }
839
+ },
840
+ "deliveries": [
841
+ "12:09:38 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":10}",
842
+ "12:09:48 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":10}",
843
+ "12:09:55 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":8}",
844
+ "12:09:55 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":2}"
845
+ ]
846
+ },
847
+ {
848
+ "file": "jianshouji-minitool-20260730-v10.zip",
849
+ "slug": "04-picked-phone-gate",
850
+ "actions": "只查看首次进入的功能服务协议;没有接受协议,没有进入创作功能",
851
+ "notes": "等待用户确认是否同意协议。此记录不是功能实操完成,必须保留为未测/前置条件阻断,不能用该页面报告替代真实功能验证。",
852
+ "payload": {
853
+ "sessionId": "188bd89b-150a-4549-ac2d-1fd9a74da733",
854
+ "report": {
855
+ "status": "unscorable",
856
+ "blocking": {
857
+ "passed": true,
858
+ "enforced": false,
859
+ "failures": []
860
+ },
861
+ "coverage": {
862
+ "ratio": 0.837,
863
+ "applicable": [
864
+ "peakHeap",
865
+ "decodedImages",
866
+ "jsError",
867
+ "fcp",
868
+ "lcp",
869
+ "fps",
870
+ "longTask",
871
+ "unpackedSize",
872
+ "singleImage",
873
+ "uncompressedJs"
874
+ ],
875
+ "naReasons": {
876
+ "heapGrowth": "本次未采集到数据",
877
+ "texWatermark": "未检测到 webgl 能力",
878
+ "canvasBuffer": "未检测到 canvas2d / webgl 能力",
879
+ "wasmMemory": "未检测到 wasm 能力",
880
+ "workerCount": "未检测到 worker 能力"
881
+ }
882
+ },
883
+ "items": [
884
+ {
885
+ "id": "peakHeap",
886
+ "category": "memory",
887
+ "weight": 6,
888
+ "verdict": "pass",
889
+ "score": 100,
890
+ "measured": 0,
891
+ "threshold": 32,
892
+ "unit": "MB",
893
+ "applicable": true
894
+ },
895
+ {
896
+ "id": "heapGrowth",
897
+ "category": "memory",
898
+ "weight": 7,
899
+ "verdict": "na",
900
+ "applicable": true,
901
+ "naReason": "本次未采集到数据",
902
+ "unit": "MB/min"
903
+ },
904
+ {
905
+ "id": "texWatermark",
906
+ "category": "memory",
907
+ "weight": 6,
908
+ "verdict": "na",
909
+ "applicable": false,
910
+ "naReason": "未检测到 webgl 能力",
911
+ "unit": "MB"
912
+ },
913
+ {
914
+ "id": "canvasBuffer",
915
+ "category": "memory",
916
+ "weight": 3,
917
+ "verdict": "na",
918
+ "applicable": false,
919
+ "naReason": "未检测到 canvas2d / webgl 能力",
920
+ "unit": "MB"
921
+ },
922
+ {
923
+ "id": "decodedImages",
924
+ "category": "memory",
925
+ "weight": 4,
926
+ "verdict": "pass",
927
+ "score": 100,
928
+ "measured": 4.8,
929
+ "threshold": 48,
930
+ "unit": "MB",
931
+ "applicable": true
932
+ },
933
+ {
934
+ "id": "wasmMemory",
935
+ "category": "memory",
936
+ "weight": 3,
937
+ "verdict": "na",
938
+ "applicable": false,
939
+ "naReason": "未检测到 wasm 能力",
940
+ "unit": "MB"
941
+ },
942
+ {
943
+ "id": "workerCount",
944
+ "category": "memory",
945
+ "weight": 2,
946
+ "verdict": "na",
947
+ "applicable": false,
948
+ "naReason": "未检测到 worker 能力",
949
+ "unit": "个"
950
+ },
951
+ {
952
+ "id": "jsError",
953
+ "category": "stability",
954
+ "weight": 1,
955
+ "verdict": "pass",
956
+ "score": 100,
957
+ "measured": 0,
958
+ "threshold": 0,
959
+ "unit": "次",
960
+ "applicable": true
961
+ },
962
+ {
963
+ "id": "fcp",
964
+ "category": "performance",
965
+ "weight": 4,
966
+ "verdict": "pass",
967
+ "score": 100,
968
+ "measured": 136,
969
+ "threshold": 1800,
970
+ "unit": "ms",
971
+ "note": "Guest navigation 口径;良好边界约 90 分,非端到端加载时长",
972
+ "applicable": true
973
+ },
974
+ {
975
+ "id": "lcp",
976
+ "category": "performance",
977
+ "weight": 10,
978
+ "verdict": "pass",
979
+ "score": 100,
980
+ "measured": 136,
981
+ "threshold": 2500,
982
+ "unit": "ms",
983
+ "note": "Guest navigation 口径;良好边界约 90 分,非端到端加载时长",
984
+ "applicable": true
985
+ },
986
+ {
987
+ "id": "fps",
988
+ "category": "performance",
989
+ "weight": 0,
990
+ "verdict": "fail",
991
+ "score": 33,
992
+ "measured": 30,
993
+ "threshold": 30,
994
+ "unit": "fps",
995
+ "applicable": true
996
+ },
997
+ {
998
+ "id": "longTask",
999
+ "category": "performance",
1000
+ "weight": 1,
1001
+ "verdict": "pass",
1002
+ "score": 100,
1003
+ "measured": 93,
1004
+ "threshold": 500,
1005
+ "unit": "ms",
1006
+ "applicable": true
1007
+ },
1008
+ {
1009
+ "id": "unpackedSize",
1010
+ "category": "package",
1011
+ "weight": 4,
1012
+ "verdict": "pass",
1013
+ "score": 100,
1014
+ "measured": 0.9,
1015
+ "threshold": 2,
1016
+ "unit": "MB",
1017
+ "applicable": true
1018
+ },
1019
+ {
1020
+ "id": "singleImage",
1021
+ "category": "package",
1022
+ "weight": 3,
1023
+ "verdict": "pass",
1024
+ "score": 100,
1025
+ "measured": 40,
1026
+ "threshold": 300,
1027
+ "unit": "KB",
1028
+ "applicable": true
1029
+ },
1030
+ {
1031
+ "id": "uncompressedJs",
1032
+ "category": "package",
1033
+ "weight": 3,
1034
+ "verdict": "pass",
1035
+ "score": 100,
1036
+ "measured": 0,
1037
+ "threshold": 0,
1038
+ "unit": "KB",
1039
+ "applicable": true
1040
+ }
1041
+ ],
1042
+ "quality": {
1043
+ "effectiveMs": 33999,
1044
+ "complete": true,
1045
+ "reloadCount": 0,
1046
+ "probeSaturated": false,
1047
+ "sampleCount": 35,
1048
+ "sufficient": false,
1049
+ "insufficientReasons": [
1050
+ "未实际操作小工具:0/1次",
1051
+ "未确认进入核心场景"
1052
+ ],
1053
+ "infrastructureErrorCount": 0,
1054
+ "interactionCount": 0,
1055
+ "coreReached": false
1056
+ },
1057
+ "appType": "tool",
1058
+ "tagMismatch": false,
1059
+ "paintTiming": {
1060
+ "fcpMs": 136,
1061
+ "lcpMs": 136,
1062
+ "fcpStatus": "measured",
1063
+ "lcpStatus": "measured",
1064
+ "lcpFinalized": true,
1065
+ "finalizeReason": "audit-stop"
1066
+ },
1067
+ "versions": {
1068
+ "policyVersion": "phase1-balanced-v2-2026-10-16",
1069
+ "rulesVersion": "1.1.2",
1070
+ "probeVersion": "1.1.0"
1071
+ }
1072
+ },
1073
+ "metrics": {
1074
+ "fcpMs": 136,
1075
+ "lcpMs": 136,
1076
+ "peakHeapBytes": 0,
1077
+ "heapGrowthMBPerMin": null,
1078
+ "slopeSampleCount": 28,
1079
+ "texWatermarkBytes": 0,
1080
+ "bufWatermarkBytes": 0,
1081
+ "canvasWatermarkBytes": 0,
1082
+ "imgWatermarkBytes": 5005200,
1083
+ "wasmPeakBytes": 0,
1084
+ "maxWorkers": 0,
1085
+ "fpsP5": 29,
1086
+ "fpsMedian": 30,
1087
+ "longTaskTotal": 1,
1088
+ "longTaskMaxMs": 93,
1089
+ "jsErrorTotal": 0,
1090
+ "unpackedBytes": 973068,
1091
+ "largestImageBytes": 41284,
1092
+ "uncompressedJsBytes": 0
1093
+ }
1094
+ },
1095
+ "deliveries": [
1096
+ "12:10:26 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":10}",
1097
+ "12:10:36 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":10}",
1098
+ "12:10:46 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":10}",
1099
+ "12:10:46 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":1}",
1100
+ "12:10:46 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":2}"
1101
+ ]
1102
+ },
1103
+ {
1104
+ "file": "瀑布流页面.zip",
1105
+ "slug": "05-waterfall",
1106
+ "actions": "搜索124101命中1张;古风分类9张;全部分类依次翻到第4/4页并返回;其他脑洞为空;恢复全部列表",
1107
+ "notes": "实际验证搜索、分类、全部32张的四页分页;图片点击未打开预览,不计为预览功能覆盖。",
1108
+ "payload": {
1109
+ "sessionId": "820e248f-c052-4056-b2a0-ae44eddafe4e",
1110
+ "report": {
1111
+ "status": "scored",
1112
+ "blocking": {
1113
+ "passed": true,
1114
+ "enforced": false,
1115
+ "failures": []
1116
+ },
1117
+ "score": {
1118
+ "total": 87,
1119
+ "byCategory": {
1120
+ "performance": {
1121
+ "got": 9.5,
1122
+ "max": 15
1123
+ },
1124
+ "package": {
1125
+ "got": 10,
1126
+ "max": 10
1127
+ },
1128
+ "experience": {
1129
+ "got": 0,
1130
+ "max": 0
1131
+ },
1132
+ "stability": {
1133
+ "got": 1,
1134
+ "max": 1
1135
+ },
1136
+ "memory": {
1137
+ "got": 17,
1138
+ "max": 17
1139
+ }
1140
+ }
1141
+ },
1142
+ "coverage": {
1143
+ "ratio": 1,
1144
+ "applicable": [
1145
+ "peakHeap",
1146
+ "heapGrowth",
1147
+ "decodedImages",
1148
+ "jsError",
1149
+ "fcp",
1150
+ "lcp",
1151
+ "fps",
1152
+ "longTask",
1153
+ "unpackedSize",
1154
+ "singleImage",
1155
+ "uncompressedJs"
1156
+ ],
1157
+ "naReasons": {
1158
+ "texWatermark": "未检测到 webgl 能力",
1159
+ "canvasBuffer": "未检测到 canvas2d / webgl 能力",
1160
+ "wasmMemory": "未检测到 wasm 能力",
1161
+ "workerCount": "未检测到 worker 能力"
1162
+ }
1163
+ },
1164
+ "items": [
1165
+ {
1166
+ "id": "peakHeap",
1167
+ "category": "memory",
1168
+ "weight": 6,
1169
+ "verdict": "pass",
1170
+ "score": 100,
1171
+ "measured": 0,
1172
+ "threshold": 32,
1173
+ "unit": "MB",
1174
+ "applicable": true
1175
+ },
1176
+ {
1177
+ "id": "heapGrowth",
1178
+ "category": "memory",
1179
+ "weight": 7,
1180
+ "verdict": "pass",
1181
+ "score": 100,
1182
+ "measured": -0.2,
1183
+ "threshold": 8,
1184
+ "unit": "MB/min",
1185
+ "applicable": true
1186
+ },
1187
+ {
1188
+ "id": "texWatermark",
1189
+ "category": "memory",
1190
+ "weight": 6,
1191
+ "verdict": "na",
1192
+ "applicable": false,
1193
+ "naReason": "未检测到 webgl 能力",
1194
+ "unit": "MB"
1195
+ },
1196
+ {
1197
+ "id": "canvasBuffer",
1198
+ "category": "memory",
1199
+ "weight": 3,
1200
+ "verdict": "na",
1201
+ "applicable": false,
1202
+ "naReason": "未检测到 canvas2d / webgl 能力",
1203
+ "unit": "MB"
1204
+ },
1205
+ {
1206
+ "id": "decodedImages",
1207
+ "category": "memory",
1208
+ "weight": 4,
1209
+ "verdict": "pass",
1210
+ "score": 100,
1211
+ "measured": 9.4,
1212
+ "threshold": 48,
1213
+ "unit": "MB",
1214
+ "applicable": true
1215
+ },
1216
+ {
1217
+ "id": "wasmMemory",
1218
+ "category": "memory",
1219
+ "weight": 3,
1220
+ "verdict": "na",
1221
+ "applicable": false,
1222
+ "naReason": "未检测到 wasm 能力",
1223
+ "unit": "MB"
1224
+ },
1225
+ {
1226
+ "id": "workerCount",
1227
+ "category": "memory",
1228
+ "weight": 2,
1229
+ "verdict": "na",
1230
+ "applicable": false,
1231
+ "naReason": "未检测到 worker 能力",
1232
+ "unit": "个"
1233
+ },
1234
+ {
1235
+ "id": "jsError",
1236
+ "category": "stability",
1237
+ "weight": 1,
1238
+ "verdict": "pass",
1239
+ "score": 100,
1240
+ "measured": 0,
1241
+ "threshold": 0,
1242
+ "unit": "次",
1243
+ "applicable": true
1244
+ },
1245
+ {
1246
+ "id": "fcp",
1247
+ "category": "performance",
1248
+ "weight": 4,
1249
+ "verdict": "pass",
1250
+ "score": 100,
1251
+ "measured": 96,
1252
+ "threshold": 1800,
1253
+ "unit": "ms",
1254
+ "note": "Guest navigation 口径;良好边界约 90 分,非端到端加载时长",
1255
+ "applicable": true
1256
+ },
1257
+ {
1258
+ "id": "lcp",
1259
+ "category": "performance",
1260
+ "weight": 10,
1261
+ "verdict": "fail",
1262
+ "score": 45,
1263
+ "measured": 4196,
1264
+ "threshold": 2500,
1265
+ "unit": "ms",
1266
+ "note": "Guest navigation 口径;良好边界约 90 分,非端到端加载时长",
1267
+ "applicable": true
1268
+ },
1269
+ {
1270
+ "id": "fps",
1271
+ "category": "performance",
1272
+ "weight": 0,
1273
+ "verdict": "fail",
1274
+ "score": 33,
1275
+ "measured": 30,
1276
+ "threshold": 30,
1277
+ "unit": "fps",
1278
+ "applicable": true
1279
+ },
1280
+ {
1281
+ "id": "longTask",
1282
+ "category": "performance",
1283
+ "weight": 1,
1284
+ "verdict": "pass",
1285
+ "score": 100,
1286
+ "measured": 62,
1287
+ "threshold": 500,
1288
+ "unit": "ms",
1289
+ "applicable": true
1290
+ },
1291
+ {
1292
+ "id": "unpackedSize",
1293
+ "category": "package",
1294
+ "weight": 4,
1295
+ "verdict": "pass",
1296
+ "score": 100,
1297
+ "measured": 1.7,
1298
+ "threshold": 2,
1299
+ "unit": "MB",
1300
+ "applicable": true
1301
+ },
1302
+ {
1303
+ "id": "singleImage",
1304
+ "category": "package",
1305
+ "weight": 3,
1306
+ "verdict": "pass",
1307
+ "score": 100,
1308
+ "measured": 68,
1309
+ "threshold": 300,
1310
+ "unit": "KB",
1311
+ "applicable": true
1312
+ },
1313
+ {
1314
+ "id": "uncompressedJs",
1315
+ "category": "package",
1316
+ "weight": 3,
1317
+ "verdict": "pass",
1318
+ "score": 100,
1319
+ "measured": 0,
1320
+ "threshold": 0,
1321
+ "unit": "KB",
1322
+ "applicable": true
1323
+ }
1324
+ ],
1325
+ "quality": {
1326
+ "effectiveMs": 40999,
1327
+ "complete": true,
1328
+ "reloadCount": 0,
1329
+ "probeSaturated": false,
1330
+ "sampleCount": 42,
1331
+ "sufficient": true,
1332
+ "insufficientReasons": [],
1333
+ "infrastructureErrorCount": 0,
1334
+ "interactionCount": 10,
1335
+ "firstInteractionAt": 0,
1336
+ "coreReached": true,
1337
+ "coreReachedAt": 7128
1338
+ },
1339
+ "appType": "tool",
1340
+ "tagMismatch": false,
1341
+ "paintTiming": {
1342
+ "fcpMs": 96,
1343
+ "lcpMs": 4196,
1344
+ "fcpStatus": "measured",
1345
+ "lcpStatus": "measured",
1346
+ "lcpFinalized": true,
1347
+ "finalizeReason": "interaction"
1348
+ },
1349
+ "versions": {
1350
+ "policyVersion": "phase1-balanced-v2-2026-10-16",
1351
+ "rulesVersion": "1.1.2",
1352
+ "probeVersion": "1.1.0"
1353
+ }
1354
+ },
1355
+ "metrics": {
1356
+ "fcpMs": 96,
1357
+ "lcpMs": 4196,
1358
+ "peakHeapBytes": 0,
1359
+ "heapGrowthMBPerMin": -0.18729716096373733,
1360
+ "slopeSampleCount": 34,
1361
+ "texWatermarkBytes": 0,
1362
+ "bufWatermarkBytes": 0,
1363
+ "canvasWatermarkBytes": 0,
1364
+ "imgWatermarkBytes": 9830400,
1365
+ "wasmPeakBytes": 0,
1366
+ "maxWorkers": 0,
1367
+ "fpsP5": 30,
1368
+ "fpsMedian": 30,
1369
+ "longTaskTotal": 1,
1370
+ "longTaskMaxMs": 62,
1371
+ "jsErrorTotal": 0,
1372
+ "unpackedBytes": 1799040,
1373
+ "largestImageBytes": 69949,
1374
+ "uncompressedJsBytes": 0
1375
+ }
1376
+ },
1377
+ "deliveries": [
1378
+ "12:14:00 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":10}",
1379
+ "12:14:10 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":10}",
1380
+ "12:14:20 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":10}",
1381
+ "12:14:22 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":2}",
1382
+ "12:14:22 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":2}"
1383
+ ]
1384
+ },
1385
+ {
1386
+ "file": "jianshouji-minitool-20260730-v10.zip",
1387
+ "slug": "04-picked-phone",
1388
+ "actions": "按用户确认接受协议;私聊填写虚构昵称;创建角色并指定我;生成1条虚构对话;出片页命名并保存草稿;退出后在草稿箱核对1个草稿",
1389
+ "notes": "未点击生成图片/发布,未对外发布内容。独立的未接受协议试跑记录为unscorable,不算完成创作。",
1390
+ "payload": {
1391
+ "sessionId": "656c3299-fddc-43e0-8f3e-639303b4d6b6",
1392
+ "report": {
1393
+ "status": "scored",
1394
+ "blocking": {
1395
+ "passed": true,
1396
+ "enforced": false,
1397
+ "failures": []
1398
+ },
1399
+ "score": {
1400
+ "total": 100,
1401
+ "byCategory": {
1402
+ "performance": {
1403
+ "got": 15,
1404
+ "max": 15
1405
+ },
1406
+ "package": {
1407
+ "got": 10,
1408
+ "max": 10
1409
+ },
1410
+ "experience": {
1411
+ "got": 0,
1412
+ "max": 0
1413
+ },
1414
+ "stability": {
1415
+ "got": 1,
1416
+ "max": 1
1417
+ },
1418
+ "memory": {
1419
+ "got": 17,
1420
+ "max": 17
1421
+ }
1422
+ }
1423
+ },
1424
+ "coverage": {
1425
+ "ratio": 1,
1426
+ "applicable": [
1427
+ "peakHeap",
1428
+ "heapGrowth",
1429
+ "decodedImages",
1430
+ "jsError",
1431
+ "fcp",
1432
+ "lcp",
1433
+ "fps",
1434
+ "longTask",
1435
+ "unpackedSize",
1436
+ "singleImage",
1437
+ "uncompressedJs"
1438
+ ],
1439
+ "naReasons": {
1440
+ "texWatermark": "未检测到 webgl 能力",
1441
+ "canvasBuffer": "未检测到 canvas2d / webgl 能力",
1442
+ "wasmMemory": "未检测到 wasm 能力",
1443
+ "workerCount": "未检测到 worker 能力"
1444
+ }
1445
+ },
1446
+ "items": [
1447
+ {
1448
+ "id": "peakHeap",
1449
+ "category": "memory",
1450
+ "weight": 6,
1451
+ "verdict": "pass",
1452
+ "score": 100,
1453
+ "measured": 0,
1454
+ "threshold": 32,
1455
+ "unit": "MB",
1456
+ "applicable": true
1457
+ },
1458
+ {
1459
+ "id": "heapGrowth",
1460
+ "category": "memory",
1461
+ "weight": 7,
1462
+ "verdict": "pass",
1463
+ "score": 100,
1464
+ "measured": 3.3,
1465
+ "threshold": 8,
1466
+ "unit": "MB/min",
1467
+ "applicable": true
1468
+ },
1469
+ {
1470
+ "id": "texWatermark",
1471
+ "category": "memory",
1472
+ "weight": 6,
1473
+ "verdict": "na",
1474
+ "applicable": false,
1475
+ "naReason": "未检测到 webgl 能力",
1476
+ "unit": "MB"
1477
+ },
1478
+ {
1479
+ "id": "canvasBuffer",
1480
+ "category": "memory",
1481
+ "weight": 3,
1482
+ "verdict": "na",
1483
+ "applicable": false,
1484
+ "naReason": "未检测到 canvas2d / webgl 能力",
1485
+ "unit": "MB"
1486
+ },
1487
+ {
1488
+ "id": "decodedImages",
1489
+ "category": "memory",
1490
+ "weight": 4,
1491
+ "verdict": "pass",
1492
+ "score": 100,
1493
+ "measured": 4.8,
1494
+ "threshold": 48,
1495
+ "unit": "MB",
1496
+ "applicable": true
1497
+ },
1498
+ {
1499
+ "id": "wasmMemory",
1500
+ "category": "memory",
1501
+ "weight": 3,
1502
+ "verdict": "na",
1503
+ "applicable": false,
1504
+ "naReason": "未检测到 wasm 能力",
1505
+ "unit": "MB"
1506
+ },
1507
+ {
1508
+ "id": "workerCount",
1509
+ "category": "memory",
1510
+ "weight": 2,
1511
+ "verdict": "na",
1512
+ "applicable": false,
1513
+ "naReason": "未检测到 worker 能力",
1514
+ "unit": "个"
1515
+ },
1516
+ {
1517
+ "id": "jsError",
1518
+ "category": "stability",
1519
+ "weight": 1,
1520
+ "verdict": "pass",
1521
+ "score": 100,
1522
+ "measured": 0,
1523
+ "threshold": 0,
1524
+ "unit": "次",
1525
+ "applicable": true
1526
+ },
1527
+ {
1528
+ "id": "fcp",
1529
+ "category": "performance",
1530
+ "weight": 4,
1531
+ "verdict": "pass",
1532
+ "score": 100,
1533
+ "measured": 104,
1534
+ "threshold": 1800,
1535
+ "unit": "ms",
1536
+ "note": "Guest navigation 口径;良好边界约 90 分,非端到端加载时长",
1537
+ "applicable": true
1538
+ },
1539
+ {
1540
+ "id": "lcp",
1541
+ "category": "performance",
1542
+ "weight": 10,
1543
+ "verdict": "pass",
1544
+ "score": 100,
1545
+ "measured": 104,
1546
+ "threshold": 2500,
1547
+ "unit": "ms",
1548
+ "note": "Guest navigation 口径;良好边界约 90 分,非端到端加载时长",
1549
+ "applicable": true
1550
+ },
1551
+ {
1552
+ "id": "fps",
1553
+ "category": "performance",
1554
+ "weight": 0,
1555
+ "verdict": "fail",
1556
+ "score": 33,
1557
+ "measured": 30,
1558
+ "threshold": 30,
1559
+ "unit": "fps",
1560
+ "applicable": true
1561
+ },
1562
+ {
1563
+ "id": "longTask",
1564
+ "category": "performance",
1565
+ "weight": 1,
1566
+ "verdict": "pass",
1567
+ "score": 100,
1568
+ "measured": 89,
1569
+ "threshold": 500,
1570
+ "unit": "ms",
1571
+ "applicable": true
1572
+ },
1573
+ {
1574
+ "id": "unpackedSize",
1575
+ "category": "package",
1576
+ "weight": 4,
1577
+ "verdict": "pass",
1578
+ "score": 100,
1579
+ "measured": 0.9,
1580
+ "threshold": 2,
1581
+ "unit": "MB",
1582
+ "applicable": true
1583
+ },
1584
+ {
1585
+ "id": "singleImage",
1586
+ "category": "package",
1587
+ "weight": 3,
1588
+ "verdict": "pass",
1589
+ "score": 100,
1590
+ "measured": 40,
1591
+ "threshold": 300,
1592
+ "unit": "KB",
1593
+ "applicable": true
1594
+ },
1595
+ {
1596
+ "id": "uncompressedJs",
1597
+ "category": "package",
1598
+ "weight": 3,
1599
+ "verdict": "pass",
1600
+ "score": 100,
1601
+ "measured": 0,
1602
+ "threshold": 0,
1603
+ "unit": "KB",
1604
+ "applicable": true
1605
+ }
1606
+ ],
1607
+ "quality": {
1608
+ "effectiveMs": 62000,
1609
+ "complete": true,
1610
+ "reloadCount": 0,
1611
+ "probeSaturated": false,
1612
+ "sampleCount": 63,
1613
+ "sufficient": true,
1614
+ "insufficientReasons": [],
1615
+ "infrastructureErrorCount": 0,
1616
+ "interactionCount": 15,
1617
+ "firstInteractionAt": 1000,
1618
+ "coreReached": true,
1619
+ "coreReachedAt": 40400
1620
+ },
1621
+ "appType": "tool",
1622
+ "tagMismatch": false,
1623
+ "paintTiming": {
1624
+ "fcpMs": 104,
1625
+ "lcpMs": 104,
1626
+ "fcpStatus": "measured",
1627
+ "lcpStatus": "measured",
1628
+ "lcpFinalized": true,
1629
+ "finalizeReason": "interaction"
1630
+ },
1631
+ "versions": {
1632
+ "policyVersion": "phase1-balanced-v2-2026-10-16",
1633
+ "rulesVersion": "1.1.2",
1634
+ "probeVersion": "1.1.0"
1635
+ }
1636
+ },
1637
+ "metrics": {
1638
+ "fcpMs": 104,
1639
+ "lcpMs": 104,
1640
+ "peakHeapBytes": 0,
1641
+ "heapGrowthMBPerMin": 3.3170422079740334,
1642
+ "slopeSampleCount": 51,
1643
+ "texWatermarkBytes": 0,
1644
+ "bufWatermarkBytes": 0,
1645
+ "canvasWatermarkBytes": 0,
1646
+ "imgWatermarkBytes": 5005200,
1647
+ "wasmPeakBytes": 0,
1648
+ "maxWorkers": 0,
1649
+ "fpsP5": 29,
1650
+ "fpsMedian": 30,
1651
+ "longTaskTotal": 1,
1652
+ "longTaskMaxMs": 89,
1653
+ "jsErrorTotal": 0,
1654
+ "unpackedBytes": 973068,
1655
+ "largestImageBytes": 41284,
1656
+ "uncompressedJsBytes": 0
1657
+ }
1658
+ },
1659
+ "deliveries": [
1660
+ "12:15:23 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":10}",
1661
+ "12:15:33 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":10}",
1662
+ "12:15:37 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":2}",
1663
+ "12:15:37 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":5}"
1664
+ ]
1665
+ },
1666
+ {
1667
+ "file": "答题错题页面滚动.zip",
1668
+ "slug": "06-quiz",
1669
+ "actions": "填写本地评测姓名;实际逐题完成15题;进入34分成绩单(5对10错);End键使body滚动1149.5px,查看错题回顾",
1670
+ "notes": "未分享成绩单。质量评测100分与答题成绩34分分别是系统质量分和业务内容成绩。",
1671
+ "payload": {
1672
+ "sessionId": "f22e245c-980b-4c3f-9c01-8696979a44f4",
1673
+ "report": {
1674
+ "status": "scored",
1675
+ "blocking": {
1676
+ "passed": true,
1677
+ "enforced": false,
1678
+ "failures": []
1679
+ },
1680
+ "score": {
1681
+ "total": 100,
1682
+ "byCategory": {
1683
+ "performance": {
1684
+ "got": 15,
1685
+ "max": 15
1686
+ },
1687
+ "package": {
1688
+ "got": 10,
1689
+ "max": 10
1690
+ },
1691
+ "experience": {
1692
+ "got": 0,
1693
+ "max": 0
1694
+ },
1695
+ "stability": {
1696
+ "got": 1,
1697
+ "max": 1
1698
+ },
1699
+ "memory": {
1700
+ "got": 20,
1701
+ "max": 20
1702
+ }
1703
+ }
1704
+ },
1705
+ "coverage": {
1706
+ "ratio": 1,
1707
+ "applicable": [
1708
+ "peakHeap",
1709
+ "heapGrowth",
1710
+ "canvasBuffer",
1711
+ "decodedImages",
1712
+ "jsError",
1713
+ "fcp",
1714
+ "lcp",
1715
+ "fps",
1716
+ "longTask",
1717
+ "unpackedSize",
1718
+ "singleImage",
1719
+ "uncompressedJs"
1720
+ ],
1721
+ "naReasons": {
1722
+ "texWatermark": "未检测到 webgl 能力",
1723
+ "wasmMemory": "未检测到 wasm 能力",
1724
+ "workerCount": "未检测到 worker 能力"
1725
+ }
1726
+ },
1727
+ "items": [
1728
+ {
1729
+ "id": "peakHeap",
1730
+ "category": "memory",
1731
+ "weight": 6,
1732
+ "verdict": "pass",
1733
+ "score": 100,
1734
+ "measured": 2.9,
1735
+ "threshold": 32,
1736
+ "unit": "MB",
1737
+ "applicable": true
1738
+ },
1739
+ {
1740
+ "id": "heapGrowth",
1741
+ "category": "memory",
1742
+ "weight": 7,
1743
+ "verdict": "pass",
1744
+ "score": 100,
1745
+ "measured": 1.1,
1746
+ "threshold": 8,
1747
+ "unit": "MB/min",
1748
+ "applicable": true
1749
+ },
1750
+ {
1751
+ "id": "texWatermark",
1752
+ "category": "memory",
1753
+ "weight": 6,
1754
+ "verdict": "na",
1755
+ "applicable": false,
1756
+ "naReason": "未检测到 webgl 能力",
1757
+ "unit": "MB"
1758
+ },
1759
+ {
1760
+ "id": "canvasBuffer",
1761
+ "category": "memory",
1762
+ "weight": 3,
1763
+ "verdict": "pass",
1764
+ "score": 100,
1765
+ "measured": 5,
1766
+ "threshold": 32,
1767
+ "unit": "MB",
1768
+ "applicable": true
1769
+ },
1770
+ {
1771
+ "id": "decodedImages",
1772
+ "category": "memory",
1773
+ "weight": 4,
1774
+ "verdict": "pass",
1775
+ "score": 100,
1776
+ "measured": 0,
1777
+ "threshold": 48,
1778
+ "unit": "MB",
1779
+ "applicable": true
1780
+ },
1781
+ {
1782
+ "id": "wasmMemory",
1783
+ "category": "memory",
1784
+ "weight": 3,
1785
+ "verdict": "na",
1786
+ "applicable": false,
1787
+ "naReason": "未检测到 wasm 能力",
1788
+ "unit": "MB"
1789
+ },
1790
+ {
1791
+ "id": "workerCount",
1792
+ "category": "memory",
1793
+ "weight": 2,
1794
+ "verdict": "na",
1795
+ "applicable": false,
1796
+ "naReason": "未检测到 worker 能力",
1797
+ "unit": "个"
1798
+ },
1799
+ {
1800
+ "id": "jsError",
1801
+ "category": "stability",
1802
+ "weight": 1,
1803
+ "verdict": "pass",
1804
+ "score": 100,
1805
+ "measured": 0,
1806
+ "threshold": 0,
1807
+ "unit": "次",
1808
+ "applicable": true
1809
+ },
1810
+ {
1811
+ "id": "fcp",
1812
+ "category": "performance",
1813
+ "weight": 4,
1814
+ "verdict": "pass",
1815
+ "score": 100,
1816
+ "measured": 96,
1817
+ "threshold": 1800,
1818
+ "unit": "ms",
1819
+ "note": "Guest navigation 口径;良好边界约 90 分,非端到端加载时长",
1820
+ "applicable": true
1821
+ },
1822
+ {
1823
+ "id": "lcp",
1824
+ "category": "performance",
1825
+ "weight": 10,
1826
+ "verdict": "pass",
1827
+ "score": 100,
1828
+ "measured": 96,
1829
+ "threshold": 2500,
1830
+ "unit": "ms",
1831
+ "note": "Guest navigation 口径;良好边界约 90 分,非端到端加载时长",
1832
+ "applicable": true
1833
+ },
1834
+ {
1835
+ "id": "fps",
1836
+ "category": "performance",
1837
+ "weight": 0,
1838
+ "verdict": "fail",
1839
+ "score": 33,
1840
+ "measured": 30,
1841
+ "threshold": 30,
1842
+ "unit": "fps",
1843
+ "applicable": true
1844
+ },
1845
+ {
1846
+ "id": "longTask",
1847
+ "category": "performance",
1848
+ "weight": 1,
1849
+ "verdict": "pass",
1850
+ "score": 100,
1851
+ "measured": 0,
1852
+ "threshold": 500,
1853
+ "unit": "ms",
1854
+ "applicable": true
1855
+ },
1856
+ {
1857
+ "id": "unpackedSize",
1858
+ "category": "package",
1859
+ "weight": 4,
1860
+ "verdict": "pass",
1861
+ "score": 100,
1862
+ "measured": 0.1,
1863
+ "threshold": 2,
1864
+ "unit": "MB",
1865
+ "applicable": true
1866
+ },
1867
+ {
1868
+ "id": "singleImage",
1869
+ "category": "package",
1870
+ "weight": 3,
1871
+ "verdict": "pass",
1872
+ "score": 100,
1873
+ "measured": 25,
1874
+ "threshold": 300,
1875
+ "unit": "KB",
1876
+ "applicable": true
1877
+ },
1878
+ {
1879
+ "id": "uncompressedJs",
1880
+ "category": "package",
1881
+ "weight": 3,
1882
+ "verdict": "pass",
1883
+ "score": 100,
1884
+ "measured": 0,
1885
+ "threshold": 0,
1886
+ "unit": "KB",
1887
+ "applicable": true
1888
+ }
1889
+ ],
1890
+ "quality": {
1891
+ "effectiveMs": 66997,
1892
+ "complete": true,
1893
+ "reloadCount": 0,
1894
+ "probeSaturated": false,
1895
+ "sampleCount": 68,
1896
+ "sufficient": true,
1897
+ "insufficientReasons": [],
1898
+ "infrastructureErrorCount": 0,
1899
+ "interactionCount": 18,
1900
+ "firstInteractionAt": 1998,
1901
+ "coreReached": true,
1902
+ "coreReachedAt": 61197
1903
+ },
1904
+ "appType": "tool",
1905
+ "tagMismatch": false,
1906
+ "paintTiming": {
1907
+ "fcpMs": 96,
1908
+ "lcpMs": 96,
1909
+ "fcpStatus": "measured",
1910
+ "lcpStatus": "measured",
1911
+ "lcpFinalized": true,
1912
+ "finalizeReason": "interaction"
1913
+ },
1914
+ "versions": {
1915
+ "policyVersion": "phase1-balanced-v2-2026-10-16",
1916
+ "rulesVersion": "1.1.2",
1917
+ "probeVersion": "1.1.0"
1918
+ }
1919
+ },
1920
+ "metrics": {
1921
+ "fcpMs": 96,
1922
+ "lcpMs": 96,
1923
+ "peakHeapBytes": 3052657.1499999985,
1924
+ "heapGrowthMBPerMin": 1.0767691344098698,
1925
+ "slopeSampleCount": 55,
1926
+ "texWatermarkBytes": 0,
1927
+ "bufWatermarkBytes": 0,
1928
+ "canvasWatermarkBytes": 5266560,
1929
+ "imgWatermarkBytes": 0,
1930
+ "wasmPeakBytes": 0,
1931
+ "maxWorkers": 0,
1932
+ "fpsP5": 30,
1933
+ "fpsMedian": 30,
1934
+ "longTaskTotal": 0,
1935
+ "longTaskMaxMs": 0,
1936
+ "jsErrorTotal": 0,
1937
+ "unpackedBytes": 107895,
1938
+ "largestImageBytes": 25459,
1939
+ "uncompressedJsBytes": 0
1940
+ }
1941
+ },
1942
+ "deliveries": [
1943
+ "12:16:34 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":10}",
1944
+ "12:16:44 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":10}",
1945
+ "12:16:50 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":2}",
1946
+ "12:16:50 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":7}"
1947
+ ]
1948
+ },
1949
+ {
1950
+ "file": "forest-fire-water-rafloop-fix.zip",
1951
+ "slug": "07-forest-portrait-attempt",
1952
+ "actions": "点击画布中心:开始游戏→关卡地图;选关坐标输入因嵌套iframe小数坐标被浏览器工具拒绝",
1953
+ "notes": "未进入关卡,不确认核心场景,记录unscorable;继续用模拟器PC设备复测。",
1954
+ "payload": {
1955
+ "sessionId": "3311dfe3-a0eb-4dc0-941e-3dd10086bb8e",
1956
+ "report": {
1957
+ "status": "unscorable",
1958
+ "blocking": {
1959
+ "passed": true,
1960
+ "enforced": false,
1961
+ "failures": []
1962
+ },
1963
+ "coverage": {
1964
+ "ratio": 0.783,
1965
+ "applicable": [
1966
+ "peakHeap",
1967
+ "heapGrowth",
1968
+ "canvasBuffer",
1969
+ "decodedImages",
1970
+ "jsError",
1971
+ "fcp",
1972
+ "fps",
1973
+ "longTask",
1974
+ "unpackedSize",
1975
+ "singleImage",
1976
+ "uncompressedJs"
1977
+ ],
1978
+ "naReasons": {
1979
+ "texWatermark": "未检测到 webgl 能力",
1980
+ "wasmMemory": "未检测到 wasm 能力",
1981
+ "workerCount": "未检测到 worker 能力",
1982
+ "lcp": "本次未采集到数据"
1983
+ }
1984
+ },
1985
+ "items": [
1986
+ {
1987
+ "id": "peakHeap",
1988
+ "category": "memory",
1989
+ "weight": 6,
1990
+ "verdict": "pass",
1991
+ "score": 100,
1992
+ "measured": 7.3,
1993
+ "threshold": 32,
1994
+ "unit": "MB",
1995
+ "applicable": true
1996
+ },
1997
+ {
1998
+ "id": "heapGrowth",
1999
+ "category": "memory",
2000
+ "weight": 7,
2001
+ "verdict": "pass",
2002
+ "score": 100,
2003
+ "measured": -1.8,
2004
+ "threshold": 8,
2005
+ "unit": "MB/min",
2006
+ "applicable": true
2007
+ },
2008
+ {
2009
+ "id": "texWatermark",
2010
+ "category": "memory",
2011
+ "weight": 6,
2012
+ "verdict": "na",
2013
+ "applicable": false,
2014
+ "naReason": "未检测到 webgl 能力",
2015
+ "unit": "MB"
2016
+ },
2017
+ {
2018
+ "id": "canvasBuffer",
2019
+ "category": "memory",
2020
+ "weight": 3,
2021
+ "verdict": "pass",
2022
+ "score": 100,
2023
+ "measured": 10,
2024
+ "threshold": 32,
2025
+ "unit": "MB",
2026
+ "applicable": true
2027
+ },
2028
+ {
2029
+ "id": "decodedImages",
2030
+ "category": "memory",
2031
+ "weight": 4,
2032
+ "verdict": "pass",
2033
+ "score": 100,
2034
+ "measured": 0,
2035
+ "threshold": 48,
2036
+ "unit": "MB",
2037
+ "applicable": true
2038
+ },
2039
+ {
2040
+ "id": "wasmMemory",
2041
+ "category": "memory",
2042
+ "weight": 3,
2043
+ "verdict": "na",
2044
+ "applicable": false,
2045
+ "naReason": "未检测到 wasm 能力",
2046
+ "unit": "MB"
2047
+ },
2048
+ {
2049
+ "id": "workerCount",
2050
+ "category": "memory",
2051
+ "weight": 2,
2052
+ "verdict": "na",
2053
+ "applicable": false,
2054
+ "naReason": "未检测到 worker 能力",
2055
+ "unit": "个"
2056
+ },
2057
+ {
2058
+ "id": "jsError",
2059
+ "category": "stability",
2060
+ "weight": 1,
2061
+ "verdict": "pass",
2062
+ "score": 100,
2063
+ "measured": 0,
2064
+ "threshold": 0,
2065
+ "unit": "次",
2066
+ "applicable": true
2067
+ },
2068
+ {
2069
+ "id": "fcp",
2070
+ "category": "performance",
2071
+ "weight": 4,
2072
+ "verdict": "pass",
2073
+ "score": 100,
2074
+ "measured": 96,
2075
+ "threshold": 1800,
2076
+ "unit": "ms",
2077
+ "note": "Guest navigation 口径;良好边界约 90 分,非端到端加载时长",
2078
+ "applicable": true
2079
+ },
2080
+ {
2081
+ "id": "lcp",
2082
+ "category": "performance",
2083
+ "weight": 10,
2084
+ "verdict": "na",
2085
+ "applicable": true,
2086
+ "naReason": "本次未采集到数据",
2087
+ "unit": "ms"
2088
+ },
2089
+ {
2090
+ "id": "fps",
2091
+ "category": "performance",
2092
+ "weight": 0,
2093
+ "verdict": "fail",
2094
+ "score": 33,
2095
+ "measured": 30,
2096
+ "threshold": 30,
2097
+ "unit": "fps",
2098
+ "applicable": true
2099
+ },
2100
+ {
2101
+ "id": "longTask",
2102
+ "category": "performance",
2103
+ "weight": 1,
2104
+ "verdict": "pass",
2105
+ "score": 100,
2106
+ "measured": 0,
2107
+ "threshold": 500,
2108
+ "unit": "ms",
2109
+ "applicable": true
2110
+ },
2111
+ {
2112
+ "id": "unpackedSize",
2113
+ "category": "package",
2114
+ "weight": 4,
2115
+ "verdict": "pass",
2116
+ "score": 100,
2117
+ "measured": 1.8,
2118
+ "threshold": 2,
2119
+ "unit": "MB",
2120
+ "applicable": true
2121
+ },
2122
+ {
2123
+ "id": "singleImage",
2124
+ "category": "package",
2125
+ "weight": 3,
2126
+ "verdict": "pass",
2127
+ "score": 100,
2128
+ "measured": 252,
2129
+ "threshold": 300,
2130
+ "unit": "KB",
2131
+ "applicable": true
2132
+ },
2133
+ {
2134
+ "id": "uncompressedJs",
2135
+ "category": "package",
2136
+ "weight": 3,
2137
+ "verdict": "pass",
2138
+ "score": 72,
2139
+ "measured": 1129,
2140
+ "threshold": 0,
2141
+ "unit": "KB",
2142
+ "applicable": true
2143
+ }
2144
+ ],
2145
+ "quality": {
2146
+ "effectiveMs": 96999,
2147
+ "complete": true,
2148
+ "reloadCount": 0,
2149
+ "probeSaturated": false,
2150
+ "sampleCount": 98,
2151
+ "sufficient": false,
2152
+ "insufficientReasons": [
2153
+ "未确认进入核心场景"
2154
+ ],
2155
+ "infrastructureErrorCount": 0,
2156
+ "interactionCount": 1,
2157
+ "firstInteractionAt": 26041,
2158
+ "coreReached": false
2159
+ },
2160
+ "appType": "tool",
2161
+ "tagMismatch": false,
2162
+ "paintTiming": {
2163
+ "fcpMs": 96,
2164
+ "lcpMs": null,
2165
+ "fcpStatus": "measured",
2166
+ "lcpStatus": "pending",
2167
+ "lcpFinalized": true,
2168
+ "finalizeReason": "interaction"
2169
+ },
2170
+ "versions": {
2171
+ "policyVersion": "phase1-balanced-v2-2026-10-16",
2172
+ "rulesVersion": "1.1.2",
2173
+ "probeVersion": "1.1.0"
2174
+ }
2175
+ },
2176
+ "metrics": {
2177
+ "fcpMs": 96,
2178
+ "lcpMs": null,
2179
+ "peakHeapBytes": 7651783,
2180
+ "heapGrowthMBPerMin": -1.8019381618455106,
2181
+ "slopeSampleCount": 79,
2182
+ "texWatermarkBytes": 0,
2183
+ "bufWatermarkBytes": 0,
2184
+ "canvasWatermarkBytes": 10533120,
2185
+ "imgWatermarkBytes": 0,
2186
+ "wasmPeakBytes": 0,
2187
+ "maxWorkers": 0,
2188
+ "fpsP5": 30,
2189
+ "fpsMedian": 30,
2190
+ "longTaskTotal": 0,
2191
+ "longTaskMaxMs": 0,
2192
+ "jsErrorTotal": 0,
2193
+ "unpackedBytes": 1871871,
2194
+ "largestImageBytes": 258035,
2195
+ "uncompressedJsBytes": 1155608
2196
+ }
2197
+ },
2198
+ "deliveries": [
2199
+ "12:18:22 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":10}",
2200
+ "12:18:32 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":10}",
2201
+ "12:18:35 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":3}",
2202
+ "12:18:35 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":2}"
2203
+ ]
2204
+ },
2205
+ {
2206
+ "file": "forest-fire-water-rafloop-fix.zip",
2207
+ "slug": "07-forest-pc-attempt",
2208
+ "actions": "整页刷新并切换PC设备;画布点击和回车不能进入关卡;坐标输入仍被浏览器工具拒绝",
2209
+ "notes": "未进入主循环,保留unscorable;不是游戏功能失败的证据,也不作为完成实操计数。",
2210
+ "payload": {
2211
+ "sessionId": "0a6a2a0b-0b5c-4620-92de-4d74adb71568",
2212
+ "report": {
2213
+ "status": "unscorable",
2214
+ "blocking": {
2215
+ "passed": true,
2216
+ "enforced": false,
2217
+ "failures": []
2218
+ },
2219
+ "coverage": {
2220
+ "ratio": 0.783,
2221
+ "applicable": [
2222
+ "peakHeap",
2223
+ "heapGrowth",
2224
+ "canvasBuffer",
2225
+ "decodedImages",
2226
+ "jsError",
2227
+ "fcp",
2228
+ "fps",
2229
+ "longTask",
2230
+ "unpackedSize",
2231
+ "singleImage",
2232
+ "uncompressedJs"
2233
+ ],
2234
+ "naReasons": {
2235
+ "texWatermark": "未检测到 webgl 能力",
2236
+ "wasmMemory": "未检测到 wasm 能力",
2237
+ "workerCount": "未检测到 worker 能力",
2238
+ "lcp": "本次未采集到数据"
2239
+ }
2240
+ },
2241
+ "items": [
2242
+ {
2243
+ "id": "peakHeap",
2244
+ "category": "memory",
2245
+ "weight": 6,
2246
+ "verdict": "pass",
2247
+ "score": 100,
2248
+ "measured": 0,
2249
+ "threshold": 32,
2250
+ "unit": "MB",
2251
+ "applicable": true
2252
+ },
2253
+ {
2254
+ "id": "heapGrowth",
2255
+ "category": "memory",
2256
+ "weight": 7,
2257
+ "verdict": "pass",
2258
+ "score": 100,
2259
+ "measured": -5.1,
2260
+ "threshold": 8,
2261
+ "unit": "MB/min",
2262
+ "applicable": true
2263
+ },
2264
+ {
2265
+ "id": "texWatermark",
2266
+ "category": "memory",
2267
+ "weight": 6,
2268
+ "verdict": "na",
2269
+ "applicable": false,
2270
+ "naReason": "未检测到 webgl 能力",
2271
+ "unit": "MB"
2272
+ },
2273
+ {
2274
+ "id": "canvasBuffer",
2275
+ "category": "memory",
2276
+ "weight": 3,
2277
+ "verdict": "pass",
2278
+ "score": 100,
2279
+ "measured": 24.5,
2280
+ "threshold": 32,
2281
+ "unit": "MB",
2282
+ "applicable": true
2283
+ },
2284
+ {
2285
+ "id": "decodedImages",
2286
+ "category": "memory",
2287
+ "weight": 4,
2288
+ "verdict": "pass",
2289
+ "score": 100,
2290
+ "measured": 0,
2291
+ "threshold": 48,
2292
+ "unit": "MB",
2293
+ "applicable": true
2294
+ },
2295
+ {
2296
+ "id": "wasmMemory",
2297
+ "category": "memory",
2298
+ "weight": 3,
2299
+ "verdict": "na",
2300
+ "applicable": false,
2301
+ "naReason": "未检测到 wasm 能力",
2302
+ "unit": "MB"
2303
+ },
2304
+ {
2305
+ "id": "workerCount",
2306
+ "category": "memory",
2307
+ "weight": 2,
2308
+ "verdict": "na",
2309
+ "applicable": false,
2310
+ "naReason": "未检测到 worker 能力",
2311
+ "unit": "个"
2312
+ },
2313
+ {
2314
+ "id": "jsError",
2315
+ "category": "stability",
2316
+ "weight": 1,
2317
+ "verdict": "pass",
2318
+ "score": 100,
2319
+ "measured": 0,
2320
+ "threshold": 0,
2321
+ "unit": "次",
2322
+ "applicable": true
2323
+ },
2324
+ {
2325
+ "id": "fcp",
2326
+ "category": "performance",
2327
+ "weight": 4,
2328
+ "verdict": "pass",
2329
+ "score": 100,
2330
+ "measured": 140,
2331
+ "threshold": 1800,
2332
+ "unit": "ms",
2333
+ "note": "Guest navigation 口径;良好边界约 90 分,非端到端加载时长",
2334
+ "applicable": true
2335
+ },
2336
+ {
2337
+ "id": "lcp",
2338
+ "category": "performance",
2339
+ "weight": 10,
2340
+ "verdict": "na",
2341
+ "applicable": true,
2342
+ "naReason": "本次未采集到数据",
2343
+ "unit": "ms"
2344
+ },
2345
+ {
2346
+ "id": "fps",
2347
+ "category": "performance",
2348
+ "weight": 0,
2349
+ "verdict": "fail",
2350
+ "score": 33,
2351
+ "measured": 30,
2352
+ "threshold": 30,
2353
+ "unit": "fps",
2354
+ "applicable": true
2355
+ },
2356
+ {
2357
+ "id": "longTask",
2358
+ "category": "performance",
2359
+ "weight": 1,
2360
+ "verdict": "pass",
2361
+ "score": 100,
2362
+ "measured": 96,
2363
+ "threshold": 500,
2364
+ "unit": "ms",
2365
+ "applicable": true
2366
+ },
2367
+ {
2368
+ "id": "unpackedSize",
2369
+ "category": "package",
2370
+ "weight": 4,
2371
+ "verdict": "pass",
2372
+ "score": 100,
2373
+ "measured": 1.8,
2374
+ "threshold": 2,
2375
+ "unit": "MB",
2376
+ "applicable": true
2377
+ },
2378
+ {
2379
+ "id": "singleImage",
2380
+ "category": "package",
2381
+ "weight": 3,
2382
+ "verdict": "pass",
2383
+ "score": 100,
2384
+ "measured": 252,
2385
+ "threshold": 300,
2386
+ "unit": "KB",
2387
+ "applicable": true
2388
+ },
2389
+ {
2390
+ "id": "uncompressedJs",
2391
+ "category": "package",
2392
+ "weight": 3,
2393
+ "verdict": "pass",
2394
+ "score": 72,
2395
+ "measured": 1129,
2396
+ "threshold": 0,
2397
+ "unit": "KB",
2398
+ "applicable": true
2399
+ }
2400
+ ],
2401
+ "quality": {
2402
+ "effectiveMs": 40998,
2403
+ "complete": true,
2404
+ "reloadCount": 0,
2405
+ "probeSaturated": false,
2406
+ "sampleCount": 42,
2407
+ "sufficient": false,
2408
+ "insufficientReasons": [
2409
+ "未确认进入核心场景"
2410
+ ],
2411
+ "infrastructureErrorCount": 0,
2412
+ "interactionCount": 1,
2413
+ "firstInteractionAt": 27998,
2414
+ "coreReached": false
2415
+ },
2416
+ "appType": "tool",
2417
+ "tagMismatch": false,
2418
+ "paintTiming": {
2419
+ "fcpMs": 140,
2420
+ "lcpMs": null,
2421
+ "fcpStatus": "measured",
2422
+ "lcpStatus": "pending",
2423
+ "lcpFinalized": true,
2424
+ "finalizeReason": "interaction"
2425
+ },
2426
+ "versions": {
2427
+ "policyVersion": "phase1-balanced-v2-2026-10-16",
2428
+ "rulesVersion": "1.1.2",
2429
+ "probeVersion": "1.1.0"
2430
+ }
2431
+ },
2432
+ "metrics": {
2433
+ "fcpMs": 140,
2434
+ "lcpMs": null,
2435
+ "peakHeapBytes": 0,
2436
+ "heapGrowthMBPerMin": -5.131662625636906,
2437
+ "slopeSampleCount": 34,
2438
+ "texWatermarkBytes": 0,
2439
+ "bufWatermarkBytes": 0,
2440
+ "canvasWatermarkBytes": 25690768,
2441
+ "imgWatermarkBytes": 0,
2442
+ "wasmPeakBytes": 0,
2443
+ "maxWorkers": 0,
2444
+ "fpsP5": 30,
2445
+ "fpsMedian": 30,
2446
+ "longTaskTotal": 2,
2447
+ "longTaskMaxMs": 96,
2448
+ "jsErrorTotal": 0,
2449
+ "unpackedBytes": 1871871,
2450
+ "largestImageBytes": 258035,
2451
+ "uncompressedJsBytes": 1155608
2452
+ }
2453
+ },
2454
+ "deliveries": [
2455
+ "12:19:07 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":10}",
2456
+ "12:19:08 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":2}",
2457
+ "12:19:18 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":10}",
2458
+ "12:19:22 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":5}",
2459
+ "12:19:22 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":2}"
2460
+ ]
2461
+ },
2462
+ {
2463
+ "file": "诗云星图-试用版.zip",
2464
+ "slug": "08-poetry",
2465
+ "actions": "显示全部;搜索李白显示11关系;点击结果;开始巡游并停止;启动自动播放,画面高亮切换诗人,停止播放",
2466
+ "notes": "DOM与最终截图均核对;巡游及自动播放只验证本次短时路径,不代表全部诗人关系准确性。",
2467
+ "payload": {
2468
+ "sessionId": "03a5aa64-38a1-438c-b575-9d751b78aded",
2469
+ "report": {
2470
+ "status": "scored",
2471
+ "blocking": {
2472
+ "passed": true,
2473
+ "enforced": false,
2474
+ "failures": []
2475
+ },
2476
+ "score": {
2477
+ "total": 100,
2478
+ "byCategory": {
2479
+ "performance": {
2480
+ "got": 15,
2481
+ "max": 15
2482
+ },
2483
+ "package": {
2484
+ "got": 10,
2485
+ "max": 10
2486
+ },
2487
+ "experience": {
2488
+ "got": 0,
2489
+ "max": 0
2490
+ },
2491
+ "stability": {
2492
+ "got": 1,
2493
+ "max": 1
2494
+ },
2495
+ "memory": {
2496
+ "got": 29,
2497
+ "max": 29
2498
+ }
2499
+ }
2500
+ },
2501
+ "coverage": {
2502
+ "ratio": 1,
2503
+ "applicable": [
2504
+ "peakHeap",
2505
+ "heapGrowth",
2506
+ "texWatermark",
2507
+ "canvasBuffer",
2508
+ "decodedImages",
2509
+ "wasmMemory",
2510
+ "jsError",
2511
+ "fcp",
2512
+ "lcp",
2513
+ "fps",
2514
+ "longTask",
2515
+ "unpackedSize",
2516
+ "singleImage",
2517
+ "uncompressedJs"
2518
+ ],
2519
+ "naReasons": {
2520
+ "workerCount": "未检测到 worker 能力"
2521
+ }
2522
+ },
2523
+ "items": [
2524
+ {
2525
+ "id": "peakHeap",
2526
+ "category": "memory",
2527
+ "weight": 6,
2528
+ "verdict": "pass",
2529
+ "score": 100,
2530
+ "measured": 19.6,
2531
+ "threshold": 200,
2532
+ "unit": "MB",
2533
+ "applicable": true
2534
+ },
2535
+ {
2536
+ "id": "heapGrowth",
2537
+ "category": "memory",
2538
+ "weight": 7,
2539
+ "verdict": "pass",
2540
+ "score": 100,
2541
+ "measured": -0.9,
2542
+ "threshold": 8,
2543
+ "unit": "MB/min",
2544
+ "applicable": true
2545
+ },
2546
+ {
2547
+ "id": "texWatermark",
2548
+ "category": "memory",
2549
+ "weight": 6,
2550
+ "verdict": "pass",
2551
+ "score": 100,
2552
+ "measured": 2.3,
2553
+ "threshold": 48,
2554
+ "unit": "MB",
2555
+ "applicable": true
2556
+ },
2557
+ {
2558
+ "id": "canvasBuffer",
2559
+ "category": "memory",
2560
+ "weight": 3,
2561
+ "verdict": "pass",
2562
+ "score": 100,
2563
+ "measured": 11.3,
2564
+ "threshold": 32,
2565
+ "unit": "MB",
2566
+ "applicable": true
2567
+ },
2568
+ {
2569
+ "id": "decodedImages",
2570
+ "category": "memory",
2571
+ "weight": 4,
2572
+ "verdict": "pass",
2573
+ "score": 100,
2574
+ "measured": 0,
2575
+ "threshold": 32,
2576
+ "unit": "MB",
2577
+ "applicable": true
2578
+ },
2579
+ {
2580
+ "id": "wasmMemory",
2581
+ "category": "memory",
2582
+ "weight": 3,
2583
+ "verdict": "pass",
2584
+ "score": 100,
2585
+ "measured": 0,
2586
+ "threshold": 64,
2587
+ "unit": "MB",
2588
+ "applicable": true
2589
+ },
2590
+ {
2591
+ "id": "workerCount",
2592
+ "category": "memory",
2593
+ "weight": 2,
2594
+ "verdict": "na",
2595
+ "applicable": false,
2596
+ "naReason": "未检测到 worker 能力",
2597
+ "unit": "个"
2598
+ },
2599
+ {
2600
+ "id": "jsError",
2601
+ "category": "stability",
2602
+ "weight": 1,
2603
+ "verdict": "pass",
2604
+ "score": 100,
2605
+ "measured": 0,
2606
+ "threshold": 0,
2607
+ "unit": "次",
2608
+ "applicable": true
2609
+ },
2610
+ {
2611
+ "id": "fcp",
2612
+ "category": "performance",
2613
+ "weight": 4,
2614
+ "verdict": "pass",
2615
+ "score": 100,
2616
+ "measured": 160,
2617
+ "threshold": 1800,
2618
+ "unit": "ms",
2619
+ "note": "Guest navigation 口径;良好边界约 90 分,非端到端加载时长",
2620
+ "applicable": true
2621
+ },
2622
+ {
2623
+ "id": "lcp",
2624
+ "category": "performance",
2625
+ "weight": 10,
2626
+ "verdict": "pass",
2627
+ "score": 100,
2628
+ "measured": 160,
2629
+ "threshold": 2500,
2630
+ "unit": "ms",
2631
+ "note": "Guest navigation 口径;良好边界约 90 分,非端到端加载时长",
2632
+ "applicable": true
2633
+ },
2634
+ {
2635
+ "id": "fps",
2636
+ "category": "performance",
2637
+ "weight": 0,
2638
+ "verdict": "fail",
2639
+ "score": 33,
2640
+ "measured": 30,
2641
+ "threshold": 30,
2642
+ "unit": "fps",
2643
+ "applicable": true
2644
+ },
2645
+ {
2646
+ "id": "longTask",
2647
+ "category": "performance",
2648
+ "weight": 1,
2649
+ "verdict": "pass",
2650
+ "score": 100,
2651
+ "measured": 433,
2652
+ "threshold": 500,
2653
+ "unit": "ms",
2654
+ "applicable": true
2655
+ },
2656
+ {
2657
+ "id": "unpackedSize",
2658
+ "category": "package",
2659
+ "weight": 4,
2660
+ "verdict": "pass",
2661
+ "score": 100,
2662
+ "measured": 7.6,
2663
+ "threshold": 12,
2664
+ "unit": "MB",
2665
+ "applicable": true
2666
+ },
2667
+ {
2668
+ "id": "singleImage",
2669
+ "category": "package",
2670
+ "weight": 3,
2671
+ "verdict": "pass",
2672
+ "score": 100,
2673
+ "measured": 0,
2674
+ "threshold": 300,
2675
+ "unit": "KB",
2676
+ "applicable": true
2677
+ },
2678
+ {
2679
+ "id": "uncompressedJs",
2680
+ "category": "package",
2681
+ "weight": 3,
2682
+ "verdict": "pass",
2683
+ "score": 100,
2684
+ "measured": 0,
2685
+ "threshold": 0,
2686
+ "unit": "KB",
2687
+ "applicable": true
2688
+ }
2689
+ ],
2690
+ "quality": {
2691
+ "effectiveMs": 49999,
2692
+ "complete": true,
2693
+ "reloadCount": 0,
2694
+ "probeSaturated": false,
2695
+ "sampleCount": 51,
2696
+ "sufficient": true,
2697
+ "insufficientReasons": [],
2698
+ "infrastructureErrorCount": 0,
2699
+ "interactionCount": 5,
2700
+ "firstInteractionAt": 5002,
2701
+ "coreReached": true,
2702
+ "coreReachedAt": 23626
2703
+ },
2704
+ "appType": "game3d",
2705
+ "tagMismatch": true,
2706
+ "paintTiming": {
2707
+ "fcpMs": 160,
2708
+ "lcpMs": 160,
2709
+ "fcpStatus": "measured",
2710
+ "lcpStatus": "measured",
2711
+ "lcpFinalized": true,
2712
+ "finalizeReason": "interaction"
2713
+ },
2714
+ "versions": {
2715
+ "policyVersion": "phase1-balanced-v2-2026-10-16",
2716
+ "rulesVersion": "1.1.2",
2717
+ "probeVersion": "1.1.0"
2718
+ }
2719
+ },
2720
+ "metrics": {
2721
+ "fcpMs": 160,
2722
+ "lcpMs": 160,
2723
+ "peakHeapBytes": 20508353,
2724
+ "heapGrowthMBPerMin": -0.8773506109691004,
2725
+ "slopeSampleCount": 41,
2726
+ "texWatermarkBytes": 2382976,
2727
+ "bufWatermarkBytes": 40568,
2728
+ "canvasWatermarkBytes": 11860224,
2729
+ "imgWatermarkBytes": 0,
2730
+ "wasmPeakBytes": 0,
2731
+ "maxWorkers": 0,
2732
+ "fpsP5": 21.5,
2733
+ "fpsMedian": 30,
2734
+ "longTaskTotal": 31,
2735
+ "longTaskMaxMs": 433,
2736
+ "jsErrorTotal": 0,
2737
+ "unpackedBytes": 7942266,
2738
+ "largestImageBytes": 0,
2739
+ "uncompressedJsBytes": 0
2740
+ }
2741
+ },
2742
+ "deliveries": [
2743
+ "12:20:03 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":10}",
2744
+ "12:20:13 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":10}",
2745
+ "12:20:20 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":7}",
2746
+ "12:20:20 trackerDelivery {\"ok\":true,\"status\":200,\"attempts\":1,\"eventCount\":2}"
2747
+ ]
2748
+ }
2749
+ ]