Skip to content

Merge release-3.6.3 into release-3.8.4 (replaces #463) - #469

Merged
vishwab1 merged 7 commits into
release-3.8.4from
sn/merge-3.6.3-into-3.8.4
Sep 8, 2026
Merged

vishwab1 merged 7 commits into
release-3.8.4from
sn/merge-3.6.3-into-3.8.4

Conversation

@snehar-nd

Copy link
Copy Markdown
Contributor

📋 Description

Replaces #463, which cannot be made mergeable: its head branch is release-3.6.3, which is protected by a "changes must be made through a pull request" rule, so the conflict resolution cannot be pushed onto it.

This branch is based on release-3.8.4 with release-3.6.3 merged in, so it merges conflict-free.

Conflict resolved: data-sync-login.component.ts in getDataSyncMMU(). Both branches had edited the same region — release-3.6.3 added the sync-user validation guard (#379), release-3.8.4 refactored the inline privilege filter into a getDataSyncPrivileges() helper. Resolution keeps both: the guard runs first, then the helper call.

What this brings into release-3.8.4:


✅ Type of Change

  • New feature (non-breaking change which adds functionality)
  • 🐞 Bug fix (non-breaking change which resolves an issue)

ℹ️ Additional Information

Verified with ng build --configuration development — compiles clean, and the app-modules-nikshay-sync-nikshay-sync-module chunk emits.

⚠️ Pre-existing issue on release-3.8.4, not introduced here: data-sync.service.ts references environment.startDownSyncUrl and environment.checkDownSyncProgressUrl, but neither key exists in any environment file (came in with #465). This will fail the CI build independently of this merge and needs a separate fix.

Important

Merge this with a merge commit, not a squash. #468 was squash-merged, which flattened the merge commit and destroyed the ancestry link — that is why #463 kept showing conflicts.

Sneha and others added 7 commits June 25, 2026 16:25
Added providerServiceMapID validation in data sync login flow.
After successful authentication, the data sync user's PSM is compared
against the main session's PSM. If they differ (e.g., Mysuru nurse
trying to sync a Vizag van), an alert is shown and sync is blocked.

- Alert: 'Data sync user does not belong to the same VAN'
- Clears serverKey so the sync screen remains locked
- Applies to both normal and concurrent-login (doLogout) flows

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Block data sync login if the authenticated data sync user is different
from the logged-in MMU session user. Compares userID from the
userAuthenticate API response against the session's stored userID.
Shows alert 'Sync user is not valid' and clears serverKey if mismatch.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(stoptb): add Nikshay results CSV upload tab to camp hub dialog

Adds the upload half of the Nikshay ID Generator round trip: a new
tab lets camp staff pick the visit date and the app's results CSV,
posts it to MMU-API's importResultsCsv endpoint, and shows how many
Nikshay IDs were written back versus how many rows need manual
review or failed, with beneficiary names so staff know who to check.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* feat: nikshaya id syn screens

* feat(stoptb): gate Nikshay Sync nav item behind Stop TB env flag

Hides the Nikshay Sync header tab outside Stop TB deployments by
reusing environment.isMMUOfflineQRCode, the same flag that gates the
Camp Hub QR code button on the login page. The Camp Hub results
upload tab needed no change: that dialog is only reachable through
openQrDialog(), already behind the same flag.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Sneha <sneha@ADMINs-MacBook-Pro.local>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
* fix: replace native alert() with confirmationService in AppHeaderComponent

* fix: address CodeRabbit review comments in AppHeaderComponent

* fix(auth-guard): remove unmanaged currentLangugae$ subscription

* chore(auth-guard): add required GPL-3.0 header

* fix(auth-guard): return UrlTree/boolean from canActivate

* docs: add CONTRIBUTING.md guide for MMU-UI contributors

* docs: fix README setup instructions and Common-UI submodule initialization

* refactor: implement standard Reactive Forms validation in DataSyncLoginComponent

* feat(core): add aria labels to mobile navbar toggler

* fix(rxjs): replace internal rxjs imports with public API paths

* fix(core): replace native alert() with ConfirmationService in AppHeaderComponent

* chore(deps-dev): bump karma-jasmine-html-reporter from 2.1.0 to 2.2.0

Bumps [karma-jasmine-html-reporter](https://github.com/dfederm/karma-jasmine-html-reporter) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/dfederm/karma-jasmine-html-reporter/releases)
- [Commits](dfederm/karma-jasmine-html-reporter@v2.1.0...v2.2.0)

---
updated-dependencies:
- dependency-name: karma-jasmine-html-reporter
  dependency-version: 2.2.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps-dev): bump websocket-driver from 0.7.4 to 0.7.5

Bumps [websocket-driver](https://github.com/faye/websocket-driver-node) from 0.7.4 to 0.7.5.
- [Changelog](https://github.com/faye/websocket-driver-node/blob/main/CHANGELOG.md)
- [Commits](faye/websocket-driver-node@0.7.4...0.7.5)

---
updated-dependencies:
- dependency-name: websocket-driver
  dependency-version: 0.7.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps-dev): bump axios from 1.16.0 to 1.18.1

Bumps [axios](https://github.com/axios/axios) from 1.16.0 to 1.18.1.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.16.0...v1.18.1)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.18.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps): bump engine.io from 6.6.4 to 6.6.9

Bumps [engine.io](https://github.com/socketio/socket.io) from 6.6.4 to 6.6.9.
- [Release notes](https://github.com/socketio/socket.io/releases)
- [Changelog](https://github.com/socketio/socket.io/blob/main/CHANGELOG.md)
- [Commits](https://github.com/socketio/socket.io/compare/engine.io@6.6.4...engine.io@6.6.9)

---
updated-dependencies:
- dependency-name: engine.io
  dependency-version: 6.6.9
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps-dev): bump immutable from 4.3.8 to 4.3.9

Bumps [immutable](https://github.com/immutable-js/immutable-js) from 4.3.8 to 4.3.9.
- [Release notes](https://github.com/immutable-js/immutable-js/releases)
- [Changelog](https://github.com/immutable-js/immutable-js/blob/main/CHANGELOG.md)
- [Commits](immutable-js/immutable-js@v4.3.8...v4.3.9)

---
updated-dependencies:
- dependency-name: immutable
  dependency-version: 4.3.9
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* feat(stoptb): add a Down Sync tab to the data sync screen

Adds the UI for the central-to-local down-sync, which until now could only be
triggered by calling the API directly - MMU-UI had no hook for
/dataSyncActivity/startDownSync at all.

A fifth tab in the data sync workarea, alongside Data Upload, Data Download,
Generate BeneficiaryID and Inventory Data Download, so it needs no new route,
menu entry or permission. It shows a progress bar, the current table, tables
completed, records inserted / updated / skipped, conflicts, and a list of any
failed tables. Van ID and providerServiceMapID come from session storage exactly
as the Data Download tab takes them.

Its progress state is deliberately separate from showProgressBar /
progressValue: those belong to the up-sync and the master download, and sharing
them would let one sync clear the other's progress bar. The button is still
disabled while either is running, since both drive the same API.

Polling stops on inProgress = false rather than on percentage >= 100. The master
download stops at 100%, which never arrives when a run fails part way; the
down-sync reports inProgress explicitly, so a failed run ends the poll and shows
the failed tables instead of spinning. canDeactivate blocks navigation while a
down-sync is running, and ngOnDestroy clears the interval.

Note src/environments/environment.ts is gitignored, so the two URLs are added to
the tracked environment files only; a local environment.ts has to be refreshed
from environment.local.ts to pick them up.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix: add the screen for downsync

* fix: update pom version

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Lakshy S. <suntiwari3495@gmail.com>
Co-authored-by: VarshiniGunti <guntiv@iitbhilai.ac.in>
Co-authored-by: Aarti Panchal <aartipanchal539@gmail.com>
Co-authored-by: Rahul Tripathi <rahul@Rahuls-Mac-mini.local>
Co-authored-by: Arpit Tripathi <arpittripathiayo@gmail.com>
Co-authored-by: pratyksh gupta <pratykshgupta@pratykshs-MacBook-Pro.local>
Co-authored-by: Kaushik Kumar <kaushikrjpm10@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: vanitha1822 <vanitha@navadhiti.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Sneha <sneha@ADMINs-MacBook-Pro.local>
Resolves the conflict in data-sync-login.component.ts by keeping the
sync-user validation guard from release-3.6.3 alongside the
getDataSyncPrivileges() helper refactor already on release-3.8.4.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 8, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 4d6d3524-caba-415f-b508-92c9c83f5b03

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@sonarqubecloud

sonarqubecloud Bot commented Sep 8, 2026

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@snehar-nd snehar-nd mentioned this pull request Sep 8, 2026
10 tasks
@vishwab1
vishwab1 merged commit dbfe992 into release-3.8.4 Sep 8, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants