Skip to content

The vitals samples do not say which device or Android version they hit - #201

Merged
xroche merged 3 commits into
masterfrom
vitals-report-fields
Sep 9, 2026
Merged

xroche merged 3 commits into
masterfrom
vitals-report-fields

Conversation

@xroche

@xroche xroche commented Sep 9, 2026

Copy link
Copy Markdown
Owner

issues printed one stack trace per cluster and nothing else. The Reporting API sends deviceModel, osVersion and appVersion on every error report, and search_reports() kept reportText and dropped the rest.

Every sample now prints its build, API level and device. --traces says how many of them also print the trace, so a wider --reports reads as a device spread rather than a wall of traces.

This is for the UnsatisfiedLinkError cluster on the 2017 build. We need to know whether those eleven users sit behind the 32-bit wall or the Android 7 one before costing a 32-bit build leg.

Every mutation of the new code fails a test, except one that only differs when Play sends an empty string.

xroche and others added 3 commits September 9, 2026 17:30
`issues` printed a stack trace per cluster and nothing else, because
search_reports() kept reportText and dropped the rest of the report. The
Reporting API sends deviceModel, osVersion and appVersion on every
ErrorReport, so the data needed to tell whether a cluster is one old build
on old hardware was fetched and then thrown away.

The reports now come back whole and each one prints its build, API level
and device. --traces controls how many of them also print the trace, so a
wider --samples reads as a device spread rather than a wall of traces.

That also gives a per-report versionCode, which the rates query withholds
at this app's user count.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Xavier Roche <roche@httrack.com>
The review found the tests could not tell --reports from a hard-coded 1.
The stub returned exactly as many reports as it was asked for, so both the
page size and the sample limit could be pinned to 1 with every test green.
The stub now slices by the pageSize it receives, and asserts what both
searches asked for.

Nothing reached the argument parser either, so deleting a flag the workflow
passes left the suite green and the workflow broken. build_parser() is now
separate from main() and the defaults are asserted.

report_identity() returned a formatted string with "?" for missing fields,
which a caller wanting to count API levels would have to parse back.
report_fields() returns the four values instead, None when absent, and
report_lines() does the formatting. That follows rates_row and print_rates
in the same file, and it prints "?" for a field that is present and null,
which the string version printed as "None".

--samples is renamed --reports, because it and --traces are both counts of
reports and the names did not say which is which.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Xavier Roche <roche@httrack.com>
…e untested

Splitting report_lines() out gave it direct tests and lost the wire that
feeds it. --traces could be pinned to a constant inside cmd_issues with
every test green, which is the first round's finding moved one flag along.
Two Issues cases now read the trace output at two different limits.

The parser tests only covered the flags this PR added, so renaming
--version-code, or dropping the blank choice from --by, broke a real
dispatch and stayed green. The tests now read the flags out of
play-vitals.yml's own case arms, which is what the class claimed to do.

Also: --limit says in its help that it counts clusters, since it sits
beside two flags that count reports; and the str() in the build join
carries the reason it exists.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Xavier Roche <roche@httrack.com>
@xroche
xroche merged commit 25570d2 into master Sep 9, 2026
7 checks passed
@xroche
xroche deleted the vitals-report-fields branch September 9, 2026 17:37
xroche added a commit that referenced this pull request Sep 10, 2026
…0s (#202)

PR #201 fed --reports into errorIssues:search's sampleErrorReportLimit.
The first real dispatch answered:

  400 'sample_error_reports' field only supports the values 0 and 1

The reports we print come from errorReports:search, whose pageSize is
what --reports should drive, so the cluster search now asks for 1
whatever the flag says.

The stub accepted any value, so no test could see the limit. One now
pins the cluster search to 1 across three --reports values.

Signed-off-by: Xavier Roche <roche@httrack.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant