* feat: add TAGS() macro and auto-detection for multi-tag AND queries
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: adding changeset
* feat: expose task status symbol in tasks table
Adds a 'status' column to the tasks table that contains the raw
checkbox character (e.g. ' ', 'x', '-', '/'). This allows querying
by specific task states beyond just completed/incomplete.
* feat: adding tasks statuses support
* fix: restore syntax highlighting inside Obsidian callouts
The callout wrapper adds extra indentation/prefix characters that
shifted the document offsets, causing the editor extension to miss
SQLSeal codeblocks. Updated range detection to account for callout
context so highlighting works correctly inside collapsed and expanded
callouts.
* chore: refactoring code to reuse the same function in tests and app
* feat: WIP. Proof of concept of using sqlite-wasm
* chore: few experiments with kysely
* chore: poc of using idb with modern version of sqlite
* feat: reworking project to use wa-sqlite
* feat: making database queries work too
* infra: refactoring database connection and cleaning dependencies
* fix: fixing issue with tests
* chore: adding missing packages
* chore: underlying engine updated to wa-sqlite
* 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