Found while feeding the indexer pathological content on 2026-08-06. Minor; not fixed.
Nothing bounds how many rows one note can add to tags, links or tasks. A note made entirely of #t0 #t1 … produced 5,000 tag rows, and indexed in 43ms — so speed is not the concern.
Size is. The only ceiling is MAX_NOTE_BYTES (10 MB), which at ~6 bytes per tag allows on the order of a million rows from a single file, and a vault syncs from devices the operator may not fully control.
Not urgent: it costs index size rather than availability, PRAGMA optimize and the rebuild path handle the rest, and a real note does not look like this. Worth a cap — a few thousand per note per kind, with the excess dropped rather than the note refused — if index growth ever becomes a complaint. Related to #3.
Current behaviour is asserted in hostile-content.test.ts, so a cap added later changes a test on purpose.
Found while feeding the indexer pathological content on 2026-08-06. Minor; not fixed.
Nothing bounds how many rows one note can add to
tags,linksortasks. A note made entirely of#t0 #t1 …produced 5,000 tag rows, and indexed in 43ms — so speed is not the concern.Size is. The only ceiling is
MAX_NOTE_BYTES(10 MB), which at ~6 bytes per tag allows on the order of a million rows from a single file, and a vault syncs from devices the operator may not fully control.Not urgent: it costs index size rather than availability,
PRAGMA optimizeand the rebuild path handle the rest, and a real note does not look like this. Worth a cap — a few thousand per note per kind, with the excess dropped rather than the note refused — if index growth ever becomes a complaint. Related to #3.Current behaviour is asserted in
hostile-content.test.ts, so a cap added later changes a test on purpose.