Skip to content

Explore: featured 1132 Fixer card + Make It GIF logo - #180

Closed
JG2547 wants to merge 2 commits into
mainfrom
feat/explore-featured-1132-card
Closed

Explore: featured 1132 Fixer card + Make It GIF logo#180
JG2547 wants to merge 2 commits into
mainfrom
feat/explore-featured-1132-card

Conversation

@JG2547

@JG2547 JG2547 commented Aug 24, 2026

Copy link
Copy Markdown
Collaborator

Two Explore-modal changes.

Featured 1132 Fixer card — the compact 1132 row becomes a rich featured card (data-driven featured variant): 64px gear, title, Fix Zoom Error 1132 descriptor, Windows/macOS/Browser chips, one-line description, 1132-fixer.xyz + Open Source badge + Independent project, and a Visit 1132 Fixer ↗ CTA reusing the existing fixed-key open-explore-destination IPC (→ https://1132-fixer.xyz/). Right-side promo artwork (cropped/optimized from the supplied 1132.png) is decorative, left-faded, radius-clipped, and hidden at narrow widths. Footer disclaimer untouched; Botify cards stay compact.

Make It GIF logo — dedicated assets/explore/makeitgif.png (96×96, matching the other Explore icons) replaces the generic globe fallback; URL/layout/behavior unchanged.

Security: data-explore only ever set from a fixed catalog key; main-process re-validates. Guard strengthened accordingly. Rendered via Playwright at 1000×760 (no console errors) + full npm test PASS.

Featured 1132 Fixer card (data-driven `featured` variant on the existing
EXPLORE_VIEW `fixer` entry — no brittle name check): 64px gear icon, 20px
title, "Fix Zoom Error 1132" descriptor, Windows/macOS/Browser chips,
one-line description, 1132-fixer.xyz + Open Source badge + Independent project,
and a "Visit 1132 Fixer" CTA that reuses the existing fixed-key
open-explore-destination IPC (→ https://1132-fixer.xyz/). Right-side promo
artwork (assets/explore/1132-featured.png, cropped from the supplied 1132.png)
is decorative (aria-hidden), left-gradient-faded so it never competes with the
card text; clipped to the card radius; hidden at narrow widths. The full Zoom
disclaimer is NOT duplicated — the Explore footer already carries it.

Make It GIF card now uses its dedicated logo (assets/explore/makeitgif.png,
96×96 RGBA matching the other Explore icons) instead of the generic globe
fallback; destination URL, layout, and behavior unchanged.

Security invariant preserved and its guard strengthened: data-explore is only
ever set from a fixed catalog key (d.key) in both the compact rows and the
featured CTA; the main process re-validates every key against
EXPLORE_DESTINATIONS. Rendered + full npm test PASS.
JG2547 pushed a commit that referenced this pull request Aug 25, 2026
…atalog id

Carried over from #180, which this PR otherwise supersedes.

The click wiring resolves whatever is in data-explore, so checking that the
SELECTOR looks right proves nothing on its own - an unchecked interpolation
behind a checked selector is a guard that reads well and catches nothing.
This asserts the property that matters: data-explore is set from a fixed
catalog id in both the secondary cards and the hero button, and from
nothing else. The main process re-validates the key regardless.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@JG2547

JG2547 commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator Author

Superseded by #186, which implements the governing spec in #185. Closing — but recording exactly what was carried over and what was replaced, so nothing here is lost silently.

Carried over

The strengthened data-explore guard. This was the genuinely unique contribution and it is now in #186 (commit 28f8ae9), adapted to the new catalog:

const exploreInterpolations = [...rendererSrc.matchAll(/data-explore="\$\{([^}]*)\}"/g)].map(m => m[1].trim());
check(exploreInterpolations.every(expr => expr === 'escapeHtml(d.id)'), ...)

Your reasoning was right and worth keeping: the click wiring resolves whatever is in data-explore, so asserting that the selector looks correct proves nothing on its own — an unchecked interpolation behind a checked selector is a guard that reads well and catches nothing. #186 asserts the property that actually matters, across both interpolation sites (secondary cards and the hero button), and the main process still re-validates the key regardless.

Superseded, and why

Issue #185 fixes the hero's exact content and layout after this PR was opened:

FEATURED
[centered logo]
1132 Fixer
Project website
[Open Source] [Visit project]
Independent project. Not affiliated with Zoom.

Against that spec:

This PR #186 Reason
Fix Zoom Error 1132 descriptor Project website #185 fixes the hero description verbatim
Windows / macOS / Browser chips removed #185: "Do not add unnecessary marketing copy"
Right-side promo artwork removed #185 requires a centered hero; side artwork is the opposite arrangement
assets/explore/1132-featured.png assets/logo-transparent.png the managed brand export, already in .brand-assets.tsv — a derived copy silently drifts when the design system updates the logo
assets/explore/makeitgif.png (96×96) assets/explore/make-it-gif.png (256×256) sourced from #185's own attachment (1254×1254), so the circular mark stays crisp at 125%/150% scaling
footer disclaimer left untouched moved into the hero as a panel footer it read as a statement about every product listed, including ones this project does not own

There is also a hard constraint this PR could not have known about: the panel must fit 828×630 with all eight destinations visible and no scrolling (#185 P0 correction). A hero with chips and side artwork does not fit that budget — #186's hero is a compact centered horizontal group specifically to make the three destination rows fit.

Nothing else in this branch is unique to it. Closing in favour of #186.

@JG2547 JG2547 closed this Aug 26, 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.

3 participants