Source under test: /mnt/data/SafBrowserStore-before-0.2.2.kt
Extracted production cursor-reading block + real common models; Android APIs are test doubles.
FAIL normal rows without extras are not rejected: PreviewException: The storage provider did not return a folder listing.
FAIL empty cursor without extras is a valid empty directory: PreviewException: The storage provider did not return a folder listing.
FAIL information-only cursor keeps rows and message: PreviewException: The storage provider did not return a folder listing.
FAIL loading cursor without error keeps partial rows: PreviewException: The storage provider did not return a folder listing.
FAIL loading cursor may initially contain no rows: PreviewException: The storage provider did not return a folder listing.
PASS provider error takes precedence over info without discarding available rows
PASS actual null query result still raises the no-listing error
PASS cursor closes when row iteration throws
PASS cursor closes on cancellation during iteration
FAIL entry limit still marks an oversized directory truncated: PreviewException: The storage provider did not return a folder listing.
FAIL exactly the entry limit is not marked truncated: PreviewException: The storage provider did not return a folder listing.
FAIL duplicate provider IDs remain deduplicated: PreviewException: The storage provider did not return a folder listing.
FAIL missing and oversized document IDs are skipped: PreviewException: The storage provider did not return a folder listing.
PASS provider messages still use the shared label sanitizer
Folder-listing host regression: 5 passed, 9 failed. NOT an Android/device test.
Exception in thread "main" java.lang.IllegalStateException: 9 regression checks failed
	at dev.fileworkbench.testing.FolderListingHarnessKt.main(FolderListingHarness.kt:158)
	at dev.fileworkbench.testing.FolderListingHarnessKt.main(FolderListingHarness.kt)
Original-source regression exit status: 1 (failure expected)
