Skip to content

v0.3.1 — aggregation honesty, singleton clusters, report accuracy - #1

Merged
geyutu6755 merged 5 commits into
mainfrom
fix/v0.3.1-reliability
Nov 1, 2026
Merged

geyutu6755 merged 5 commits into
mainfrom
fix/v0.3.1-reliability

Conversation

@geyutu6755

Copy link
Copy Markdown
Owner

Reliability/trust refinement on the verified v0.3.0 base (989d137).

  • Message-only cross-page matches render as Possible duplicates (confidence low, root cause NOT proven); reliable stack+message stays confirmed.
  • Clusters require >=2 pages; lone faults stay plain findings.
  • issues.md header no longer prints a fabricated global repro count.
  • New tests: honest two-tier clusters (real browser), exploration authorization precedence, Markdown traceability, CJK/injection robustness. Suite 122 -> 132.
  • Version/docs/lock bumped to 0.3.1.

Head commit: 8cb45ef

Cross-page fault clusters that group by identical message with no
distinguishing stack are now rendered under a separate "Possible
duplicates" heading, labelled "confidence: low · message only" with an
explicit caution that the shared root cause is NOT proven. Reliable
(stack + message) clusters keep the confirmed root-cause grouping.
Every cluster still exposes its full per-page member detail (status,
stability, repro, evidence link) so raw findings remain traceable.

Adds 3 aggregate data-contract tests (stack vs stack-less stay separate;
message-only machine-distinguishable; per-member detail preserved) and a
real-browser report test asserting the honest two-tier labeling.
The combined issue document printed the first finding's verification
attempt count as if it were a global "N independent browser runs" figure,
which is wrong (attempts vary per finding). The header now states the
verified/suspected meaning generically and points to each finding's own
ratio, which already appears in every finding body.

Adds unit tests proving: issues.md keeps every original finding (id +
evidence + stack) even when some share a cluster; the fabricated global
count is gone; and CJK/emoji/markup payloads are escaped in the offline
HTML without mangling non-ASCII content.
… > soft)

Adds a real-browser regression for the read-only-first click policy proving
that exploration.allowSelectors can never revive a HARD-dangerous control
(delete/pay stay forbidden) while a soft keyword becomes clickable only when
explicitly authorized, and denySelectors exclude a control outright. Closes
the one Phase 4 security property that had no direct test.
…ding

A one-page message-only signature was being emitted as a "cluster" and,
after the honesty change, rendered as a "possible duplicate" of a single
page — a mislabel. aggregateFindings now only produces a cluster when a
signature spans two or more pages; singletons remain in `findings` (which
drives compare and the per-finding report), so no information is lost.
Verified against a real demo scan: the spurious singleton cluster is gone.

Strengthens the wrong-merge / miss-merge guards to prove non-merging via
two-page clusters and adds an explicit "lone fault is not a cluster" test.
Bump 0.3.0 -> 0.3.1 (package.json, lock, runtime VERSION). Add the v0.3.1
CHANGELOG entry describing the cluster-honesty, singleton-cluster and
issues.md header fixes. Update the README (en + zh) Status section and the
compatibility matrix with the real verified suite size (122 -> 132) and an
honest note on which CI matrix run each column reflects.
@geyutu6755
geyutu6755 merged commit 13709fb into main Nov 1, 2026
4 checks passed
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