Skip to content

Release 2026.21 - #374

Merged
abroa01 merged 64 commits into
mainfrom
development
May 19, 2026
Merged

abroa01 merged 64 commits into
mainfrom
development

Conversation

@abroa01

@abroa01 abroa01 commented May 19, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

dependabot Bot and others added 30 commits March 21, 2026 11:26
Bumps [flatted](https://github.com/WebReflection/flatted) from 3.3.3 to 3.4.2.
- [Commits](WebReflection/flatted@v3.3.3...v3.4.2)

---
updated-dependencies:
- dependency-name: flatted
  dependency-version: 3.4.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [node-forge](https://github.com/digitalbazaar/forge) from 1.3.3 to 1.4.0.
- [Changelog](https://github.com/digitalbazaar/forge/blob/main/CHANGELOG.md)
- [Commits](digitalbazaar/forge@v1.3.3...v1.4.0)

---
updated-dependencies:
- dependency-name: node-forge
  dependency-version: 1.4.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2.
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](micromatch/picomatch@2.3.1...2.3.2)

---
updated-dependencies:
- dependency-name: picomatch
  dependency-version: 2.3.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.11 to 1.16.0.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](follow-redirects/follow-redirects@v1.15.11...v1.16.0)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-version: 1.16.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
- Gemfile + Gemfile.lock: declares fastlane ~> 2.232 dependency
- fastlane/Appfile: app identity and team defaults
- fastlane/Matchfile: points match at mieweb/mobile-signing repo
- fastlane/Fastfile: single ios_dev lane (setup_ci → match → gym → pilot)
- .github/workflows/test-ios-fastlane.yml: workflow_dispatch-only test workflow
- .gitignore: add fastlane generated output paths
workflow_dispatch is only surfaced in Actions UI when the file
exists on the default branch — scoped push trigger bypasses this
Co-authored-by: Copilot <copilot@github.com>
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 5.4.2 to 5.7.1.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](NaturalIntelligence/fast-xml-parser@v5.4.2...v5.7.1)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-version: 5.7.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
- Replace inline Fastlane setup with uses: mieweb/sharedactions/ios@v1
- Remove local fastlane/Fastfile, Appfile, Matchfile (now in sharedactions repo)
- Remove Gemfile + Gemfile.lock (action manages its own Ruby/gems)
- Drop standalone Setup Ruby step from workflow
Replaces 85-line workflow with a single reusable workflow call.
All signing secrets via secrets: inherit. Only app-specific inputs remain.
Bumps [axios](https://github.com/axios/axios) from 1.13.5 to 1.15.2.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.13.5...v1.15.2)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.15.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [fast-xml-builder](https://github.com/NaturalIntelligence/fast-xml-builder) from 1.0.0 to 1.2.0.
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-builder/blob/main/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-builder/commits/v1.2.0)

---
updated-dependencies:
- dependency-name: fast-xml-builder
  dependency-version: 1.2.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.0 to 3.1.2.
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](fastify/fast-uri@v3.1.0...v3.1.2)

---
updated-dependencies:
- dependency-name: fast-uri
  dependency-version: 3.1.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [@protobufjs/utf8](https://github.com/dcodeIO/protobuf.js) from 1.1.0 to 1.1.1.
- [Release notes](https://github.com/dcodeIO/protobuf.js/releases)
- [Changelog](https://github.com/protobufjs/protobuf.js/blob/master/CHANGELOG.md)
- [Commits](protobufjs/protobuf.js@protobufjs-cli-v1.1.0...protobufjs-cli-v1.1.1)

---
updated-dependencies:
- dependency-name: "@protobufjs/utf8"
  dependency-version: 1.1.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 7.5.4 to 7.5.8.
- [Release notes](https://github.com/protobufjs/protobuf.js/releases)
- [Changelog](https://github.com/protobufjs/protobuf.js/blob/protobufjs-v7.5.8/CHANGELOG.md)
- [Commits](protobufjs/protobuf.js@protobufjs-v7.5.4...protobufjs-v7.5.8)

---
updated-dependencies:
- dependency-name: protobufjs
  dependency-version: 7.5.8
  dependency-type: indirect
...

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

The Approve/Reject action buttons rendered on Android push notifications
did nothing when tapped. Tapping them would open the app and surface the
in-app modal, requiring the user to tap Approve again — defeating the
purpose of the inline buttons.

Root causes:
- FCM action payload used { id } but @havesource/cordova-plugin-push v7
  requires { callback }; the named events (push.on('approve'/'reject'))
  were never registered.
- saveUserNotificationHistory returned the mongo _id from insertAsync
  instead of the generated notificationId field, so the value embedded
  in the FCM payload could not be looked up by notifications.handleResponse.
- The biometric login path only set a Session var without calling
  Meteor.loginWithToken, so this.userId was null on subsequent method
  calls (notifications.handleResponse failed silently).
- The in-app modal opened from multiple paths (Tracker.autorun, resume
  handler) that didn't know an action was already in flight from the
  tray.
- notifications.handleResponse accepted any action string and had no
  authentication or ownership check.

Changes:
- server/main.js: pre-create NotificationHistory and embed userId +
  notificationId in the FCM data payload; require this.userId, verify
  ownership, validate action with Match.OneOf, enforce device ownership;
  issue a stamped login token from users.loginWithBiometric.
- server/firebase.js: switch action format to { callback, foreground }
  for cordova-plugin-push v7 compatibility.
- client/mobile/push-notifications.js: register push.on('approve'/'reject')
  handlers; pass userId/notificationId/deviceUUID; treat
  result.success === false as failure; clear in-flight flag and stale
  pendingNotification after the call settles.
- client/mobile/src/ui/hooks/useNotificationHandler.js: gate modal-opening
  paths on actionPerformedFromTray flag; new tracker on trayActionResult
  to flash the success modal or fall back to the actions modal on error.
- client/mobile/src/ui/Login.jsx: call Meteor.loginWithToken after
  biometric so the DDP session has a real userId.
- utils/api/notificationHistory.js: return the generated notificationId
  (not mongo _id) from notificationHistory.insert.
- tests/main.js: update tests for the new return value and invoke
  notifications.handleResponse with a simulated authenticated context.
Bump DashboardHeader z-index from z-10 to z-50 and add isolate to
create its own stacking context. The welcome banner avatar (relative
z-10) was painting over the header on scroll because both shared the
same z-index and DOM order favored the banner.

Closes #365
- Clear result-modal setTimeout on unmount/close via ref (useNotificationHandler)
- Treat null notificationId from saveUserNotificationHistory as hard error
- Mark notification history as timeout when FCM Promise.all fails
- Push createdUser _id (not username) into testUserIds for proper cleanup
- Drop redundant validateSessionWithRetry wrapper in cold-start tray path
- Stop clearing actionPerformedFromTray in push.on('notification'); let the
  sendUserAction callback own the lifecycle so in-flight tray actions can't
  reopen the modal
abroa01 and others added 29 commits May 19, 2026 10:44
chore(deps): bump axios from 1.13.5 to 1.15.2
…parser-5.7.1

chore(deps): bump fast-xml-parser from 5.4.2 to 5.7.1
…directs-1.16.0

chore(deps): bump follow-redirects from 1.15.11 to 1.16.0
…-2.3.2

chore(deps): bump picomatch from 2.3.1 to 2.3.2
…e-1.4.0

chore(deps): bump node-forge from 1.3.3 to 1.4.0
….4.2

chore(deps-dev): bump flatted from 3.3.3 to 3.4.2
Removes [webpack-dev-server](https://github.com/webpack/webpack-dev-server). It's no longer used after updating ancestor dependency [@rspack/cli](https://github.com/web-infra-dev/rspack/tree/HEAD/packages/rspack-cli). These dependencies need to be updated together.


Removes `webpack-dev-server`

Updates `@rspack/cli` from 1.7.6 to 2.0.3
- [Release notes](https://github.com/web-infra-dev/rspack/releases)
- [Commits](https://github.com/web-infra-dev/rspack/commits/v2.0.3/packages/rspack-cli)

---
updated-dependencies:
- dependency-name: webpack-dev-server
  dependency-version:
  dependency-type: indirect
- dependency-name: "@rspack/cli"
  dependency-version: 2.0.3
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
fix(css): prevent sticky header from being overlapped by welcome banner
…8e848ed

chore(deps): bump webpack-dev-server and @rspack/cli
Bumps [postcss](https://github.com/postcss/postcss) from 8.5.6 to 8.5.15.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](postcss/postcss@8.5.6...8.5.15)

---
updated-dependencies:
- dependency-name: postcss
  dependency-version: 8.5.15
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
fix(android): make notification tray Approve/Reject buttons functional
….5.15

chore(deps-dev): bump postcss from 8.5.6 to 8.5.15
Resolves peer dependency conflict where @rspack/cli@2.0.3 requires
@rspack/core@^2.0.0-0 but the project had @rspack/core@^1.7.1.
fix: upgrade @rspack/core and @rspack/plugin-react-refresh to v2
Appends github.run_number to the base version from mobile-config.js
to ensure unique CFBundleVersion on every TestFlight upload.
…rsion

Apple requires CFBundleShortVersionString to be max 3 segments (X.Y.Z).
Use ios-CFBundleVersion preference to set the build number independently
using the GitHub run number for uniqueness.
fix: set CFBundleVersion separately instead of modifying marketing ve…
The mieweb ldapjs fork uses msg.constructor.name to derive event names
in the LDAP search response handler. When rspack minifies the bundle,
class names become empty strings, causing:
  TypeError: Cannot read properties of undefined (reading 'toLowerCase')
  at ldapjs/lib/client/client.js (messageCallback)

Fix: configure rspack minimizer to keep class names intact.

Also reverts the temporary uncaughtException handler added for diagnosis.
The mieweb ldapjs fork uses msg.constructor.name to derive event names
in the LDAP search response handler. When rspack minifies the bundle,
class names become empty strings, causing:
  TypeError: Cannot read properties of undefined (reading 'toLowerCase')
  at ldapjs/lib/client/client.js (messageCallback)

Fix: configure rspack minimizer to keep class names intact.

Also reverts the temporary uncaughtException handler added for diagnosis.
@abroa01
abroa01 merged commit 4d9cda0 into main May 19, 2026
2 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.

1 participant