d528f578aa
codex_auth.py was moved into contrib/codex/ but still used `.log`/ `.util` relative imports that resolved to the parent bot_bottle package before the move — update to `...log` / `...util`. _read_winsize() called sys.stdin.fileno() outside the OSError guard; pytest's redirected stdin raises UnsupportedOperation (an OSError subclass) there, breaking test_returns_first_tty_size. Move fileno() inside the try block so any non-TTY stream is skipped cleanly.