Skip to content

fix(conversation): Skip last message update when adding or removing participants#18657

Open
sudormant wants to merge 49 commits into
mainfrom
bugfix/11882/skipLastMessage
Open

fix(conversation): Skip last message update when adding or removing participants#18657
sudormant wants to merge 49 commits into
mainfrom
bugfix/11882/skipLastMessage

Conversation

@sudormant

Copy link
Copy Markdown
Contributor

☑️ Resolves

  • Fix #…

AI (if applicable)

  • The content of this PR was partly or fully generated using AI

🖌️ UI Checklist

🖼️ Screenshots / Screencasts

🏚️ Before 🏡 After
Screenshot before Screenshot after

🚧 Tasks

  • ...

🏁 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

🚧 Tasks

  • ...

🏁 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

sudormant and others added 14 commits May 13, 2026 00:00
…ctivity flag for event dispatcher from false to true. This should help with chat state changes (users removed / added, moderators promoted / demoted) from triggering a reordering in the room list in Nextcloud Talk.

Signed-off-by: Christian Lorang <madcatcl2@gmx.de>
…tMetadaActivity for Rooms and Threads, similar to lastActivity. This also adds a database migration for the oc_talk_rooms and oc_talk_threads tables as well. Functions are introduced and prepared for later use. The use of the field lastActivity to signal when the last real message in a conversation appeared remains unchanged to keep the API stable. The intended use of this feature is to better distinguish between real messages (lastActivity) to notify and bump conversations in the thread list to the top, and other status / metadata related messages (lastMetadataActivity) like room state and participant list changes that shall get synced and be updated in the clients, but not trigger an activity bump of its conversations in the thread list.

Signed-off-by: Christian Lorang <madcatcl2@gmx.de>
…t will still go by last message activity, after introducing lastMetadataActivity, and not sort by last metadata changes in rooms like participant list updates.

Signed-off-by: Christian Lorang <madcatcl2@gmx.de>
…oms and Threads to use / set lastMetadataActivity instaed of lastActivity where appropriate, i.e. where system messages are signalled and not real chat messages.

Signed-off-by: Christian Lorang <madcatcl2@gmx.de>
…em messages like user added or removed, moderator promoted or demoted trigger an activity bump of the conversation in the list and move it to the top. This fix keeps activity bumps for real chat messages but won't bump the activity anymore for the aforementioned system messages. This fix also incorporates use of the new lastMetadataActivity field to update this information instead of lastActivity accordingly and can be expanded later on to handle other kind of messages differently. No changes client side are needed.

Signed-off-by: Christian Lorang <madcatcl2@gmx.de>
Signed-off-by: Christian Lorang <madcatcl2@gmx.de>
…s only to rooms, remove same handling from threads

Signed-off-by: Christian Lorang <madcatcl2@gmx.de>
…ssageUpdate to be compatible with another pull request making this field private

Signed-off-by: Christian Lorang <madcatcl2@gmx.de>
…e (like room creation) when deciding whether to bump activity

Signed-off-by: Christian Lorang <madcatcl2@gmx.de>
Co-authored-by: Joas Schilling <213943+nickvergessen@users.noreply.github.com>
Signed-off-by: sudormant <madcatcl2@gmx.de>
…e comments

Signed-off-by: Christian Lorang <christian.lorang@nextcloud.com>
…comments

Signed-off-by: Christian Lorang <christian.lorang@nextcloud.com>
@sudormant
sudormant requested a review from nickvergessen July 13, 2026 14:41
@nickvergessen nickvergessen changed the title Bugfix/11882/skip last message - push test, tests still fail, do not merge to main yet fix(conversation): Skip last message update when adding or removing participants Jul 14, 2026
sudormant and others added 13 commits July 14, 2026 10:26
Signed-off-by: Christian Lorang <christian.lorang@nextcloud.com>
…ng a call

The proxying server only accepted 200/400/404 from the host when joining
a federated call. A 403 - returned by the host e.g. when start_calls
restricts who may start calls and the federated participant is not
allowed - was wrapped into a CannotReachRemoteException, so users saw
what looked like a connection error instead of a permission error.

Accept 403 as an expected status code, document it on the endpoint and
regenerate the OpenAPI spec and types.

Assisted-by: ClaudeCode:claude-fable-5
Signed-off-by: Pascal Kienast <info@pascalkienast.de>
… allowed

When the signaling backend join path marks the first participant as
in-call and that participant is not allowed to start the call, the
ForbiddenException thrown by the RestrictStartingCalls listener escaped
uncaught, so the HPB received an unstructured error instead of a proper
backend error. SIP dial-in into a not-yet-started call is one way to
reach this path.

Catch the exception and return a structured 'start_call_not_allowed'
backend error instead.

Assisted-by: ClaudeCode:claude-fable-5
Signed-off-by: Pascal Kienast <info@pascalkienast.de>
…ll" settings

Signed-off-by: Joas Schilling <coding@schilljs.com>
…y doesn't bump thread activity anymore

Signed-off-by: Christian Lorang <christian.lorang@nextcloud.com>
…ermission-error-handling

fix(call): return proper permission errors when starting a call is not allowed
Signed-off-by: Christian Lorang <christian.lorang@nextcloud.com>
…ests

Signed-off-by: Joachim Bauch <bauch@struktur.de>
Signed-off-by: Joas Schilling <coding@schilljs.com>
This allows Talk to switch the mode so the all user ids
arrays are skipped from various requests to allow scaling.

Signed-off-by: Joas Schilling <coding@schilljs.com>
feat(signaling): Don't send all room userids in signaling server requests
… section

Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
jancborchardt and others added 22 commits July 15, 2026 19:04
Assisted-by: ClaudeCode:claude-opus-4-8
Signed-off-by: Jan C. Borchardt <925062+jancborchardt@users.noreply.github.com>
Shorten device menu labels to Microphone, Speaker, Camera
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
…ead-v2

fix(tags): show unread conversations and active calls under collapsed section
Signed-off-by: Christian Lorang <christian.lorang@nextcloud.com>
Signed-off-by: Christian Lorang <christian.lorang@nextcloud.com>
…anges

Signed-off-by: Christian Lorang <christian.lorang@nextcloud.com>
Signed-off-by: Christian Lorang <christian.lorang@nextcloud.com>
…ctivity flag for event dispatcher from false to true. This should help with chat state changes (users removed / added, moderators promoted / demoted) from triggering a reordering in the room list in Nextcloud Talk.

Signed-off-by: Christian Lorang <madcatcl2@gmx.de>
…tMetadaActivity for Rooms and Threads, similar to lastActivity. This also adds a database migration for the oc_talk_rooms and oc_talk_threads tables as well. Functions are introduced and prepared for later use. The use of the field lastActivity to signal when the last real message in a conversation appeared remains unchanged to keep the API stable. The intended use of this feature is to better distinguish between real messages (lastActivity) to notify and bump conversations in the thread list to the top, and other status / metadata related messages (lastMetadataActivity) like room state and participant list changes that shall get synced and be updated in the clients, but not trigger an activity bump of its conversations in the thread list.

Signed-off-by: Christian Lorang <madcatcl2@gmx.de>
…t will still go by last message activity, after introducing lastMetadataActivity, and not sort by last metadata changes in rooms like participant list updates.

Signed-off-by: Christian Lorang <madcatcl2@gmx.de>
…oms and Threads to use / set lastMetadataActivity instaed of lastActivity where appropriate, i.e. where system messages are signalled and not real chat messages.

Signed-off-by: Christian Lorang <madcatcl2@gmx.de>
…em messages like user added or removed, moderator promoted or demoted trigger an activity bump of the conversation in the list and move it to the top. This fix keeps activity bumps for real chat messages but won't bump the activity anymore for the aforementioned system messages. This fix also incorporates use of the new lastMetadataActivity field to update this information instead of lastActivity accordingly and can be expanded later on to handle other kind of messages differently. No changes client side are needed.

Signed-off-by: Christian Lorang <madcatcl2@gmx.de>
Signed-off-by: Christian Lorang <madcatcl2@gmx.de>
…s only to rooms, remove same handling from threads

Signed-off-by: Christian Lorang <madcatcl2@gmx.de>
…ssageUpdate to be compatible with another pull request making this field private

Signed-off-by: Christian Lorang <madcatcl2@gmx.de>
…e (like room creation) when deciding whether to bump activity

Signed-off-by: Christian Lorang <madcatcl2@gmx.de>
Co-authored-by: Joas Schilling <213943+nickvergessen@users.noreply.github.com>
Signed-off-by: sudormant <madcatcl2@gmx.de>
…e comments

Signed-off-by: Christian Lorang <christian.lorang@nextcloud.com>
…comments

Signed-off-by: Christian Lorang <christian.lorang@nextcloud.com>
Signed-off-by: Christian Lorang <christian.lorang@nextcloud.com>
Signed-off-by: Christian Lorang <christian.lorang@nextcloud.com>
@nextcloud-command nextcloud-command added the AI assisted This PR contains AI-assisted commits label Jul 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AI assisted This PR contains AI-assisted commits

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants