* fast
* fix
* same ratio
* output
* check old
* error
* fail
* better
* log
* test faster runner
* work?
* test
* ratio
* forward
* try without wait
* test old distance
* fxi
* test old runner
* test this
* assert distance
* cleanup
* better
* get distance
* cleanup
* choose runner
* very slow
* wait
* put this back
* finish failure on crossing any line
* update
* standardize queue messages
* update control_command_gen
* fix
* fix logic
* update closing type
* update test
* update logic
* update test
* add out of lane to local
* ci arrive_dest
* pytest integration
* update ci_config
* fix ruff
* move test termination to time
* better
* better order
* curve_len
* add buffer
* cleanup
* cleanup
* cleanup
* cleanup
* out_of_lane
* cleanup
* merge tests
* run 90s
* change test name
* local out of lane detect
* out_of_lane
* static anal
* cleanup
* test_duration
* change setup_class -> setup_create_bridge
* no print state during test
* new out_of_lane detect
* cleanup print in common.py
* fix
* fix
* check distance vs time
* cleanup
* cleanup increase check time
* minimum bridge test time
* wording
* cleanup
old-commit-hash: fe9a091f11
* standardize queue messages
* update control_command_gen
* fix
* fix logic
* update closing type
* qmessagetype -> enum
* update type hint
* old close() makes more sense
* cleanup
* fix
* revert that
* revert that
* better name
* actually this is better
old-commit-hash: 630e152900
* split bridge into two files
* fix metadrive
* wip
* fix tests too
* separate process
* sepeprate process
* finish moving to another process
* remove spammy output
old-commit-hash: 9d3dbd245a