Skip to content

Constrain blog post images on desktop#2549

Closed
google-labs-jules[bot] wants to merge 10 commits into
mainfrom
fix/oversized-blog-images-12042044079763800918
Closed

Constrain blog post images on desktop#2549
google-labs-jules[bot] wants to merge 10 commits into
mainfrom
fix/oversized-blog-images-12042044079763800918

Conversation

@google-labs-jules

Copy link
Copy Markdown
Contributor

This PR adds responsive image sizing and maximum dimensions to images in blog posts. Specifically, it caps the maximum height of images rendered from Markdown to 384px (lg: 96) on desktop viewports and ensures they maintain their aspect ratio using object-contain. This prevents images from becoming excessively large and breaking the reading rhythm on desktop, while maintaining full responsiveness on mobile.

Fixes #2532


PR created automatically by Jules for task 12042044079763800918 started by @arii

@google-labs-jules

Copy link
Copy Markdown
Contributor Author

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@github-actions

github-actions Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

🚀 Deployment Details (Last updated: Jun 18, 2026, 6:31 PM PST)

🚀 Pushed to gh-pages; publish in progress

@github-actions

github-actions Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

🐙 GitHub Models Code Review

Powered by GitHub Models

Reviewing: PR #2549

Code Review Feedback

Review of code diff in src/components/ui/MarkdownRenderer.tsx:

HIGH Severity Issues

1. Incorrect Prop Passing to <Box as="img"> (Removed, but worth confirming)

Context:
The previous implementation rendered images as <Box as="img" ... />, passing all props (including src, alt, etc.) directly to the Box component. In the new implementation, the image is rendered as a native <img> inside a <Box>. This is correct and fixes a potential bug where Box props would not be valid for <img>.
Verdict: No blocking issue here, but this is a positive change.

2. Type Safety for width and height Props

Context:
The new code sanitizes width and height props using sanitizeDimension, which parses them to numbers if possible.
Evidence:

width={sanitizeDimension(width)}
height={sanitizeDimension(height)}

Analysis:
This is correct and prevents passing invalid values to <img>. No blocking issue.

3. alt Attribute Handling

Context:
The code sets alt={alt !== undefined ? String(alt) : "Article illustration"}.
Analysis:
This ensures that the alt attribute is always present, which is good for accessibility. No blocking issue.

4. Use of referrerPolicy and crossOrigin for External Images

Context:
The code sets these attributes only for external images:

referrerPolicy={isExternal ? "no-referrer" : undefined}
crossOrigin={isExternal ? "anonymous" : undefined}

Analysis:
This is correct and does not introduce any new untrusted input path. No blocking issue.

5. Use of className={cn(..., className)}

Context:
The code uses the cn utility to combine classes.
Analysis:
Assuming cn is a valid utility (imported from '@/lib/utils'), this is correct. No blocking issue.

6. Responsive Styling

Context:
The code sets maxHeight={{ base: "50vh", lg: 96 }} on the outer Box.
Analysis:
Assuming the Box component supports responsive props (as per the project's conventions), this is correct. No blocking issue.

7. Return Value for Invalid Image Source

Context:
The code returns null if normalizedSrc is falsy:

if (!normalizedSrc) return null;

Analysis:
This prevents rendering broken images. No blocking issue.

8. Spread of rest Props

Context:
The code spreads rest props onto the <img>.
Analysis:
Since rest is derived from React.ImgHTMLAttributes<HTMLImageElement>, this is correct. No blocking issue.


Summary

No blocking bugs, anti-patterns, missing types, or performance issues are present in the diff. All changes are correct and in line with the stated goal.

[VERDICT: PASS]


Generated by github-models-code-review

@github-actions

github-actions Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

🐙 GitHub Models Visual Review

Powered by GitHub Models Vision + Blast-Radius Analyzer

Summary: 🔴 2 high · 🟡 0 medium · 🟢 0 low
Reviewing: PR #2549

🔴 /blog/2026-06-14-the-story-behind-the-merch-page (mobile)

Pixel diff: 26.93%

Review Summary:

  • No DOM Text Diff Provided: Cannot verify if text changes are intentional or accidental. All evaluation must be visual.
  • Pixel Difference: 26.93% (HIGH severity)
  • Visual Diff: Significant changes across nearly the entire page, especially in content blocks, images, and article cards.

Evaluation:

  • BUG/REGRESSION:
    • The absence of a DOM text diff means we cannot confirm if the extensive content changes are intentional.
    • The high pixel difference and widespread red regions in the DIFF suggest major content, layout, or style changes that are not documented or justified.
    • Large layout shifts are visible in the main content areas, article cards, and footer.
    • Potential issues with spacing, alignment, and image rendering (possible clipping or aspect ratio changes).
    • Contrast and readability may be affected due to the scale of changes.

Action Required:

  • Reject this PR until a DOM text diff is provided.
    • All content changes must be documented and justified.
    • Visual changes must be accompanied by clear intent and rationale.

Recommendations for Improvement (for future PRs):

  • Always include a DOM text diff for any content or layout changes.
  • If layout changes are intentional, ensure consistent spacing and padding between elements (consider adding 4–8px padding where content feels cramped).
  • Review image rendering for proper aspect ratio and avoid clipping.
  • Maintain contrast and readability, especially after large visual updates.

Summary:
This PR introduces high-severity, undocumented changes. It cannot be approved without proper documentation and a DOM text diff.


🔴 /blog/2026-06-14-the-story-behind-the-merch-page

Pixel diff: 26.56%

Review Summary:

  • No DOM Text Diff available: Cannot verify any text changes; must focus strictly on visual/layout changes.
  • Pixel difference: 26.56% (HIGH severity).
  • Visual diff: Significant changes throughout the page, especially in content blocks, images, and footer.

Visual Regression Findings:

  • Major Layout Shift: The page width has increased, resulting in a much wider content column. This causes text lines to be longer and images to be more spaced out vertically.
  • Broken Spacing: Several content blocks (especially images and cards) now have inconsistent vertical spacing. Some elements appear too close together, while others have excessive gaps.
  • Contrast Issues: The tags section and footer links are less readable due to reduced contrast against the background.
  • Clipping: The right sidebar cards are now visually clipped or misaligned, especially on the lower part of the page.
  • Footer Regression: The footer area is visually broken, with content overlapping and misaligned links.

Recommendations for Improvement:

  • Restrict Maximum Content Width: Limit the main content column to 800–900px for readability. Long lines of text reduce legibility and user comfort.
  • Restore Consistent Vertical Spacing: Review and fix padding/margin between content blocks, especially around images and cards.
  • Increase Tag and Footer Contrast: Adjust text color or background to ensure tags and footer links are easily readable.
  • Fix Sidebar/Card Alignment: Ensure sidebar cards are not clipped and maintain consistent alignment throughout the page.
  • Footer Layout: Revert or fix footer layout to prevent overlapping and misalignment.

Summary:
This PR introduces severe visual regressions that negatively impact readability, layout consistency, and accessibility. Immediate action is required to restore proper spacing, alignment, and contrast.


Generated by impact-github-models-review — Blast-Radius Analyzer

@github-actions

github-actions Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

🚀 Impact Analysis Details (Last updated: Jun 18, 2026, 3:50 PM PST)

Impact Analysis Complete

Deployment Review

Summary

Impact Level: HIGH

📝 Changed Files (8)
  • src/components/ui/MarkdownRenderer.tsx
  • tests/visual.spec.ts-snapshots/detail_page_desktop_v2.png
  • tests/visual.spec.ts-snapshots/detail_page_mobile_v2.png
  • tests/visual.spec.ts-snapshots/homepage_desktop_v2.png
  • tests/visual.spec.ts-snapshots/homepage_mobile_v2.png
  • tests/visual.spec.ts-snapshots/mobile-research-blog-drafter.png
  • tests/visual.spec.ts-snapshots/mobile-research-wcs-scraper.png
  • tests/visual.spec.ts-snapshots/mobile-ux-auditor.png

Routes Reviewed

/blog/2026-04-18-halloween-costumes (Visual Diff: 0.02%)

Severity: LOW
Review Required: No

DOM Changes:

  • Added nodes: 3

Artifacts:

  • Before screenshot: artifacts/visual-review/blog-2026-04-18-halloween-costumes/before.png
  • After screenshot: artifacts/visual-review/blog-2026-04-18-halloween-costumes/after.png
  • Visual diff: artifacts/visual-review/blog-2026-04-18-halloween-costumes/diff.png
  • Before (cropped): artifacts/visual-review/blog-2026-04-18-halloween-costumes/cropped/before.png
  • After (cropped): artifacts/visual-review/blog-2026-04-18-halloween-costumes/cropped/after.png
  • Visual diff (cropped): artifacts/visual-review/blog-2026-04-18-halloween-costumes/cropped/diff.png
  • DOM diff: artifacts/dom-review/blog-2026-04-18-halloween-costumes/diff.txt
/blog/2026-04-18-make-shoe-dance (Visual Diff: 15.18%)

Severity: HIGH
Review Required: Yes

DOM Changes:

  • Added nodes: 7

Artifacts:

  • Before screenshot: artifacts/visual-review/blog-2026-04-18-make-shoe-dance/before.png
  • After screenshot: artifacts/visual-review/blog-2026-04-18-make-shoe-dance/after.png
  • Visual diff: artifacts/visual-review/blog-2026-04-18-make-shoe-dance/diff.png
  • Before (cropped): artifacts/visual-review/blog-2026-04-18-make-shoe-dance/cropped/before.png
  • After (cropped): artifacts/visual-review/blog-2026-04-18-make-shoe-dance/cropped/after.png
  • Visual diff (cropped): artifacts/visual-review/blog-2026-04-18-make-shoe-dance/cropped/diff.png
  • DOM diff: artifacts/dom-review/blog-2026-04-18-make-shoe-dance/diff.txt
/blog/2026-04-19-practical-tools-essentials (Visual Diff: 0.01%)

Severity: LOW
Review Required: No

DOM Changes:
None

Artifacts:

  • Before screenshot: artifacts/visual-review/blog-2026-04-19-practical-tools-essentials/before.png
  • After screenshot: artifacts/visual-review/blog-2026-04-19-practical-tools-essentials/after.png
  • Visual diff: artifacts/visual-review/blog-2026-04-19-practical-tools-essentials/diff.png
  • Before (cropped): artifacts/visual-review/blog-2026-04-19-practical-tools-essentials/cropped/before.png
  • After (cropped): artifacts/visual-review/blog-2026-04-19-practical-tools-essentials/cropped/after.png
  • Visual diff (cropped): artifacts/visual-review/blog-2026-04-19-practical-tools-essentials/cropped/diff.png
  • DOM diff: artifacts/dom-review/blog-2026-04-19-practical-tools-essentials/diff.txt
/blog/2026-06-01-event-travel-packing (Visual Diff: 0.03%)

Severity: LOW
Review Required: No

DOM Changes:

  • Added nodes: 1

Artifacts:

  • Before screenshot: artifacts/visual-review/blog-2026-06-01-event-travel-packing/before.png
  • After screenshot: artifacts/visual-review/blog-2026-06-01-event-travel-packing/after.png
  • Visual diff: artifacts/visual-review/blog-2026-06-01-event-travel-packing/diff.png
  • Before (cropped): artifacts/visual-review/blog-2026-06-01-event-travel-packing/cropped/before.png
  • After (cropped): artifacts/visual-review/blog-2026-06-01-event-travel-packing/cropped/after.png
  • Visual diff (cropped): artifacts/visual-review/blog-2026-06-01-event-travel-packing/cropped/diff.png
  • DOM diff: artifacts/dom-review/blog-2026-06-01-event-travel-packing/diff.txt
/blog/2026-06-01-general-health-home-care (Visual Diff: 0.00%)

Severity: LOW
Review Required: No

DOM Changes:
None

Artifacts:

  • Before screenshot: artifacts/visual-review/blog-2026-06-01-general-health-home-care/before.png
  • After screenshot: artifacts/visual-review/blog-2026-06-01-general-health-home-care/after.png
  • Visual diff: artifacts/visual-review/blog-2026-06-01-general-health-home-care/diff.png
  • DOM diff: artifacts/dom-review/blog-2026-06-01-general-health-home-care/diff.txt
/blog/2026-06-01-outdoor-dancing (Visual Diff: 19.87%)

Severity: HIGH
Review Required: Yes

DOM Changes:

  • Added nodes: 1

Artifacts:

  • Before screenshot: artifacts/visual-review/blog-2026-06-01-outdoor-dancing/before.png
  • After screenshot: artifacts/visual-review/blog-2026-06-01-outdoor-dancing/after.png
  • Visual diff: artifacts/visual-review/blog-2026-06-01-outdoor-dancing/diff.png
  • Before (cropped): artifacts/visual-review/blog-2026-06-01-outdoor-dancing/cropped/before.png
  • After (cropped): artifacts/visual-review/blog-2026-06-01-outdoor-dancing/cropped/after.png
  • Visual diff (cropped): artifacts/visual-review/blog-2026-06-01-outdoor-dancing/cropped/diff.png
  • DOM diff: artifacts/dom-review/blog-2026-06-01-outdoor-dancing/diff.txt
/blog/2026-06-01-power-charging (Visual Diff: 0.00%)

Severity: LOW
Review Required: No

DOM Changes:
None

Artifacts:

  • Before screenshot: artifacts/visual-review/blog-2026-06-01-power-charging/before.png
  • After screenshot: artifacts/visual-review/blog-2026-06-01-power-charging/after.png
  • Visual diff: artifacts/visual-review/blog-2026-06-01-power-charging/diff.png
  • DOM diff: artifacts/dom-review/blog-2026-06-01-power-charging/diff.txt
/blog/2026-06-01-practice-review-tech (Visual Diff: 0.00%)

Severity: LOW
Review Required: No

DOM Changes:
None

Artifacts:

  • Before screenshot: artifacts/visual-review/blog-2026-06-01-practice-review-tech/before.png
  • After screenshot: artifacts/visual-review/blog-2026-06-01-practice-review-tech/after.png
  • Visual diff: artifacts/visual-review/blog-2026-06-01-practice-review-tech/diff.png
  • DOM diff: artifacts/dom-review/blog-2026-06-01-practice-review-tech/diff.txt
/blog/2026-06-01-practice-social-dance-apparel (Visual Diff: 26.42%)

Severity: HIGH
Review Required: Yes

DOM Changes:

  • Added nodes: 1

Artifacts:

  • Before screenshot: artifacts/visual-review/blog-2026-06-01-practice-social-dance-apparel/before.png
  • After screenshot: artifacts/visual-review/blog-2026-06-01-practice-social-dance-apparel/after.png
  • Visual diff: artifacts/visual-review/blog-2026-06-01-practice-social-dance-apparel/diff.png
  • Before (cropped): artifacts/visual-review/blog-2026-06-01-practice-social-dance-apparel/cropped/before.png
  • After (cropped): artifacts/visual-review/blog-2026-06-01-practice-social-dance-apparel/cropped/after.png
  • Visual diff (cropped): artifacts/visual-review/blog-2026-06-01-practice-social-dance-apparel/cropped/diff.png
  • DOM diff: artifacts/dom-review/blog-2026-06-01-practice-social-dance-apparel/diff.txt
/blog/2026-06-01-shoe-care-modification (Visual Diff: 17.66%)

Severity: HIGH
Review Required: Yes

DOM Changes:

  • Added nodes: 1

Artifacts:

  • Before screenshot: artifacts/visual-review/blog-2026-06-01-shoe-care-modification/before.png
  • After screenshot: artifacts/visual-review/blog-2026-06-01-shoe-care-modification/after.png
  • Visual diff: artifacts/visual-review/blog-2026-06-01-shoe-care-modification/diff.png
  • Before (cropped): artifacts/visual-review/blog-2026-06-01-shoe-care-modification/cropped/before.png
  • After (cropped): artifacts/visual-review/blog-2026-06-01-shoe-care-modification/cropped/after.png
  • Visual diff (cropped): artifacts/visual-review/blog-2026-06-01-shoe-care-modification/cropped/diff.png
  • DOM diff: artifacts/dom-review/blog-2026-06-01-shoe-care-modification/diff.txt
/blog/2026-06-01-theme-wear-costumes-accessories (Visual Diff: 0.03%)

Severity: LOW
Review Required: No

DOM Changes:

  • Added nodes: 2

Artifacts:

  • Before screenshot: artifacts/visual-review/blog-2026-06-01-theme-wear-costumes-accessories/before.png
  • After screenshot: artifacts/visual-review/blog-2026-06-01-theme-wear-costumes-accessories/after.png
  • Visual diff: artifacts/visual-review/blog-2026-06-01-theme-wear-costumes-accessories/diff.png
  • Before (cropped): artifacts/visual-review/blog-2026-06-01-theme-wear-costumes-accessories/cropped/before.png
  • After (cropped): artifacts/visual-review/blog-2026-06-01-theme-wear-costumes-accessories/cropped/after.png
  • Visual diff (cropped): artifacts/visual-review/blog-2026-06-01-theme-wear-costumes-accessories/cropped/diff.png
  • DOM diff: artifacts/dom-review/blog-2026-06-01-theme-wear-costumes-accessories/diff.txt
/blog/2026-06-01-wcs-essentials (Visual Diff: 0.03%)

Severity: LOW
Review Required: No

DOM Changes:

  • Added nodes: 1

Artifacts:

  • Before screenshot: artifacts/visual-review/blog-2026-06-01-wcs-essentials/before.png
  • After screenshot: artifacts/visual-review/blog-2026-06-01-wcs-essentials/after.png
  • Visual diff: artifacts/visual-review/blog-2026-06-01-wcs-essentials/diff.png
  • Before (cropped): artifacts/visual-review/blog-2026-06-01-wcs-essentials/cropped/before.png
  • After (cropped): artifacts/visual-review/blog-2026-06-01-wcs-essentials/cropped/after.png
  • Visual diff (cropped): artifacts/visual-review/blog-2026-06-01-wcs-essentials/cropped/diff.png
  • DOM diff: artifacts/dom-review/blog-2026-06-01-wcs-essentials/diff.txt
/blog/2026-06-14-the-story-behind-the-merch-page (Visual Diff: 26.56%)

Severity: HIGH
Review Required: Yes

DOM Changes:

  • Added nodes: 4

Artifacts:

  • Before screenshot: artifacts/visual-review/blog-2026-06-14-the-story-behind-the-merch-page/before.png
  • After screenshot: artifacts/visual-review/blog-2026-06-14-the-story-behind-the-merch-page/after.png
  • Visual diff: artifacts/visual-review/blog-2026-06-14-the-story-behind-the-merch-page/diff.png
  • Before (cropped): artifacts/visual-review/blog-2026-06-14-the-story-behind-the-merch-page/cropped/before.png
  • After (cropped): artifacts/visual-review/blog-2026-06-14-the-story-behind-the-merch-page/cropped/after.png
  • Visual diff (cropped): artifacts/visual-review/blog-2026-06-14-the-story-behind-the-merch-page/cropped/diff.png
  • DOM diff: artifacts/dom-review/blog-2026-06-14-the-story-behind-the-merch-page/diff.txt
/research/ai-devops-pipeline (Visual Diff: 0.00%)

Severity: LOW
Review Required: No

DOM Changes:
None

Artifacts:

  • Before screenshot: artifacts/visual-review/research-ai-devops-pipeline/before.png
  • After screenshot: artifacts/visual-review/research-ai-devops-pipeline/after.png
  • Visual diff: artifacts/visual-review/research-ai-devops-pipeline/diff.png
  • DOM diff: artifacts/dom-review/research-ai-devops-pipeline/diff.txt
/research/blog-drafter (Visual Diff: 0.00%)

Severity: LOW
Review Required: No

DOM Changes:
None

Artifacts:

  • Before screenshot: artifacts/visual-review/research-blog-drafter/before.png
  • After screenshot: artifacts/visual-review/research-blog-drafter/after.png
  • Visual diff: artifacts/visual-review/research-blog-drafter/diff.png
  • DOM diff: artifacts/dom-review/research-blog-drafter/diff.txt
/research/boomtick-blog (Visual Diff: 0.00%)

Severity: LOW
Review Required: No

DOM Changes:
None

Artifacts:

  • Before screenshot: artifacts/visual-review/research-boomtick-blog/before.png
  • After screenshot: artifacts/visual-review/research-boomtick-blog/after.png
  • Visual diff: artifacts/visual-review/research-boomtick-blog/diff.png
  • DOM diff: artifacts/dom-review/research-boomtick-blog/diff.txt
/research/ecommerce-automation (Visual Diff: 0.00%)

Severity: LOW
Review Required: No

DOM Changes:
None

Artifacts:

  • Before screenshot: artifacts/visual-review/research-ecommerce-automation/before.png
  • After screenshot: artifacts/visual-review/research-ecommerce-automation/after.png
  • Visual diff: artifacts/visual-review/research-ecommerce-automation/diff.png
  • DOM diff: artifacts/dom-review/research-ecommerce-automation/diff.txt
/research/gitops-pr-reviewer (Visual Diff: 0.00%)

Severity: LOW
Review Required: No

DOM Changes:
None

Artifacts:

  • Before screenshot: artifacts/visual-review/research-gitops-pr-reviewer/before.png
  • After screenshot: artifacts/visual-review/research-gitops-pr-reviewer/after.png
  • Visual diff: artifacts/visual-review/research-gitops-pr-reviewer/diff.png
  • Before (cropped): artifacts/visual-review/research-gitops-pr-reviewer/cropped/before.png
  • After (cropped): artifacts/visual-review/research-gitops-pr-reviewer/cropped/after.png
  • Visual diff (cropped): artifacts/visual-review/research-gitops-pr-reviewer/cropped/diff.png
  • DOM diff: artifacts/dom-review/research-gitops-pr-reviewer/diff.txt
/research/hrm-flagship (Visual Diff: 0.00%)

Severity: LOW
Review Required: No

DOM Changes:
None

Artifacts:

  • Before screenshot: artifacts/visual-review/research-hrm-flagship/before.png
  • After screenshot: artifacts/visual-review/research-hrm-flagship/after.png
  • Visual diff: artifacts/visual-review/research-hrm-flagship/diff.png
  • Before (cropped): artifacts/visual-review/research-hrm-flagship/cropped/before.png
  • After (cropped): artifacts/visual-review/research-hrm-flagship/cropped/after.png
  • Visual diff (cropped): artifacts/visual-review/research-hrm-flagship/cropped/diff.png
  • DOM diff: artifacts/dom-review/research-hrm-flagship/diff.txt
/research/repo-auditor-ai (Visual Diff: 0.00%)

Severity: LOW
Review Required: No

DOM Changes:
None

Artifacts:

  • Before screenshot: artifacts/visual-review/research-repo-auditor-ai/before.png
  • After screenshot: artifacts/visual-review/research-repo-auditor-ai/after.png
  • Visual diff: artifacts/visual-review/research-repo-auditor-ai/diff.png
  • Before (cropped): artifacts/visual-review/research-repo-auditor-ai/cropped/before.png
  • After (cropped): artifacts/visual-review/research-repo-auditor-ai/cropped/after.png
  • Visual diff (cropped): artifacts/visual-review/research-repo-auditor-ai/cropped/diff.png
  • DOM diff: artifacts/dom-review/research-repo-auditor-ai/diff.txt
/research/scope-blast-radius (Visual Diff: 0.00%)

Severity: LOW
Review Required: No

DOM Changes:
None

Artifacts:

  • Before screenshot: artifacts/visual-review/research-scope-blast-radius/before.png
  • After screenshot: artifacts/visual-review/research-scope-blast-radius/after.png
  • Visual diff: artifacts/visual-review/research-scope-blast-radius/diff.png
  • Before (cropped): artifacts/visual-review/research-scope-blast-radius/cropped/before.png
  • After (cropped): artifacts/visual-review/research-scope-blast-radius/cropped/after.png
  • Visual diff (cropped): artifacts/visual-review/research-scope-blast-radius/cropped/diff.png
  • DOM diff: artifacts/dom-review/research-scope-blast-radius/diff.txt
/research/wcs-scraper (Visual Diff: 0.00%)

Severity: LOW
Review Required: No

DOM Changes:
None

Artifacts:

  • Before screenshot: artifacts/visual-review/research-wcs-scraper/before.png
  • After screenshot: artifacts/visual-review/research-wcs-scraper/after.png
  • Visual diff: artifacts/visual-review/research-wcs-scraper/diff.png
  • DOM diff: artifacts/dom-review/research-wcs-scraper/diff.txt
/research/wcs-scraper-initial-sync (Visual Diff: 0.00%)

Severity: LOW
Review Required: No

DOM Changes:
None

Artifacts:

  • Before screenshot: artifacts/visual-review/research-wcs-scraper-initial-sync/before.png
  • After screenshot: artifacts/visual-review/research-wcs-scraper-initial-sync/after.png
  • Visual diff: artifacts/visual-review/research-wcs-scraper-initial-sync/diff.png
  • DOM diff: artifacts/dom-review/research-wcs-scraper-initial-sync/diff.txt

google-labs-jules Bot and others added 9 commits June 18, 2026 21:01
Constrains the maximum height of images in blog posts to 384px (lg: 96)
on desktop viewports and ensures they maintain aspect ratio using
object-contain. This prevents images from breaking the reading rhythm.
- Modified MarkdownRenderer.tsx to wrap images in a constrained Box.
- Applied maxHeight: 384px (lg: 96) on desktop and 50vh on mobile.
- Used object-contain to ensure aspect ratio preservation.
- Ensured proper prop passing and responsive syntax compatibility.
- Wraps images in a constrained Box to ensure vertical rhythm.
- Applies maxHeight: 384px (lg: 96) on desktop and 50vh on mobile.
- Uses object-contain to preserve aspect ratio.
- Explicitly whitelists safe HTML attributes (title, width, height) for img tag.
- Corrects responsive value syntax for viewport units.
- Adds proper TypeScript typing for the image renderer component.
- Wraps images in a constrained Box to ensure vertical rhythm.
- Applies maxHeight: 384px (lg: 96) on desktop and 50vh on mobile.
- Uses object-contain to preserve aspect ratio.
- Safer handling of img attributes (alt, title, width, height).
- Corrects responsive value syntax and adds proper TS typing.
- Refactor Markdown image renderer to wrap images in a constrained Box.
- Apply height limits: 384px (lg: 96) on desktop and 50vh on mobile.
- Preserve aspect ratio using object-contain.
- Enhanced security with referrerPolicy="no-referrer".
- Improved accessibility with better alt attribute fallback handling.
- Explicitly whitelist safe HTML attributes for image tags.
- Fixed invalid responsive syntax and added proper TS typing.
- Refactor Markdown image renderer to wrap images in a constrained Box.
- Apply height limits: 384px (lg: 96) on desktop and 50vh on mobile.
- Preserve aspect ratio using object-contain.
- Enhanced security with referrerPolicy="no-referrer" and crossOrigin="anonymous".
- Improved accessibility with refined alt attribute handling (preserves empty strings).
- Replaced unsafe prop spreading with explicit attribute whitelisting.
- Fixed invalid responsive syntax and added proper TS typing and return types.
- Apply maxHeight constraints (384px on desktop, 50vh on mobile) to images in MarkdownRenderer.
- Center images horizontally and use object-contain to preserve aspect ratio.
- Sanitize width and height attributes to ensure they are numeric strings.
- Implement security best practices (no-referrer, anonymous cross-origin) for external assets.
- Ensure images remain responsive and accessible.
- Applied responsive maxHeight constraints (384px desktop, 50vh mobile) to blog images.
- Centered images and preserved aspect ratio using object-contain.
- Sanitized width/height attributes to ensure they are valid numeric values.
- Conditionally applied security attributes (crossOrigin, referrerPolicy) for external assets only.
- Refined prop spreading and accessibility handling for the img component.

@arii arii left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ANTI-AI-SLOP\n\n\n## FINDINGS\n\n\n## FINAL RECOMMENDATION\n<Approved | Approved with Minor Changes | Not Approved>\n\n

Inline Comments (Fallback due to Github line resolution errors)

  • :1:

@arii arii left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ANTI-AI-SLOP\n\n\n## FINDINGS\n\n\n## FINAL RECOMMENDATION\n<Approved | Approved with Minor Changes | Not Approved>\n\n

Inline Comments (Fallback due to Github line resolution errors)

  • :1:

@arii arii left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated Review for PR #2549

CI Status: Failing checks detected.

Failing Checks:

  • Deployment Impact Analysis

Recommendation: Please review the failing CI logs and apply fixes.

FINAL RECOMMENDATION

Not Approved

@arii arii left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated Review for PR #2549

CI Status: Failing checks detected.

Failing Checks:

  • Deployment Impact Analysis

Recommendation: Please review the failing CI logs and apply fixes.

FINAL RECOMMENDATION

Not Approved

@arii arii left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comprehensive Review for PR #2549

CI Status: Failing checks detected.

Failing Checks:

  • Deployment Impact Analysis

Recommendation: Please review the failing CI logs and apply fixes before requesting another review.

FINAL RECOMMENDATION

Not Approved

@arii arii closed this Jun 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Oversized images in blog posts break desktop reading rhythm

1 participant