<feed xmlns='http://www.w3.org/2005/Atom'>
<title>fluxrec/cmds/rss.go, branch main</title>
<subtitle>Article recommendations from Miniflux stars</subtitle>
<id>http://git.samsci.com/cgit.cgi/fluxrec/atom?h=main</id>
<link rel='self' href='http://git.samsci.com/cgit.cgi/fluxrec/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://git.samsci.com/cgit.cgi/fluxrec/'/>
<updated>2026-08-30T10:51:41Z</updated>
<entry>
<title>serve: POST /api/poll manual trigger; rename feed to Fluxrecs</title>
<updated>2026-08-30T10:51:41Z</updated>
<author>
<name>Sam Scholten</name>
</author>
<published>2026-08-30T10:51:41Z</published>
<link rel='alternate' type='text/html' href='http://git.samsci.com/cgit.cgi/fluxrec/commit/?id=f84f1c0e26908e2a70777441e1174a26dca10b91'/>
<id>urn:sha1:f84f1c0e26908e2a70777441e1174a26dca10b91</id>
<content type='text'>
/api/poll runs an out-of-schedule poll through the same serialized path
as the scheduler (TryLock, so curls and refreshes can't race the cursor),
is POST-only, and 429s inside a 1-minute cooldown after any run. Response
is JSON: polled/new_run plus the fresh row's stats when entries arrived.
Also rename the RSS channel to Fluxrecs (Miniflux adopts upstream title
changes as the feed name). just poll-now wraps the curl.
</content>
</entry>
<entry>
<title>rss: render score head as HTML paragraph</title>
<updated>2026-08-30T10:40:39Z</updated>
<author>
<name>Sam Scholten</name>
</author>
<published>2026-08-30T10:40:39Z</published>
<link rel='alternate' type='text/html' href='http://git.samsci.com/cgit.cgi/fluxrec/commit/?id=49d9f3e0eaeeab234c3ec903be43b88919d98eff'/>
<id>urn:sha1:49d9f3e0eaeeab234c3ec903be43b88919d98eff</id>
<content type='text'>
Descriptions render as sanitized HTML in readers, where bare newlines
collapse and the feed/score line ran into the article text. Wrap the
headline in &lt;p&gt;&lt;em&gt; so it breaks cleanly and reads as metadata, escaped
on the wire by encoding/xml as description-carried HTML should be.
</content>
</entry>
<entry>
<title>rss: provenance + score calibration in items</title>
<updated>2026-08-30T10:34:38Z</updated>
<author>
<name>Sam Scholten</name>
</author>
<published>2026-08-30T10:34:38Z</published>
<link rel='alternate' type='text/html' href='http://git.samsci.com/cgit.cgi/fluxrec/commit/?id=eff960c54620bfba47d40bc3792ba805dea3dab3'/>
<id>urn:sha1:eff960c54620bfba47d40bc3792ba805dea3dab3</id>
<content type='text'>
Item titles gain a rune-capped source-feed suffix so list views (which
only ever show the channel title) display provenance inline. Item bodies
open with feed, model score, and the batch-wide score median; the median
is computed over every scored entry at poll time and stored on the run
row as a nil-safe pointer, so old rows render without it. /api/status
exposes the median too.
</content>
</entry>
<entry>
<title>fluxrec: personal Miniflux article recommender</title>
<updated>2026-08-30T02:52:39Z</updated>
<author>
<name>Sam Scholten</name>
</author>
<published>2026-08-30T02:50:24Z</published>
<link rel='alternate' type='text/html' href='http://git.samsci.com/cgit.cgi/fluxrec/commit/?id=96ab2fcb2ff442698465389d75390afa91629165'/>
<id>urn:sha1:96ab2fcb2ff442698465389d75390afa91629165</id>
<content type='text'>
</content>
</entry>
</feed>
