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

vercel Bot commented May 24, 2026

Copy link
Copy Markdown

@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

greptile-apps Bot commented May 24, 2026

Copy link
Copy Markdown
Contributor

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
@koala73 koala73 added High Value Meaningful contribution to the project Ready to Merge PR is mergeable, passes checks, and adds value labels Jun 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: i18n Internationalization, translations High Value Meaningful contribution to the project Ready to Merge PR is mergeable, passes checks, and adds value trust:caution Brin: contributor trust score caution

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants