api/main.py and api/worker.py both call logging.basicConfig() on startup, so the FastAPI/worker path already logs correctly.
packages/tsdhn/tsdhn/cli/main.py never configures logging at all. Python's root logger defaults to WARNING with no handler attached, so every logger.info/logger.debug call reachable from a plain tsdhn ... invocation (calculator.py, engine.py, render/*.py, etc.) is silently swallowed — none of it reaches the terminal.
api/main.py and api/worker.py both call logging.basicConfig() on startup, so the FastAPI/worker path already logs correctly.
packages/tsdhn/tsdhn/cli/main.py never configures logging at all. Python's root logger defaults to WARNING with no handler attached, so every logger.info/logger.debug call reachable from a plain
tsdhn ...invocation (calculator.py, engine.py, render/*.py, etc.) is silently swallowed — none of it reaches the terminal.