Introduces two complementary solutions for the common mistake of filtering
by multiple tags with AND (which always returns zero results):
1. TAGS() macro: explicit opt-in syntax
WHERE TAGS('#project', '#active')
→ path IN (SELECT path FROM tags WHERE tag = '#project'
INTERSECT SELECT path FROM tags WHERE tag = '#active')
2. Auto-detection: transparently rewrites the broken pattern
WHERE tag = '#a' AND tag = '#b'
→ path IN (...INTERSECT...)
Mixed conditions (AND name = 'test') are preserved correctly.
Both use INTERSECT subqueries which are more flexible than an EXISTS
approach (no hardcoded table reference required).
Adds disableTagAutoDetection setting so advanced users can opt out of
the transparent rewrite and handle the SQL themselves.
Docs updated in query-vault-content.md and faq/understanding-tags.md.
* chore: reworking plugin internals into modules
* feat: settings module is now working, added debug module, enabled new api module
* chore: restoring external API
* feat: refactoring project to use proper inversion of control
* feat: plugins can now be loaded in any order
* chore: final file migration, all typescript is in modules now
* chore: fixing dependencies of cellParser
* feat: csv and json views are only registered when they are not colliding with other plugins
* feat: fixed library behaviour on canvas
* feat: added ability to hide columns from csv files
* feat: adding global tables support (wip)
* feat: global tables full implementation
* feat: sqlite databases can now be previewed in explorer
* feat: improved explorer view
* feat: highlighting code in the copy code modal
* feat: advanced interactive schema visualiser
* chore: reworking plugin internals into modules
* feat: settings module is now working, added debug module, enabled new api module
* chore: restoring external API
* feat: refactoring project to use proper inversion of control
* feat: plugins can now be loaded in any order
* chore: final file migration, all typescript is in modules now
* chore: fixing dependencies of cellParser
* feat: csv and json views are only registered when they are not colliding with other plugins
* feat: fixed library behaviour on canvas
* feat: added ability to hide columns from csv files
* feat: adding global tables support (wip)
* feat: global tables full implementation
* feat: sqlite databases can now be previewed in explorer
* feat: improved explorer view
* feat: highlighting code in the copy code modal
* chore: fixing typechecks
* chore: adding missing changeset
* chore: reworking plugin internals into modules
* feat: settings module is now working, added debug module, enabled new api module
* chore: restoring external API
* feat: refactoring project to use proper inversion of control
* feat: plugins can now be loaded in any order
* chore: final file migration, all typescript is in modules now
* chore: fixing dependencies of cellParser
* feat: csv and json views are only registered when they are not colliding with other plugins
* feat: fixed library behaviour on canvas
* feat: added ability to hide columns from csv files
* feat: adding global tables support (wip)
* feat: global tables full implementation
* feat: added changeset
* chore: fixing typechecks
* chore: reworking plugin internals into modules
* feat: settings module is now working, added debug module, enabled new api module
* chore: restoring external API
* feat: refactoring project to use proper inversion of control
* feat: plugins can now be loaded in any order
* chore: final file migration, all typescript is in modules now
* chore: fixing dependencies of cellParser
* feat: csv and json views are only registered when they are not colliding with other plugins
* feat: fixed library behaviour on canvas
* feat: added ability to hide columns from csv files
* chore: reworking plugin internals into modules
* feat: settings module is now working, added debug module, enabled new api module
* chore: restoring external API
* feat: refactoring project to use proper inversion of control
* feat: plugins can now be loaded in any order
* chore: final file migration, all typescript is in modules now
* chore: fixing dependencies of cellParser
* feat: csv and json views are only registered when they are not colliding with other plugins
* feat: fixed library behaviour on canvas