search for standard sites pub-search.waow.tech
search zig blog atproto

fix: accept whitewind entries with visibility "url" (not just "public")

WhiteWind blog entries use three visibility values: "public", "url",
and "author". "url" means publicly accessible via link. Our filter
was dropping everything except "public", which meant every WhiteWind
entry with visibility "url" was silently discarded. Now only "author"
entries are skipped.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

+4 -4
+1 -1
backend/src/ingest/extractor.zig
··· 303 303 const allocator = std.testing.allocator; 304 304 305 305 const test_json = 306 - \\{"title":"Love Across Discontinuity","content":"I've been thinking about what it means to love...","createdAt":"2026-02-08T08:01:41.776Z","visibility":"public"} 306 + \\{"title":"Love Across Discontinuity","content":"I've been thinking about what it means to love...","createdAt":"2026-02-08T08:01:41.776Z","visibility":"url"} 307 307 ; 308 308 309 309 const parsed = try json.parseFromSlice(json.Value, allocator, test_json, .{});
+3 -3
backend/src/ingest/tap.zig
··· 336 336 }; 337 337 338 338 if (isDocumentCollection(rec.collection)) { 339 - // skip non-public whitewind entries 339 + // skip author-only whitewind entries (public + url are both publicly accessible) 340 340 if (mem.eql(u8, rec.collection, WHITEWIND_ENTRY)) { 341 341 const record_val: json.Value = .{ .object = inner_record }; 342 342 const visibility = zat.json.getString(record_val, "visibility") orelse "public"; 343 - if (!mem.eql(u8, visibility, "public")) { 344 - logfire.span("tap.dropped", .{ .reason = "not_public", .collection = rec.collection, .uri = uri }).end(); 343 + if (mem.eql(u8, visibility, "author")) { 344 + logfire.span("tap.dropped", .{ .reason = "author_only", .collection = rec.collection, .uri = uri }).end(); 345 345 return; 346 346 } 347 347 }