fix(defect-identity): degrade a redacted origin action to its selector

The full action key read the typed value straight from the trace, where
redaction renders every value typed into one field as the same string, so
two runs that typed different values there collapsed into one identity and
the report said nothing about it. The key now drops a redacted value, falls
back to the selector for that action, and counts the rows it did that to, so
the undercount reads as an undercount.
This commit is contained in:
pj committed 2026-08-18 19:43:28 +05:30
1 parent 454988fbc8
commit 153f857431
3 files changed
+118 -12

No files matched your search

@@ -100,6 +100,13 @@ func render(out io.Writer, corpus Corpus) {
fmt.Fprintf(out, "\n%d distinct defect(s) over %d run(s); %d seen in exactly one run\n",
len(corpus.Instances), corpus.Runs, corpus.Singletons())
if degraded := corpus.DegradedIdentities(); degraded > 0 {
fmt.Fprintf(out,
"%d identity(ies) rest on the origin selector alone, because the value typed "+
"there is redacted in the record; two runs that typed different values into "+
"that field read as one, so the count above is a floor for those\n",
degraded)
}
if corpus.UnnamedScreen > 0 {
fmt.Fprintf(out,
"%d violation(s) witnessed on a screen the app does not name, "+