Skip to content

Conversation

@matusdrobuliak66
Copy link
Collaborator

@matusdrobuliak66 matusdrobuliak66 commented Jul 29, 2025

What do these changes do?

Related issue/s

How to test

Dev-ops

matusdrobuliak66 and others added 2 commits July 29, 2025 17:11
Introduces client session ID to APIs and project update notifications,
enabling session-aware updates and improved multi-tab/user experience.

Allows the frontend to distinguish between updates from different
user sessions, preventing redundant UI refreshes for the originating
session when optimistic updates are used.

Relates to collaborative editing and real-time notification enhancements.
@matusdrobuliak66 matusdrobuliak66 self-assigned this Jul 29, 2025
@matusdrobuliak66 matusdrobuliak66 added this to the Engage milestone Jul 29, 2025
@matusdrobuliak66 matusdrobuliak66 added the a:webserver webserver's codebase. Assigning the area is particularly useful for bugs label Jul 29, 2025
@codecov
Copy link

codecov bot commented Jul 29, 2025

Codecov Report

❌ Patch coverage is 91.37931% with 10 lines in your changes missing coverage. Please review.
✅ Project coverage is 88.12%. Comparing base (5f20287) to head (e4b4a0b).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #8176      +/-   ##
==========================================
+ Coverage   88.04%   88.12%   +0.07%     
==========================================
  Files        1900     1687     -213     
  Lines       73074    68044    -5030     
  Branches     1280      952     -328     
==========================================
- Hits        64339    59962    -4377     
+ Misses       8355     7790     -565     
+ Partials      380      292      -88     
Flag Coverage Δ
integrationtests 64.12% <54.38%> (+0.04%) ⬆️
unittests 86.65% <87.93%> (-0.04%) ⬇️
Components Coverage Δ
pkg_aws_library ∅ <ø> (∅)
pkg_celery_library ∅ <ø> (∅)
pkg_dask_task_models_library ∅ <ø> (∅)
pkg_models_library 93.12% <100.00%> (+<0.01%) ⬆️
pkg_notifications_library ∅ <ø> (∅)
pkg_postgres_database ∅ <ø> (∅)
pkg_service_integration 70.19% <ø> (ø)
pkg_service_library 71.37% <100.00%> (+<0.01%) ⬆️
pkg_settings_library ∅ <ø> (∅)
pkg_simcore_sdk 84.99% <ø> (-0.06%) ⬇️
agent 93.81% <ø> (ø)
api_server 93.08% <ø> (ø)
autoscaling 95.88% <ø> (ø)
catalog 92.34% <ø> (ø)
clusters_keeper 99.13% <ø> (ø)
dask_sidecar 92.37% <ø> (ø)
datcore_adapter 97.94% <ø> (ø)
director 76.23% <ø> (ø)
director_v2 91.01% <ø> (+0.08%) ⬆️
dynamic_scheduler 96.27% <ø> (ø)
dynamic_sidecar 90.08% <ø> (ø)
efs_guardian 89.76% <ø> (ø)
invitations 91.44% <ø> (ø)
payments 92.60% <ø> (ø)
resource_usage_tracker 92.60% <ø> (ø)
storage 86.77% <ø> (+0.29%) ⬆️
webclient ∅ <ø> (∅)
webserver 88.13% <91.22%> (+0.04%) ⬆️

Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 5f20287...e4b4a0b. Read the comment docs.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

matusdrobuliak66 and others added 5 commits July 29, 2025 17:17
Cleans up obsolete code related to updating frontend node outputs,
streamlining the module and reducing maintenance overhead. This helps
avoid confusion and ensures only relevant logic is retained.
Streamlines the workflow for updating project documents by separating
workbench updates from document and version increment logic. Improves
atomicity and clarity in concurrent operations, ensuring that project
documents and their versions remain consistent. Enhances maintainability
and reduces potential race conditions during project modifications.
@matusdrobuliak66 matusdrobuliak66 changed the title 🎨 Adds client session ID propagation for user actions 🎨 Adds client session ID to ProjectDocument + Leave Project Room Jul 30, 2025
@matusdrobuliak66 matusdrobuliak66 marked this pull request as ready for review July 30, 2025 07:54
Copy link
Member

@sanderegg sanderegg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand this is to not notify the user session that triggered the change.
Would it not be more efficient to not notify that user session at all instead of sending everything that will just be dumped by this user session? e.g. excluding the sid in the room?
see https://python-socketio.readthedocs.io/en/stable/server.html#rooms
and in particular check the skip_sid argument.

@matusdrobuliak66
Copy link
Collaborator Author

matusdrobuliak66 commented Jul 30, 2025

I understand this is to not notify the user session that triggered the change. Would it not be more efficient to not notify that user session at all instead of sending everything that will just be dumped by this user session? e.g. excluding the sid in the room? see https://python-socketio.readthedocs.io/en/stable/server.html#rooms and in particular check the skip_sid argument.

@sanderegg Maybe yes, maybe no. I'm providing this information to the client, and he can do whatever he wants with it. Someone already raised this question in a previous PR regarding the user group ID (at that time, we didn’t realize that a user could have multiple tabs open).
If I were to act on it, the user would stop receiving messages, which would be incorrect, because we do want the user to receive messages - but for now, frontend is not interested only in the specific user tab. (Ex. maybe frontend client might use this information to acknowledge that his optimistic UI is as expected)
Since this is still under active development, I wouldn't over optimize just yet.

Copy link
Member

@pcrespov pcrespov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thx! looks very good. Left some suggestions and questions. thx

@sonarqubecloud
Copy link

Copy link
Contributor

@GitHK GitHK left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, some minor things

@matusdrobuliak66 matusdrobuliak66 added the 🤖-automerge marks PR as ready to be merged for Mergify label Jul 30, 2025
@matusdrobuliak66 matusdrobuliak66 enabled auto-merge (squash) July 30, 2025 14:19
@matusdrobuliak66
Copy link
Collaborator Author

@mergify queue

@mergify
Copy link
Contributor

mergify bot commented Jul 30, 2025

queue

🟠 Waiting for conditions to match

  • -closed [📌 queue requirement]
  • -conflict [📌 queue requirement]
  • -draft [📌 queue requirement]
  • any of: [📌 queue -> configuration change requirements]
    • -mergify-configuration-changed
    • check-success = Configuration changed
  • any of: [🔀 queue conditions]
    • all of: [📌 queue conditions of queue default]
      • #approved-reviews-by >= 2 [🛡 GitHub branch protection]
      • #approved-reviews-by>=2
      • #changes-requested-reviews-by = 0 [🛡 GitHub branch protection]
      • #changes-requested-reviews-by=0
      • #review-threads-unresolved = 0 [🛡 GitHub branch protection]
      • #review-threads-unresolved=0
      • -conflict
      • -draft
      • base=master
      • branch-protection-review-decision = APPROVED [🛡 GitHub branch protection]
      • label!=🤖-do-not-merge
      • label=🤖-automerge
      • any of: [🛡 GitHub branch protection]
        • check-skipped = deploy to dockerhub
        • check-neutral = deploy to dockerhub
        • check-success = deploy to dockerhub
      • any of: [🛡 GitHub branch protection]
        • check-success = system-tests
        • check-neutral = system-tests
        • check-skipped = system-tests
      • any of: [🛡 GitHub branch protection]
        • check-success = unit-tests
        • check-neutral = unit-tests
        • check-skipped = unit-tests
      • any of: [🛡 GitHub branch protection]
        • check-success = check OAS' are up to date
        • check-neutral = check OAS' are up to date
        • check-skipped = check OAS' are up to date
      • any of: [🛡 GitHub branch protection]
        • check-success = integration-tests
        • check-neutral = integration-tests
        • check-skipped = integration-tests
      • any of: [🛡 GitHub branch protection]
        • check-success = build-test-images (frontend) / build-test-images
        • check-neutral = build-test-images (frontend) / build-test-images
        • check-skipped = build-test-images (frontend) / build-test-images
      • any of: [🛡 GitHub branch protection]
        • check-success = SonarCloud Code Analysis
        • check-neutral = SonarCloud Code Analysis
        • check-skipped = SonarCloud Code Analysis

Copy link
Member

@pcrespov pcrespov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thx

@matusdrobuliak66 matusdrobuliak66 merged commit d1f879d into ITISFoundation:master Jul 30, 2025
146 of 150 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🤖-automerge marks PR as ready to be merged for Mergify a:webserver webserver's codebase. Assigning the area is particularly useful for bugs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants