Adds `tagFilter: string | null` and `setTagFilter` to the inbox store, plus
an extracted pure `selectFilteredNotes` selector so unit tests can import it
under vitest's `node` environment without dragging `api.ts` (which touches
`window.inkling` at module load).
Tests cover four cases: null filter passes through, single-tag match,
no-match empty result, and any-tag-matches semantics.
F2 dogfood feedback step 1/3.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>