Skip to content

[Sonar Issue] Promises should not be misused - #989

Merged
luluiz merged 3 commits into
developfrom
feature/fix-sonar-issue-for-action-handling
Mar 18, 2026
Merged

luluiz merged 3 commits into
developfrom
feature/fix-sonar-issue-for-action-handling

Conversation

@luluiz

@luluiz luluiz commented Mar 10, 2026 •

Copy link
Copy Markdown
Member

User-Facing Changes

N/A

Description

Forgetting to await a promise is a frequent mistake. There are places where the use of a promise object is confusing or unclear because the developer forgot to resolve it.

This rule forbids returning promises where another type is expected such as in:

  • conditionals
  • void returns
  • spread operators

What is the potential impact?
Using a promise instead of its resolved value can have unexpected results leading to bugs.

  • In conditionals, it will always return a truthy value.
  • In places where the expected type is void, returning a promise is often a mistake.
  • Using the spread operator on a promise will raise an exception.

The executor function of a promise can also be an async function. However, this usually denotes a mistake:

  • If an async executor function throws an error, the error won’t cause the created promise to reject and will be lost. Therefore, this could make it difficult to debug and handle runtime errors.
  • If a promise executor function is using await, this means that it’s not necessary to use the Promise constructor, or the scope of the Promise constructor can be reduced.

https://sonarcloud.io/project/issues?severities=BLOCKER%2CCRITICAL%2CMAJOR%2CMINOR&sinceLeakPeriod=true&issueStatuses=OPEN%2CCONFIRMED&types=BUG&id=Lichtblick-Suite_lichtblick&open=AZy0uhr4u7Sxld_oKDfq

https://sonarcloud.io/project/issues?severities=BLOCKER%2CCRITICAL%2CMAJOR%2CMINOR&sinceLeakPeriod=true&issueStatuses=OPEN%2CCONFIRMED&types=BUG&id=Lichtblick-Suite_lichtblick&open=AZy0uhr4u7Sxld_oKDfr

Checklist

  • The web version was tested and it is running ok
  • The desktop version was tested and it is running ok
  • This change is covered by unit tests
  • Files constants.ts, types.ts and *.style.ts have been checked and relevant code snippets have been relocated

@luluiz luluiz changed the title Refactor layout action handling and improve CSV download logic [Sonar Issue] Promises should not be misused Mar 10, 2026
@luluiz luluiz self-assigned this Mar 10, 2026
@sonarqubecloud

Copy link
Copy Markdown

@luluiz
luluiz merged commit 2f9fd60 into develop Mar 18, 2026
18 of 19 checks passed
@luluiz
luluiz deleted the feature/fix-sonar-issue-for-action-handling branch March 18, 2026 18:15
@luluiz luluiz mentioned this pull request Apr 24, 2026
luluiz added a commit that referenced this pull request Apr 27, 2026
## Release v1.15.0

This release includes **142 commits** since v1.24.3 (based on
`develop`), spanning new features, bug fixes, performance improvements,
dependency updates, and infrastructure changes across **194 files**.

---

### ✨ Features

- **Message navigation** — Navigate between messages directly (#884)
- **3D Tooltip metadata** — Show metadata in 3D view tooltips (#933)
- **Screen space panning** — Add screen space panning option in 3D
(#847)
- **Plot subscribeMessageRange** — Plot panel now uses
`subscribeMessageRange` for improved data handling (#1004)
- **State Transitions subscribeMessageRange** — State Transitions panel
uses `useSubscribeMessageRange` (#1037)
- **Latest-per-render-tick sampling** — Add sampling strategy for render
ticks (#932)
- **Clear alerts on player change** — Alerts are cleared when switching
players (#1016)
- **Select organization layout as default** — Allow selecting org layout
as default (#860)
- **Re-order series** — Allow re-ordering series in Plot and State
Transitions panels (#907, #930)
- **Extensions catalog improvements** — Organize catalog data into a
table with size info (#931, #942)
- **Add changelog/readme to Extensions API body** (#1031)
- **Only track selected panel settings** (#991)
- **Deprecate blockLoader in 3D Panel** (#909)
- **Multiple MCAPs in file picker** — E2E test for multi-MCAP file
picker (#868)

### 🐛 Bug Fixes

- Fix layout revert not working in some cases (#997)
- Fix layout change calculation (#1018)
- Fix layout selection logic (#899)
- Fix extension catalog refresh (#980)
- Fix installing remote extension not updating list (#994)
- Fix extension version check before loading from cache (#975)
- Fix uninstalling extensions from different loaders (#953)
- Fix network problems loading multiple remote MCAP files (#961)
- Optimize multi-MCAP remote loading with lazy sequential iteration
(#963)
- Fix alert spam for high message frequency on WebSocket (#962)
- Fix data lines and label overlap on State Transitions panel (#981,
#985)
- Fix editable element detection in KeyListener (#990)
- Allow `sec.nanosec` format in URL (#939)
- Allow message converter alerts and handle converter exceptions safely
(#943)
- Force converter to be called when changing settings (#952)
- Fix documentation links (#995)

### 🔧 Refactoring & Code Quality

- Migrate ESLint to 9.x (#1038)
- Sonar issue fixes: Promises misuse (#989), sort compare function
(#988), general fixes
- Rename variables for clarity, remove unused imports
- Add alert handling for messages on unsubscribed topics
- Update field and node editor styles (#978)
- Improve Plot Panel tests (#1020)
- Add unit tests for CameraStateSettings (#937)

### 🏗️ Infrastructure & CI

- Update Node.js version to 24 on jobs and runners (#1054)
- Allow release triggering only from release and hotfix branches (#835)
- Allow manual triggering of SonarCloud workflow (#1009)
- Fix SonarCloud trigger after release (#1011)
- Bump GitHub Actions: upload-pages-artifact, configure-pages,
deploy-pages, download-artifact, upload-artifact, stale, and more
- New E2E tests (#1055, #1058)

### 📦 Dependency Updates

- Bump `@mcap/core` from 2.1.6 to 2.2.0
- Bump `lodash` from 4.17.23 to 4.18.1
- Bump `follow-redirects` from 1.15.11 to 1.16.0
- Bump `@xmldom/xmldom` from 0.8.12 to 0.9.9
- Bump `@mui/icons-material` from 5.15.5 to 7.3.8
- Bump `notistack` from 3.0.1 to 3.0.2
- Update `rosbag2-web`, `copy-webpack-plugin`, `serve-handler`,
`foxglove-schemas`
- Multiple security fixes: `tar`, `dompurify`, `svgo`, `bn.js`,
`picomatch`, `yaml`
- Various npm_and_yarn group bumps across multiple directories

---------

Signed-off-by: Bezerra Luiz, (Luiz.Bezerra@ctw.bmwgroup.com) <luiz.bezerra+QCOM@ctw.bmwgroup.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: ctw-joao-luis <Joao.Luis@ctw.bmwgroup.com>
Signed-off-by: Thomas Sedlmayer <tsedlmayer@pmsfit.de>
Signed-off-by: Taeseung Sohn <paulsohnjp@gmail.com>
Signed-off-by: Gabriela Almeida <gabriela.almeida@criticaltechworks.com>
Signed-off-by: Bezerra Luiz, (Luiz.Bezerra@ctw.bmwgroup.com) <198787532+luiz-bezerra-ctw-bmwgroup-com_QCOM@users.noreply.github.com>
Signed-off-by: joao-oliveira-ctw <joao.alves.oliveira@criticaltechworks.com>
Signed-off-by: Bezerra Luiz, (Luiz.Bezerra@ctw.bmwgroup.com) <luiz.bezerra@ctw.bmwgroup.com>
Co-authored-by: ctw-joao-luis <Joao.Luis@ctw.bmwgroup.com>
Co-authored-by: Rodrigo CTW <rodrigo.PE.rodrigues@ctw.bmwgroup.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Gabriela Almeida <gabriela.almeida@criticaltechworks.com>
Co-authored-by: Alexandre Neuwald CTW <Alexandre.Neuwald@ctw.bmwgroup.com>
Co-authored-by: Bezerra Luiz, (Luiz.Bezerra@ctw.bmwgroup.com) <luiz.bezerra+QCOM@ctw.bmwgroup.com>
Co-authored-by: Alexandre Neuwald <alexandre.neuwald@criticaltechworks.com>
Co-authored-by: Bruno Abreu <bmachadorj@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Bezerra Luiz, (Luiz.Bezerra@ctw.bmwgroup.com) <198787532+luiz-bezerra-ctw-bmwgroup-com_QCOM@users.noreply.github.com>
Co-authored-by: Thomas Sedlmayer <tsedlmayer@pmsfit.de>
Co-authored-by: Taeseung Sohn <paulsohnjp@gmail.com>
Co-authored-by: Planck-Ho <wenloong.he@gmail.com>
Co-authored-by: lichtblick-bot <lichtblick@bmwgroup.com>
Co-authored-by: Joao Luis <joao.miguel.luis@criticaltechworks.com>
Co-authored-by: andremarques94 <90326088+andremarques94@users.noreply.github.com>
Co-authored-by: Taeseung Sohn <taeseung.sohn@tier4.jp>
Co-authored-by: joao-oliveira-ctw <joao.alves.oliveira@criticaltechworks.com>
Co-authored-by: cadkin <adkinscv@ornl.gov>
Co-authored-by: udovonbmw <udo.rietschel@bmw.de>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.

3 participants