Duo Code Review context gathering fails when custom review instructions are invalid
<!---
Please read this!
Before opening a new issue, make sure to search for keywords in the issues
filtered by the "regression" or "type::bug" label:
- https://gitlab.com/gitlab-org/gitlab/issues?label_name%5B%5D=regression
- https://gitlab.com/gitlab-org/gitlab/issues?label_name%5B%5D=type::bug
and verify the issue you're about to submit isn't a duplicate.
--->
### Summary
Duo Code Review context gathering can fail completely when a project or group has invalid custom review instructions. Instead of handling the invalid instructions gracefully, the review flow can error and produce a misleading “I finished my review and found nothing to comment on” style response even though no real review was performed.
[The failure was traced](https://smith.langchain.com/o/477de7ad-583e-47b6-a1c4-c4a0300e7aca/projects/p/a4e68128-258a-41eb-b766-9414684ce34d/t/4113106?scroll_to=error&run_id=20260602T195819Z019e89ea-5fe6-7e71-a846-cd7ecb46da3d&trace_id=019e89ea-5c08-79b0-b1ea-793676e2af76&conversationTab=trace) to custom review instructions processing, where the code hit `AttributeError("'NoneType' object has no attribute 'strip'")` while formatting instructions for code review context.
### Steps to reproduce
1. Create a repo with invalid custom instructions
2. Create a MR in that repo and request a review from `@GitLabDuo`
### What is the current _bug_ behavior?
Duo Code Review fails to build the review context and returns invalid summary:
```
I finished my review and found nothing to comment on. Nice work! :tada:
- No diff content was provided for this Merge Request, so a detailed line-by-line code review could not be performed.
- The MR title is listed as "None" and no description was included, making it difficult to assess the intent of the changes.
- Without visible code changes, no issues related to correctness, security, performance, or style could be identified.
- If this MR contains changes, please ensure the diff is accessible and re-trigger the review for a complete analysis.
```
### What is the expected _correct_ behavior?
Invalid custom instructions are ignored and review go ahead as usual without them.
### Relevant logs and/or screenshots
https://smith.langchain.com/o/477de7ad-583e-47b6-a1c4-c4a0300e7aca/projects/p/a4e68128-258a-41eb-b766-9414684ce34d/t/4113106?scroll_to=error&run_id=20260602T195819Z019e89ea-5fe6-7e71-a846-cd7ecb46da3d&trace_id=019e89ea-5c08-79b0-b1ea-793676e2af76&conversationTab=trace
### Possible fixes
Ignore invalid instructions.
#### High-severity bug remediation
To remediate high-severity issues requiring an [internal release](https://handbook.gitlab.com/handbook/engineering/releases/internal-releases/) for single-tenant SaaS instances, refer to the [internal release process for engineers](https://gitlab.com/gitlab-org/release/docs/-/blob/master/general/internal-releases/engineers.md?ref_type=heads).
<!--If you don't have /label privileges, follow up with an issue comment of `@gitlab-bot label ~"type::bug"`-->
issue