Skip to content

release: 2026-06-07#320

Merged
laugharn merged 13 commits into
mainfrom
release-2026-06-07
Jun 8, 2026
Merged

release: 2026-06-07#320
laugharn merged 13 commits into
mainfrom
release-2026-06-07

Conversation

@laugharn
Copy link
Copy Markdown
Collaborator

@laugharn laugharn commented Jun 7, 2026

Release branch.

Template

Docs

  • auth: correct Customer Account API setup, document logout/SSO caveat

Chores

laugharn and others added 2 commits June 6, 2026 16:56
…card images (#317)

Drop bg-accent from the PDP desktop grid tiles and bg-muted from the
product card image container so product imagery sits flush on the page
background. The PDP mobile carousel already had no backing, so the two
viewports now match. The product card's no-image fallback keeps its
gray box (bg-muted moved onto the fallback div).

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
* fix: lint warnings and format issues across template + docs

- Run oxfmt on previously-unformatted files in apps/template
  and 2 mdx files in apps/docs (caught by oxfmt --check).
- Add `no-underscore-dangle` allow lists to both .oxlintrc.json
  files for names we don't control: __typename (Shopify GraphQL),
  __dirname (Node builtin), __registerFileInput (vendored
  AI Elements).
- Fix react-hooks/exhaustive-deps warnings in template-owned code:
  - agent-panel.tsx: include onOpenChange and triggerRef in the
    outside-click effect's deps.
  - use-scroll-contain.ts: include ref in deps (refs are stable;
    replaces a no-longer-effective oxlint-disable comment).
  - cart/context.tsx: add oxlint-disable comments on the unmount
    cleanup that intentionally reads ref.current at teardown.

The only remaining warnings are in vendored components/ai-elements
code, left alone by design.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore: expand alphabetization rule, apply to shopify operations (#319)

* chore: expand alphabetization rule and apply it across shopify operations

The Ordering rule in apps/template/AGENTS.md previously named only four
things to alphabetize: export specifiers, i18n JSON keys, string union
type members, and config object keys. That left object destructuring
patterns and interface/type properties undefined — and `operations/`
had drifted accordingly.

Update the rule wording to include both, then bring `operations/products.ts`
and `operations/cart.ts` into compliance:

- products.ts: alphabetize all parameter types, destructuring patterns,
  and return-shape literals across `buildCatalogQuery`, `fetchCatalogProducts`,
  `getSearchFacets`, `searchIndexProducts`, and `getCollectionProducts`.
- cart.ts: alphabetize the `addCartDeliveryAddress`/`updateCartDeliveryAddress`
  address parameter types and the `CartShippingOption` type (and the matching
  GraphQL response shape + the `.map()` literal that builds it).

Out of scope: GraphQL `variables: { ... }` payloads (they mirror query
variable order) and lib/types.ts type declarations (a separate sweep).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore: alphabetize properties in lib/types.ts

Brings the domain-type contract module in line with the alphabetization
rule. Pure interface property reordering (plus FilterType string union)
— no runtime effect; TypeScript doesn't require literal field order to
match type declaration order, so consumers are unaffected.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented Jun 7, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
shop-docs Ready Ready Preview, Comment Jun 8, 2026 12:44pm
shop-template Ready Ready Preview, Comment, Open in v0 Jun 8, 2026 12:44pm

@socket-security
Copy link
Copy Markdown

socket-security Bot commented Jun 7, 2026

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatednpm/​@​types/​mdx@​2.0.13 ⏵ 2.0.141001007286100
Updatednpm/​@​types/​react@​19.2.16 ⏵ 19.2.171001007996 +1100
Updatednpm/​oxlint@​1.67.0 ⏵ 1.68.099 +110091 +196100

View full report

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
laugharn and others added 2 commits June 7, 2026 14:04
Credentials come from the Headless sales channel (not Settings → Customer
accounts), the client must be Confidential since the template uses a client
secret, and the better-auth genericOAuth callback path is
/api/auth/oauth2/callback/shopify.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Logout is local-only; the template does not call Shopify's OIDC
end_session_endpoint, so the IdP session persists and a later sign-in
can silently re-auth. Note the wildcard-free Logout URI requirement for
implementing RP-initiated logout.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…profile

Replace the stubbed account pages with live Shopify Customer Account API
data: paginated order history, order detail, address CRUD, and editable
profile. Adds a customerAccountFetch helper plus customer operations,
transforms, domain types, and server actions. Updates the auth docs and
adds a template-rollout-log entry.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…iscovery

The Customer Account API GraphQL endpoint is not served on the storefront
domain — that path 302s to an HTML page, so response.json() threw
"Unexpected token '<'". Derive the real endpoint
(https://shopify.com/{shopId}/account/customer/api/{version}/graphql) from
the shop ID in the OIDC issuer, cache it, and surface non-JSON responses
with a legible error.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
laugharn and others added 2 commits June 7, 2026 16:45
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The components/ai-elements directory is vendored shadcn-style code; its
upstream exhaustive-deps warning is not ours to own. Ignore it in both
the template and docs oxlint configs.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
50 silently truncated products with large variant matrices, leaving some
variants unselectable. Raise PRODUCT_FRAGMENT to the Storefront API's
250 max. Updates the PDP and storefront-api docs and adds a rollout-log
entry for downstream adoption.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Sitemap index + paged children backed by Shopify's Storefront sitemap(type:) query — the model Hydrogen uses. Each child holds ≤250 entries.

- New URLs: /sitemap.xml (index) + /sitemap/{static,products-{n},collections-{n}}.xml (children)
- Implemented as route handlers to avoid colliding with Next.js's reserved /sitemap.xml metadata route
- Adds a Sitemap anatomy docs page
@laugharn laugharn marked this pull request as ready for review June 8, 2026 12:51
@laugharn laugharn merged commit bfeb1bf into main Jun 8, 2026
6 checks passed
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.

1 participant