Skip to content

feat: add conversation tags - #17497

Merged
nickvergessen merged 6 commits into
mainfrom
feat/17368/conversation-categories
Apr 29, 2026
Merged

feat: add conversation tags#17497
nickvergessen merged 6 commits into
mainfrom
feat/17368/conversation-categories

Conversation

@Antreesy

@Antreesy Antreesy commented Mar 26, 2026

Copy link
Copy Markdown
Contributor

☑️ Resolves

AI (if applicable)

🖌️ UI Checklist

This feature introduces the ability to categorize and organize conversations using tags.

Users can now:
* View and manage their conversation tags.
* Create, edit, and delete custom tags.
* Assign multiple tags to conversations for organization.
* Reorder tags to customize their view.

🖼️ Screenshots / Screencasts

🏚️ Before 🏡 After
quick access imageimage
new tag 2026-04-29_11h57_06
general list image

🏁 Checklist

  • 🌏 Tested with different browsers / clients:
    • Chromium (Chrome / Edge / Opera / Brave)
    • Firefox
    • Safari
    • Talk Desktop
    • Integrations with Files sidebar and other apps
    • Not risky to browser differences / client
  • 🖌️ Design was reviewed, approved or inspired by the design team
  • ⛑️ Tests are included or not possible
  • 📗 User documentation in https://github.com/nextcloud/documentation/tree/master/user_manual/talk has been updated or is not required

🛠️ API Checklist

The backend now supports managing conversation tags and assigning them to specific rooms. Endpoints Available:

  • Tag Management:

    • GET /ocs/v2.php/apps/spreed/api/v4/tags: Retrieves all conversation tags for the current user.
    • POST /ocs/v2.php/apps/spreed/api/v4/tags: Creates a new conversation tag.
    • PUT /ocs/v2.php/apps/spreed/api/v4/tags/{tagId}: Updates an existing conversation tag.
    • DELETE /ocs/v2.php/apps/spreed/api/v4/tags/{tagId}: Deletes a conversation tag.
    • PUT /ocs/v2.php/apps/spreed/api/v4/tags/reorder: Reorders the conversation tags.
  • Room Tag Assignment:

    • POST /ocs/v2.php/apps/spreed/api/v4/room/{token}/tags: Assigns or unassigns tags to a specific conversation.

🏁 Checklist

  • ⛑️ Tests (unit and/or integration) are included or not possible
  • 📘 API documentation in docs/ has been updated or is not required
  • 🔖 Capability is added or not needed 'conversation-tags'

@Antreesy Antreesy added this to the 🏖️ Next Major (34) milestone Mar 26, 2026
@Antreesy Antreesy self-assigned this Mar 26, 2026
@Antreesy Antreesy added enhancement feature: api 🛠️ OCS API for conversations, chats and participants feature: frontend 🖌️ "Web UI" client feature: conversations 👥 labels Mar 26, 2026
@Antreesy
Antreesy force-pushed the feat/17368/conversation-categories branch from ab0aa9c to 9fb109e Compare March 29, 2026 09:56
@jancborchardt jancborchardt moved this to 🏗️ At engineering in 🖍 Design team Mar 31, 2026
@nickvergessen
nickvergessen force-pushed the feat/17368/conversation-categories branch from e919e37 to bbb1ecd Compare April 22, 2026 15:05
@nickvergessen nickvergessen changed the title feat: add conversation categories feat: add conversation tags Apr 23, 2026
Antreesy and others added 3 commits April 27, 2026 14:44
- allow users to organize conversations with custom tags
- support reordering

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Rikdekker <rik@shalution.nl>
Signed-off-by: Joas Schilling <coding@schilljs.com>
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Signed-off-by: Joas Schilling <coding@schilljs.com>
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
@Antreesy
Antreesy force-pushed the feat/17368/conversation-categories branch from e2bcc99 to d068816 Compare April 27, 2026 12:45
@Antreesy
Antreesy marked this pull request as ready for review April 27, 2026 12:46
@Antreesy
Antreesy requested a review from nickvergessen as a code owner April 27, 2026 12:46
Antreesy and others added 3 commits April 27, 2026 15:11
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Rikdekker <rik@shalution.nl>
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Rikdekker <rik@shalution.nl>
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
@Antreesy
Antreesy force-pushed the feat/17368/conversation-categories branch from d068816 to dda978b Compare April 27, 2026 13:11
@nickvergessen
nickvergessen merged commit 0903b9b into main Apr 29, 2026
77 of 79 checks passed
@nickvergessen
nickvergessen deleted the feat/17368/conversation-categories branch April 29, 2026 10:14
@github-project-automation github-project-automation Bot moved this from 🏗️ At engineering to 🎉 Done in 🖍 Design team Apr 29, 2026
mahibi added a commit to nextcloud/talk-android that referenced this pull request Jul 27, 2026
Add the conversation-tags feature (server: nextcloud/spreed#17497)

  - gated behind the `conversation-tags` capability

  - Data layer: tagIds threaded through Conversation/ConversationModel/
  ConversationEntity, Room migration v25→v26, new ConversationTag JSON
  models, Retrofit endpoints, and ConversationTagsRepository.
  - ConversationTagsViewModel owns tag CRUD/fetch/sheet state; tag
  filtering stays in ConversationsListViewModel.

  - UI: a horizontal FilterChip row above the conversation list, a "Tags"
  entry in the conversation long-press menu, an assign-tags bottom
  sheet, and a manage-tags bottom sheet (create/rename/delete/reorder).
  Only custom tags are assignable/editable, matching the web client's
  handling of the built-in favorites/other grouping tags.

Assisted-by: Claude Code 2.1.205:claude-sonnet-5

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
mahibi added a commit to nextcloud/talk-android that referenced this pull request Aug 6, 2026
Add the conversation-tags feature (server: nextcloud/spreed#17497)

  - gated behind the `conversation-tags` capability

  - Data layer: tagIds threaded through Conversation/ConversationModel/
  ConversationEntity, Room migration v25→v26, new ConversationTag JSON
  models, Retrofit endpoints, and ConversationTagsRepository.
  - ConversationTagsViewModel owns tag CRUD/fetch/sheet state; tag
  filtering stays in ConversationsListViewModel.

  - UI: a horizontal FilterChip row above the conversation list, a "Tags"
  entry in the conversation long-press menu, an assign-tags bottom
  sheet, and a manage-tags bottom sheet (create/rename/delete/reorder).
  Only custom tags are assignable/editable, matching the web client's
  handling of the built-in favorites/other grouping tags.

Assisted-by: Claude Code 2.1.205:claude-sonnet-5

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement feature: api 🛠️ OCS API for conversations, chats and participants feature: conversations 👥 feature: frontend 🖌️ "Web UI" client

Projects

Status: 🎉 Done

Development

Successfully merging this pull request may close these issues.

3 participants