Reduced redundant iterations over `app.graph._nodes` in `OffscreenRenderer`. Implemented `getVisibleNodes` to calculate visible nodes once per frame (O(N)) and reused this list for text, title, and image preview rendering passes (O(M)). This improves performance for large graphs by replacing multiple O(N) traversals with a single O(N) traversal followed by O(M) traversals where M << N. Added unit tests in `tests/unit/OffscreenRenderer.test.ts` to verify node visibility culling logic. Updated `.jules/bolt.md` with performance learnings. Co-authored-by: AEmotionStudio <163354043+AEmotionStudio@users.noreply.github.com>