Skip to content

Webots bridge crashes when teleop core receives multiple frontend mounts #19

Description

@MNikoliCC

Summary

teleop-pro on main can pass multiple frontend mounts to the public teleop core so the backend can serve the operator UI at /, the operator alias at /teleop, and the spectator TV UI at /tv.

The current local teleop core on feature-multi-arm expects frontend_dir to be a single string path. When teleop-pro passes the mount list, the Webots bridge crashes during backend startup.

Observed error

TypeError: expected str, bytes or os.PathLike object, not list

Stack:

File ".../backend/__init__.py", line 40, in __init__
  self.teleop = Teleop(...)
File ".../teleop/teleop/__init__.py", line 306, in __setup_routes
  assets_dir = os.path.join(self.__frontend_dir, "assets")

Expected behavior

The core teleop.Teleop serving hook should remain backward compatible with a single frontend directory and also support a list of (mount_path, frontend_dir) pairs.

Acceptance criteria

  • frontend_dir="/path/to/dist" still serves the legacy core UI at /.
  • frontend_dir=[("/", operator), ("/teleop", operator), ("/tv", tv)] serves each frontend and its assets correctly.
  • /ws and product routers continue to work unchanged.
  • teleop-pro setup docs specify the required teleop branch or commit containing this support.

Notes

A local compatibility patch was tested successfully by normalizing frontend mounts in teleop.Teleop and mounting assets at /assets, /teleop/assets, and /tv/assets.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions