Moved from SpesRobotics/teleop-pro#9 because the fix belongs in the public teleop core.
Summary
teleop-pro can pass multiple frontend mounts to teleop.Teleop so the backend can serve the operator UI at /, the operator alias at /teleop, and the spectator TV UI at /tv.
The current teleop core expects frontend_dir to be a single path. When teleop-pro passes a mount list, backend startup crashes.
Observed error
TypeError: expected str, bytes or os.PathLike object, not list
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 UI at /.
frontend_dir=[("/", operator), ("/teleop", operator), ("/tv", tv)] serves each frontend and its assets correctly.
/ws and downstream product routers continue to work unchanged.
teleop-pro can remove its local compatibility patch once the core branch/commit is used.
Moved from SpesRobotics/teleop-pro#9 because the fix belongs in the public
teleopcore.Summary
teleop-procan pass multiple frontend mounts toteleop.Teleopso the backend can serve the operator UI at/, the operator alias at/teleop, and the spectator TV UI at/tv.The current
teleopcore expectsfrontend_dirto be a single path. Whenteleop-propasses a mount list, backend startup crashes.Observed error
Expected behavior
The core
teleop.Teleopserving 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 UI at/.frontend_dir=[("/", operator), ("/teleop", operator), ("/tv", tv)]serves each frontend and its assets correctly./wsand downstream product routers continue to work unchanged.teleop-procan remove its local compatibility patch once the core branch/commit is used.