Planning
- Milestone: Backlog (unassigned)
- Priority: P2
- Size: L
- Estimate: 5 SP
Goal
GIF search slash command with Discord-style picker: user types
/gif <query> (alias /giphy optional if provider allows), browses
results, sends selected GIF as m.image.
Background — provider & naming
- Discord exposes
/gif and /tenor (both search animated GIFs on the web).
- Historical
/giphy branding may not be available for commercial/client use;
verify Giphy/Tenor/Klipy Terms of Service before integration (API key,
attribution, caching, NSFW policy).
- Spike deliverable: short note in issue/PR on chosen provider + legal constraints.
Scope
Spike (required before implementation)
Implementation
Out of scope (v1)
- GIF favorites / recent searches persistence
- Inline GIF without picker (auto-send first result)
Branch
feature/slash-command-gif-picker
Acceptance Criteria
Test Checklist
Blocked by
Epic
Sub-issue of #109.
Planning
Goal
GIF search slash command with Discord-style picker: user types
/gif <query>(alias/giphyoptional if provider allows), browsesresults, sends selected GIF as
m.image.Background — provider & naming
/gifand/tenor(both search animated GIFs on the web)./giphybranding may not be available for commercial/client use;verify Giphy/Tenor/Klipy Terms of Service before integration (API key,
attribution, caching, NSFW policy).
Scope
Spike (required before implementation)
precedent, NSFW filtering options.
NUXT_PUBLIC_*or server proxy).Implementation
/gifcommand on framework (Feature: Slash-command framework in composer #110) with<query>argm.image(GIF mimetype); reuse existing image send path/tenoralias pointing to same backend if we use TenorOut of scope (v1)
Branch
feature/slash-command-gif-pickerAcceptance Criteria
/gif catsopens picker with relevant results; click sends GIF to room.Test Checklist
Blocked by
Epic
Sub-issue of #109.