Skip to content

Record what releases shipped in the spam feed - #6

Open
aaskereijAI wants to merge 1 commit into
mainfrom
claude/feed-shipped
Open

aaskereijAI wants to merge 1 commit into
mainfrom
claude/feed-shipped

Conversation

@aaskereijAI

Copy link
Copy Markdown
Collaborator

Feed/spam.json version 2 records what every release shipped as a built-in default, so installs, the settings window and the share tickets all know it from one place.

Why

A streamer whose install started on v1.x still carries that version's defaults (streamboo, boost, cheap, dogehype in keywords, and more). The share dialog only knew the feed and the current defaults, so it offered those old defaults as new finds, and a ticket would have turned them into a pull request. And the feed must never hand a default over: a first pass cannot tell "the streamer deleted it" from "never had it".

What changes

  • Feed/spam.json gets a top-level shipped block: the releases counted (v1.0.1 to v2.0.0) and every plain-text default they shipped, 172 entries. lists and retracted are byte-for-byte what version 1 had, so no install receives anything new from this bump.
  • .github/scripts/submission.py leaves a shipped default out of the submission file and names it in the pull request (a fourth table column). A ticket holding nothing but feed entries and defaults gets a comment saying which is which. Should the block ever be missing, the pull request says defaults were not checked instead of claiming it.
  • Feed/README.md documents the block; Submissions/README.md says defaults are now checked here.

Safe to merge before the next release

No released version reads the feed yet. The development build before this change ignores top-level keys it does not know, so the block needs no new schema. The build that reads it also refuses a malformed block (not an object, a list that is not text, more than 2000 entries per list).

Checked

  • python -m unittest discover -s .github/scripts: 47 tests, OK (5 new). With the shipped check removed, 3 of them fail.
  • Locally (tools not in this repository): check-feed.ps1 against the published version 1, including the spam corpus both ways round; the feed tests (114 checks, including "a default a release shipped is never handed over, even when lists carries it by mistake"); the share-dialog tests; the entry-rule parity between SpamFeedRules and submission.py (76 cases); and the full check-all.ps1.

🤖 Generated with Claude Code

Feed/spam.json version 2 adds a "shipped" block: every plain-text
default that v1.0.1 to v2.0.0 shipped (172 entries), with the releases
counted. Installs never hand one of those over, the settings window
does not offer them for sharing, and a share ticket leaves them out.
"lists" and "retracted" are unchanged, and installs that do not know
the block yet ignore it.

submission.py reads the block: a default in a ticket is left out of
the file and named in the pull request, and a ticket holding nothing
but feed entries and defaults gets a comment saying which is which.
Without the block, the pull request says defaults were not checked.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant