Skip to content

Fix live-web false positives: view agreement, live hard negatives - #33

Merged
felirami merged 3 commits into
mainfrom
fable/live-fp-fix
Aug 16, 2026
Merged

felirami merged 3 commits into
mainfrom
fable/live-fp-fix

Conversation

@felirami

Copy link
Copy Markdown
Collaborator

Closes the gap published in docs/live-smoke-2026-08-16.md and issue #32.

The fix (three coordinated changes)

  1. CF view agreement: a lone TTA view in [0.65, 0.85) no longer carries an AI verdict by itself; it falls back to the runner-up view. Views at or above 0.85 keep single-view authority and early-exit. The adaptive extras band extends to [0.15, 0.85) so mid-band verdicts always have corroborating views. Live CDN-processed real photos spike single crops; requiring agreement is more evidence at the same raw threshold, not a remap.
  2. Probe retrained with 118 verified-real live CDN images (camera EXIF present in Unsplash API metadata; a held-out slice becomes a permanent live-CDN guard in the eval gate) on top of the existing hard negatives.
  3. Strong rescue tier tightened to CF in [0.02, 0.20) requiring DINO at or above 0.96.

Also: the harness and feature extractor now ingest .avif (the format blind spot that kept live CDN bytes invisible to evaluation), and the update check is skipped while offline.

Verified results (implemented adaptive pipeline, not simulation)

Measure v1.2.0 This PR
Public bench BA 90.5% 87.9%
Bench TNR 99.6% 99.8%
Stress set FPs (240 imgs) 4 3
Live-CDN guard FP rate (132 held-out camera-EXIF Unsplash variants) 9.2% 3.0%

The 2.6-point bench trade for a threefold live FP reduction is deliberate: false positives on real photos are the visible kill criterion. Full suite 228 green, including new tests encoding the agreement contract; benchmark-results.json, README, AGENTS.md, and the site all update from the single source of truth.

After merge

Tag v1.3.0 (version references already bumped), then a full live smoke rerun of the built zip. No bounty claim until it passes.

Three coordinated changes derived from the published 2026-08-16 live
smoke failure (docs/live-smoke-2026-08-16.md):

1. CF view agreement: a lone TTA view in [0.65, 0.85) no longer
   carries an AI verdict; it falls back to the runner-up view. Views
   at or above 0.85 keep single-view authority and early-exit. The
   adaptive band extends through the mid band so corroborating views
   always exist. Applied in the shared scoring fold and in the live
   predictAdaptiveViews path.
2. Probe retrained with 118 verified-real live CDN images (camera
   EXIF present in Unsplash API metadata; rows disjoint held-out
   guard) on top of the existing hard negatives.
3. Strong rescue tier tightened to [0.02, 0.20) with DINO >= 0.96.

Also: harness and extractor ingest .avif (the format blind spot that
hid live CDN bytes from evaluation), and the update check is skipped
while offline.

Verified with the implemented adaptive pipeline:
bench 87.9 BA / 76.0 TPR / 99.8 TNR, stress 3/240, live guard 4/132
(3.0 percent, was 9.2 percent for v1.2.0 on identical bytes).
Full suite 216 green.
benchmark-results.json now carries the verified live-guarded numbers
(bench 87.9 BA / 76.0 TPR / 99.8 TNR, stress 3/240, live guard 4/132
at 3.0 percent) plus a liveGuard section, README and AGENTS.md are
rewritten to the view-agreement policy, and the published findings doc
gains a same-day fix section with the isolation results. Version
references move to 1.3.0 across manifest, package, and store copy.
@felirami
felirami merged commit 1f0b80e into main Aug 16, 2026
2 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