You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Tags: add tags[] to the composer with prefix autocomplete #28
Part of #27 — Tags: tagging posts, autocomplete, trending and tag-filtered feeds
Add a tag input to the composer and send tags[] on POST /api/messages.
Wire GET /api/tags/autocomplete for prefix suggestions as the user types (case-insensitive,
literal prefix — do not fuzzy-match client-side and misrepresent the server's semantics).
Debounce, and cancel in-flight requests on each keystroke.
Filed from the parity review of feature/parity-wip @ 14d7795 against interlinedlist.com (OpenAPI /api/openapi.json, 233 paths) and the public help centre.
Implemented in the PR above (branch issue/28-composer-tags). Closing here — review and any follow-up happens on the PR.
Two contract corrections to this issue's assumptions:
GET /api/tags/autocomplete takes q, not prefix — sending prefix returns 400 {"error":"Query parameter 'q' is required"}.
Tags are not hashtag-shaped. Real tags on the live account include "life is short, o brave girl" and "light rail" — spaces and punctuation — so the input deliberately does not split on whitespace or rewrite anything.
The debounce/cancellation requirement was treated as the load-bearing part and mutation-checked: removing the stale-query guard or the job cancellation each fails exactly the tests that cover them.
Tag chips on the card are deliberately inert for now — #29 can attach a click handler to the existing test tag without touching the layout.
Activity
Adron commentedon Sep 16, 2026
Implemented in the PR above (branch
issue/28-composer-tags). Closing here — review and any follow-up happens on the PR.Two contract corrections to this issue's assumptions:
GET /api/tags/autocompletetakesq, notprefix— sendingprefixreturns400 {"error":"Query parameter 'q' is required"}.Tags are not hashtag-shaped. Real tags on the live account include
"life is short, o brave girl"and"light rail"— spaces and punctuation — so the input deliberately does not split on whitespace or rewrite anything.The debounce/cancellation requirement was treated as the load-bearing part and mutation-checked: removing the stale-query guard or the job cancellation each fails exactly the tests that cover them.
Tag chips on the card are deliberately inert for now — #29 can attach a click handler to the existing test tag without touching the layout.
merge: #28 composer tags + autocomplete (PR)