Summary
Add a frontmatter field that allows individual notes to opt out of semantic embeddings. Notes with this field will still be indexed and searchable via full-text search (FTS), but will skip the embedding generation step during sync/indexing.
Motivation
Some notes don't benefit from semantic search — large reference documents, logs, templates, or auto-generated content. Skipping embeddings for these notes:
- Reduces sync time and resource usage (embedding API calls or local model inference)
- Keeps the vector index focused on semantically meaningful content
- Gives users fine-grained control over what gets embedded
Proposed Frontmatter Field
---
title: My Reference Note
embed: false
---
embed: false skips embedding generation. Default behavior (field absent or embed: true) is unchanged — embeddings are generated as usual.
Field name rationale: embed is concise and directly describes what it controls. Alternatives considered: embeddings: false (verbose), skip_embeddings: true (negative framing), searchable: false (ambiguous — FTS still works).
Implementation Notes
- During indexing, check for
embed: false in parsed frontmatter
- Skip the embedding provider call for that entity
- Entity still gets full-text indexed normally
- Existing entities that gain this field on re-index should have their embeddings cleared
- Search behavior: these notes appear in FTS results but not in semantic/vector search results
Test Plan
Summary
Add a frontmatter field that allows individual notes to opt out of semantic embeddings. Notes with this field will still be indexed and searchable via full-text search (FTS), but will skip the embedding generation step during sync/indexing.
Motivation
Some notes don't benefit from semantic search — large reference documents, logs, templates, or auto-generated content. Skipping embeddings for these notes:
Proposed Frontmatter Field
embed: falseskips embedding generation. Default behavior (field absent orembed: true) is unchanged — embeddings are generated as usual.Field name rationale:
embedis concise and directly describes what it controls. Alternatives considered:embeddings: false(verbose),skip_embeddings: true(negative framing),searchable: false(ambiguous — FTS still works).Implementation Notes
embed: falsein parsed frontmatterTest Plan
embed: falseis indexed without embeddingsembed: falseembed: falseembed: falseclears existing embeddingsembed: falsegenerates embeddings