The move from :block/type to :block/tags allows for a couple
types of bugs that weren't possible before. Add validations
to ensure built-in entities aren't being accidentally modified
by the UI and that :logseq.class/Page remains simple and a useful
tag for features later. The Page validation is turned off until an
importer bug is fixed
:block/alias and :block/tags are validated as properties and thus no
longer need attribute definitions. This should've been updated with attribute properties refactor.
:block/namespace has not been in db graphs for awhile
an existing tag or property. This made sense when pages were split by
type but it doesn't make sense now that a Tag or Property can be a Page.
The 'New page' that showed up was also buggy as it didn't actually
create a new page. Also fixed page-exists? doing a case sensitive check
when a Page and Tag were in the same tags
Caused some buggy page creation. While [?b :block/tags ?db-ident] for an
individual db-ident, it doesn't work when db-ident is a destructure :in
arg. For that case only integers worked
buggy exceptions for :logseq.class/Tag anywhere :block/tags queries
:logseq.class/Tag is used e.g. validation, page existence and querying.
Perhaps before 89cdf5f9f6940dba48cacd82056ad62253ce46c7, this wasn't
possible because of the way the graph was initialized. Also removed
one parent assertion for previous fix since we didn't need both
assertions to prevent a regression
This wouldn't allow tasks with the same name or even any two blocks have
the same content. See ddabf90263 for the
original fix for more. Also fixed lint and tweaked test
They weren't visible on their Root Page but bigger bug is that their
:logseq.property/parent wasn't storing or querying correctly.
Also changed their parent to Root as they aren't dependent on Page
and no need to make bootstrapping more complex