docs(projects): warn that Linear's API rejects emoji for --icon#147
Merged
flipbit03 merged 2 commits intoMay 7, 2026
Merged
Conversation
Linear's GraphQL schema docstring claims project icons accept emoji or icon names, but the upstream server-side validator rejects emoji at runtime with a confusing INVALID_INPUT error. Update --icon help text on both `projects create` and `projects update` to recommend named icons (e.g. "Computer", "Database") and call out the schema/runtime mismatch so users — especially LLM consumers — don't get misled. Add regression tests that assert both help screens contain the warning. Closes #146
Follow-up investigation found Linear's API does accept emoji — but only as colon-wrapped shortcodes (`:repeat:`, `:computer:`), not as raw unicode characters (🔁). Two formats work: - Emoji shortcodes: `:repeat:`, `:rocket:`, `:computer:` - Named icons: `Computer`, `Database` Update --icon help to call out both formats and explicitly warn that raw unicode emoji are rejected. Update regression tests to assert the new wording.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Linear's API actually accepts emoji as
--icon— but only as colon-wrapped shortcodes (:repeat:,:computer:), not as raw unicode characters (🔁). The schema docstring "Can be an emoji or a decorative icon type" is technically truthful; the gap is purely UX — users (and SDKs, and LLMs) reasonably read "emoji" as "the unicode character" and hit a confusingINVALID_INPUTerror.This PR updates the
--iconhelp text onprojects createandprojects updateto document both accepted formats and explicitly warn that raw unicode is rejected:lineark-sdkand the request layer are unchanged — the rejection of raw unicode comes purely from Linear's upstream validator (proven by the rawurllibreproduction in #146).Verified accepted/rejected formats
🔁(raw unicode):repeat:(shortcode):computer:Computer(PascalCase named icon)computer(lowercase)sweat_smile(no colons)sweat-smile(hyphens)Test plan
make checkpassesmake testpassesprojects_create_help_icon_documents_accepted_formatsandprojects_update_help_icon_documents_accepted_formatsassert both:repeat:andComputerexamples plus the "rejects raw unicode emoji" warning appear in--helpoutputprojects_update_help_shows_flagscovers the previously-untested update help surface--helpoutputOut of scope (good follow-ups)
🔁→:repeat:) so the schema docstring's promise becomes literally true at the CLI layer.lineark icons listsubcommand bundling Linear's named-icon catalog.iconfields (teams, custom views, dashboards, documents, project templates) once their accepted formats are verified.Closes #146