Skip to content

Force converter to be called when changing settings - #952

Merged
rodrigo-p-rodrigues merged 5 commits into
lichtblick-suite:developfrom
thomassedlmayer:bugfix/force-converter-render
Mar 5, 2026
Merged

rodrigo-p-rodrigues merged 5 commits into
lichtblick-suite:developfrom
thomassedlmayer:bugfix/force-converter-render

Conversation

@thomassedlmayer

Copy link
Copy Markdown
Contributor

User-Facing Changes

  • registerMessageConverter handler callback will now be called.
  • Message converters should now be re-run when the associated settings change.

Description

Should close #503.
This PR replaces #744.
Thanks to @cadkin for providing this change. I just incorporated the review requests and test case.

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

cadkin and others added 4 commits February 25, 2026 10:35
Adds a new input to the buildRenderState() function called `forceConversion`. As
the name implies, any topic in this set will be forcefully reconverted on the
current frame.

Right now, its only being used after the callback for a given message converter,
but it could be a useful facility to expose to the user in the render state at
some point.

Should fix lichtblick-suite#503.
Signed-off-by: Thomas Sedlmayer <tsedlmayer@pmsfit.de>
Signed-off-by: Thomas Sedlmayer <tsedlmayer@pmsfit.de>
@cadkin

cadkin commented Feb 25, 2026

Copy link
Copy Markdown
Contributor

Ah this is great! Thanks for taking the initiative to get this over the finish line, I wish I had more time to do it myself. I'll close the other PR so this one gets prioritized.

Signed-off-by: Thomas Sedlmayer <tsedlmayer@pmsfit.de>

@rodrigo-p-rodrigues rodrigo-p-rodrigues left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I've tested this with different types of mcap.
Some containing only 1 topic, and others with plenty different and the changes seem to be working as expected.
The forceConversion only ever gets called when there's a user change in the settings panel.
Good job and thank you for your contribution :)

@rodrigo-p-rodrigues

Copy link
Copy Markdown
Contributor

@thomassedlmayer Going off topic a bit here, but I still get the bug you mentioned in the previous PR (#744) with the OSI extension.
Settings don't really take place if the player is running. I'm using version 0.1.3.
If I turn on "Show Logical Lanes" they show, but if I turn them off while the player is running they won't disappear from my screen.

@thomassedlmayer

Copy link
Copy Markdown
Contributor Author

@rodrigo-rodrigues-ctw We didn't create a release with the corresponding fix yet. If you build the extension from the main branch, it should work as expected. Anyways, thank you for checking and giving me a heads up! I'll try to publish a patch release tomorrow.

@rodrigo-p-rodrigues
rodrigo-p-rodrigues merged commit b8b4913 into lichtblick-suite:develop Mar 5, 2026
17 checks passed
@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.

Settings API setting changes are not being applied to current frame.

3 participants