Skip to content

feat(feed-directory): last_result demotion and fail-closed catalog v2 - #1250

Merged
gildesmarais merged 3 commits into
mainfrom
0.28.0
Aug 29, 2026
Merged

feat(feed-directory): last_result demotion and fail-closed catalog v2#1250
gildesmarais merged 3 commits into
mainfrom
0.28.0

Conversation

@gildesmarais

Copy link
Copy Markdown
Member

What changed

  • Fail-closed Feed Directory client: accept catalog_version 2 only; require last_result on each catalog row (catalog-api.ts, types.ts).
  • Demote empty/error rows in default sort; ambient last-scrape chrome in the browse UI (filters.ts, last-result.ts, render.ts, CSS).
  • Warn before RSS subscribe, copy, and OPML export when the selection includes failing scrapes; honest filtered-count copy (no “ready-to-use” when empties/errors can be present) — assure fix in 7c94edc.
  • Docs: describe instance last-known scrape hints vs /health (use-the-feed-directory.mdx, CONTEXT.md).

Why

Live browse depends on html2rss-web catalog API v2 exposing per-config last_result. Without fail-closed parsing and UI demotion, cold or failing scrapes look as healthy as successful ones, and bulk OPML/copy overstated readiness.

Risk

  • Depends on html2rss-web shipping catalog API v2 for live browse; older API responses will fail closed (empty/error catalog load), not silently degrade.
  • Ambient badges are last-known instance signals only — not live health.
  • Low UI risk otherwise: demotion and warnings are additive; OPML still exports but warns.

Review map

  1. src/components/feed-directory/adapters/catalog-api.ts — fail-closed v2 + required last_result
  2. src/components/feed-directory/domain/last-result.ts + filters.ts — demotion / failing helpers
  3. src/components/feed-directory/ui/render.ts + app/FeedDirectoryApp.ts — chrome, subscribe/copy/OPML warn paths
  4. Matching *.test.ts — contract coverage for parse, sort, warn copy

Validation

  • make check
  • make build

Support catalog_version 2 only with required last_result; demote empty/error in sort, show ambient indicators, and warn before subscribe on failing rows.
Clarify that Feed Directory scrape hints are instance last-known signals; cold instances show no badge and this is not /health.
Align bulk export with subscribe warnings and drop "ready-to-use" when the catalog can include empty/error last scrapes.
@gildesmarais
gildesmarais merged commit af3b1d9 into main Aug 29, 2026
5 checks passed
@gildesmarais
gildesmarais deleted the 0.28.0 branch August 29, 2026 12:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant