Add Didar gap features: lost-reason reports, audit logs, tags, card assignees, and saved-views API.

Ignore Graphify local artifacts and expose new modules in superadmin.
This commit is contained in:
2026-09-26 14:59:48 +03:30
parent 35a618d0af
commit 6463275c3d
30 changed files with 1406 additions and 21 deletions
+10
View File
@@ -0,0 +1,10 @@
/** Normalize free-form tag lists (max 40 unique non-empty tags). */
export function normalizeTags(input?: string[] | null): string[] {
if (!input?.length) return [];
const cleaned = input
.map((t) => String(t ?? '').trim())
.filter(Boolean)
.map((t) => (t.startsWith('#') ? t.slice(1).trim() : t))
.filter(Boolean);
return [...new Set(cleaned)].slice(0, 40);
}