Repository navigation
Conversation
Refreshing the X stats while logged out loaded the X login page with the automation notice already on, which blocks clicks in the browser view, so there was no way to log in and the account was stuck on that screen. Start with the notice off; login() turns it on itself once login succeeds. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Adds an optional filter under "Delete my tweets" and "Delete my retweets" so a delete can be limited to posts containing a word, `@user` or `#hashtag`. - Matching is case-insensitive and on whole words, so "coffee" finds "#coffee" but not "CoffeeBot" with an @ in front. A * stands for the rest of a word, so "coffee*" also finds "CoffeeBot". Anything else is taken literally. - SQLite's LIKE can't express word edges, so the match is a function registered on the account database. The Review count, the live preview on the options page and the delete itself all go through it. - A ticked filter with no text (or only stars) would match every post, so Continue stays disabled until it is filled in or unticked. - More than three * in a filter is rejected. Each one lets the pattern try every split of a word, and five of them against a long word did not finish. - Review lists the filter with the other conditions, and the Review count now reads the settings just saved from the options page. - The filter is marked as a Premium option, like the retweet age filter. That is a product decision and easy to change in xRequiresPremium. - Adds four nullable-safe columns to xAccount (additive migration). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
datboip
force-pushed
the
delete-filter-contains
branch
from
October 17, 2026 21:38
8768500 to
51cf24a
Compare
datboip
marked this pull request as ready for review
October 17, 2026 23:29
This branch has not been deployed
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.
I found Cyd really useful, but I didn't need to delete all my posts, only certain ones, and there was no way to limit a delete to those. So I added it.
Under "Delete my tweets" and "Delete my retweets" there's now an optional "only if they contain …" box. Type a word,
@useror#hashtag, and the delete is limited to posts containing it.coffeefinds#coffeebut not@CoffeeBot. A*stands for the rest of a word, socoffee*also findsCoffeeBot.*is rejected, since a handful of them against a long word made the match effectively hang.xAccount(additive migration), with tests for the matcher, the delete and the options page.The second commit is unrelated: refreshing stats while logged out loaded the X login page with the automation overlay already on, which blocks clicks, so you couldn't log in. Happy to split it into its own PR.
Two decisions for the maintainers
xRequiresPremium). If it should be free, that's a small change.<=, so a tweet with exactly N is deleted.npm run lintand the tests pass locally, except onedatabase.test.tsmigration test that times out when the whole suite runs and passes on its own.(This was written by an LLM.)
🤖 Generated with Claude Code