Record what releases shipped in the spam feed - #6
Open
aaskereijAI wants to merge 1 commit into
Open
aaskereijAI wants to merge 1 commit into
aaskereijAI wants to merge 1 commit into
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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,dogehypeinkeywords, 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.jsongets a top-levelshippedblock: the releases counted (v1.0.1 to v2.0.0) and every plain-text default they shipped, 172 entries.listsandretractedare byte-for-byte what version 1 had, so no install receives anything new from this bump..github/scripts/submission.pyleaves 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.mddocuments the block;Submissions/README.mdsays 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.check-feed.ps1against 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 andsubmission.py(76 cases); and the fullcheck-all.ps1.🤖 Generated with Claude Code