The coverage job in ci.yml previously only depended on [lint, typecheck,
security, quality], allowing it to run in parallel with unit_tests. This
meant coverage could report a pass even when unit tests were still running
or had already failed, wasting CI resources and producing misleading results.
Adding unit_tests to the coverage job's needs list ensures coverage only
starts after tests have passed, eliminating the redundant parallel test
execution and making coverage results meaningful.
ISSUES CLOSED: #10714