Sonar reports 67.8% line coverage on main (3360 of 10449 lines uncovered). Most of the gap sits in a few areas: forge clients (github, gitlab, gitea), version_diff and api_check, the why/graph/preview renderers, config migrate, doctor checks, rollback and the release execution paths (floating tags, release commit, finalize).
Add tests that guard real behaviour in those areas: HTTP clients against a local fake server, git paths against temporary repositories, renderers and migrations on their edge cases. No assertion-free or tautological tests.
Sonar reports 67.8% line coverage on main (3360 of 10449 lines uncovered). Most of the gap sits in a few areas: forge clients (github, gitlab, gitea), version_diff and api_check, the why/graph/preview renderers, config migrate, doctor checks, rollback and the release execution paths (floating tags, release commit, finalize).
Add tests that guard real behaviour in those areas: HTTP clients against a local fake server, git paths against temporary repositories, renderers and migrations on their edge cases. No assertion-free or tautological tests.