extract.go now reads `tier:` and `topic:` from YAML frontmatter, with a path-based fallback when frontmatter is absent (the pre-M3 state on every existing entry): knowledge/* → tier=knowledge notes/* → tier=note wiki/** → tier=note (sources + concepts + entities are I-level) inbox/**, raw/**, sessions/**, clips/** → tier=inbox Frontmatter wins when present — covers the M3-migrated case where an entry's path may not match the tier the author chose for it. UpsertEntity persists both columns. M1's schema already has them. Backfill on next pod start populates tier for the whole corpus without any file moves; M3 will follow up with the actual layout migration and explicit frontmatter writes.
7.0 KiB
7.0 KiB