feat(phase9): frontend types + persistence wiring for llmTags

TranscriptEntry gains llmTags: string[]; TranscriptRow gains the
storage-shape llmTags: string. ContentTags type added. mapTranscriptRow
hydrates llmTags from the comma-joined column. saveTranscriptMeta
forwards llmTags through to update_transcript_meta_cmd, mirroring the
existing manualTags handling.

buildFrontmatter unions auto + manual + llm tags so exported markdown
surfaces every source in one tags: list.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-25 00:12:20 +01:00
parent 489c066a70
commit 7eb52d97b1
3 changed files with 27 additions and 1 deletions

View File

@@ -90,7 +90,12 @@ export function buildFrontmatter(item: TranscriptEntry | null) {
if (!item) return {};
const auto = deriveAutoTags(item);
const manual = Array.isArray(item.manualTags) ? item.manualTags : [];
const tags = Array.from(new Set([...auto, ...manual.map(normaliseTag)])).filter(Boolean);
const llm = Array.isArray(item.llmTags) ? item.llmTags : [];
const tags = Array.from(new Set([
...auto,
...manual.map(normaliseTag),
...llm.map(normaliseTag),
])).filter(Boolean);
const wordCount = item.text ? item.text.trim().split(/\s+/).filter(Boolean).length : 0;
return {
id: item.id,