Modular split left discover_ports referencing settings without importing it, which raised NameError on pull-ports.
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep the public facade stable while moving device CRUD and sample/compare
logic into focused modules, and use naive UTC via timeutil plus FastAPI lifespan.
Co-authored-by: Cursor <cursoragent@cursor.com>