The rules are very weak. It’s simply allows all or any of a set of conditions where the predicates look at aspects of the mail text, and whether it’s starred.
Then you can manually fire off the rule.
Why can’t you have rules based on other mail metadata, such as the presence or absence of a certain label? Why not have a feature where you can trigger rules based on events, like mail incoming, or mail being assigned to a label, or other things?
Why not have instead of Any or All, how about Any of x y z where x, y, z are All of some conditions, like a nested expression?
There are no mail date predicates in rules.
Will these features be added or could this stuff be done via a plugin?
One correction first: rules aren’t manual. Every rule runs automatically on each new message as it arrives (after the body has been downloaded, so Body conditions work). “Process entire inbox” is just the one-off back-fill for mail that was already there.
On what they can match: From, To, Cc, Bcc, Recipient, Reply-to, Subject, Body, Attachment name, Has attachment and Starred, with contains / does not contain / begins with / ends with / equals / regex, combined as “any” or “all”. There’s no condition on an existing label or folder, no date condition, and no nested any-of-all-of groups. Since rules fire the moment a message lands — before it’s had a chance to acquire labels or age — a label condition would mostly be useful for the back-fill case, which is why it hasn’t been a priority. Regex on Subject/From covers a fair amount of the “nested” territory.