Track 3: read-only source preview (vet a feed before adding)
- feeds.preview_feed(): fetch + score a sample WITHOUT persisting; returns freshness, acceptance rate, cortisol/ragebait/PR averages, and example accepted/rejected items. With an LLM client it also returns topic/flavor mix and the model's (accurate) acceptance view. - CLI 'preview-source URL [--sample] [--classify]'. - API 'GET /api/source-preview?url=&sample=&classify=' with an http(s)-only guard (SSRF note left for go-public hardening). - Site 'Suggest a source' panel with Quick check (heuristic, instant) and Deep check (model, accurate), rendered DOM-safely. - Tests: network-free preview_feed tests via monkeypatched fetch (45 total). - README documents the command, endpoint, and updated roadmap. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -17,6 +17,7 @@ python3 -m goodnews check-llm --base-url http://127.0.0.1:1234/v1 --model gpt-os
|
||||
python3 -m goodnews classify --limit 10 --base-url http://127.0.0.1:1234/v1 --model gpt-oss
|
||||
python3 -m goodnews dedup --base-url http://127.0.0.1:1234/v1
|
||||
python3 -m goodnews check-feeds
|
||||
python3 -m goodnews preview-source https://example.com/feed/ --classify
|
||||
python3 -m goodnews build-brief --date 2026-05-27 --replace
|
||||
python3 -m goodnews show-brief
|
||||
python3 -m goodnews list-recent --limit 10
|
||||
@@ -99,6 +100,7 @@ Endpoints:
|
||||
- `GET /api/feed?topic=&flavor=&limit=&offset=` — ranked, filtered articles
|
||||
- `GET /api/brief?date=&limit=` — a daily brief (latest if no date)
|
||||
- `GET /api/brief-dates` — available brief dates
|
||||
- `GET /api/source-preview?url=&classify=` — read-only scored sample of a feed (vet before adding)
|
||||
- `GET /docs` — interactive OpenAPI documentation
|
||||
|
||||
The ingestion CLI stays pure-stdlib; only the `web` extra pulls in FastAPI/uvicorn,
|
||||
@@ -184,9 +186,11 @@ and site, scheduled `cycle` via systemd, a pytest suite, and device-local Calm F
|
||||
|
||||
Still ahead:
|
||||
|
||||
1. **Supervised source pipeline** — paste a feed URL, preview a scored sample
|
||||
(freshness, acceptance rate, topic/flavor mix, cortisol/ragebait/PR averages,
|
||||
example items), then add to quarantine before it can reach the main feed.
|
||||
1. **Supervised source pipeline** — read-only preview is done (`preview-source` /
|
||||
`/api/source-preview`: freshness, acceptance rate, topic/flavor mix,
|
||||
cortisol/ragebait/PR averages, example items). Still ahead: add a previewed
|
||||
source to *quarantine*, and auto-degrade stale/rejecting feeds (advisory, never
|
||||
auto-blocking).
|
||||
2. **Learned "Less like this" weighting** — replace the interim flavor-pause with
|
||||
real preference down-ranking.
|
||||
3. **Corpus rebalancing** — add calm/feelgood sources (currently science-heavy).
|
||||
|
||||
Reference in New Issue
Block a user