Enhance sysdiagnoseProcess.py for a process tree using ps.txt on Sysdiagnose - #2197
Conversation
|
Test data is now included for every changed artifact module. Thank you! |
|
Thank you for the contribution, @mathisdesaulty! A process tree from a sysdiagnose is a useful addition. I checked the tree against A few things need to change before this can be merged:
A suggestion, not a requirement: I think the tree view is worth keeping, and it could be its own artifact that draws the tree as an image. Thanks again for the work on this! |
|
Thank you so much for the feedback. I tried to follow your advice; I have one page with a complete table and a second page containing images of all the processes to make it more visual. |
%CPU, %MEM and TIME held one value each on all 1,668 rows of the four captures tested, so they are read from ps.txt but no longer reported. Notes changes, each re-derived from those runs: - ps_thread.txt is skipped because its columns sit in a different order from ps.txt, not because the layout varies by iOS version. Its header is byte-identical on the three sysdiagnose captures tested and each carries no data rows. - the tree artifact pointed at "Sysdiagnose Process List", which names no artifact; the sibling is "Sysdiagnose Process". - the rendered tree is drawn on a fixed dark background and does not follow the report's light or dark setting. sample_data now cites registered corpora with counts from real runs: 407, 546 and 382 rows on iOS 17.3, 26 and 26.5.2, and 0 on an image that carries no sysdiagnose. Baseline re-recorded for the narrowed column set; 333 rows unchanged. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
What this changes
Adds a new artifact module,
sysdiagnoseProcess, that parsesps.txtandps_thread.txtfiles from iOSsysdiagnoseextractions and renders the process list as a clean, theme-aware parent/child hierarchy tree in the HTML report. It includes user-type badges (root,mobile, etc.) for better readability.For a new or changed artifact
python admin/scripts/check_artifact_output.py <report folder>on that report and fixed or documented every finding.--compare <multi-container report>). (N/A: system-wide sysdiagnose logs, not app-specific containers)notes,descriptionandsample_datasay only what the data shows, and the numbers were re-derived from the finished run.Anything reviewers should know
output_typesis restricted to"html"only — since there is no standard timestamp column inps/ps_threadoutput, this artifact deliberately avoids feeding timeline/TSV/KML outputs.badge-*,text-muted,<pre class='mb-0'>).Maintainer note (2026-09-20). The description above tracks an earlier draft. What merges renders the hierarchy as a PNG rather than HTML badges, and
output_typesis["html", "tsv", "lava"]rather than html only. The image is drawn on a fixed dark background, so it does not follow the report's light or dark setting.One commit was added on merge:
%CPU,%MEMandTIMEare read but no longer reported. Each held a single value on all 1,668 rows of the four captures tested:0.0,0.0and0:00.00on iOS 16 20A362, iOS 17.3 21D50, iOS 26 23G71 and iOS 26.5.2 23F84.ps_thread.txtnote now gives the measured reason. Its columns sit in a different order fromps.txt, and its header is byte-identical across the three sysdiagnose captures tested, each carrying no data rows.sample_datanow cites corpora in the project registry, with counts from real runs: 407, 546 and 382 rows on iOS 17.3, 26 and 26.5.2, and 0 on an image that carries no sysdiagnose.Thanks for the module, and for the test data.