## Summary

<!-- What does this PR do and why? One or two sentences on the change, plus motivation if not obvious from the linked issue. -->

## Related issue

<!-- Link the issue this PR addresses. Use closing keywords if applicable: "Closes #123", "Fixes #456". Write "None" for unprompted changes. -->

## Test plan

<!-- Describe verification with evidence. Include what was tested and why. If no new tests were added, explain why (e.g., architecture guarantee, covered by existing boundary tests, trivial delegation, or non-behavioral change). -->

## Notes

<!-- Optional: what should a reviewer (or future-you) know that isn't obvious from the diff? e.g., why this approach, what's deliberately deferred, when to revisit. -->

---

- [ ] PR title follows [conventional commits](https://polluxlib.dev/contributing/)
- [ ] `make check` passes
- [ ] Tests cover the meaningful cases, not just the happy path
- [ ] Docs updated (if this changes public API or user-facing behavior)
