Skip to content

2026 05 30 claude code team 4 8 xhigh#21

Open
FabianWesner wants to merge 8 commits into
mainfrom
2026-05-30-claude-code-team-4-8-xhigh
Open

2026 05 30 claude code team 4 8 xhigh#21
FabianWesner wants to merge 8 commits into
mainfrom
2026-05-30-claude-code-team-4-8-xhigh

Conversation

@FabianWesner
Copy link
Copy Markdown
Contributor

No description provided.

FabianWesner and others added 8 commits May 30, 2026 11:17
Set up team-mode build plan for the shop system across 12 phases.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Multi-tenant core: Organization/Store/StoreDomain/StoreUser/StoreSettings + Customer/CustomerAddress
- ResolveStore middleware (host-based storefront, session-based admin), BelongsToStore + StoreScope
- 3 guards (web/customer), custom CustomerUserProvider (store-scoped), policies + permission matrix
- Pest helpers (createStoreContext/actingAsAdmin/actingAsCustomer), route skeleton, DemoStoreSeeder
- 31 passed / 1 skipped; pint clean; shop.test storefront + admin login browser-verified

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Phase 2 (catalog): products/variants/options/inventory/collections/media, ProductService
state machine, VariantMatrixService, InventoryService, HandleGenerator, media job.
Phase 3 (storefront): themes/pages/navigation, blade layout + components, NavigationService,
ThemeSettingsService, storefront Home/Collections/Pages Livewire.
Phase 4 (commerce): cart (versioned), checkout state machine, discounts, shipping, tax,
PricingEngine + value objects, abandoned-cart/checkout jobs.
Phase 5 (commerce): Mock PSP (magic cards), orders (sequential #), payments, refunds,
fulfillment (guarded), bank-transfer confirm, order events, CancelUnpaidBankTransfer job.

Seeders wired (Demo->Catalog->Storefront->Commerce). 266 passed / 0 failed; pint clean;
migrate:fresh --seed clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…nalytics, webhooks, API

Phase 6 (storefront): product page, cart drawer, cart/checkout flow, confirmation,
customer account dashboard/orders/addresses; full purchase flow browser-verified.
Phase 7 (admin): 31 Livewire components - layout, dashboard, products, orders
(fulfillment/refund/confirm-payment), collections, customers, discounts, settings,
themes, pages, navigation, analytics, search, apps, developers; policy-enforced.
Phase 8 (search): FTS5 products_fts, SearchService, ProductObserver.
Phase 9 (analytics): events/daily, AnalyticsService, AggregateAnalytics job.
Phase 10 (apps/webhooks/API): WebhookService + DeliverWebhook, Sanctum tokens + abilities,
storefront + admin REST API with Eloquent Resources.
Tenancy fix: ResolveStore as Livewire persistent middleware (current_store on updates).
laravel/sanctum ^4.3 added. All demo seeders wired.

Full suite: 426 passed / 0 failures; pint clean; migrate:fresh --seed clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- MediaSeeder: GD placeholder images (+thumbnail/medium/large) for all products
- 8 demo orders across every status (paid/pending/fulfilled/cancelled/refunded/
  partially_refunded/voided + bank-transfer-pending), 4 customers w/ addresses, refunds, fulfillments
- Storefront-branded auth pages; dependency-free focus-trap (cart drawer, search modal)
- a11y (ARIA, tablists, skip links), dark mode + responsive verified
- Styled 404/503 wired host-aware in bootstrap/app.php (storefront branded; admin/api default)

Full suite: 437 passed / 0 failures; pint clean; migrate:fresh --seed clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1. CRITICAL: checkout completion 500 — DeliverWebhook ran inline under sync queue
   and a ConnectionException to an unreachable webhook propagated through order
   creation. Now: sync-aware handleFailure (records failed delivery + circuit
   breaker + swallows in sync; preserves async retry/backoff), listener
   ShouldHandleEventsAfterCommit + try/catch, 5s HTTP timeout. +2 regression tests.
2. Shipping rate option showed 0.00 USD instead of the weight-calculated cost;
   now uses ShippingCalculator::calculate(rate, cart) per option. +test.
3. Analytics page was empty; CommerceSeeder now seeds 30 days of analytics_daily
   with a realistic monotonic funnel. +test.

These escaped the Pest suite (Http::fake + no analytics_daily seeded); caught by
live Playwright browser verification.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Storefront (Playwright): home, product, add-to-cart, checkout end-to-end -> Order #1009
confirmation, FTS search, customer account + scoped order history, styled 404.
Admin (Playwright): dashboard, products, order detail, confirm bank-transfer payment,
fulfillment + guard, populated analytics. All 0 console errors.

441 passed / 0 failed; pint clean; migrate:fresh --seed clean.
All 12 phases complete.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented Jun 1, 2026

Quality Gate Failed Quality Gate failed

Failed conditions
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

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