perfetto-analyzer 1.0.2 → 1.0.3

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.0.3] - 2026-07-09
4
+
5
+ ### Corrigido
6
+ - **`parse_perfetto_pb.py`** — Dados de frames vazios em devices físicos. O fallback para Android < 12 usava correspondência exata do nome do slice (`'Choreographer#doFrame'`), mas em muitos devices físicos o nome vem com sufixo de frame number (`'Choreographer#doFrame 12345'`). Corrigido usando `LIKE 'Choreographer#doFrame%'` e `LIKE '%DrawFrame%'`.
7
+
3
8
  ## [1.0.2] - 2026-07-09
4
9
 
5
10
  ### Corrigido
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "perfetto-analyzer",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "AI skill for Android performance analysis using Perfetto — works with Claude Code, Cursor, GitHub Copilot, Codex, Antigravity and Devin",
5
5
  "bin": {
6
6
  "perfetto-analyzer": "bin/cli.js"
@@ -164,12 +164,16 @@ def extract_frames(tp):
164
164
  """)
165
165
 
166
166
  if not frames:
167
+ # Fallback para Android < 12 ou devices sem frame timeline.
168
+ # O nome do slice varia por versão: 'Choreographer#doFrame', 'Choreographer#doFrame 12345', etc.
167
169
  frames = query_to_dicts(tp, """
168
170
  SELECT
169
171
  s.name,
170
172
  s.dur / 1e6 AS duration_ms
171
173
  FROM slice s
172
- WHERE s.name IN ('Choreographer#doFrame', 'DrawFrame', 'doFrame')
174
+ WHERE s.name LIKE 'Choreographer#doFrame%'
175
+ OR s.name LIKE '%DrawFrame%'
176
+ OR s.name = 'doFrame'
173
177
  ORDER BY s.ts
174
178
  LIMIT 5000
175
179
  """)