1.0.0-RC1 · 1.0 Launch hardening
WordPress consumer surface + Supabase backend + connected Android/iOS app shells.
Architecture
WordPress /bw/ is the live consumer surface. Android and iOS connected apps load that live experience. The vetted feed is served through Supabase, while discovery candidates stay in a separate ingestion layer until promotion gates are satisfied.
WordPress /bw/
↓
Android / iOS connected shells
↓
Supabase bw-public-feed
↓
bw_core.media_library_item
Research discovery:
bw-library-worker → bw_core.ingest_candidate → vetting/promotion gates
Current release counts
- Research catalog: 6,753 total candidates — 6,294 discovered + 459 accepted research
- Source registry: 117 total / 114 active; Wave BB has rebuilt fresh direct evidence to 21 measured / 21 healthy / 0 unhealthy, with 92 expired / 1 never measured still requiring refresh
- Backend vetted library: 435
- Public Watch records: 435; fully playable consumer-feed items: 424
- Active queued ingestion jobs: 2 / 250 requested items
- Paused acquisition jobs: 31 / 14,250 requested items
- 1.0 RC quality gates: 5 passed / 1 pending / 2 blocked / 0 failed, with current load evidence expired and two operational alerts open
- Verified rights records: 38
- BrightWatcher-hosted assets: 68
- Locally hosted rights-cleared images: 17
- Locally hosted rights-cleared thumbnails: 31
- Locally hosted rights-cleared videos: 20
Wave BB — Source Health Recovery + Release Control
Wave BB revalidates 17 expired active sources with fresh direct external evidence and records the results through the service-role-only source-health evidence path. Fresh source coverage improves from 4/114 to 21/114 measured and healthy, with 92 expired, 1 never measured, 0 unhealthy, and current freshness coverage 18.42%. The catalog now holds 6,753 research candidates — 6,294 discovered + 459 accepted research; Public Watch remains 435 vetted / 424 playable, rights remain 39 verified, hosted assets 68, locally hosted videos 20, and verified full-copy records 22 / 20 hosted / gap 2. Fresh load evidence remains valid through 2026-09-14 02:22:55 UTC. Immutable rollback snapshot #160 was captured after the refresh. Final 1.0 remains unpromoted because source-health continuity is not yet clean, rendered accessibility is pending, two verified full-copy items remain unhosted, and Android/iOS signing remains blocked on genuine credentials. Vercel remains paused.
Wave BA — Launch Evidence Renewal + Rights Queue Expansion
Wave BA renews the expired 1.0 load evidence with a genuine bounded Edge-runtime run: 25/25 HTTP 2xx, 0 failures, 0 HTTP 429, 0 HTTP 5xx, p95 817 ms, max 820 ms. Private load evidence ID 9f3e2f96-bd50-44a8-a2d3-e446185b0ca5 is fresh through 2026-09-14 02:22:55 UTC, and the temporary certifier was immediately resealed behind JWT and HTTP 410. Canonical catalog truth is now 6,746 research candidates — 6,287 discovered + 459 accepted research, 435 vetted Public Watch / 424 playable, 39 verified-rights records, 68 hosted assets, and 20 locally hosted videos. One new exact Wikimedia Commons NASA item, KSC-05-S-00269 (ksc 081505 goesn navarro), was admitted only after item-level public-domain verification; it is rights-verified but not locally hosted because the binary-transfer action was not permitted in this execution environment. Verified full-copy records therefore become 22 / 20 hosted / gap 2. Current source-health evidence remains degraded at 4/114 measured fresh, 109 expired, 1 never measured; rendered multi-browser/device accessibility remains pending; Android/iOS signing remains blocked. Formal release gates remain 5 passed / 1 pending / 2 blocked / 0 failed. Final 1.0 is not promoted and Vercel remains paused.
Wave AZ — Full Research Library + Excel Export
Wave AZ turns the hidden research inventory into a real user-facing library. The live /bw/ page now has a prominent searchable catalog backed by bw-research-library, with paging, sorting, original-source links, explicit discovered vs accepted research status, rights badges, and locally-hosted badges. It exposes the full 6,745-item research catalog without pretending all candidates are vetted. Current research status is 6,287 discovered / 458 accepted; Public Watch remains a separate vetted set of 435. A live Excel download now exports 1,500 real catalog rows with Summary, Library and Definitions sheets; a matching 1,500-row CSV is also available. The public Edge Function uses a service-role-only RPC internally so no service key reaches the browser. JSON and XLSX endpoints were validated from inside Supabase with HTTP 200, and the live WordPress page was updated through WPWriter. No discovered item was auto-promoted, no rights boundary was relaxed, and no media was copied in this wave.
Wave AY — Canonical Truth Surface Interlock
Wave AY adds a fail-closed synchronization contract between canonical Supabase launch truth and the visible WordPress consumer trust surface. Current canonical truth is 6,619 research candidates / 117 sources / 114 active / 113 measured / 113 healthy / 0 unhealthy / 1 unmeasured / 435 vetted / 435 Public Watch / 424 playable / 2 queued jobs / 250 requested items / 31 paused jobs / 14,250 requested items / 38 verified-rights records / 68 hosted assets / 17 hosted images / 31 hosted thumbnails / 0 hosted screenshots / 20 locally hosted videos / 21 verified full-video-copy records / 20 hosted / gap 1. Latest completed ingest is run 240 with +6 accepted. New private service-only bw_core.wp_truth_surface_evidence, bw_core.launch_truth_surface_guard_v80, and bw_core.sync_truth_surface_alert_v80() compare the latest WPWriter post-write evidence with canonical launch_release_candidate_v71. The guard reports clean, stale evidence, missing evidence, or WordPress truth drift; the alert synchronizer runs every 15 minutes and opens a critical alert for count drift or a warning when WP evidence becomes stale. PUBLIC/anon/authenticated access is revoked and the v80 view is security_invoker. The live /bw/ candidate trust counter, Documentation current count, and Release Archive dashboard are synchronized to 6,619 before evidence is recorded. This wave does not promote any discovered candidate, does not copy any media, and does not alter Wave W rights rules. Load remains clean/fresh, rendered accessibility remains pending, Android/iOS signing remains blocked on genuine credentials, release_candidate_clear=false, 1.1/1.2 remains locked, and Vercel remains paused.
Wave AX — Launch Evidence Lease Interlock
Wave AX adds a fail-closed operational lease around the current authoritative load evidence instead of allowing a historical green test to age out silently. Canonical Supabase truth is 6,613 research candidates / 117 sources / 114 active / 113 measured / 113 healthy / 0 unhealthy / 1 unmeasured / 435 vetted / 435 Public Watch / 424 playable / 2 queued jobs / 250 requested items / 31 paused jobs / 14,250 requested items / 38 verified-rights records / 68 hosted assets / 17 hosted images / 31 hosted thumbnails / 0 hosted screenshots / 20 locally hosted videos / 21 verified full-video-copy records / 20 hosted / gap 1. Latest completed ingest is run 239 with +2 accepted. New private service-only bw_core.launch_evidence_lease_guard_v79 reports load evidence as current, expiring within two hours, expired/missing, or failed. New bw_core.sync_load_evidence_lease_alert_v79() runs every ten minutes and opens a warning before expiry or a critical operational alert after expiry/failure; it resolves automatically when authoritative evidence is current again. Current authoritative load evidence remains clean/fresh and expires at 2026-09-12 18:07:24 UTC; at validation about 8.06 hours remained, so no alert was opened. PUBLIC/anon/authenticated access is revoked from the v79 guard and function; service-role validation passed. The post-DDL security advisor reports no Wave AX-specific public exposure. A legacy rollback-anchor helper was also observed reporting 2 stale passed gates while canonical launch_release_candidate_v71 reports 0; that older helper is therefore not promoted to canonical truth. Rendered accessibility remains pending, the verified-copy gap remains 1, Android/iOS signing remains blocked on genuine credentials, release_candidate_clear=false, 1.1/1.2 remains locked and Vercel remains paused.
Wave AW — External Validation Isolation Guard
Wave AW attempted a fresh load/accessibility execution against https://4br.ca/bw/ from the current automation runner. The runner could not resolve 4br.ca for all 25 bounded curl requests, and the configured browser-automation CLI was not installed. This is recorded as blocked_execution_environment, not a BrightWatcher product failure. New private service-only bw_core.qa_external_validation_attempt and bw_core.launch_external_validation_guard_v78 preserve the distinction between runner transport failures and authoritative product evidence. Existing authoritative load evidence remains clean/fresh and is not overwritten; rendered accessibility remains pending. Canonical truth is 6,611 candidates / 435 vetted / 435 Public Watch / 424 playable / 38 rights-verified / 68 hosted assets / 20 locally hosted videos / full-copy gap 1. Latest completed ingest is run 238 with +5 accepted. Immutable rollback snapshot #19 was captured with source hash c31e1576b7c8d6436ff83b2084d8e7a0. Launch remains 5 passed / 1 pending / 2 blocked / 0 failed, release_candidate_clear=false, 1.1/1.2 locked and Vercel paused.
Wave AV — Source Health Freshness Guard
Wave AV restores source-health evidence after four direct-web checks aged past the six-hour snapshot window and adds a durable freshness monitor instead of merely refreshing the dashboard. Fresh reachability evidence was recorded for BBC Earth Videos, Epicurious Video, NASA at Home Videos, and National Geographic Videos; these checks have no rights implication and authorize no copying. Current source truth is 113/114 measured / 113 healthy / 0 unhealthy / 1 unmeasured / 99.12%, with NASA TikTok explicitly left unmeasured because the current external web runtime cannot validate it. New private service-only bw_core.launch_source_health_freshness_guard_v77 is security_invoker and tracks fresh, expired, expiring-soon and never-measured sources, plus the next evidence-expiry timestamp, so operations can refresh evidence before launch monitoring silently degrades. At validation there are 0 expired and 0 expiring-soon sources, with only NASA TikTok never measured. Canonical launch truth is 6,606 candidates / 435 vetted / 435 Public Watch / 424 playable / 38 rights-verified / 68 hosted assets / 20 locally hosted videos / full-copy gap 1. Latest completed ingest is run 237 with +2 accepted. Load remains clean/fresh, Wave W remains clean, rendered accessibility remains pending, Android/iOS signing remains blocked on genuine credentials, release_candidate_clear=false, 1.1/1.2 locked and Vercel paused.
Wave AU — Accessibility Truth Synchronization
Wave AU performs a full 103,849-character WPWriter source re-read of the live /bw/ consumer page and corrects stale launch-truth surfaces that still showed 6,524 candidates, 37 rights records, 19 locally hosted videos, and Wave AM/AN labels. A new automated ingest completed during final validation: run 236 added 9 candidates, so the consumer trust dashboard, learning-library trust cards, validation matrix, browser-evidence payload and footer now align with final canonical Supabase truth: 6,604 candidates / 435 vetted / 435 Public Watch / 424 playable / 38 verified-rights records / 68 hosted assets / 20 locally hosted videos / 21 verified full-video-copy records / gap 1. Accessibility evidence #22 records the fresh full-source audit: skip navigation, focusable main target, labelled navigation/search, dialog semantics, focus trap and restoration, inert background isolation, dynamic iframe title, multiple live regions, aria-busy feed state, image-alt source paths, reduced-motion, prefers-contrast, forced-colors, 44px primary controls, browser self-check and browser evidence export are all present in deployed source. The accessibility evidence identity sequence had drifted to an already-used value; Wave AU realigned it before inserting evidence #22, preserving history. This remains a source/static audit only; rendered multi-browser/device validation is still pending and is not claimed. Load remains clean/fresh, Wave W rights integrity clean, Android/iOS signing blocked on genuine credentials, release_candidate_clear=false, 1.1/1.2 locked and Vercel paused.
Wave AT — Release Snapshot RLS Hardening
Canonical Supabase truth is 6,595 research candidates, 117 sources / 114 active / 113 measured / 113 healthy / 0 unhealthy / 1 unmeasured, 435 vetted / 435 Public Watch / 424 playable, 2 queued jobs / 250 requested items, 31 paused jobs / 14,250 requested items, 38 verified-rights records, 68 hosted assets, 17 hosted images, 31 hosted thumbnails, 0 hosted screenshots and 20 locally hosted videos. Wave AT resolves the Wave AS release-control security defect: bw_core.launch_release_snapshots now has Row Level Security enabled, direct PUBLIC/anon/authenticated table access is revoked, and service_role retains internal SELECT/INSERT control-plane access. Post-change verification confirms RLS enabled, anon/authenticated SELECT false, service-role SELECT/INSERT true, and the prior critical operational alert is resolved. Latest automated ingest run 235 completed with 3,259 observations / 4 accepted / 0 rejected / no terminal error. Backend health is restored to passed, launch truth is again 5 passed / 1 pending / 2 blocked / 0 failed with 0 open operational alerts. Rights remain 21 verified full-video-copy records / 20 hosted / gap 1, rendered accessibility remains pending, Android/iOS signing remains blocked on genuine credentials, release_candidate_clear=false, 1.1/1.2 remains locked and Vercel remains paused.
Wave AS — Launch Security Boundary Audit + Monitoring Interlock
Fresh canonical Supabase truth is 6,591 research candidates, 117 sources / 114 active / 113 measured / 113 healthy / 0 unhealthy / 1 unmeasured, 435 vetted / 435 Public Watch / 424 playable, 2 queued jobs / 250 requested items, 31 paused jobs / 14,250 requested items, 38 verified-rights records, 68 hosted assets, 17 hosted images, 31 hosted thumbnails, 0 hosted screenshots and 20 locally hosted videos. Wave AS found one BrightWatcher release-control table, bw_core.launch_release_snapshots, with Row Level Security disabled. Direct privilege checks confirm anon and authenticated currently have no SELECT or INSERT grants on this table, so this is not being described as a confirmed anonymous write path; however, the missing RLS boundary violates the release-control hardening standard and remains an unresolved security defect. A critical operational alert launch_release_snapshots_rls_disabled is now open so promotion cannot silently ignore it. The recommended remediation is to enable RLS only together with an explicit access-policy decision; it was intentionally not auto-applied because enabling RLS without suitable policies can break legitimate control-plane access. Launch truth therefore remains 5 passed / 1 pending / 2 blocked / 0 failed with 1 open critical operational alert, load clean/fresh, Wave W rights integrity clean, rendered accessibility pending, rights-copy gap 1, Android/iOS signing blocked on genuine credentials, release_candidate_clear=false, 1.1/1.2 locked and Vercel paused.
Wave AR — Capacity-Aware Rights Seed Expansion
Fresh canonical Supabase truth is 6,586 research candidates, 117 sources / 114 active / 113 measured / 113 healthy / 0 unhealthy / 1 unmeasured, 435 vetted / 435 Public Watch / 424 playable, 2 queued jobs / 250 requested items, 31 paused jobs / 14,250 requested items, 38 verified-rights records, 68 hosted assets, 17 hosted images, 31 hosted thumbnails, 0 hosted screenshots and 20 locally hosted videos. Concurrent automated ingest run 231 added +7 research candidates, and Wave AR manual rights seed run 233 added one separately item-level-verified Wikimedia Commons research candidate. Wave AR confirmed the Supabase organization is on the Free plan, then selected an exact NASA public-domain original below the current 50 MB plan ceiling rather than modifying or transcoding the blocked Apollo file. NASA – This World Is Black and White was copied unchanged into private brightwatcher-owned-media Storage at 26,321,480 bytes, SHA-256 9710a7f4c2d05a6eb7031c1366891d43494bb94b0b5a6ed85f900ac4d280857f, linked to exact item-level PD-USGov-NASA evidence, registered as candidate 867137, and counted only after private object and evidence linkage validation. The one-shot transfer endpoint was immediately resealed to JWT-protected HTTP 410. Apollo candidate 649599 remains safely unhosted because its unchanged 94,207,467-byte original exceeds the current plan ceiling and its rights record forbids derivatives. Rights therefore become 21 verified full-video-copy records / 20 hosted / gap 1; Wave W remains clean. Immutable snapshot #14 was captured with source hash 63fb1a7c1fec63906a76a3df2475072c. Load remains clean/fresh, rendered accessibility remains pending, Android/iOS production signing remain blocked on genuine credentials, final 1.0 remains unpromoted, 1.1/1.2 remains locked and Vercel remains paused.
Wave AQ — Storage Capacity Guard + Blocker Reclassification
Fresh canonical Supabase truth is 6,578 research candidates, 117 sources / 114 active / 113 measured / 113 healthy / 0 unhealthy / 1 unmeasured, 435 vetted / 435 Public Watch / 424 playable, 2 queued jobs / 250 requested items, 31 paused jobs / 14,250 requested items, 37 verified-rights records, 67 hosted assets, 17 hosted images, 31 hosted thumbnails, 0 hosted screenshots and 19 locally hosted videos. Latest completed ingest is run 230 with +6 accepted. Wave AQ adds private service-only bw_core.storage_capacity_evidence and bw_core.launch_storage_capacity_guard_v76. The private owned-media bucket itself allows 2,147,483,648 bytes, but the exact 94,207,467-byte Apollo candidate 649599 was rejected before object creation with HTTP 413. The rights-copy blocker is therefore reclassified from internally ready to waiting_external: the effective project/upload-path ceiling must be changed through the Supabase platform, or a different exact item-level verified public-domain/open-license source within the enforced ceiling must be selected. The Apollo source is not transcoded because its current evidence explicitly records permits_derivatives=false. No hosted count changed. Wave W remains clean, load remains clean/fresh, rendered accessibility remains pending, Android/iOS signing remain blocked on genuine credentials, final 1.0 remains unpromoted, 1.1/1.2 remains locked and Vercel remains paused. Immutable snapshot #13 was captured with source hash 10ac601fe5a6177729d612f16a199871.
Wave AP — Ingest Recovery + Continuity Guard
Fresh canonical Supabase truth after completed ingest run 229 is 6,572 research candidates, 117 sources / 114 active / 113 measured / 113 healthy / 0 unhealthy / 1 unmeasured, 435 vetted / 435 Public Watch / 424 playable, 2 queued jobs / 250 requested items, 31 paused jobs / 14,250 requested items, 37 verified-rights records, 67 hosted assets, 17 hosted images, 31 hosted thumbnails, 0 hosted screenshots and 19 locally hosted videos. Run 229 completed normally with 4,861 observations / 16 accepted / 0 rejected. Wave AP found stale run 228 still marked running after it had stopped activity; it is now truthfully recovered as partial with 14 preserved candidates and an explicit recovery marker rather than being falsely completed. New private service-only bw_core.reconcile_stale_ingest_runs_v75() and bw_core.launch_ingest_continuity_v75 detect and recover future abandoned runs, with an internal 15-minute continuity check. Current continuity is clean: 0 stale running runs. Immutable snapshot #12 was captured with source hash 82c7dbc449ea546abb5c32a0d3398975. Load remains clean/fresh, Wave W rights integrity remains clean, rights remain 20 verified full-video-copy records / 19 hosted / gap 1, rendered accessibility remains pending, Android/iOS production signing remains blocked on genuine credentials, final 1.0 remains unpromoted, 1.1/1.2 remains locked, and Vercel remains paused.
Wave AN — Launch Blocker Resolution Queue
Fresh canonical Supabase truth after completed ingest run 227 is 6,556 research candidates, 117 sources / 114 active / 113 measured / 113 healthy / 0 unhealthy / 1 unmeasured, 435 vetted / 435 Public Watch / 424 playable, 2 queued jobs / 250 requested items, 31 paused jobs / 14,250 requested items, 37 verified-rights records, 67 hosted assets, 17 hosted images, 31 hosted thumbnails, 0 hosted screenshots and 19 locally hosted videos. Run 227 processed 4,862 observations / 18 accepted / 0 rejected / no terminal error. Wave AN creates private service-only bw_core.launch_blocker_work_items and bw_core.launch_blocker_resolution_queue_v73. The queue makes the four live blockers operational: the rights-copy backlog is priority 1 and ready to execute only against exact verified item-level rights evidence; rendered accessibility is priority 2 and waiting on an execution environment allowed to navigate 4BR.ca; Android and iOS signing remain priorities 3 and 4 and explicitly wait on genuine platform credentials. The v73 view is security_invoker, the table has RLS enabled, and PUBLIC/anon/authenticated access is revoked. Current release state remains 5 passed / 1 pending / 2 blocked / 0 failed, load is clean/fresh, Wave W rights integrity is clean, rights remain 20 verified full-video-copy records / 19 hosted / gap 1, release_candidate_clear=false, 1.1/1.2 remains locked, and Vercel remains paused.
Wave AL — Release Candidate Seal
Fresh canonical Supabase truth after completed ingest run 225 is 6,524 research candidates, 117 sources / 114 active / 113 measured / 113 healthy / 0 unhealthy / 1 unmeasured, 435 vetted / 435 Public Watch / 424 playable, 2 queued jobs / 250 requested items, 31 paused jobs / 14,250 requested items, 37 verified-rights records, 67 hosted assets, 17 hosted images, 31 hosted thumbnails, 0 hosted screenshots and 19 locally hosted videos. Run 225 processed 4,861 observations / 13 accepted / 0 rejected / no terminal error. Wave AL adds private service-only bw_core.launch_release_candidate_v71, a security-invoker release seal that consolidates current launch blockers directly from unified truth. The current blocker set is exactly rights_copy_backlog, accessibility_rendered_validation, android_signed_build, ios_signed_build; load remains clean/fresh, Wave W rights integrity is clean, operational alerts are zero, and stale passed gates are zero. Immutable launch snapshot #8 was captured with source hash 5e1d75b0e94425dfc8132491c20d775b. Exact item-level evidence for the remaining Apollo 11 copy gap was reverified as NASA-authored U.S. public-domain material, but no new private binary was completed in this run, so rights remain 20 verified full-video-copy records / 19 hosted / gap 1. Final launch remains 5 passed / 1 pending / 2 blocked / 0 failed, release_candidate_clear=false, 1.1/1.2 remains locked, signed Android/iOS remain blocked on genuine credentials, and Vercel remains paused.
Wave AK — Promotion Freeze Guard
Fresh canonical Supabase truth after completed ingest run 224 is 6,495 research candidates, 117 sources / 114 active / 113 measured / 113 healthy / 0 unhealthy / 1 unmeasured, 435 vetted / 435 Public Watch / 424 playable, 2 queued jobs / 250 requested items, 31 paused jobs / 14,250 requested items, 37 verified-rights records, 67 hosted assets, 17 hosted images, 31 hosted thumbnails, 0 hosted screenshots and 19 locally hosted videos. Run 224 processed 4,860 observations / 19 accepted / 0 rejected / no terminal error. Wave AK captured immutable launch snapshot #7 with source hash 9ffa983dd2dd2cc423adcc38729f80ce and deployed private service-only bw_core.launch_promotion_freeze_guard_v70. The guard blocks release promotion whenever ingestion is in flight, the immutable snapshot drifts from current launch truth, load evidence is dirty/stale, Wave W rights integrity fails, a verified copy backlog remains, rendered accessibility has not passed, mobile signing gates remain blocked, failed gates exist, operational alerts are open, or previously passed evidence has gone stale. Current snapshot drift is zero and ingestion is complete, but promotion remains frozen for exactly four reasons: rights_copy_backlog, accessibility_rendered_validation, android_signed_build, ios_signed_build. Load remains clean/fresh through 2026-09-12 18:07 UTC. Rights remain 20 verified full-video-copy records / 19 hosted / gap 1; no new local media copy is claimed. Final launch remains 5 passed / 1 pending / 2 blocked / 0 failed, launch_promotable=false, 1.1/1.2 remains locked and Vercel remains paused.
Wave AJ — Accessibility Scope + Landmark Hardening
Fresh canonical Supabase truth after completed ingest run 223 is 6,476 research candidates, 117 sources / 114 active / 113 measured / 113 healthy / 0 unhealthy / 1 unmeasured, 435 vetted / 435 Public Watch / 424 playable, 2 queued jobs / 250 requested items, 31 paused jobs / 14,250 requested items, 37 verified-rights records, 67 hosted assets, 17 hosted images, 31 hosted thumbnails, 0 hosted screenshots and 19 locally hosted videos. BrightWatcher page landmarks were hardened with an explicit labelled/described main region and a screen-reader-only launch-scope note that keeps discovered, vetted, rights-cleared and locally hosted states distinct. A complete WordPress media-library audit scanned all 393 site media items and found 358 missing-alt items, 373 auto-generated titles, at least 27 files over 500KB and at least 2 files over 2MB. This debt is explicitly recorded as 4BR-wide, not falsely attributed to BrightWatcher without attachment/surface evidence. Supabase accessibility evidence #19 records the Wave AJ landmark hardening and full media-scope audit as pending. Rendered multi-browser/device validation is still required. Load evidence remains clean/fresh from the Wave AH confirmation; Wave W remains clean; rights coverage remains 20 verified full-video-copy records / 19 hosted / gap 1; no new local media copy is claimed. Final launch remains 5 passed / 1 pending / 2 blocked / 0 failed, launch_promotable=false, 1.1/1.2 remains locked, Android/iOS signing remains blocked on genuine credentials, and Vercel remains paused.
Wave AI — Launch Evidence Continuity Guard
Fresh canonical truth after completed ingest run 222 is 6,458 research candidates, 117 sources / 114 active / 113 measured / 113 healthy / 0 unhealthy / 1 unmeasured, 435 vetted / 435 Public Watch / 424 playable, 2 queued jobs / 250 requested items, 31 paused jobs / 14,250 requested items, 37 verified-rights records, 67 hosted assets, 17 hosted images, 31 hosted thumbnails, 0 hosted screenshots and 19 locally hosted videos. Run 222 processed 4,863 observations / 24 accepted / 0 rejected / no terminal error. Wave AI adds private service-only bw_core.launch_evidence_continuity_guard_v68, combining immutable snapshot drift, authoritative load-evidence freshness, load-confirmation history, accessibility-evidence freshness, Wave W integrity, rights-copy backlog and platform-signing blockers in one fail-closed continuity contract. The view is security_invoker, revokes PUBLIC/anon/authenticated access and grants SELECT only to service_role. Immutable launch snapshot #4 was captured after run 222 with source hash d4d8ffa8a47b61961dbab09a070f5d6c. Current load evidence remains clean/fresh with the prior transient HTTP 500 preserved by the confirmation guard rather than hidden. Rights remain fail-closed at 20 verified full-video-copy records / 19 hosted / gap 1; no new local media copy was claimed. Accessibility remains pending because genuine rendered multi-browser/device validation has not passed. Final launch remains 5 passed / 1 pending / 2 blocked / 0 failed, launch_promotable=false, 1.1/1.2 remains locked, Android/iOS signing remains blocked on genuine credentials, and Vercel remains paused.
Wave AH — Load Renewal + Confirmation Guard
Fresh canonical truth after completed ingest run 221 is 6,434 research candidates, 117 sources / 114 active / 113 measured / 113 healthy / 0 unhealthy / 1 unmeasured, 435 vetted / 435 Public Watch / 424 playable, 2 queued jobs / 250 requested items, 31 paused jobs / 14,250 requested items, 37 verified-rights records, 67 hosted assets, 17 hosted images, 31 hosted thumbnails, 0 hosted screenshots and 19 locally hosted videos. Run 221 processed 4,848 observations / 14 accepted / 0 rejected / no terminal error. Wave AH performed a fresh bounded Edge-runtime load certification against bw-public-feed. Attempt 1 preserved one transient HTTP 500 at 24/25 HTTP 2xx, 0 HTTP 429, p95 1898 ms, max 1905 ms; an immediate confirmation then passed 25/25 HTTP 2xx / 0 failures / 0 HTTP 429 / 0 HTTP 5xx, p95 848 ms, max 920 ms. The private service-only bw_core.launch_load_confirmation_guard_v67 records this as clean_confirmation_after_transient instead of hiding the first failure. The clean confirmation now carries a fresh 24-hour evidence lease through 2026-09-12 18:07 UTC. Static accessibility evidence #17 reverified the deployed skip link, focus target, labelled navigation/search, dialog semantics, focus containment/restoration, live regions, aria-busy state, dynamic iframe title, reduced-motion, contrast/forced-colors handling, 44px controls and the browser-evidence exporter, but remains pending because no genuine rendered multi-browser/device pass is available in this runtime. Immutable launch snapshot #3 was captured after validation with source hash febc190262a7621a2a04c67cda5a99eb. Rights remain fail-closed at 20 verified full-video-copy records / 19 hosted / gap 1; no new media was locally copied. Final launch remains 5 passed / 1 pending / 2 blocked / 0 failed, launch_promotable=false, 1.1/1.2 remains locked, Android/iOS signing remains blocked on genuine credentials, and Vercel remains paused.
Wave AG — Immutable Launch Snapshot Refresh
Fresh canonical truth after completed ingest run 220 is 6,420 research candidates, 117 sources / 114 active / 113 measured / 113 healthy / 0 unhealthy / 1 unmeasured, 435 vetted / 435 Public Watch / 424 playable, 2 queued jobs / 250 requested items, 31 paused jobs / 14,250 requested items, 37 verified-rights records, 67 hosted assets, 17 hosted images, 31 hosted thumbnails, 0 hosted screenshots and 19 locally hosted videos. Run 220 processed 4,863 observations / 28 accepted / 0 rejected / no terminal error. Wave AG captured immutable release snapshot #2 after run 220 with source hash 0961fb76731f5d55ef7639bb0c77b0ed, preserving current 1.0 launch truth for rollback and drift detection. Rights remain fail-closed at 20 verified full-video-copy records / 19 hosted / gap 1; the remaining verified-copy backlog is the NASA Apollo 11 item and no new hosted count is claimed without a real validated private binary. Authoritative load evidence remains clean/fresh with roughly 13 hours remaining in its 24-hour lease. Accessibility remains pending because genuine rendered multi-browser/device validation has not passed. Formal launch state remains 5 passed / 1 pending / 2 blocked / 0 failed, 0 open operational alerts, 0 stale passed gates, launch_promotable=false, 1.1/1.2 remains locked, Android/iOS signing remains blocked on genuine credentials, and Vercel remains paused.
Wave AE — Launch Operational Guard
Fresh canonical truth after completed ingest run 218 is 6,392 research candidates, 117 sources / 114 active / 113 measured / 113 healthy / 0 unhealthy / 1 unmeasured, 435 vetted / 435 Public Watch / 424 playable, 2 queued jobs / 250 requested items, 31 paused jobs / 14,250 requested items, 37 verified-rights records, 67 hosted assets, 17 hosted images, 31 hosted thumbnails, 0 hosted screenshots and 19 locally hosted videos. Run 218 processed 4,863 observations / 29 accepted / 0 rejected / no terminal error. The new private service-only bw_core.launch_operational_guard_v65 adds a fail-closed operational interlock around current launch truth: a running ingest older than 20 minutes becomes stale_running; stale/dirty load evidence, rights-integrity failure, rendered-accessibility failure, or blocked/failed release gates keep promotion closed. Current validation is ingest_guard_state=clear, load clean/fresh, Wave W rights integrity clean, and operational gaps exactly rights_copy_backlog, accessibility_rendered_validation, android_signed_build, ios_signed_build. Rights remain separated at 20 verified full-video-copy records / 19 hosted / gap 1; no new local copy was claimed in Wave AE. Final 1.0 remains unpromoted, 1.1/1.2 remains locked, and Vercel remains paused.
Wave AD — Launch Evidence SLA
Fresh canonical truth after completed ingest run 217 is 6,337 research candidates, 117 sources / 114 active / 113 measured / 113 healthy / 0 unhealthy / 1 unmeasured, 435 vetted / 435 Public Watch / 424 playable, 2 queued jobs / 250 requested items, 31 paused jobs / 14,250 requested items, 37 verified-rights records, 67 hosted assets and 19 locally hosted videos. The new private service-only bw_core.launch_evidence_sla_v64 derives directly from current unified launch truth and exposes explicit evidence-expiry service levels: load evidence is currently fresh with about 16.00 hours remaining in its 24-hour lease, while accessibility static evidence is fresh but rendered validation remains pending. The view also emits the current gap codes: rendered accessibility validation, Android signing, iOS signing, and one rights-copy backlog item. It uses security_invoker, revokes PUBLIC/anon/authenticated access, and grants SELECT only to service_role. No rights, storage or public API boundary was relaxed. Final 1.0 remains unpromoted; 1.1/1.2 remains locked; Vercel remains paused.
1.0 Consumer Feed Expansion v49
The visible Studio experience now draws from a much larger vetted discovery window. The previous production feed contract silently capped every request at 40 records, even when the Studio requested 100. v49 replaces that path with service-only bw_public_feed_page_v2, a security invoker RPC restricted to service_role, and raises the bounded page ceiling to 120 playable vetted records. Validation returned 120/120 items from the current 424-playable library with an 84.3 ms database execution time. bw-public-feed Edge Function v12 now serves contract v5.0, and the live WordPress Studio requests the full 120-record discovery pool. This materially improves category lanes and publisher diversity without promoting research candidates or relaxing rights rules. Completed ingest run 199 processed 4,863 observations / 18 accepted / 0 rejected, bringing canonical research candidates to 6,138. Final 1.0 remains unpromoted because rendered accessibility validation and signed Android/iOS builds remain blocked.
Consumer feed recovery
The public feed was rebuilt after mobile QA exposed a zero-video experience. Supabase bw-public-feed v9 now returns only records with a usable thumbnail and a playable embed target, while separately reporting vetted and hidden-unplayable totals. Current truth is 435 vetted/Public-Watch records / 424 fully playable / 11 legacy hidden-unplayable. The public_feed_vetting gate is now passed. The clean consumer preview is separately available from bw-consumer-preview; the WordPress /bw/ consumer surface is currently writable through WPWriter, and the historical deployment-blocked operational alert has been resolved after successful live connector verification.
Wave X — Performance
Discovery and public-feed database indexes, short edge caching with stale-while-revalidate, and performance-probe capture are deployed.
Wave Y — Production operations
Source-health snapshots, worker-health snapshots, operational alerts, release checkpoints and consolidated launch telemetry are deployed. The library worker is protected by the concurrency guard and v10 saturation control, while v11 adds explicit rights-hosting coverage. Latest completed ingest run 163 recorded 4,863 discovery observations, 14 accepted, 0 rejected and no terminal run error. Source-level diagnosis previously moved 23 high-attempt/no-error queue jobs into reversible saturation cooldown, preserving 10,500 requested items without deletion. Active queue is 2 jobs / 250 requested items; total paused work is 31 jobs / 14,250 requested items including the eight previously paused unsupported jobs. Effective queue debt is WATCH with 2 queued attempts total, p95 = 1 and zero high-attempt queued jobs. Backend-health and rights-integrity gates remain clean; Wave W rights gaps are zero. Checkpoint #55 is PREPARED, not promoted.
Metadata rules
The latest completed automated ingest run 163 added 14 net-new research candidates. They remain research candidates only until the existing vetting and rights gates are satisfied; automated discovery itself does not promote or copy them. The previously admitted five exact-item Wikimedia Commons videos remain separately governed by the dedicated rights-and-hosting chain. Missing duration, AI-disclosure or rights fields are not fabricated. Discovery remains a research layer, not proof of rights or public-Watch readiness.
Vetting rules
Discovery does not equal vetting. Promotion to public Watch requires source/metadata verification, a usable thumbnail, internal playback, availability/rights checks and evidence-backed verification. No newly discovered candidate was automatically promoted this cycle.
Rights-first owned library
The audited local seed now contains 62 BrightWatcher-hosted assets: 17 public-domain images, 31 rights-cleared thumbnail derivatives, plus 14 item-level verified public-domain videos. This major wave added five additional NASA / NASA Goddard videos: Upper Atmosphere Research Satellite, Earthrise, Crop Circles — Irrigation Seen from Space, Glowing Winds, and STS-130 Launch. Every file was fetched only from its exact rights-audited Wikimedia Commons item record, copied to BrightWatcher’s private Supabase media bucket, SHA-256 hashed, linked to a verified item-level public-domain rights record, and accepted through Wave W rights enforcement before being counted. The fixed one-time acquisition endpoint was immediately disabled and returned to JWT protection after the controlled copy completed.
Load validation
The current launch load gate is passed. This v10 wave recorded a fresh bounded post-cooldown confirmation against the public feed: 100/100 HTTP 2xx requests with 0 failures, 0 HTTP 429 and 0 HTTP 5xx. The earlier clean 200/200 confirmation and harsher burst evidence remain retained for capacity history rather than hidden.
1.0 launch performance hardening
The BrightWatcher core schema has covering indexes for the launch-critical foreign-key paths identified during earlier hardening. This wave also removed a confirmed duplicate ingest_candidate(candidate_status, discovered_at DESC) index and pinned bw_admin.touch_updated_at() to search_path = pg_catalog. Post-change Supabase advisor checks confirm the duplicate-index and mutable-search-path findings are cleared. Remaining unindexed-FK notices are outside the BrightWatcher 1.0 core launch path and were intentionally left unchanged to avoid unrelated churn. The public bw-platform function is now v7. It reports live candidate/source/vetted/owned-media/rights/queue counts and adds a rights-gated /owned contract that generates short-lived signed URLs from BrightWatcher’s private media bucket only for hosted assets whose linked item-level rights evidence is verified.
Accessibility hardening
The live web interface now includes explicit keyboard focus indicators, reduced-motion handling, a keyboard skip-to-content link with a focusable main target, labelled search/navigation controls, labelled play/save controls, polite live-region updates for feed state, dialog semantics, a labelled close control, a titled video iframe, focus handoff/restore when the player opens and closes, Tab-key focus containment that includes the embedded video iframe, and modal background isolation using aria-hidden plus inert while the player is open so assistive-technology users are not left navigating the page behind the dialog. The consumer redesign now uses a single-column mobile video feed below 560px for larger thumbnails, clearer titles and more reliable touch interaction, restores the live search control on mobile, and adds a fixed four-action mobile navigation dock with 48px controls for For You, Discover, Owned and Apps while retaining 44px minimum primary touch targets. The 1.0 launch interaction-hardening wave now also enforces 44px minimum primary interactive targets across navigation, filters, player controls and cards; adds prefers-contrast and forced-colors support; strengthens focus-within visibility; and confirms all five BrightWatcher-specific `bw-*` WordPress preview images currently have alt text. Automated/static accessibility evidence #1 also found one concrete small-text contrast defect in the live footer: approximately 4.26:1 against the dark background. That footer color has now been corrected to approximately 5.34:1, above the 4.5:1 WCAG AA threshold for normal text. Accessibility evidence #9 records the latest runtime-semantics hardening, including live status regions, aria-busy feed state, dynamic player title, modal focus containment/restore, and reduced-motion handling. Chromium is installed, but this execution runtime could not resolve external DNS for either 4br.ca or the Supabase project host, so the live page could not be reached from the browser runtime. The source/static accessibility contract remains intact, but rendered multi-browser/device validation is still pending before final 1.0.
Next audited rights-cleared batch
Item-level rights research remains mandatory before any local copy. NASA and USGS candidates can qualify when the exact item shows agency ownership/public-domain status, but third-party exceptions are excluded. NOAA video is now explicitly case-by-case because NOAA warns that videos often contain third-party copyrighted footage. National Archives Catalog material is also treated as mixed-rights because donated, special-media, restricted, copyrighted and publicity-rights material can appear alongside federal public-domain records. The Supabase acquisition policy now enforces requires_item_level_check=true and allows_local_copy_by_default=false for these mixed-risk sources. Acquisition candidates are not counted until copied into private BrightWatcher storage, hashed, registered through Wave W rights enforcement, and QA-validated.
1.0 rights-cleared sub-50MB seed recovery v45
Completed automated ingest run 194 processed 4,863 observations / 21 accepted / 0 rejected / no terminal error. Three additional Wikimedia Commons research candidates were separately admitted only after their exact item pages documented NASA authorship and United States public-domain status, bringing canonical research candidates to 6,027. Recovery batch 1.0-launch-video-batch-003 intentionally selected three exact originals below the effective project upload ceiling rather than modifying the two larger rights-valid batch-002 originals. All 3/3 recovery items are now in private brightwatcher-owned-media Storage, matched to real byte sizes, SHA-256 hashed, linked to exact verified PD-USGov-NASA full-copy evidence, registered and validated. Current owned-library truth is 66 hosted assets / 18 locally hosted videos / 37 verified-rights records / 17 images / 31 thumbnails. The transfer worker was sealed immediately afterward to JWT-protected HTTP 410. The service-only launch_promotion_lock_v45 reports active_seed_complete=true but launch_promotable_v45=false and may_begin_1_1_1_2_v45=false: rendered multi-browser/device accessibility remains pending and signed Android/iOS remain blocked on genuine credentials. Strict load remains clean/fresh, Wave W remains clean, stale passed gates are zero, open operational alerts are zero, and Vercel remains paused.
1.0 Source-Health Resilience + Observability Recovery v46
Completed automated ingest run 195 processed 4,862 observations / 35 accepted / 0 rejected / no terminal error, bringing canonical research candidates to 6,062. During source-health refresh QA, a real observability defect was exposed: the legacy v21 fusion selected only snapshot rows sharing the single global maximum measured_at, so a partial four-source refresh could temporarily collapse reported coverage to 4/114. The run-195 measurement set was restored immediately, then the four direct reachability checks were reconciled as one 113-source evidence bundle. Final legacy validation is 113/114 measured / 113 healthy / 0 unhealthy / 1 unmeasured / 99.12%, with NASA TikTok remaining explicitly unmeasured. v46 adds service-only bw_core.launch_source_health_resilient_v46 using per-source latest evidence within a six-hour window, so future partial refreshes cannot replace the entire measurement cohort. The view uses security_invoker and is restricted to service_role. Direct source reachability has no rights implication and authorizes no local copy. Wave W remains clean; recovery batch 003 remains 3/3 privately validated; strict load remains clean/fresh; rendered accessibility remains pending; Android/iOS signing remains blocked on genuine credentials; formal gates remain 5 passed / 1 pending / 2 blocked / 0 failed; launch_promotable=false; 1.1/1.2 remains locked; Vercel remains paused.
1.0 unified launch truth + static accessibility evidence v47
Canonical launch monitoring is now consolidated in the private service-only bw_core.launch_unified_truth_v47 view. It replaces the historical batch-002 ambiguity by reading the active batch-003 seed directly, and combines current catalog, source-health, queue, vetted/Public-Watch, rights, hosted-asset, strict-load, accessibility, release-gate, operational-alert, stale-evidence and latest-ingest state in one fail-closed contract. Current truth after completed ingest run 196 is 6,094 research candidates, 117 sources / 114 active / 113 measured / 113 healthy / 0 unhealthy / 1 unmeasured (99.12%), 435 vetted / 435 Public Watch, 424 playable, 2 queued jobs / 250 requested items, 31 paused jobs / 14,250 requested items, 37 verified-rights records, 66 hosted assets, 18 locally hosted videos, 17 hosted images, 31 hosted thumbnails and 0 hosted screenshots. Active rights seed batch 003 is 3/3 validated and 3/3 privately registered. Static accessibility evidence #12 reverified the deployed skip link, main focus target, focus-visible rules, 44px controls, dialog semantics, focus trap/restore, inert background, live regions, aria-busy feed state, dynamic iframe title, reduced-motion handling, contrast preferences, forced-colors support, and image alternative-text paths. That evidence remains pending, not passed, because a genuine rendered multi-browser/device interaction run is still unavailable in the current execution environment. Strict load remains clean/fresh. Formal gates remain 5 passed / 1 pending / 2 blocked / 0 failed, stale passed gates are zero, open operational alerts are zero, launch_promotable_v47=false, and 1.1/1.2 remains locked. Vercel remains paused.
1.0 consumer product expansion v48
The live /bw/ consumer surface now includes a substantial Studio discovery layer driven directly from the vetted Supabase bw-public-feed rather than static demo cards. The new experience adds a large dynamic featured-video hero plus horizontal discovery rails for Space & science, Nature & Earth, Ideas & society, Skills & careers, and Fresh from trusted sources, followed by a trusted-publisher discovery grid. Each card is generated only from currently playable vetted records returned by the production feed; newly discovered research candidates do not appear automatically. Studio playback opens inside the existing BrightWatcher modal using the approved embed target, while the original searchable infinite feed remains available below. Mobile no longer depends on the earlier hidden-feature layout for its only discovery experience: the Studio rails remain visible and horizontally browsable on small screens. Current canonical truth after completed ingest run 198 is 6,120 research candidates, 117 sources / 114 active / 113 measured, 435 vetted / 435 Public Watch, 424 playable, 37 verified-rights records, 66 hosted assets and 18 locally hosted videos. This is a product-depth wave, not a rights-policy relaxation: no newly discovered item was promoted or copied locally without evidence. Final 1.0 remains unpromoted because rendered accessibility validation and signed Android/iOS builds remain blocked.
1.0 Serious Consumer Density v50
The live /bw/ consumer surface was rebuilt for much higher visible information density. The redundant pre-Studio discovery block is removed from presentation, the Studio experience now leads directly into the full vetted library, desktop browsing expands to four cards per row, mobile expands to a two-column video grid, and the prior mobile CSS that hid the Studio featured experience, filters, install center and footer has been overridden. The standard feed now requests 40 playable records per page instead of 20 while preserving the separate 120-record Studio discovery pool. Canonical Supabase truth after completed ingest run 200 is 6,156 research candidates, 117 sources / 114 active / 113 measured, 435 vetted / 435 Public Watch, 424 playable, 37 verified-rights records, 66 hosted assets and 18 locally hosted videos. Run 200 processed 4,863 observations / 18 accepted / 0 rejected / no terminal error. No discovered item was promoted, locally copied, or counted as rights-cleared without evidence. Final 1.0 remains unpromoted because rendered accessibility validation and genuine Android/iOS signing credentials are still missing.
1.0 Personal Learning + Collections v51
The live /bw/ product now adds an Explore Your Way learning-library layer between the full vetted feed and the BrightWatcher-owned collection. It includes eight subject entry points, a device-local Continue Learning shelf, Saved for Later resurfacing, and explicit trust counters that keep 435 vetted Public Watch items, 18 locally hosted videos, and 37 verified-rights records visibly separate. Opening a vetted item records local viewing history on the current device; no account is required and no backend rights or vetting state is modified. Topic entry points drive the existing production search rather than creating a parallel catalog. Canonical Supabase truth at this deployment remains 6,156 research candidates, 117 sources / 114 active / 113 measured, 435 vetted / 435 Public Watch, 424 playable, 2 queued jobs / 250 requested items, 31 paused jobs / 14,250 requested items, 37 rights-verified records, 66 hosted assets, 17 images, 31 thumbnails, 0 screenshots and 18 locally hosted videos. No new media was locally copied in this product wave because no new item-level verified full-copy cohort was available. Final 1.0 remains unpromoted: rendered accessibility is still pending and genuine Android/iOS signing credentials are still missing.
1.0 Guided Learning Paths v52
The live /bw/ product now adds a major guided-learning layer over the existing vetted/playable catalog. Six three-step paths are assembled dynamically from the current vetted Studio pool with source diversity across Space Explorer, Planet Earth, Big Ideas, Build & Create, Food Science, and Career Launch. Each path stores progress only on the current device, resumes the next unfinished lesson, and never promotes research-only candidates. A Daily 15-minute learning mix and represented-publisher panel were added to make the catalog feel like a structured learning service rather than an endless feed. The mobile dock now points directly to Paths instead of the hidden legacy discovery block. No backend profile or personal-data table was created, no rights state was relaxed, and no new media was copied locally without item-level rights evidence. Canonical launch counts remain the last verified Supabase state from run 200: 6,156 research candidates, 117 sources / 114 active / 113 measured, 435 vetted / 435 Public Watch, 424 playable, 2 queued jobs / 250 requested items, 31 paused / 14,250 requested, 37 rights-verified records, 66 hosted assets, 17 images, 31 thumbnails, 0 screenshots and 18 locally hosted videos. Final 1.0 remains unpromoted: rendered accessibility is pending and signed Android/iOS remain blocked on genuine platform credentials. Vercel remains paused.
1.0 Catalog Map + Trusted Collections v53
The live /bw/ product now adds a full Collections layer so the catalog can be understood as a learning map rather than a single feed. Twelve dynamic subject collections are generated only from the current vetted/playable Studio pool, with per-collection item counts and distinct represented-source counts. The collections cover Space & astronomy, Nature & wildlife, Climate & environment, Technology & computing, Engineering & making, History & civilization, Ideas & psychology, Food & cooking, Careers & STEM, Health & body, Creativity & culture, and Quick discoveries. A new trust dashboard keeps playable/vetted, locally hosted, and verified-rights counts visibly separate, while a device-local Next Three queue combines Saved and Continue Learning without creating a backend profile. The mobile dock now exposes Watch, Collections, Paths and Owned as four direct entry points. No research-only candidate is promoted by this layer, no rights rule is relaxed, and no new media is copied merely to increase counts. Fresh SQL count retrieval was blocked by the connected execution safety layer in this run, so canonical counts remain the last verified run-200 state rather than being fabricated: 6,156 research candidates, 117 sources / 114 active / 113 measured, 435 vetted / 435 Public Watch, 424 playable, 2 queued jobs / 250 requested items, 31 paused / 14,250 requested items, 37 rights-verified records, 66 hosted assets, 17 hosted images, 31 hosted thumbnails, 0 screenshots and 18 locally hosted videos. Final 1.0 remains unpromoted; rendered accessibility is pending, signed Android/iOS remain blocked on genuine credentials, 1.1/1.2 remains locked, and Vercel remains paused.
1.0 Source Health Durability + Launch Truth v54
Completed ingest run 204 processed 4,865 observations / 13 accepted / 0 rejected / no terminal error, bringing canonical research candidates to 6,229. A fresh launch-truth read found source-health coverage had predictably aged from 113/114 back to 109/114 because the four direct landing-page checks were expiring on the same six-hour window as ingest telemetry. BBC Earth Videos, Epicurious Video, NASA at Home Videos and National Geographic Videos were freshly revalidated as reachable; NASA TikTok remains explicitly unmeasured. The new service-only bw_core.launch_source_health_resilient_v54 keeps ingest/source-health snapshots on a strict six-hour window but allows direct landing-page reachability evidence for 24 hours, eliminating the recurring six-hour observability oscillation without weakening fail-closed monitoring. bw_core.launch_unified_truth_v47 retains its stable service-only contract and now reads the v54 source-health model. Post-migration truth is 117 total sources / 114 active / 113 measured / 113 healthy / 0 unhealthy / 1 unmeasured / 99.12%. Direct reachability evidence explicitly has no rights implication and authorizes no local media copy. Rights truth remains 37 verified records / 66 hosted assets / 18 locally hosted videos / 31 hosted thumbnails. Two verified full-copy rights records remain without a hosted video; no new local video is counted in this wave because no private binary transfer was completed. Strict load remains clean/fresh, Wave W remains clean, formal gates remain 5 passed / 1 pending / 2 blocked / 0 failed, accessibility remains pending, Android/iOS signing remains blocked on genuine credentials, promotable=false, 1.1/1.2 remains locked, and Vercel remains paused.
1.0 Launch Readiness Dashboard v56
The private service-only bw_core.launch_readiness_dashboard_v56 now consolidates current catalog, source-health, rights-hosting coverage, authoritative load evidence age, accessibility-evidence age, active seed state, release gates, and the primary promotion blocker in one security-invoker monitoring contract. Fresh canonical truth after completed ingest run 207 is 6,251 research candidates, 117 sources / 114 active / 113 measured / 113 healthy / 1 unmeasured, 435 vetted / 435 Public Watch / 424 playable, 2 queued jobs / 250 requested items, 31 paused jobs / 14,250 requested items, 37 verified-rights records, 66 hosted assets and 18 locally hosted videos. Rights coverage is explicitly 20 verified full-video-copy records / 18 with hosted video / gap 2; seeded thumbnail coverage remains 31/31. The latest authoritative bounded load certification is still clean/fresh and is now tracked with its age rather than only a boolean. Accessibility evidence remains pending and is likewise age-tracked; no static audit is promoted into a rendered pass. Formal launch status remains 5 passed / 1 pending / 2 blocked / 0 failed, primary promotion blocker is accessibility, signed Android/iOS remain blocked on genuine credentials, final 1.0 remains unpromoted, 1.1/1.2 remains locked, and Vercel remains paused.
1.0 Launch Gap Register v57
The private service-only bw_core.launch_gap_register_v57 now normalizes the remaining 1.0 blockers and warnings into one operational register. Current rows are: rendered accessibility blocking; Android signing blocked_external; iOS signing blocked_external; load evidence warning_due_24h at about 21.98 hours; rights-hosting backlog 2 verified-copy items not yet privately hosted; and source health 113/114 active sources measured. The view uses security_invoker, revokes public/anon/authenticated access, and grants SELECT only to service_role. Fresh launch truth after ingest run 208 is 6,253 research candidates, 435 vetted/Public Watch, 424 playable, 37 rights-verified records, 66 hosted assets and 18 locally hosted videos. The two remaining full-copy rights gaps are exact NASA public-domain records for the Hagal dune field video and Apollo 11 Intro; neither is counted as hosted until a real private Storage object passes byte-size, SHA-256, exact rights-evidence linkage and Wave W validation. Final 1.0 remains unpromoted; accessibility is still the primary launch blocker; Android/iOS signing remain credential-blocked; 1.1/1.2 remains locked; Vercel remains paused.
1.0 Load Evidence Lease + Fresh Edge Certification v58
A fresh bounded Edge-runtime certification against the production bw-public-feed completed at 2026-09-11 06:04 UTC with 25/25 HTTP 2xx, 0 failures, 0 HTTP 429, 0 HTTP 5xx, p95 545 ms and max 551 ms. The private bw_core.launch_load_evidence_lease_v58 now exposes the authoritative clean run, evidence age, exact 24-hour expiry and a fresh/warning/stale state. bw_core.launch_gap_register_v58 consumes that lease so load evidence cannot silently remain green after expiry. Both views use security_invoker and are restricted to service_role. The temporary v58 certifier was disabled immediately after the successful run. Current canonical truth after completed ingest run 209 is 6,256 research candidates, 117 sources / 114 active / 113 measured / 113 healthy, 435 vetted / 435 Public Watch, 424 playable, 37 rights-verified records, 66 hosted assets and 18 locally hosted videos. Run 209 processed 3,276 observations / 3 accepted / 0 rejected / no terminal error. No local media was copied in this wave. Final 1.0 remains unpromoted because rendered accessibility remains pending and signed Android/iOS remain blocked on genuine credentials.
1.0 Accessibility Evidence Lease + Browser Self-Test v59
Fresh canonical launch truth after completed ingest run 210 is 6,290 research candidates, 117 sources / 114 active / 113 measured / 113 healthy / 1 unmeasured, 435 vetted / 435 Public Watch / 424 playable, 2 queued jobs / 250 requested items, 31 paused jobs / 14,250 requested items, 37 verified-rights records, 66 hosted assets and 18 locally hosted videos. The new private service-only bw_core.launch_accessibility_evidence_lease_v59 now tracks accessibility evidence age, a 24-hour static-evidence expiry and the distinction between fresh static evidence and the still-missing rendered browser/device pass. The live /bw/ page also includes an explicit in-browser accessibility self-check that tests skip navigation, labelled navigation/search, dialog semantics, live regions, image alt attributes, iframe titles, no positive tabindex, reduced-motion CSS, contrast/forced-colors CSS, visible 44px controls and duplicate IDs in the actual browser DOM. The self-check is diagnostic only and cannot promote the launch gate. Current accessibility evidence #13 remains pending, so final 1.0 remains unpromoted; signed Android/iOS remain blocked on genuine credentials; 1.1/1.2 remains locked; Vercel remains paused.
1.0 Launch Truth Reconciliation v60
Fresh canonical truth after completed ingest run 211 is 6,290 research candidates, 117 sources / 114 active / 113 measured / 113 healthy / 0 unhealthy / 1 unmeasured, 435 vetted / 435 Public Watch / 424 playable, 2 queued jobs / 250 requested items, 31 paused jobs / 14,250 requested items, 37 verified-rights records, 66 hosted assets, 17 hosted images, 31 hosted thumbnails, 0 hosted screenshots and 18 locally hosted videos. Run 211 completed with 4,863 observations / 7 accepted / 0 rejected / no terminal error. The new private service-only bw_core.launch_unified_truth_v60 reconciles current catalog/source/rights state with the v58 load-evidence lease and v59 accessibility-evidence lease, instead of inheriting stale historical gate residue from older readiness views. Current authoritative load evidence is clean/fresh at roughly 2 hours old, so v60 correctly reports 0 stale passed gates. Accessibility remains pending, Android/iOS signing remain blocked on genuine credentials, launch_promotable=false, may_begin_1_1_1_2=false, Wave W remains clean, batch 003 remains 3/3 validated/private, and Vercel remains paused.
1.0 Promotion Lock Reconciliation v61
The previous v45 promotion-lock view had drifted behind current launch truth: it still reported 109/114 source measurements and one stale passed load gate even after v54/v58/v60 established 113/114 measured sources and fresh authoritative load evidence. The new private service-only bw_core.launch_promotion_lock_v61 derives promotion decisions directly from launch_unified_truth_v60. Fresh validation after completed ingest run 212 is 6,290 research candidates, 117 sources / 114 active / 113 measured / 113 healthy / 0 unhealthy / 1 unmeasured, 435 vetted / 435 Public Watch / 424 playable, 2 queued jobs / 250 requested items, 31 paused jobs / 14,250 requested items, 37 verified-rights records, 66 hosted assets and 18 locally hosted videos. Run 212 processed 4,863 observations / 6 accepted / 0 rejected. The v61 lock now reports fresh load evidence, 0 stale passed gates, and exactly three remaining promotion blockers: rendered accessibility validation, Android signing credentials and iOS signing credentials. launch_promotable_v61=false and may_begin_1_1_1_2_v61=false. Wave W, private owned-media storage and batch 003 remain unchanged; no local copy was added in this wave; Vercel remains paused.
1.0 Accessibility Evidence Export + Launch Validation Matrix v62
Fresh canonical truth after completed ingest run 213 is 6,298 research candidates, 117 sources / 114 active / 113 measured / 113 healthy / 0 unhealthy / 1 unmeasured, 435 vetted / 435 Public Watch / 424 playable, 2 queued jobs / 250 requested items, 31 paused jobs / 14,250 requested items, 37 verified-rights records, 66 hosted assets and 18 locally hosted videos. Run 213 processed 4,863 observations / 8 accepted / 0 rejected / no terminal error. The live /bw/ page now adds a launch validation matrix separating load, rights, accessibility and mobile-signing state, plus a device-local browser-evidence export that captures viewport, user agent, labelled navigation/search, dialog semantics, live regions, visible-control dimensions, missing-alt count, duplicate IDs and browser accessibility preferences. The export is diagnostic only and cannot promote the formal accessibility gate. Supabase accessibility evidence #14 records the current source/static controls plus the export harness as pending; genuine rendered multi-browser/device validation is still required. Authoritative v58 load evidence remains clean/fresh at roughly 3.96 hours old, with 25/25 HTTP 2xx, zero failures, zero 429/5xx, p95 545 ms and max 551 ms. Wave W remains clean, batch 003 remains 3/3 validated/private, no new local media was copied, formal gates remain 5 passed / 1 pending / 2 blocked / 0 failed, launch_promotable=false, 1.1/1.2 remains locked, and Vercel remains paused.
Wave AA — Launch Evidence Durability
Fresh canonical truth after completed ingest run 214 is 6,305 research candidates, 117 sources / 114 active / 113 measured / 113 healthy / 0 unhealthy / 1 unmeasured, 435 vetted / 435 Public Watch / 424 playable, 2 queued jobs / 250 requested items, 31 paused jobs / 14,250 requested items, 37 verified-rights records, 66 hosted assets, 17 hosted images, 31 hosted thumbnails, 0 hosted screenshots and 18 locally hosted videos. Run 214 processed 4,864 observations / 7 accepted / 0 rejected / no terminal error. The live launch-validation matrix now exposes the exact v58 load-evidence expiry instead of only a green status, and browser evidence exports identify the major release as Wave AA. Supabase accessibility evidence #15 records the current static/source controls plus the evidence-lease surface as pending; genuine rendered multi-browser/device validation is still required and is not claimed complete. Authoritative load evidence remains clean/fresh at roughly 5.02 hours old, 25/25 HTTP 2xx, zero failures, zero 429/5xx, p95 545 ms, max 551 ms, with expiry at 2026-09-12 06:04 UTC. Wave W remains clean, batch 003 remains 3/3 validated/private, rights coverage remains 20 verified full-video-copy records / 18 hosted videos / gap 2, and no new local media copy completed in this wave. Formal launch state remains 5 passed / 1 pending / 2 blocked / 0 failed, 0 open operational alerts, 0 stale passed gates, launch_promotable=false, 1.1/1.2 remains locked, Android/iOS signing remains blocked on genuine credentials, and Vercel remains paused.
Wave AB — Rights-Cleared Hosting Expansion
Completed ingest run 215 leaves canonical research candidates at 6,310. One exact NASA public-domain Hagal dune-field video was copied from its verified Wikimedia Commons item into private brightwatcher-owned-media Storage, validated at 20,179,770 bytes, SHA-256 00c01186a55a725f39333934aeb8cfaa1c8ec70863045d2b2ef65d6c3a0ffb64, linked to rights evidence 3238781b-18ec-4116-83dc-fb6b6aa5c2a6, and registered only after the private object existed. Rights-hosting coverage is now 20 verified full-video-copy records / 19 hosted / gap 1; total hosted assets are 67 and locally hosted videos are 19. The remaining Apollo 11 original was attempted through the same exact-item transfer path but the Edge worker hit a compute-resource limit, so it remains unhosted and uncounted. The one-shot transfer endpoint was immediately returned to JWT-protected HTTP 410. Rendered accessibility remains pending because the available Chromium runtime is administratively blocked from reaching 4br.ca; no false pass is claimed. Formal gates remain 5 passed / 1 pending / 2 blocked / 0 failed; load evidence is clean/fresh; Wave W remains clean; 1.1/1.2 remains locked; Vercel remains paused.
Wave AC — Launch Blocker Matrix + Trust Synchronization
Fresh canonical truth after completed ingest run 216 is 6,324 research candidates, 117 sources / 114 active / 113 measured / 113 healthy / 0 unhealthy / 1 unmeasured, 435 vetted / 435 Public Watch / 424 playable, 2 queued jobs / 250 requested items, 31 paused jobs / 14,250 requested items, 37 verified-rights records, 67 hosted assets, 17 hosted images, 31 hosted thumbnails, 0 hosted screenshots and 19 locally hosted videos. Run 216 processed 4,864 observations / 14 accepted / 0 rejected / no terminal error. The new private service-only bw_core.launch_blocker_matrix_v63 ranks the remaining launch work from current unified truth: rendered accessibility is blocking; Android and iOS signing are blocked_external; authoritative load evidence is clear/fresh; and the rights-copy backlog is exactly 1 verified item. Companion view bw_core.rights_copy_gap_v63 proves the only remaining verified full-copy gap is candidate 649599 — Apollo 11 Intro 720p, backed by verified PD-USGov-NASA evidence. A streaming copy experiment was attempted for that one exact asset, but the runtime could not complete a verifiable transfer; the endpoint was sealed back to JWT-protected HTTP 410 and no hosted record or count was created. Supabase accessibility evidence #16 records a real headless-Chromium attempt; the browser process existed but the live page did not produce a DOM within the execution window, so the formal gate remains pending. Both v63 views are security_invoker, with public/anon/authenticated access revoked and SELECT limited to service_role. Formal launch state remains 5 passed / 1 pending / 2 blocked / 0 failed, 0 open operational alerts, 0 stale passed gates, launch_promotable=false, 1.1/1.2 remains locked, and Vercel remains paused.
Mobile
Current connected-source packages remain aligned to the 1.0.0-RC1 web product. Android and iOS source/build workflows are ready, but signed APK/AAB and TestFlight/IPA artifacts remain blocked until real platform signing credentials are connected. BrightWatcher does not treat an unsigned source package as a finished mobile release.
Download Android source · Download iOS source
These are build-ready source packages. Signed APK/AAB and TestFlight/IPA binaries still require platform signing credentials.
Rollback
Rollback baseline: web v0.12.52 / mobile v0.5.8. Prepared-but-unpromoted historical checkpoints remain archival only.
Security follow-up
BrightWatcher RLS state reverified live: all 49 current bw_core tables have Row Level Security enabled. The derivative queue that was briefly flagged in a historical blocked checkpoint is currently RLS-enabled, has no direct anon or authenticated SELECT privilege, and the current Supabase advisor classifies its no-policy state as INFO, not a critical RLS-disabled finding. Checkpoint #46 is retained as historical audit evidence and checkpoint #47 records the corrected live security state. Unrelated shared-project warnings remain outside this BrightWatcher wave and were not modified.
Canonical launch truth
This wave adds the private Supabase view bw_core.launch_truth_v1 as the canonical 1.0 readiness read model. It combines live catalog/source/vetted/public-Watch/queue/rights/hosted-asset counts, the latest completed ingest run, formal gate totals, open-alert count and the four Wave W rights-integrity invariants in one service-only contract. The view uses security_invoker; public, anon and authenticated access are revoked, and only service_role receives SELECT. Validation after ingest run 124 returned 5,140 candidates, 5/1/2 gate status and zero rights gaps.
Final 1.0 promotion guard
The private service-only view bw_core.launch_promotion_guard_v1 now evaluates final-release promotability from gate state, open alerts, all four Wave W rights-integrity invariants, and evidence freshness. It currently returns promotable=false because accessibility remains pending and signed Android/iOS remain blocked. Backend and rights evidence are fresh within 2 hours and load evidence is fresh within 24 hours, so the current block is explicit rather than caused by stale telemetry. This prevents accidental final 1.0 promotion while any required gate is pending, blocked or failed.
Launch control plane
The private service-only views bw_core.safe_hosting_queue_v1 and bw_core.launch_control_plane_v1 separate evidence-backed hosting eligibility from discovery. Current control-plane truth is 5,509 research candidates (55.03% of the 10,000 research target), 435 vetted/Public-Watch records, 424 consumer-playable records, 14 locally hosted videos, 17 locally hosted images, 10 locally hosted rights-cleared thumbnails, 31 verified-rights records and 41 hosted assets. Private service-only views bw_core.launch_readiness_v2 and bw_core.rollback_guard_v1 now consolidate live counts, gate state, open-alert state and fail-closed Wave W rights regressions. The private hosting-batch control plane now includes bw_core.hosting_rights_revalidation and the source-kind guarded bw_core.hosting_copy_readiness_v1. Item-level rights for batch 001 were revalidated against the current Wikimedia Commons file pages, but source-kind QA correctly found that all 3 staged thumbnail rows pointed to OGV video binaries rather than image files. All 3 are therefore blocked before copy, with 0 counted as copied or hosted. This is intentional fail-closed behavior: rights evidence alone is not enough; the binary source must also match the asset type before private-storage copy. Full-video backlog remains 0 because every currently verified full-copy video is already registered through Wave W.
1.0 rights-hosting coverage v11
The first audited public-domain seed cohort is now complete at the media-derivative level. The hardened bw-thumbnail-derivative-worker v3 retried the four previously failed NASA/NASA Goddard thumbnail jobs using current Wikimedia thumbnail metadata and validated image MIME/size bounds before private upload. All four retries succeeded. BrightWatcher now has 14/14 seeded thumbnail derivatives hosted, 0 failed, 0 ready, and 0 processing. The private service-only bw_core.rights_hosting_coverage_v11 and bw_core.launch_operations_v11 views now expose coverage explicitly: 14 verified full-video-copy rights records / 14 rights records with hosted video / gap 0, and 14 seeded thumbnail jobs / 14 hosted / gap 0. The external bw-launch-health-v11 contract was validated at HTTP 200. Wave W remains fail-closed with zero hosted-rights, copy-permission, or derivative-permission gaps.
1.0 rights thumbnail coverage + derivative observability v12
The private service-only bw_core.launch_operations_v12, bw_launch_operations_snapshot_v12() and bw-launch-health-v12 now extend the launch control plane with derivative-worker attempts/errors and explicit verified-thumbnail coverage. The hardened bw-thumbnail-derivative-worker v4 preserved Wave W item-level rights checks while completing the remaining eligible Wikimedia Commons derivative cohort. Current coverage is 31 verified thumbnail-copy rights records / 31 privately hosted rights-cleared thumbnails / gap 0; derivative queue state is 31 hosted / 0 failed. Active queued acquisition backlog remains 2 jobs / 250 requested items, with 31 paused jobs / 14,250 requested items preserved. Latest completed ingest run 158 processed 3,305 discovery observations / 10 accepted / 0 rejected, bringing canonical truth to 5,540 research candidates (55.40% of target), 435 vetted/Public-Watch records, 424 consumer-playable records, 62 hosted assets, 31 hosted thumbnails, and 14 locally hosted videos. Wave W rights gaps remain zero and bw-launch-health-v12 was validated at HTTP 200. Accessibility evidence #9 remains pending because full rendered multi-browser/device validation is still unavailable; Android/iOS signing remains blocked and final 1.0 remains unpromoted. Checkpoint #56 is PREPARED, not promoted.
1.0 API exposure readiness v13
BrightWatcher now has an explicit Supabase API-surface guard ahead of the October 30, 2026 platform change that enforces explicit grants on existing projects. The unusable anonymous/authenticated SELECT grants on public.bw_vetted_media_library were revoked without exposing additional underlying tables. public.bw_media_library_stats remains the sole intentional client-readable BrightWatcher relation. Current audit truth: 30 public bw_* functions / 23 SECURITY DEFINER / 0 anon EXECUTE / 0 authenticated EXECUTE; 4 public BrightWatcher relations exist, with exactly 1 allowlisted anon/auth-readable aggregate relation. bw_core.launch_api_exposure_guard_v13, launch_operations_v13, and bw_launch_operations_snapshot_v13() are service-only. bw-launch-health-v13 was validated at HTTP 200. Run 159 completed with 4,850 observations / 29 accepted / 0 rejected, bringing the research catalog to 5,569. Checkpoint #57 is PREPARED, not promoted. Accessibility remains pending; Android/iOS signing remains blocked.
1.0 strict promotion + rollback contract v14
The 1.0 launch control plane now has a strict service-only promotion contract that refuses promotion unless all 8 release gates are passed, all non-mobile evidence is fresh, load evidence is clean/fresh, the Wave W rights invariants remain zero-gap, the Supabase client surface matches the allowlist, no critical alerts or stale ingests exist, and all current bw_core tables retain Row Level Security. Current contract truth is 5 passed / 1 pending / 2 blocked / 0 failed, so promotable=false. The blocking gates remain rendered accessibility validation plus genuine Android and iOS signing credentials. bw_core.launch_evidence_integrity_v14, bw_core.launch_rollback_guard_v14, bw_core.launch_operations_v14, bw_launch_operations_snapshot_v14(), and bw_launch_promotion_contract_v14() are service-only. The upgraded bw-launch-health-v14 initially exposed a real least-privilege dependency gap and returned HTTP 500; SELECT on only the required release-gate/checkpoint tables was granted to service_role, after which the endpoint revalidated at HTTP 200. Run 160 completed with 4,865 observations / 7 accepted / 0 rejected, bringing research candidates to 5,576. Checkpoint #58 is PREPARED, not promoted.
1.0 canonical launch state v15
The launch control plane now exposes one canonical service-only snapshot through bw_core.launch_canonical_state_v15 and bw_launch_canonical_snapshot_v15(). It resolves the post-cooldown queue state to WATCH, uses the newest clean/fresh load evidence from September 9, validates that the eight persisted gate rows exactly match the control-plane totals, confirms zero Wave W rights gaps, confirms the API client allowlist, confirms Row Level Security on all 49 current bw_core tables, and confirms the ingestion concurrency guard is enabled with no stale running ingest. bw-launch-health-v15 returned HTTP 200 after deployment. Latest completed ingest run 161 processed 4,863 observations / 5 accepted / 0 rejected, bringing the research catalog to 5,581. Checkpoint #59 is PREPARED, not promoted. Accessibility remains pending and signed Android/iOS remain blocked, so final 1.0 is still not promotable.
1.0 hosting eligibility reconciliation v16
The launch rights/hosting control plane was reconciled after a live drift check found the legacy eligibility view still treated rights-cleared hosted thumbnail assets as unhosted because it only checked asset_kind='image'. The corrected fail-closed eligibility contract now treats already hosted image, thumbnail, and screenshot visual assets as covered without weakening rights requirements. Live result: 0 eligible unhosted full-copy videos / 0 eligible unhosted thumbnail copies, matching 14/14 verified video-copy coverage and 31/31 verified thumbnail-copy coverage. bw-launch-health-v16 was revalidated at HTTP 200 with legacy_control_plane_drift_detected=false. Run 162 completed with 4,863 observations / 6 accepted / 0 rejected, bringing the research catalog to 5,587. Canonical hosted-thumbnail/screenshot progress is 31 / 25,000 (0.12%). Checkpoint #60 is PREPARED, not promoted; accessibility remains pending and signed Android/iOS remain blocked.
1.0 durable launch evidence ledger v17
BrightWatcher now persists hash-deduplicated canonical launch snapshots in the private service-only bw_core.launch_evidence_snapshot_v17 ledger rather than relying only on mutable live views. Each snapshot captures the current release/checkpoint, catalog/vetted/Public-Watch/rights/hosted-media counts, rights integrity, load-evidence state, accessibility state and strict promotability. The first completed-state capture after ingest run 163 records 5,601 research candidates, 435 vetted / 435 Public Watch, 31 verified-rights records, 62 hosted assets and 14 locally hosted videos, with rights integrity clean, load evidence clean/fresh and promotable=false. A guarded hourly evidence capture runs at minute :10 and writes only when the canonical state hash changes, preserving durable rollback/promotional proof without duplicate churn. All 50/50 current bw_core tables have Row Level Security enabled after the ledger addition. Checkpoint #61 is PREPARED, not promoted; accessibility remains pending and signed Android/iOS remain blocked.
1.0 source-health coverage guard v18
BrightWatcher now exposes a private service-only source-health coverage guard through bw_core.launch_source_health_coverage_v18 and bw_launch_source_health_coverage_v18(). The guard compares the latest persisted source-health snapshot against the canonical active-source registry instead of treating one successful probe as representative of the whole acquisition network. Current live evidence is 117 sources / 114 active / 1 source measured / 1 healthy / 0 unhealthy / 113 active sources without a latest health measurement, or only 0.88% active-source health coverage. The latest source-health measurement is from September 6, 2026, so coverage is explicitly incomplete. This is an operational evidence gap, not a rights failure, and it does not weaken Wave W or promote any media. Latest completed ingest run 164 processed 4,862 observations / 8 accepted / 0 rejected, bringing the research catalog to 5,609. Checkpoint #62 is PREPARED, not promoted. Current formal launch gates remain 5 passed / 1 pending / 2 blocked / 0 failed; accessibility remains pending and signed Android/iOS remain blocked.
1.0 source-health evidence automation v19
BrightWatcher now derives source-health evidence from the actual per-source results emitted by the latest completed ingestion run instead of relying on a single standalone probe. The private service-only bw_core.capture_latest_ingest_source_health_v19() persists run evidence, deduplicates already captured ingest runs, and runs hourly at minute :05. Current evidence is 117 sources / 114 active / 109 measured / 109 healthy / 0 unhealthy / 5 active sources still unmeasured, equal to 95.61% active-source health coverage. The five explicit gaps are BBC Earth Videos, Epicurious Video, NASA at Home Videos, NASA TikTok, and National Geographic Videos; they are not silently assumed healthy. bw-launch-health-v19 was validated at HTTP 200 after adding only the required service-role SELECT grants. Latest completed ingest run 165 processed 4,862 observations / 14 accepted / 0 rejected, bringing the research catalog to 5,623. Checkpoint #63 is PREPARED, not promoted. Wave W remains clean, safe-hosting eligibility remains zero, accessibility remains pending, Android/iOS signing remains blocked, and Vercel remains paused.
1.0 source-health closure + external blocker isolation v20
Direct source checks on September 9, 2026 closed four of the five remaining source-health evidence gaps without treating reachability as rights clearance. BBC Earth Videos, Epicurious Video, NASA at Home Videos, and National Geographic Videos were directly reachable; NASA TikTok could not be validated from the current execution environment and remains explicitly unmeasured rather than assumed healthy. Current source-health evidence is 113/114 active sources measured / 113 healthy / 0 unhealthy / 1 explicitly unmeasured, or 99.12% coverage. The private service-only bw_core.launch_source_health_readiness_v20 and bw_launch_source_health_readiness_v20() report readiness_state=near_complete_external_blocker and source_health_launch_ready=false because coverage is not yet complete. No media was copied or promoted from these reachability checks. Latest completed ingest run 166 processed 4,862 observations / 5 accepted / 0 rejected, bringing the research catalog to 5,628. Checkpoint #64 is PREPARED, not promoted. Wave W remains clean; accessibility remains pending; Android/iOS signing remains blocked; Vercel remains paused.
1.0 validation evidence fusion v21
Canonical launch truth after completed ingest run 167 is 5,651 research candidates, 117 sources / 114 active, 435 vetted / 435 Public Watch, 424 consumer-playable, 31 verified-rights records, 62 hosted assets, 31 hosted thumbnails, and 14 locally hosted videos. Source-health evidence is now durably fused from 109 ingest-backed measurements + 4 direct reachability checks, producing 113/114 measured / 113 healthy / 0 unhealthy / 99.12% coverage. NASA TikTok remains the one explicitly unmeasured source; direct reachability evidence is never treated as a rights grant. Accessibility evidence #10 records a genuine Chromium render attempt, but container DNS prevented the browser from reaching 4br.ca, so rendered multi-browser/device validation remains pending. A fresh bounded 100-request pg_net load attempt was also environment-blocked during TLS handshakes before any HTTP response and is recorded as partial rather than an application failure; the prior authoritative clean/fresh 100/100 load evidence remains the launch value. bw-launch-health-v21 was validated at HTTP 200. Checkpoint #65 is PREPARED, not promoted, with durable state hash 6a9aa3e98f8170a2aa62135b34f63cda. Formal gates remain 5 passed / 1 pending / 2 blocked / 0 failed, so promotable=false.
1.0 evidence freshness + external blocker isolation v22
Checkpoint #66 records canonical launch truth after completed ingest run 168: 5,687 research candidates, 117 sources / 114 active, 435 vetted / 435 Public Watch, 424 consumer-playable, 31 verified-rights records, 62 hosted assets, 31 hosted thumbnails, and 14 locally hosted videos. Run 168 processed 4,864 discovery observations / 36 accepted / 0 rejected / no terminal error. Wave W remains zero-gap and canonical safe-hosting eligibility remains 0 unhosted full-copy videos / 0 unhosted thumbnail copies, so no additional media was copied without new item-level rights evidence. Source-health evidence remains 113/114 measured / 113 healthy / 0 unhealthy / 99.12%; NASA TikTok remains explicitly unmeasured because TikTok blocks crawler access and the execution container cannot resolve external DNS. Accessibility evidence #10 remains pending because rendered multi-browser/device validation is still unavailable. The authoritative load evidence remains 100/100 HTTP 2xx / 0 failures / 0 HTTP 429 / 0 HTTP 5xx; the newer pg_net attempt remains classified partial/environment-blocked and does not replace the clean application-level run. Durable launch snapshot state hash is 8c3fd7f1f732ecf2fc5a56598f645873. Formal gates remain 5 passed / 1 pending / 2 blocked / 0 failed, so promotable=false. Signed Android/iOS remain blocked on genuine platform signing credentials and Vercel remains paused.
1.0 blocker matrix + goal separation v23
Canonical Supabase truth after completed ingest run 169 is 5,733 research candidates, 117 sources / 114 active, 435 vetted / 435 Public Watch, 424 consumer-playable, 31 verified-rights records, 62 hosted assets, 31 hosted thumbnails and 14 locally hosted videos. Run 169 processed 4,863 observations / 32 accepted / 0 rejected / no terminal error. The new service-only normalized blocker matrix resolves historical release-label case drift and explicitly reports 3 promotion blockers: rendered accessibility is pending, Android signing is blocked on genuine credentials, and iOS signing is blocked on genuine credentials. Source-health remains a non-promoting WATCH at 113/114 measured / 99.12%, with NASA TikTok explicitly unmeasured. Long-range goals are now tracked independently so research discovery cannot be mistaken for rights-cleared hosted growth: 5,733/10,000 research candidates (57.19%), 14/10,000 locally hosted videos (0.14%), 31/25,000 hosted thumbnails/screenshots (0.12%), and 0/50,000 learning-metadata records under the current BrightWatcher learning-material schema. Wave W rights gaps remain zero and safe-hosting eligibility remains 0 qualified unhosted videos / 0 qualified unhosted thumbnails, so no additional local media was copied without new item-level permission evidence. Four launch-path foreign-key indexes were added after the Supabase performance advisor identified missing coverage on hosting-batch, rights-revalidation, and queue-saturation relationships. bw-launch-health-v23 is deployed as the active Edge Function contract, but this execution environment cannot resolve the Supabase host for an external HTTP revalidation, so the new endpoint is not falsely reported as HTTP-validated. Formal launch status remains 5 passed / 1 pending / 2 blocked / 0 failed, promotable=false; Vercel remains paused.
1.0 launch watchdog + state-transition ledger v25
Checkpoint #69 prepares the completed run-171 state: 5,755 research candidates, 117 sources / 114 active, 435 vetted / 435 Public Watch, 424 consumer-playable, 31 verified-rights records, 62 hosted assets, 31 hosted thumbnails and 14 locally hosted videos. Run 171 completed with 4,817 observations / 22 accepted / 0 rejected / no terminal error. The new service-only bw_core.launch_watch_state_v25 fuses canonical launch truth with the latest ingest runtime and adds explicit stale-ingest detection. A private launch_watch_event_v25 ledger stores only distinct state hashes, and a 10-minute capture job records meaningful monitoring transitions without generating duplicate churn. Current watch state is blocked solely because the formal release gates are still 5 passed / 1 pending / 2 blocked; the latest ingest is completed and non-stale, Wave W rights integrity remains clean, load evidence remains clean/fresh, source-health remains 113/114 (99.12%), and safe-hosting eligibility remains 0 videos / 0 thumbnails. No new media was copied without item-level rights evidence. Vercel remains paused; Android/iOS signing remains blocked on genuine credentials; accessibility remains pending; 1.1/1.2 has not started.
1.0 source degradation watchdog v26
Checkpoint #70 adds a source-degradation-aware launch watchdog without weakening the formal release gates. Completed ingest run 172 processed 4,862 observations / 17 accepted / 0 rejected / no terminal error, bringing the research catalog to 5,772. Current source health is 112 healthy / 1 unhealthy / 1 unmeasured across 114 active sources. Vox is explicitly degraded from the latest ingest-backed health result with one channel_500 failure; NASA TikTok remains explicitly unmeasured. The new service-only bw_core.launch_source_degradation_v26 and bw_core.launch_watch_state_v26 separate source degradation from rights, load, and formal promotion blockers, while the private RLS-protected launch_watch_event_v26 stores only distinct state hashes. The previous v25 watcher schedule was replaced by the v26 capture job at 10-minute intervals. Wave W rights gaps remain zero, safe-hosting eligibility remains 0 videos / 0 thumbnails, authoritative load evidence remains clean/fresh, and no media was copied without new item-level rights evidence. Formal launch state remains 5 passed / 1 pending / 2 blocked / 0 failed, promotable=false. Accessibility remains pending; signed Android/iOS remain blocked on genuine credentials; Vercel remains paused; 1.1/1.2 has not started.
1.0 evidence freshness watchdog v27
Checkpoint #71 records completed ingest run 173: 4,832 observations / 20 accepted / 0 rejected / no terminal error, bringing research candidates to 5,792. The prior Vox channel_500 condition has recovered; source health is now 113 healthy / 0 unhealthy / 1 unmeasured, with NASA TikTok still explicitly unmeasured. BrightWatcher now has a service-only bw_core.launch_gate_freshness_v27 and bw_core.launch_readiness_effective_v27 contract that prevents stale passed evidence from being treated as launch-ready. Freshness thresholds are explicit for backend health and rights (2h), load testing (24h), and public-feed/owned-library evidence (72h). Validation found and corrected an initial stale-pass counting defect before checkpointing; final live result is 0 stale passed gates. Effective blockers remain exactly accessibility pending plus Android/iOS signing blocked, so promotable=false. The private v27 state-transition ledger is hash-deduplicated and monitored every 10 minutes. Wave W remains zero-gap, safe-hosting eligibility remains 0 videos / 0 thumbnails, no new media was copied without item-level evidence, Vercel remains paused, and 1.1/1.2 has not started.
1.0 promotion interlock + rollback anchor v28
Checkpoint #72 records completed ingest run 174: 4,862 observations / 17 accepted / 0 rejected / no terminal error, bringing research candidates to 5,809. BrightWatcher now has a service-only bw_core.launch_promotion_interlock_v28 plus bw_launch_promotion_interlock_v28() that refuses promotion unless effective launch readiness, Wave W rights integrity, clean/fresh load evidence, rendered accessibility, zero stale passed gates and minimum source-health observability all agree. The current interlock is closed: formal gates remain 5 passed / 1 pending / 2 blocked and rendered accessibility is still pending. Source-health canonical evidence is currently 109/114 measured = 95.61%; the four earlier direct web checks are retained as historical evidence but are not treated as current automated health measurements. A private RLS-protected launch_rollback_anchor_v28 ledger now captures a hash-stable rollback anchor before any future promotion. Anchor #1 hash is 7f5afa06bc25ff98b4fb0d828bc239e6. Wave W rights gaps remain zero, safe-hosting eligibility remains 0 videos / 0 thumbnails, Android/iOS signing remain blocked on genuine credentials, Vercel remains paused, and 1.1/1.2 has not started.
1.0 rollback drift interlock v29
Checkpoint #73 validates completed ingest run 175: 4,862 observations / 13 accepted / 0 rejected / no terminal error, bringing research candidates to 5,822. BrightWatcher now has the service-only bw_core.launch_rollback_drift_v29 plus bw_launch_rollback_drift_v29(), which compares live launch state against the newest rollback anchor and raises a fail-closed safety regression if rights integrity, load freshness, gate freshness, source-health observability, vetted/Public-Watch counts, verified-rights counts, hosted assets, or locally hosted video counts regress. A fresh rollback anchor #2 was captured after run 175 with state hash bc7b4c94634c66456b2be00383fa7f5e. Validation against anchor #2 reports zero deltas across protected counts and safety_regression_detected=false. Promotion remains closed because accessibility is pending and Android/iOS signing remain blocked on genuine credentials. Wave W remains zero-gap, safe-hosting eligibility remains zero, no unverified media was copied, Vercel remains paused, and 1.1/1.2 has not started.
1.0 source observability recovery + WordPress sync v31
Fresh direct reachability evidence on September 9, 2026 revalidated BBC Earth Videos, Epicurious Video, NASA at Home Videos and National Geographic Videos. Combined with 109 current ingestion-backed measurements, the fused operational source-health view now reports 113/114 active sources measured / 113 healthy / 0 unhealthy / 1 unmeasured / 99.12% coverage. NASA TikTok remains explicitly unmeasured. These reachability checks are operational evidence only and are not rights grants or media-copy permission. Completed ingest run 177 processed 4,862 observations / 15 accepted / 0 rejected / no terminal error, bringing the research catalog to 5,868. Wave W remains zero-gap, safe-hosting eligibility remains 0 additional full-copy videos / 0 additional thumbnail copies, and no media was copied merely to increase counts. The prior v30 WordPress synchronization failure was recovered in this run; /bw/ and Documentation were updated through WPWriter. Final 1.0 remains unpromoted because rendered accessibility is pending and signed Android/iOS remain blocked on genuine platform signing credentials.
1.0 rights-cleared launch seed transfer v32
Three new NASA public-domain video candidates from completed ingest run 180 are now backed by item-level verified rights evidence and staged as 1.0-launch-video-batch-002. The current seed has 3/3 rights-and-source-ready items, 0 copied, 0 binary-validated, and 0 newly registered hosted videos. BrightWatcher therefore still reports 14 locally hosted videos and 62 hosted assets; those totals are intentionally unchanged until the actual binaries are copied to BrightWatcher’s private Supabase Storage, checksummed, and registered through Wave W. Current verified-rights records increased to 34, and the safe-hosting queue now correctly reports 3 eligible unhosted full-copy videos / 3 eligible thumbnail copies. The new service-only bw_core.launch_rights_seed_transfer_v32 and bw_launch_rights_seed_transfer_v32() fail closed until private transfer and binary validation are complete. The current execution container cannot resolve the external media hosts, and the connected Supabase tool surface does not expose private Storage binary upload, so private_storage_seed_complete=false and transfer_state=awaiting_private_storage_transfer. No blocked or partial seed is counted as hosted.
1.0 rights-seed transfer state machine v33
BrightWatcher now enforces the private-copy boundary in the database, not only in documentation. The service-only launch_rights_seed_integrity_v33 reports the exact state of launch video batch 002, while database triggers refuse any batch-item transition to copied or validated unless a matching asset is already registered in the private brightwatcher-owned-media bucket with a positive byte size, 64-character SHA-256 checksum and current rights-check timestamp. A batch cannot transition to completed unless every item is validated. The current batch remains 3 ready / 0 copied / 0 validated / 0 registered, and a deliberate invalid validation attempt was rejected by the interlock. Canonical truth is 5,891 research candidates / 34 verified-rights records / 62 hosted assets / 14 locally hosted videos. Wave W remains zero-gap, and the new controls prevent a rights-cleared-but-not-transferred item from being counted as locally hosted. Accessibility remains pending; Android/iOS signing remain blocked on genuine credentials; Vercel remains paused.
1.0 launch blocker contract v34
Completed ingest run 182 processed 3,259 observations / 12 accepted / 0 rejected / no terminal error, bringing the canonical research catalog to 5,891. The new service-only bw_core.launch_blocker_contract_v34 consolidates the final 1.0 closure requirements into one fail-closed contract: formal release blockers, source observability, Wave W integrity, rights-cleared seed transfer state, and load-evidence expiry. Source observability remains 113/114 = 99.12%, with NASA TikTok explicitly unmeasured. Seed batch 002 remains 3 ready / 0 copied / 0 validated / 0 registered; source reachability or embeddability has no rights implication and no hosted count is incremented without an actual private binary copy plus byte-size/SHA-256 validation. During validation the authoritative 100-request load evidence crossed its 24-hour freshness limit at 2026-09-10 04:08:15 UTC. v34 now reports load_evidence_current=false, an operational warning was opened, and checkpoint #75 / evidence snapshot #34 were captured. A fresh real HTTP load run is required before promotion; stale evidence is not treated as passed. Accessibility remains pending; Android/iOS signing remain blocked on genuine credentials; promotable=false; Vercel remains paused.
1.0 launch execution backlog v35
BrightWatcher now exposes a service-only bw_core.launch_execution_backlog_v35 plus bw_launch_execution_backlog_v35() that orders the remaining 1.0 work by operational priority and makes the evidence needed to close each blocker explicit. Current canonical truth after ingest run 183 is 5,895 research candidates, 117 sources / 114 active / 113 measured, 435 vetted / 435 Public Watch, 424 consumer-playable, 34 verified-rights records, 62 hosted assets, 31 hosted thumbnails, and 14 locally hosted videos. Run 183 completed with 3,259 observations / 4 accepted / 0 rejected / no terminal error. The backlog is fail-closed: fresh load testing is priority 10 and remains blocked because the previous authoritative evidence expired; rendered accessibility is priority 20 and remains blocked because the current runtime still lacks usable live-browser execution; rights-cleared seed transfer is priority 30 and remains blocked at 3 ready / 0 copied / 0 validated / 0 registered; Android and iOS signing remain priorities 40/50 and require genuine platform credentials. A new 100-request live load attempt from this runtime was inconclusive because the HTTP execution environment timed out before a valid result set could be collected, so no fresh load pass is claimed. Vercel remains paused and 1.1/1.2 has not started.
1.0 load-certification integrity v36
Completed ingest run 184 processed 3,245 observations / 9 accepted / 0 rejected / no terminal error, bringing the canonical research catalog to 5,904. BrightWatcher now separates endpoint reachability from authoritative load certification. A single isolated pg_net control request to bw-launch-health returned HTTP 200, but a 100-request burst and a separately paced 20-request probe both saturated the pg_net execution path and timed out before HTTP status. The new service-only launch_load_transport_isolation_v36 and launch_readiness_strict_v36 therefore refuse to treat the isolated success as a fresh load pass, and also refuse to misclassify transport saturation as an application failure. bw-launch-health v22 now exposes this strict contract publicly and was revalidated at HTTP 200: the last authoritative bounded clean run remains the September 9 100/100 result, but it is now correctly stale. Wave W remains clean; seed batch 002 remains 3 ready / 0 copied / 0 validated / 0 registered; accessibility remains pending; Android/iOS signing remain blocked on genuine credentials; promotable=false; Vercel remains paused.
1.0 load-certification recovery + backlog truth convergence v37
Completed ingest run 185 processed 4,862 observations / 14 accepted / 0 rejected / no terminal error, bringing the canonical research catalog to 5,918. v37 corrects the execution-backlog control so load readiness is sourced from launch_readiness_strict_v36 rather than the older v34 freshness path. A temporary token-protected Edge-runtime certifier executed two bounded 25-request runs against bw-public-feed: attempt 1 returned 24/25 HTTP 2xx with one HTTP 500 and 0 HTTP 429; immediate confirmation returned 25/25 HTTP 2xx, 0 failures, 0 HTTP 429, 0 HTTP 5xx, p95 391 ms, max 398 ms. Both real result sets were persisted and the temporary certifier was then disabled with HTTP 410. Strict load evidence is now clean/fresh and priority-10 load retest is satisfied. Remaining blockers are rendered accessibility validation, private transfer/validation of seed batch 002, and genuine Android/iOS signing credentials. Wave W remains clean; hosted counts remain 62 assets / 14 local videos; no copied-state or hosted count was advanced without private binary evidence. Evidence snapshot #38 and rollback anchor #3 were captured; promotable remains false; Vercel remains paused.
1.0 closure truth + source observability recovery v38
Completed ingest run 186 processed 4,863 observations / 12 accepted / 0 rejected / no terminal error, bringing the canonical research catalog to 5,930. Fresh direct checks on September 10, 2026 revalidated BBC Earth Videos, Epicurious Video, NASA at Home Videos and National Geographic Videos, restoring fused operational source observability to 113/114 measured / 113 healthy / 0 unhealthy / 1 explicitly unmeasured / 99.12%. NASA TikTok remains unmeasured because its direct page is blocked to the current retrieval path. These checks carry no rights implication and do not authorize copying. The new service-only bw_core.launch_closure_truth_v38 consolidates current catalog/source/vetted/Public-Watch/queue/rights/hosted counts, strict fresh load certification, seed-transfer state, accessibility state and formal gates into one fail-closed closure contract. Strict load remains clean/fresh from the confirmed 25/25 certification. Wave W remains clean. Seed batch 002 remains 3 ready / 0 copied / 0 validated / 0 registered, so hosted totals remain 62 assets / 14 locally hosted videos. Accessibility remains pending because rendered multi-browser/device validation is still unavailable; signed Android/iOS remain blocked on genuine platform credentials. Final 1.0 remains unpromoted and 1.1/1.2 has not started.
1.0 operational closure monitor v39
Completed ingest run 187 processed 4,864 observations / 7 accepted / 0 rejected / no terminal error, bringing canonical research candidates to 5,937. The new service-only bw_core.launch_operational_closure_v39 reconciles closure truth with the operational-alert ledger and remaining promotion blockers. Two stale alerts were resolved from live evidence: the expired-load warning is closed because strict load certification is currently clean and fresh, and the historical WPWriter deployment-blocked warning is closed after successful live connector reads and writes. Current open operational alerts are 0. This does not weaken launch gating: rendered accessibility remains pending, seed batch 002 remains 3 ready / 0 copied / 0 validated / 0 registered, and signed Android/iOS remain blocked on genuine credentials. The monitor therefore reports promotable_v39=false. Source observability remains 113/114 = 99.12%, Wave W rights integrity remains clean, hosted totals remain 62 assets / 14 locally hosted videos, and Vercel remains paused.
1.0 promotion lock v40
Completed ingest run 188 processed 4,862 observations / 6 accepted / 0 rejected / no terminal error, bringing canonical research candidates to 5,943. BrightWatcher now exposes the service-only bw_core.launch_promotion_lock_v40 and bw_launch_promotion_lock_v40() as the final fail-closed handoff contract between 1.0 readiness and future 1.1/1.2 work. The contract reports the live catalog/source/vetted/Public-Watch/rights/hosted counts, strict load state, accessibility state, seed-transfer state, formal gates and remaining blockers, plus explicit long-range 10K target flags. Current lock state is blocked-accessibility and may_begin_1_1_1_2=false. Source observability remains 113/114 = 99.12%, strict load remains clean/fresh, Wave W remains clean, and seed batch 002 remains 3 ready / 0 copied / 0 validated / 0 registered. No staged media is counted as hosted. Signed Android/iOS remain blocked on genuine credentials. Vercel remains paused.
1.0 evidence freshness guard v41
Completed ingest run 189 processed 4,861 observations / 13 accepted / 0 rejected / no terminal error, bringing canonical research candidates to 5,956. BrightWatcher now adds the service-only bw_core.launch_evidence_freshness_v41 and bw_core.launch_promotion_lock_v41 contracts. Passed gates now carry explicit time-to-live rules: backend health and rights enforcement 2 hours, load testing 24 hours, and public-feed / owned-library evidence 7 days. A passed gate whose evidence exceeds its limit is treated as stale and cannot silently authorize promotion. Current validation reports 0 stale passed gates. Accessibility evidence was reconciled to the latest real browser attempt, evidence #11: desktop and mobile Chromium/Playwright navigation were attempted, but the managed runtime blocked the external page before DOM load, so accessibility remains pending rather than falsely passed. Evidence snapshot #43 and rollback anchor #4 were captured. Wave W remains clean; strict load evidence remains clean/fresh; seed batch 002 remains 3 ready / 0 copied / 0 validated / 0 registered; final 1.0 remains unpromoted and may_begin_1_1_1_2=false.
1.0 rights-cleared private transfer execution v42
BrightWatcher now has an auditable, service-role-only private-transfer control for launch seed batch 002. The three exact NASA candidates remain backed by item-level verified public-domain evidence. A temporary batch-locked Supabase Edge worker attempted real binary transfer into the private brightwatcher-owned-media bucket. The first candidate source returned HTTP 200 with video/mp4 and a 161,455,645-byte content length, but the original buffered transfer did not complete. A subsequent streaming deployment returned HTTP 503 before transfer execution. No Storage object or hosted-media registration was created, so the batch remains truthfully 3 ready / 0 copied / 0 validated / 0 registered and hosted totals remain 62 assets / 14 videos. The temporary worker was immediately disabled. v42 adds service-only transfer diagnostics plus a finalizer that requires an actual private Storage object, matching byte size, SHA-256, candidate and rights-evidence linkage before an item can become validated. Public/anonymous/authenticated execution was also revoked from the seed registration functions. Current catalog truth is 5,976 research candidates. Completed run 191 processed 4,862 observations / 8 accepted / 0 rejected / no terminal error. Final 1.0 remains unpromoted because rendered accessibility and the private seed transfer are incomplete, while Android/iOS signing remains blocked on genuine credentials. Vercel remains paused.
1.0 private seed execution + completion truth v43
BrightWatcher completed the first actual private binary transfer from launch seed batch 002 without weakening Wave W. Candidate 649598 — NASA Explorers Microgravity was authorized only after the database rechecked its exact batch membership and linked verified PD-USGov-NASA rights record with full-video-copy permission. The source binary was fetched, SHA-256 hashed, uploaded to the private brightwatcher-owned-media bucket, checked against the real Storage object and byte size, registered to its exact rights-evidence record, and accepted by the v42 finalizer. The validated object is 12,137,359 bytes with SHA-256 afae6356aa4459d4cde7ce85b6ab3ca9825b2c17da1e532c72afd5c036318da3. Hosted truth therefore advances by exactly one to 63 hosted assets / 15 locally hosted videos. Batch 002 remains deliberately partial at 2 ready / 1 validated / 1 registered private asset; the other two videos are not counted as hosted. The temporary transfer worker was immediately returned to a JWT-protected HTTP 410 disabled stub. v43 also adds a service-only atomic registration contract and a corrected launch_seed_completion_truth_v43 / launch_promotion_lock_v43 so a partially transferred seed can never be mistaken for a complete batch or authorize 1.1/1.2. Completed ingest run 192 processed 4,862 observations / 8 accepted / 0 rejected / no terminal error, bringing research candidates to 5,984. Strict load remains clean/fresh. Rendered accessibility remains pending because the managed Playwright runtime lacks its Chromium binary and cannot download it through the current DNS/network path. Android/iOS signing remains blocked on genuine credentials, launch_promotable_v43=false, and Vercel remains paused.
1.0 large-file private seed transfer v44
Completed ingest run 193 processed 4,861 observations / 19 accepted / 0 rejected / no terminal error, bringing canonical research candidates to 6,003. The second batch-002 item attempted in this wave is candidate 649599 — Apollo 11 Intro 720p, backed by its exact verified PD-USGov-NASA rights record with full-video-copy permission. BrightWatcher first verified the original 94,207,467-byte binary and attempted the normal private Storage route; the corrected video/ogg request was rejected with HTTP 413 before object creation. v44 then implemented Supabase’s supported TUS resumable-upload path using the direct Storage hostname and fixed 6 MB chunks while preserving the exact original binary and rights linkage. TUS creation itself returned 413 Maximum size exceeded, confirming a current project/platform upload ceiling before any binary was stored. The temporary one-item worker was immediately returned to a JWT-protected HTTP 410 disabled stub. No hosted count was changed: batch 002 remains 2 ready / 1 validated / 1 registered private asset, with 63 hosted assets / 15 locally hosted videos. The new service-only launch_seed_transfer_constraints_v44 exposes this blocker explicitly instead of misclassifying it as a rights failure. Current source measurement from run 193 is 109/114 active sources; historical direct reachability evidence is not silently promoted into current automated health evidence. Strict load remains clean/fresh; rendered accessibility remains pending; Android/iOS signing remains blocked on genuine credentials; launch_promotable=false; Vercel remains paused; 1.1/1.2 remains locked.
Wave AO — Source Health Recovery + Continuity Guard
BrightWatcher recovered a real launch-observability regression: current active-source health had slipped to 109/114 measured / 109 healthy / 0 unhealthy / 5 unmeasured. Four sources were freshly rechecked from their exact source URLs — BBC Earth Videos, Epicurious Video, NASA at Home Videos and National Geographic Videos — and new direct-web health evidence was recorded without creating any media-copy rights. Canonical health is now restored to 113/114 measured / 113 healthy / 0 unhealthy / 1 unmeasured / 99.12%; NASA TikTok remains explicitly unmeasured. The new private service-only bw_core.launch_source_health_continuity_v74 is security_invoker and fails the source-health launch condition if unhealthy sources appear or more than one active source is unmeasured. Current catalog truth is 6,556 research candidates, 435 vetted, 435 Public Watch, 424 playable, 37 verified-rights records, 67 hosted assets and 19 locally hosted videos. Rights-copy backlog remains exactly one verified item; no new media copy was claimed. Load remains clean/fresh, rendered accessibility remains pending, Android/iOS signing remains blocked, final 1.0 remains unpromoted, 1.1/1.2 remains locked and Vercel remains paused. Immutable launch snapshot #11 was captured with source hash 44012e943859c6fde9c15e3f120c9d60.
Deployment policy
WordPress via WPWriter remains the live deployment path. Supabase BW Dev remains backend source of truth. Vercel remains paused unless explicitly requested.
