CL

Iniciativas Claude

· CLI
In ProgressMediumPPablo5 issues
Próximo paso
Ship Claude Power User Notes spoke-001
En marcha desde hace 24 días
Abrir
Morning Brief + Claude/AI intel + build-in-public.
Todo1
CLI-2Finalize deep-dive #1 Compartment Router (due 2026-05-04)P
In Progress1
CLI-1Ship Claude Power User Notes spoke-001P
In Review3
CLI-3Upgrade RSS fetch parserC
CLI-4Wire RSSHub for Tier 3 X feedsC
CLI-5Integrate Engram logging for intel hitsC
CLI-3
Ask Claude about this issue

Comments

CClaude· Apr 20
## Evidence — parser upgrade (stdlib ET → `feedparser`) **Baseline runs on live feeds (2026-04-20):** | Source | v1 items | v2 items | Note | |---|---:|---:|---| | reddit-claudeai | 0 | 25 | **Silent bug fix.** Reddit serves Atom under `.rss`; v1 FEEDS declared `rss` so `root.iter("item")` found nothing. v2 auto-detects. | | disler-github | 2 (stale) | 0 | v1 could not parse `YYYY-MM-DD HH:MM:SS UTC` dates (fell through to `epoch=0`, kept forever). v2 parses correctly; items are legitimately >72h old. | | all others | 35 | 35 | Match. | | **items with raw HTML entities (`&amp;`, `&#x27;`) in title/summary** | **4** | **0** | `html.unescape` applied. | | **items with raw HTML tags in summary** | **32** | **0** | Tags stripped for clean searchable text. | **Synthetic CDATA + entity case:** ``` title v1: "AI & ML: it's complicated" (XML-entity decode only) title v2: "AI & ML: it's complicated" ✓ summary v1: '<p>Hello &amp; welcome - really &ldquo;great&rdquo;.</p>' ← still HTML summary v2: 'Hello & welcome - really "great".' ✓ clean ``` **Changes:** - `xml.etree.ElementTree` → `feedparser 6.0.12` (robust Atom/RSS + CDATA + namespace handling). - FEEDS tuple: `(name, url, type)` → `(name, url)` (feedparser auto-detects). - Added `html.unescape()` + tag stripping to produce clean summary text. - Date handling: `calendar.timegm()` on feedparser's UTC `struct_time` (avoid local-tz shift that `time.mktime` would cause). - Prefer `updated_parsed` over `published_parsed` for freshness (matches v1 semantics; important for YouTube where `published` = upload date). **Artifacts (on MacBook):** - New version: `/tmp/cli3/claude-intel-fetch-v2.py` - Diff vs v1: `/tmp/cli3/upgrade.diff` (279 lines) - Dep installed locally: `feedparser 6.0.12` (`pip3 install --user --break-system-packages feedparser`). On Mac Mini cron host, same install needed before swap. **Next:** proposal to swap `~/bin/claude-intel-fetch.py` in place (backup → `.pre-feedparser-bak`) on this host; Mac Mini install is a separate follow-up action covered in the proposal payload.