Task 7c29d925 (Feature e0855415), built on a12451b.
Adds a Font Awesome group and an emoji input to the definition edit sheet's icon picker alongside the curated Lucide set; each choice stores the exact namespaced key (lucide:/fa:/emoji:) in the create/edit body; an existing namespaced or legacy bare icon pre-fills the correct selection; the definition list renders lucide, fa and emoji and falls back to the generic task glyph for unknown/empty. Invalid emoji input is blocked with the same 1-8 code point rule as the registry/backend.
Evidence at 7f2f903: cd admin && npm test = 265 passed; cd admin && npm run build ok; TZ=UTC uv run pytest -q = 2072 passed. No CDN/remote URL; frontend/, core/ and api/ untouched.
Task 7c29d925 (Feature e0855415), built on a12451b.
Adds a Font Awesome group and an emoji input to the definition edit sheet's icon picker alongside the curated Lucide set; each choice stores the exact namespaced key (lucide:/fa:/emoji:) in the create/edit body; an existing namespaced or legacy bare icon pre-fills the correct selection; the definition list renders lucide, fa and emoji and falls back to the generic task glyph for unknown/empty. Invalid emoji input is blocked with the same 1-8 code point rule as the registry/backend.
Evidence at 7f2f903: cd admin && npm test = 265 passed; cd admin && npm run build ok; TZ=UTC uv run pytest -q = 2072 passed. No CDN/remote URL; frontend/, core/ and api/ untouched.
The edit sheet offers the curated Font Awesome subset and an emoji field
next to the Lucide grid, storing lucide:<name>, fa:<name> or
emoji:<grapheme>; an invalid emoji blocks the save. Existing fa/emoji/
legacy icons prefill the matching choice, and the definition list draws
any resolveIcon result (glyph, emoji text, or the fallback task glyph).
Task 7c29d925-3ec9-4b04-8bf1-453896f2b4f5
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The backend rejects whitespace in emoji keys, so an entry like " 🐶 "
must fail the picker's validation rather than be saved as emoji:🐶.
Only an exactly empty field clears the icon; whitespace-only text now
shows the invalid-emoji error.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Task 7c29d925 (Feature e0855415), built on
a12451b.Adds a Font Awesome group and an emoji input to the definition edit sheet's icon picker alongside the curated Lucide set; each choice stores the exact namespaced key (lucide:/fa:/emoji:) in the create/edit body; an existing namespaced or legacy bare icon pre-fills the correct selection; the definition list renders lucide, fa and emoji and falls back to the generic task glyph for unknown/empty. Invalid emoji input is blocked with the same 1-8 code point rule as the registry/backend.
Evidence at
7f2f903: cd admin && npm test = 265 passed; cd admin && npm run build ok; TZ=UTC uv run pytest -q = 2072 passed. No CDN/remote URL; frontend/, core/ and api/ untouched.Independent Codex gpt-5.6-terra review completed for this exact commit.