Conversation
Functions are capability aggregations in SOVD and do not expose their own `/configurations` collection. FunctionsPanel was still fetching it and rendering a Config tab that always stayed at 0, producing 404 spam in the network panel and an empty tab in the UI. Filter `configurations` out of FUNCTION_TABS, drop the parallel fetchConfigurations call in loadFunctionData, and remove the Config card from the overview summary grid.
There was a problem hiding this comment.
Pull request overview
This PR polishes SOVD entity resource handling in the React UI by removing an unsupported configurations surface from function entities, hardening fault timestamp parsing, and making data transforms tolerate non-ROS2 vendor-extension metadata.
Changes:
- Remove the Configurations tab/fetch from
FunctionsPanelto avoid 404s for/functions/{id}/configurations. - Make
transformFaulttolerant to ISO timestamp strings and invalid/missing/zero/negative values. - Extend
transformDataResponseto support genericx-medkitmetadata (direction/type/value) and mark items asstatus: 'data'when a value is inlined, with added tests.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| src/lib/transforms.ts | Harden fault timestamp parsing and broaden data transforms to handle generic x-medkit metadata/value inlining. |
| src/lib/transforms.test.ts | Add unit tests for defensive fault timestamps and generic vendor middleware handling in data transforms. |
| src/components/FunctionsPanel.tsx | Remove Configurations tab and configurations fetch for functions to prevent 404 spam and empty UI. |
mfaferek93
reviewed
Apr 14, 2026
8 tasks
f35724c to
8d3fde2
Compare
Contributor
Author
|
Dropped the duplicate |
Extend `RawDataItem` / `transformDataResponse` to treat the SOVD `x-medkit` vendor extension as generic metadata rather than a ROS-2-only construct: - accept `middleware`, `access`, `type`, `direction`, `encoding` as optional vendor fields on the data item - when the gateway inlines `value`, mark the resulting topic as `status: 'data'` instead of always `metadata_only`, so non-streaming middlewares render their current value immediately - use `x-medkit.type` as the type label when no ROS 2 message type is available - recognise `input` / `output` as alternative direction terms alongside `publish` / `subscribe` / `both` - fall back to `x-medkit.direction` when `ros2.direction` is absent ROS 2 behaviour is unchanged; everything new is additive.
8d3fde2 to
10ada66
Compare
mfaferek93
approved these changes
Apr 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request
Summary
Two small UI polish fixes for function entities and generic-middleware data rendering:
FunctionsPanelstops fetching/functions/{id}/configurationsand no longer renders a Config tab (functions do not expose that collection). Removes 404 spam and an always-empty tab.transformDataResponsetreats the SOVDx-medkitvendor extension as generic middleware metadata: readsmiddleware,access,type,direction,encoding; marks topics asstatus: 'data'when the gateway inlines avalue; acceptsinput/outputalongsidepublish/subscribe/both. ROS 2 behaviour unchanged, everything new is additive.Issue
Type
Testing
npm run lintcleannpm run typecheckcleannpm test- 358 tests pass (8 new tests for generic vendor middleware handling)npm run buildsucceeds/configurationsrequest and no longer renders Config tab; existing component/app Config tabs unchangedChecklist
npm run lint)npm run build)