E5 ELI5.Lab Visual explainers
01 / ELI5 LAB FIELD NOTE ACTIVE MECHANISM
01QUESTION 02MECHANISM 03INTUITION
Antifragile Thinking / Visual source noteRead the original repository ↗
Hermes Newswire · model-free attention

A newspaper belt around Hermes.

It takes messy public feeds, checks the delivery route, turns them into plain text, stores them safely, and slides the headlines past your statusbar.

Open exact source ↗ A visual reading of the repository at commit 720fb21
Hermes Newswire repository artwork
One small plugin; three jobs kept separate: receive, normalize, present.
01 · The problem

Fresh headlines are easy. Fresh headlines you can trust are not.

A feed can be malformed, duplicated, slow, oversized, redirected, or hostile. The interface still needs to feel calm when one source breaks.

Imagine a receiving dock

Trucks arrive from many roads. The dock checks the destination, unloads only the expected package, removes dangerous wrapping, and puts a clean label on the shelf.

Truck from a source
→
Feed URL
Dock inspection
→
SSRF gate + IP pin
Clean shelf label
→
Normalized article

What Newswire actually does

The backend owns the risky work. The renderer gets normalized JSON through ctx.rest; it never fetches feeds or renders feed HTML.

Backend
→
Network + SQLite
Renderer
→
Ticker + page
One broken feed
→
Visible source error
02 · The mechanism

Every story follows one narrow path.

The value is the sequence. Each stage removes a different kind of uncertainty before the next stage receives the data.

Newswire data pipelineA feed URL moves through the safety gate, parser, sanitizer, deduplicator, SQLite cache, API routes, and desktop surfaces. Feed URLor site page Safety gatescheme · DNS ·redirect · size · timeapproved IP is pinned ParseRSS · Atom · JSON Sanitizeplain text only Dedupidentity ladder SQLiteWAL cacheETag · unread UIwire + page UNTRUSTED INPUTDURABLE STATE

The renderer is deliberately late in the chain: by the time a headline reaches it, markup and network decisions are already gone.

03 · The hard part

DNS can change its answer. The socket cannot change its mind.

A normal “validate, then let the HTTP client connect” pattern can be tricked by DNS rebinding. Newswire resolves and checks the address set, then pins that exact set into the transport.

Pinned DNS safety modelThe safe path connects only to the validated public IP. A rebinding attempt to localhost is blocked because the transport has no pin for it. news.examplename in the URLTLS + Host stay named Resolve + validatepublic IP set = approved93.184.216.34pin table Dial onlyapproved addressno second DNS lookup REJECT127.0.0.1 / metadata Feedsafe socketthen parse SAFE PATHREBINDING ATTEMPT HAS NOWHERE TO LAND
3max redirects
5 MBbody cap
15stotal timeout
100new rows / refresh
04 · The identity problem

Feeds disagree about what “the same story” means.

Newswire does not trust one identifier. It walks down a ladder, from the feed’s strongest identity signal to a content fingerprint.

Deduplication ladderFive increasingly broad identity tests prevent duplicate article rows. 1 · feed GUIDstrongest 2 · canonical URL 3 · normalized URL 4 · normalized title 5 · content hashbroadest fallback

Every step is useful because real feeds omit, mutate, or decorate different fields.

  • A
    Normalize at the boundaryDates become UTC ISO strings; summaries are capped; markup is removed before the UI sees it.
  • B
    Remember the decisionSQLite keeps source validators, read state, errors, and articles so the next refresh can be cheap and explainable.
  • C
    Bound the worst caseA giant feed can contain many items, but one refresh inserts no more than 100 new rows.
GUID wins first.

When a feed gives a stable GUID, it is the cleanest identity signal. The other checks remain defensive fallbacks.

05 · The quiet resilience

Offline is a state, not a surprise.

The cache keeps the ticker alive. Conditional requests avoid re-downloading unchanged feeds. Errors stick to the source that caused them instead of becoming a global outage.

Newswire refresh state machineA source refreshes, returns a new document or 304, records errors per source, and retains readable cached state. Cached feedarticles remain RefreshETag / Last-Modified 200 changedparse + dedup + store 304 unchangedkeep cache, apply retention Visible wirefresh or cached Per-sourceerror if broken

Never-parsed 304

If a source has zero articles and has never successfully parsed, Newswire drops stale validators and retries. “Not modified” cannot stand in for “we have a usable cache.”

Retention-pruned 304

If the source was parsed before but old rows were pruned, it keeps the fast path and explains that the visible list is empty because of retention.

06 · The surface

The UI is small because the boundaries did the heavy work.

The ticker is a real layout split above the statusbar. The full page adds just enough control to manage attention: search, source grouping, read state, discovery, settings, and preview.

Newswire surfacesThe plugin has a bottom ticker and a full newswire page with latest, sources, and settings. NEWSWIRE ◆ Hacker News: headline · 56m ◆ The Verge: headline · 14m ◆ … /newswire Latestsearch · unread · grouping Sourcesdiscover · OPML · errors Settingsmotion · speed · retention
0routine API keys
0routine model tokens
4feed formats
26render smoke checks
07 · The gotcha

Passing tests is evidence, not a security certificate.

The repository’s tests are deliberately offline fixtures. They are strong evidence for the seams they exercise—especially SSRF, parsing, retention, and registration—but they do not prove every live feed, browser, deployment, or future dependency version.

What was checked here

119 pytest cases passed; `node --check` passed; the ESM render smoke passed 26 checks; Hermes plugin validation returned ok: true with no warnings.

What remains open

Live feed behavior, production desktop layout, catalog admission, network conditions, and a complete independent security audit still need their own evidence.

08 · So what

Make the boring safeguards visible before adding cleverness.

The reusable lesson is an operating-system pattern: constrain the dangerous edges, normalize once, preserve state, and keep the experience useful under partial failure.

01

Gate

Make untrusted inputs pass one explicit policy boundary.

02

Normalize

Convert many formats into one safe internal shape.

03

Remember

Persist validators, state, and errors so recovery is explainable.

04

Isolate

Let one bad dependency fail locally, not globally.

05

Verify

Test adversarial seams and label what remains unproven.

AN IDEA TO TAKE WITH YOU CORE MECHANIC
Real-time AI news synthesis is not a single prompt, but a directed graph verifying events, resolving identities, and tracking certainty scores.
FIRST-PRINCIPLES LABORATORY · EDITION 001 Explore all studies in the Lab ↗