A UI Opinion:
If your app has a tag-centric capability, the default token, i.e. w/o marker characters, should be the tag, not the string literal. The string literal should require quotation marks.
To search for tagged [GeePaw] books that are not tagged [read], I should be able to type:
geepaw and not read
In Calibre, I am required to type:
tags:"=GeePaw" not tags:"=read"
To quote my late father, "That really gripes my ass."
@GeePawHill Can the equals symbol be replaced with other symbols for more complex comparisons? That’s the only reason I can think of to force inclusion of it.
That said, while far from perfect, I’ve thrown money at that lone developer who maintains Calibre, since it’s the best open source option we have.