Mechanical, no behavior change. `ruff check src/ tests/` now passes
with zero findings.
- cli.py:147 (SIM105) — replace `try/except SynologyError/pass` around
the cleanup logout with `contextlib.suppress(SynologyError)`.
- compose.py:271 (B007) — drop the unused `i` from the env_list
preview-detection loop (the apply loop below still uses enumerate).
- compose.py:329 (E501) — extract `verb = "Updated" if … else "Added"`
into a local before the return so the f-string fits in 100 cols.
- images.py:237 (E501) — extract `stopped_name = in_use_stopped[0]`
before the return and split the message across two f-strings.
- test_auth.py:38, 127, 140 (SIM117) — combine nested `with patch(…):`
/ `with pytest.raises(…):` into single parenthesised with-statements.
236 tests pass.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>