Skip to content

feat(feeds): add Romanian (ro) locale with mainstream + investigative sources#3883

Open
zionappp-ui wants to merge 1 commit into
koala73:mainfrom
zionappp-ui:feat/ro-locale
Open

feat(feeds): add Romanian (ro) locale with mainstream + investigative sources#3883
zionappp-ui wants to merge 1 commit into
koala73:mainfrom
zionappp-ui:feat/ro-locale

Conversation

@zionappp-ui
Copy link
Copy Markdown
Contributor

Summary

Adds 7 Romanian-language news sources covering public broadcasting, quality journalism, business reporting, and investigative outlets.

New feeds

Name URL Type
Digi24 https://www.digi24.ro/rss direct RSS
G4Media https://www.g4media.ro/feed direct RSS
HotNews https://hotnews.ro/feed direct RSS
Recorder https://recorder.ro/feed/ direct RSS
Ziarul Financiar https://www.zf.ro/rss/ direct RSS
Agerpres https://www.agerpres.ro/rss/stiri direct RSS
Rise Project https://www.riseproject.ro/feed/ direct RSS

All feed URLs probed and verified (≥1 item returned).

Files changed

  • src/config/feeds.ts — SOURCE_TYPES entries + feed array entries (lang: 'ro')
  • server/worldmonitor/news/v1/_feeds.ts — server-side mirror (all direct RSS, no gnLocale needed)
  • shared/rss-allowed-domains.json — 7 new domains
  • scripts/shared/rss-allowed-domains.json — byte-identical copy
  • api/_rss-allowed-domains.js — edge-compatible copy
  • vite.config.ts — proxy allowlist
  • shared/source-tiers.json — 7 entries at tier 2
  • scripts/shared/source-tiers.json — byte-identical copy

All 4 allowlist files and both source-tiers files are kept in parity (verified with diff).

🤖 Generated with Claude Code

@vercel
Copy link
Copy Markdown

vercel Bot commented May 24, 2026

@zionappp-ui is attempting to deploy a commit to the World Monitor Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions github-actions Bot added the trust:caution Brin: contributor trust score caution label May 24, 2026
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 24, 2026

Greptile Summary

Adds 7 Romanian-language RSS feeds (Digi24, G4Media, HotNews, Recorder, Ziarul Financiar, Agerpres, Rise Project) across all required configuration files, with consistent source-type and tier-2 assignments.

  • All four RSS allowlist copies (shared/, scripts/shared/, api/, vite.config.ts) and both source-tiers files are updated in lockstep, matching the parity invariant enforced by existing tests.
  • Feeds are wired in both the client-side (src/config/feeds.ts) and server-side (server/worldmonitor/news/v1/_feeds.ts) europe blocks using direct RSS URLs; the ro i18n locale and translation file were already present, so no i18n changes are needed.

Confidence Score: 5/5

Safe to merge; all required allowlist and config files are updated in consistent lockstep with no logic changes.

The change is purely additive data configuration: new feed entries, domain allowlist extensions, and source-tier assignments. All four allowlist copies are byte-identical where required, the source-tiers mirrors match, and the ro locale infrastructure already existed. The isAllowedDomain helper's www-normalization logic covers potential www-redirect scenarios for bare-domain entries like hotnews.ro and recorder.ro at the Edge layer, and the Vite dev proxy uses redirect: follow so www-redirects are transparent there too.

No files require special attention.

Important Files Changed

Filename Overview
src/config/feeds.ts Adds 7 Romanian sources to SOURCE_TYPES and FULL_FEEDS europe block; source type classifications are consistent with the existing taxonomy (wire for Agerpres, market for Ziarul Financiar, mainstream for the rest).
server/worldmonitor/news/v1/_feeds.ts Server-side mirror of the Romanian feeds added to the full.europe array using direct RSS URLs (no gnLocale needed); matches the client-side feed list exactly.
api/_rss-allowed-domains.js Edge-compatible JS copy of the allowlist updated with all 7 new .ro domains, consistent with shared/rss-allowed-domains.json.
shared/rss-allowed-domains.json Canonical JSON allowlist extended with 7 Romanian domains; byte-identical to scripts/shared/rss-allowed-domains.json (parity enforced by tests).
shared/source-tiers.json All 7 Romanian sources added at tier 2; byte-identical to scripts/shared/source-tiers.json.
vite.config.ts Dev proxy allowlist updated with 7 .ro domains; initial-hostname exact-match check applies before redirect:follow, so www-variant redirects are handled transparently.
scripts/shared/rss-allowed-domains.json Mirror of shared/rss-allowed-domains.json; diff confirms byte-identical to canonical.
scripts/shared/source-tiers.json Mirror of shared/source-tiers.json; diff confirms byte-identical to canonical.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    Client["Browser / SPA\n(src/config/feeds.ts)"] -->|rss proxy URL| ViteProxy["Vite dev proxy\n(vite.config.ts)"]
    Client -->|production| EdgeFn["Vercel Edge Function\n(api/rss-proxy.js)"]
    EdgeFn -->|domain check| AllowList["api/_rss-allowed-domains.js\n+ _rss-allowed-domain-match.js\n(www-normalized)"]
    EdgeFn -->|direct fetch| RO["Romanian RSS endpoints\nDigi24 · G4Media · HotNews\nRecorder · ZF · Agerpres · Rise Project"]
    EdgeFn -->|fallback| Railway["Railway relay"]
    Railway --> RO
    ServerFeeds["server/worldmonitor/news/v1/_feeds.ts\n(VARIANT_FEEDS.full.europe)"] --> RO
    AllowList -.->|source of truth| SharedJSON["shared/rss-allowed-domains.json\n= scripts/shared/rss-allowed-domains.json"]
    SourceTiers["shared/source-tiers.json\n(tier 2 x 7)\n= scripts/shared/source-tiers.json"] -.->|importance scoring| ImportanceScorer["list-feed-digest.ts\n+ ais-relay.cjs"]
Loading

Reviews (1): Last reviewed commit: "feat(locale): add Romanian (RO) news sou..." | Re-trigger Greptile

Adds 7 Romanian news feeds to the Europe section:
- Mainstream: Digi24, G4Media, HotNews, Recorder
- Wire: Agerpres
- Market: Ziarul Financiar
- Investigative: Rise Project

All sources use direct RSS (no Google News fallback needed).
Adds domain allowlist entries to all 4 mirrors and source-tier
entries at tier 2. ro locale and offline.html entry already exist
in upstream.
@zionappp-ui
Copy link
Copy Markdown
Contributor Author

Fixed: Recorder and Rise Project reclassified to 'intel' in SOURCE_TYPES — both are investigative journalism outlets, not mainstream news.

@koala73 koala73 added the area: i18n Internationalization, translations label May 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: i18n Internationalization, translations trust:caution Brin: contributor trust score caution

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants