Firstp1ck / Firstp1ck/Pacsea

[FEATURE] Distro news (multi-distro)

Open
#131 0 comments 0 reactions 0 assignees View on GitHub
enhancement Future-Consideration
Dominant language
Rust
Stars
296
Forks
11
PR merge metrics
No merged PRs in 30d

Description

**Summary:** Add a compact in-app news view for EndeavourOS, Manjaro, Garuda, and CachyOS, with filtering and a clear split between critical system updates (kernel/systemd/core) and general package news. Related planning: `dev/IMPROVEMENTS/FEATURE_PRIORITY.md`, `dev/IMPROVEMENTS/news_feed_implementation.md`, `dev/WORKFLOWS/news_fetching_workflow.md`.

## Problem / motivation

Arch-based derivatives publish important announcements; users want them inside Pacsea with filtering and severity hints.

## Goals

- Detect or let user select **distro flavor**; fetch appropriate feed(s) (RSS/Atom/JSON per distro).
- Present headlines + body in a reader panel; optional open-in-browser keybind.
- **Classification:** tag items affecting kernel/systemd/core as “system critical” when detectable from title/category/package lists; fallback heuristic with manual override not required in v1.

## Recommended implementation

### 1) Reuse existing news plumbing

- Audit current news modules and HTTP/caching; extend with multi-source registry keyed by `DistroId`.

### 2) Sources

- Maintain a small table: `EndeavourOS → URL`, `Manjaro → URL`, etc., with versioned defaults; allow user override URLs in config for resilience.

### 3) Classification pipeline

- **Rules:** keyword lists (kernel, systemd, glibc, openssl, etc.) + optional RSS categories.
- **Package correlation (stretch):** if news references CVE or package name, cross-link to installed version if data available.

### 4) UX

- Filter chips: All | Critical | Pacman | AUR; search within cached items.
- Background refresh with TTL; show last updated timestamp.

## Acceptance criteria

- Works offline with last cached fetch; shows stale indicator.
- Failing feed: per-source error, others still load.
- Respects `--dry-run` for any write (if caching to disk is considered mutating, document behavior consistent with app norms).

## Testing

- Unit tests with recorded HTTP fixtures; no live network in CI.
- Parser tests for each feed shape you support.

## Risks

- Feed format drift; keep parser tolerant and log parse failures.

---

Tracking: `dev/ROADMAP/OTHER_distro_news.md`

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.