Skip to content

Conversation

@maxwellmlin
Copy link
Member

@maxwellmlin maxwellmlin commented Dec 5, 2025

Add automatic deployment of Foxglove extensions upon pushes to main.

  • Created new production environment with FOXGLOVE_API_KEY.

Add robot agnostic support to

  • System Status Panel
  • Discrete Servos Panel

System Status Panel

Call Service Panel

  • Deprecate

Subscribe Topic Panel

  • Deprecate

Add buttons to automatically set ROBOT_NAME if it is not set.

@maxwellmlin maxwellmlin self-assigned this Dec 5, 2025
@maxwellmlin maxwellmlin requested a review from Copilot December 5, 2025 02:57
@maxwellmlin maxwellmlin changed the title Robot agnostic foxglove Robot Agnostic Foxglove Dec 5, 2025
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds robot-agnostic support to the System Status Panel and Discrete Servos Panel, enabling these panels to adapt their display based on the selected robot (Crush or Oogway). It also deprecates the Call Service Panel and Subscribe Topic Panel by removing them entirely from the codebase.

Key changes:

  • Refactored System Status Panel to support robot-specific configurations with topic timeout detection and click-to-copy functionality
  • Updated Discrete Servos Panel to display robot-specific servo controls
  • Removed Call Service Panel and Subscribe Topic Panel extensions
  • Updated documentation to reflect deprecated panels

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
foxglove/extensions/system-status-panel/src/SystemStatusPanel.tsx Refactored to support robot-agnostic configuration, added topic timeout detection, click-to-copy functionality, and robot name validation
foxglove/extensions/discrete-servos-panel/src/DiscreteServosPanel.tsx Added robot-agnostic support with robot-specific servo configurations
foxglove/extensions/sensors-status-panel/src/SensorsStatusPanel.tsx Reordered Tooltip and TableRow components for consistency
foxglove/extensions/subscribe-topic-panel/* Removed all files to deprecate the panel
foxglove/extensions/call-service-panel/* Removed all files to deprecate the panel
foxglove/extensions/publish-topic-panel/README.md Enhanced documentation with feature list and use cases
foxglove/README.md Updated extensions list to remove deprecated panels

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@maxwellmlin maxwellmlin marked this pull request as ready for review December 5, 2025 03:03
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 17 out of 17 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 21 out of 21 changed files in this pull request and generated 5 comments.

Comments suppressed due to low confidence (1)

foxglove/extensions/discrete-servos-panel/src/DiscreteServosPanel.tsx:27

  • The type name DiscreteServosPanel conflicts with the function name DiscreteServosPanel. Consider renaming the type to DiscreteServosPanelState to match the naming pattern used elsewhere and avoid confusion.
type DiscreteServosPanel = {
  message?: string; // Response from service call
  success?: boolean; // Whether the service call was successful
};

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@nathanaelren
Copy link
Contributor

@maxwellmlin What is the alternative to the call service panel? Is the goal to have dedicated panels for all services we might want to call (i.e., servos)?

@maxwellmlin
Copy link
Member Author

@maxwellmlin What is the alternative to the call service panel? Is the goal to have dedicated panels for all services we might want to call (i.e., servos)?

@nathanaelren Foxglove already has the Service Call and Raw Messages panel which does the same thing as our Call Service Panel and Subscribe Topic Panel. This confuses new members so I think we should remove them. (Although Foxglove has a Publish panel, our Publish Topic Panel is better so we're keeping that one.)

@nathanaelren
Copy link
Contributor

nathanaelren commented Dec 7, 2025

@maxwellmlin What is the alternative to the call service panel? Is the goal to have dedicated panels for all services we might want to call (i.e., servos)?

@nathanaelren Foxglove already has the Service Call and Raw Messages panel which does the same thing as our Call Service Panel and Subscribe Topic Panel. This confuses new members so I think we should remove them. (Although Foxglove has a Publish panel, our Publish Topic Panel is better so we're keeping that one.)

@maxwellmlin Got it, thanks. Agree on our publish topic panel. I think the readme about service calling was good though, do you think it's reasonable to add a separate readme on how to do the service call?

@maxwellmlin
Copy link
Member Author

@maxwellmlin What is the alternative to the call service panel? Is the goal to have dedicated panels for all services we might want to call (i.e., servos)?

@nathanaelren Foxglove already has the Service Call and Raw Messages panel which does the same thing as our Call Service Panel and Subscribe Topic Panel. This confuses new members so I think we should remove them. (Although Foxglove has a Publish panel, our Publish Topic Panel is better so we're keeping that one.)

@maxwellmlin Got it, thanks. Agree on our publish topic panel. I think the readme about service calling was good though, do you think it's reasonable to add a separate readme on how to do the service call?

@nathanaelren I think it's OK to omit. The Foxglove Service Call panel pre-populates the request JSON so I don't think we need an example anymore.

Copy link
Contributor

@nathanaelren nathanaelren left a comment

Choose a reason for hiding this comment

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

Looks good to me!

@nathanaelren
Copy link
Contributor

@maxwellmlin What is the alternative to the call service panel? Is the goal to have dedicated panels for all services we might want to call (i.e., servos)?

@nathanaelren Foxglove already has the Service Call and Raw Messages panel which does the same thing as our Call Service Panel and Subscribe Topic Panel. This confuses new members so I think we should remove them. (Although Foxglove has a Publish panel, our Publish Topic Panel is better so we're keeping that one.)

@maxwellmlin Got it, thanks. Agree on our publish topic panel. I think the readme about service calling was good though, do you think it's reasonable to add a separate readme on how to do the service call?

@nathanaelren I think it's OK to omit. The Foxglove Service Call panel pre-populates the request JSON so I don't think we need an example anymore.

Sounds good, thanks. Seems reasonable to me, we can merge in

@maxwellmlin maxwellmlin merged commit a74efff into main Dec 8, 2025
1 check passed
@maxwellmlin maxwellmlin deleted the robot-agnostic-foxglove branch December 8, 2025 00:01
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.

System Status Panel

3 participants