| 05-28 | fix change Vercel region from yyz1 to iad1 (yyz1 not valid for Vercel CLI)upgrade Next.js 15.1.0 → 16.2.6 (CVE-2025-66478), fix revalidateTag APIfix disable react/no-unescaped-entities ESLint rule for CMS content- Add nationwide shipping tagline in footer.
Adopt v2 homepage design white header + dark category bar + rebates hero.- Make v2 hero fully dark to match the Homepage-v2 mock.
Port Homepage-v2 design 11 — full brand-faithful rebuild.- Alias legacy --cls-font-* tokens to DM fonts so old pages don't fall back.
- Port every remaining page to v2 (Downloads/v2 design source).
- Add v2-design and route-groups Cursor rules.
Wire every link in the chrome 13 new pages + PageHero.- Make the storefront fully responsive (mobile, tablet, desktop).
Fix desktop header hide hamburger + mobile search via !important.
| Premium Claude Sonnet 4.5 | 20.8h | $1,040 | $5,200 | $14,040 104.0h |
| 06-02 | - Reorder homepage sections and refresh site chrome per v2 design.
- Fix homepage spacing between Shop by room, promo, and featured sections.
- Fix topbar layout and add supplier brand logos on homepage.
- Fix hero stat cards to a 2×2 grid on slides.
- Replace homepage Tools rebate cards with four project tools.
- Add interactive UI mockups for all four project tools.
| Premium Claude Sonnet 4.5 | 9.6h | $480 | $2,400 | $6,480 48.0h |
| 06-03 | - Project Manager — sprint planning, client comms, timelines, risk
| Planning Project Manager · $110/hr | 2h | $220 | $220 | $220 2h |
| 06-04 | - Business Analyst — requirements, acceptance criteria, user stories
| Planning Business Analyst · $105/hr | 4h | $420 | $420 | $420 4h |
| 06-09 | - Apply MarkUp feedback for Trade Affiliate Program and storefront polish.
- Fix trade hero stats layout and Bulbs/Lamps nav tab styling.
- Widen trade hero stat columns so labels stay on one line.
| Premium Claude Sonnet 4.5 | 4.8h | $240 | $1,200 | $3,240 24.0h |
| 06-10 | - Database Expert — schema, migrations, rls, query performance
| Planning Database Expert · $140/hr | 2h | $280 | $280 | $280 2h |
| 06-11 | - Soften trade application timing copy to one-hour response.
feat integrate Payload CMS + TanStack Query infrastructurefix add missing @tanstack/react-query-devtools dependencychore add test/playwright artifacts to .gitignore to fix Vercel build
| Premium Claude Sonnet 4.5 | 6.4h | $320 | $1,600 | $4,320 32.0h |
| 06-12 | feat rewrite CMS queries for Payload-only, wire journal pagefeat wire cart to Shopify Storefront API with real mutationsfeat add Shopify customer auth (login, register, logout)feat real checkout steps 1-3 with Shopify cart datafeat add Stripe integration, PaymentIntent API, card/net-terms payment stepfeat order placement endpoint + Step 5 review and place orderfeat real order confirmation page with Shopify Admin APIfeat real account page + trade gating + admin approvalsfeat configurator pipeline — B2 storage, AI spec analysis, liteline scraper, Vercel cronfeat configurator pipeline — B2 storage, AI spec analysis, liteline scraper, Vercel cronchore add .env.pipeline.example — env stub for Vercel and Droid Computer
| Super Premium Claude Opus 4.8 | 24.6h | $1,968 | $9,840 | $16,605 123.0h |
| 06-13 | feat sync configurator-pipeline droid with personal version + analyzer/scraper splitfix turbopack build — extract client-safe checkout utils, fix TS errorsfix handle empty posts in journal page + Payload empty-docs fallbackchore remove all Umbraco references and dead PAYLOAD_API_KEYfeat brand documents system + Brands nav dropdownfix split brand-documents into client-safe types and server-only queriesfix add search form submission and suggestion navigationfeat authenticated Liteline scraper with dealer pricing extractionfeat configurator dimension extraction via Playwright in Liteline scraperdocs update liteline-catalog-syncer droid spec to match implementationfeat broader document type classification and link discoveryfeat full Liteline pipeline orchestration, PDP tabs with Neon fallbacks, dynamic brand/category countsfeat migrate customer auth to Shopify Customer Account API (OAuth 2.0 + PKCE)fix correct OAuth scope to openid email customer-account-api:fullfix detect Storefront API UNAUTHORIZED via extensions.code to enable Admin API fallbackfeat integrate Judge.me review widget on PDPfeat create categories, product_categories, categorize_run tables and seed canonical taxonomyfix replace <a> with <Link> for /shop/ navigation to resolve ESLint errorsfeat implement taxonomy data access layer (lib/categories.ts)feat implement AI-driven category classifier with keyword fallbackfeat implement idempotent categorization orchestrator (lib/categorizer.ts)fix update validator configs for Next.js 16 and pre-existing e2e issuesfeat add categorization stage to configurator pipelinefeat add categorize-catalog CLI with Commander flags and npm scriptsfeat add Shopify category propagation module (lib/shopify-categories.ts)feat wire push scripts to canonical taxonomy via shopify-categoriesfeat add ensureCollectionsExist() for auto-creating missing Shopify collectionsfix scrutiny — test isolation fixes and sequential vitest executionfix Shopify push — publishCollection GraphQL and EiKO getPricefeat add category display and inline editing to /admin/catalog pagefeat add /admin/categories taxonomy management page with CRUD API routesfeat add auth, cycle prevention, and bulk move to /api/admin/categoriesfeat add AI recategorization actions to admin catalogfix resolve 8 blocking scrutiny issues in admin UIfeat add 'Re-push to Shopify' button to admin catalog ActionMenufix make listLeafCategories tests resilient to test-only categoriesfeat include product name in dry-run output of categorize-catalog
| Super Premium Claude Opus 4.8 | 38.0h | $3,040 | $15,200 | $25,650 190.0h |
| 06-14 | feat fix commerce flows — images, cart, quotes, configurator, collection mappingfeat switch AI classifier from OpenAI to Gemini 2.5 Flash
| Premium Claude Sonnet 4.5 | 3.2h | $160 | $800 | $2,160 16.0h |
| 06-15 | - Design Expert — ux flows, screen design, design system
| Planning Design Expert · $135/hr | 4h | $540 | $540 | $540 4h |
| 06-17 | feat(categorizer) add --retry-errors flag to reprocess error/skipped productsfix make fallback product cards clickable by adding href to V2_PRODUCTS
| Premium Claude Sonnet 4.5 | 3.2h | $160 | $800 | $2,160 16.0h |
| 06-18 | feat make brand product-line and SKU stats dynamicfix make Liteline product-line count distinct from SKU countfix derive Liteline product lines and SKUs from catalog DBfeat fix categorizer, add Quickship badge, dynamic PLP filters, attribute tagsfeat add Neon Auth admin authentication with audit loggingfeat add admin table creation script, seed script, and auto-setup APIfeat add Eurofase sync/push, Reno scripts, middleware, catalog droid updatesfeat add admin password reset flowfix redirect PDP add-to-cart to CLS custom cartfeat implement Claude Design AdminLogin.html as dedicated /admin/login page
| Premium Claude Sonnet 4.5 | 16.0h | $800 | $4,000 | $10,800 80.0h |
| 06-19 | feat migrate marketing pages to CMS with robust fallback structuresfeat wire shared chrome to CMS site-settings and lazy-load Neon Authfix align populate-cms-pages slugs with CMS data layer queries
| Premium Claude Sonnet 4.5 | 4.8h | $240 | $1,200 | $3,240 24.0h |
| 06-20 | feat migrate marketing content to TIN CMS and fix admin auth routingdocs add MarkUp.io comment triage droid design specdocs add markup-triage droid implementation planfeat add markup_webhook_events table migration Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>feat add MarkUp.io webhook receiver API route with HMAC verification Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>env add MARKUP_WEBHOOK_SIGNING_SECRET placeholderfeat add markup-triage droid config for MarkUp.io comment triagefeat add cron-based self-scheduling fallback (Mode C) to markup-triage droidfix mandate login before triage -- never operate as Guestfeat complete TIN CMS migration + structured data across marketing pagesfeat render TIN CMS layout blocks across marketing pagesfeat populate CMS layout content for all pages + add layout sync droid- Merge remote-tracking branch 'origin/main'
feat implement high-fidelity AdminCategories design with full interactive statefeat add automatic Next.js cache tagging and on-demand revalidation for TIN CMS pageschore trigger Vercel deployment for CMS cache refreshfix remove revalidate from CMS fetch to fix Vercel runtimedebug add detailed CMS fetch error loggingfix remove next.fetch option from CMS client to bypass Vercel fetch handlerdebug add CMS connectivity test endpointfix add cache: no-store to bypass Next.js fetch deduplicationfix trim env vars to prevent newlines in CMS API URLsfix handle both depth=0 and depth>=1 body formats in unwrapBodychore remove temporary CMS debug endpointfix admin login form validation and sidebar renderingdocs add reusable markup-triage droid design specdocs add reusable markup-triage droid implementation planfeat add reusable markup-triage droid with standalone receiver
| Super Premium Claude Opus 4.8 | 38.0h | $3,040 | $15,200 | $25,650 190.0h |
| 06-21 | chore add design handoff assets and page snapshotsdocs add product-intelligence pipeline design specdocs add Canolight phase-1 implementation plan (mission-ready)build scaffold product-intelligence workspace packagefeat(pi) define ports and shared typesfeat(pi) normalizeProduct with zod validation, trim, dedupfeat(pi) streaming Excel price-list parserfeat(pi) PDF price-list parser and price-source combinerfeat(pi) WordPress/WooCommerce scraping strategyfeat(pi) runSupplier orchestrator, registry, Canolight configfeat(pi) runSupplier orchestrator, registry, Canolight configfeat(pi) NeonSink and B2Store adaptersfeat(pi) NeonSink and B2Store adaptersfeat(pi) durable Neon job queue with heartbeat and resumefeat(pi) worker CLI pi-sync with phase orchestrationfeat(pi) config-driven Shopify push (pi-push)fix(pi) correct Canolight price-list column mapping and Excel streaming cell accessfix(pi) correct Canolight Excel column mapping and getCell indexingdocs add product-intelligence pipeline design specdocs add Canolight phase-1 implementation plan (mission-ready)build scaffold product-intelligence workspace packagefeat(pi) define ports and shared typesfeat(pi) normalizeProduct with zod validation, trim, dedupfeat(pi) streaming Excel price-list parserfeat(pi) PDF price-list parser and price-source combinerfeat(pi) WordPress/WooCommerce scraping strategyfeat(pi) runSupplier orchestrator, registry, Canolight configfeat(pi) runSupplier orchestrator, registry, Canolight configfeat(pi) NeonSink and B2Store adaptersfeat(pi) NeonSink and B2Store adaptersfeat(pi) durable Neon job queue with heartbeat and resumefeat(pi) worker CLI pi-sync with phase orchestrationfeat(pi) config-driven Shopify push (pi-push)fix(pi) correct Canolight price-list column mapping and Excel streaming cell accessfix(pi) correct Canolight Excel column mapping and getCell indexing
| Super Premium Claude Opus 4.8 | 38.0h | $3,040 | $15,200 | $25,650 190.0h |
| 06-22 | feat redesign admin catalog manager with new design systemfeat(catalog) add Votatec supplier scraper and Shopify pushfeat(catalog) add Votatec supplier scraper and Shopify pushfix(pi) improve WP name extraction with excerpt/slug fallback, complete Task 11 e2efix(pi) extract Canolight product name from JSON-LD; improve doc extractionfix(pi) prefer WP excerpt title over SKU-suffixed JSON-LD nameschore(pi) finish Canolight e2e load — names, Shopify push, B2 supplier assets, trackingfix(pi) parse Canolight magnetic-track PDF price listchore(pi) full Canolight catalog load — 672 products to Neon/B2/Shopifyfeat(pi) extract Canolight Excel images to B2 and enrich Neon product imagesfeat droid pipeline webhook — Vercel Cron triggers catalog-orchestrator via Droid Computerfeat(pi) migrate Eurofase onto product-intelligence engine — strategy + configfix restore categories page and admin logofix passphrase-only admin login and serve public static assets on admin subdomainchore(pi) complete Eurofase migration — full load, B2, Shopify re-push; delete legacy scriptsfix(catalog) dedup product_documents via (product_id,url) unique index; fix addDocument ON CONFLICT; clean Eurofase Shopify orphansfeat(pi) migrate Votatec onto product-intelligence engine — configfix(pi) decode HTML entities in JSON-LD Product names and WP excerpt titleschore(pi) complete Votatec migration — full load, B2, Shopify re-push; delete legacy scriptsfeat(pi) add rest-api strategy; migrate Eiko configfix(pi) rest-api strategy — use custitem_ordercode as SKU; stop pagination on duplicate pagesfeat wire CMS hero content to homepage Hero componentchore(pi) complete Eiko migration — full load, B2, Shopify re-push; delete legacy scriptsfeat(pi) add odoo-rpc strategy; migrate Reno config
| Super Premium Claude Opus 4.8 | 38.0h | $3,040 | $15,200 | $25,650 190.0h |
| 06-23 | chore(pi) complete Reno migration — full load, B2, Shopify re-push; delete legacy scriptsfix(pi) odoo-rpc domain nesting — single-clause domain must not be double-wrappedfeat(pi) add aspnet-webforms strategy; migrate Liteline configfeat(admin) add Parser tab for triggering catalog ingestion pipelinefeat(admin) add manufacturer scaffolder for new supplier integrationsfeat(admin) add notification system, job tracking, health dashboard, and preferencesfix inline supplier list in health-check.ts to avoid workspace dep issuesfeat(admin) add Health tab to topbar navigationMerge branch 'main' of https//github.com/tindevelopers/canada-lighting-suppliesfix(admin) resolve TypeScript error — unknown type in notifications stepByStep conditionchore ignore .worktrees directoryfeat(pi) add DetectedPlatform, WebsiteAnalysisResult, and shopify-storefront configfeat heuristic platform detector in website analyzerfeat complete website analysis stage (SKU inference, LLM fallback, route, UI wizard, Shopify strategy)chore update progress with website analysis stage completionchore update progress with website analysis stage statusfix(website-analysis) address critical and important review findingschore update progress ledger for website analysis stage- Merge branch 'feat/website-analysis-stage'
- Update homepage Our brands section with logos and partner row.
- Use real brand PNG logos on homepage and add Canadian Energy.
- Fix trade/about duplicates and restore homepage brand logos.
- Revert "Fix trade/about duplicates and restore homepage brand logos."
- Fix trade/about duplicates and restore homepage brand logos.
- Fix homepage featured brand logos rendering at zero height.
- Force fixed height for homepage featured brand logos.
- Replace Turolight homepage logo with full-color wordmark.
| Super Premium Claude Opus 4.8 | 38.0h | $3,040 | $15,200 | $25,650 190.0h |
| 06-24 | feat add dynamic brand filtering, Shopify tag mapping, and CMS brand integration
| Premium Claude Sonnet 4.5 | 1.6h | $80 | $400 | $1,080 8.0h |
| 06-25 | - Add CMS body JSON + layout blocks sync design spec
Update spec generic CMS blocks and frontend-only reverse syncUpdate spec admin-panel sync endpoint + manual/Droid triggersdocs add CMS and frontend implementation plans for body-json syncfeat(frontend) add LayoutBlock types for tradeTiers, brandGrid, faqGroupfeat(frontend) render tradeTiers, brandGrid, faqGroup blocksfeat(frontend) add page-shape registry and typesrefactor(frontend) move homepage shape mapping into page-shapesfeat(frontend) add trade page shape mapperfeat(frontend) add shape mappers for remaining marketing pagesfeat(frontend) add sync-layout-to-body API routefeat(frontend) add developer sync script for body.datafeat(frontend) add page sync drift gate scripttest(frontend) add shape mapper round-trip testschore(frontend) type fixes after lint and typecheckchore(frontend) finish page wiring, copy corrections, update progress ledgerfix(frontend) code review fixes — complete layout-to-body mappers and timing-safe secret checkfix(frontend) refine reverse mappers and add full round-trip test suitedocs(frontend) add frontend mapper fixes reportdocs(sdd) archive CMS body-JSON sync reports, briefs, reviews, and progress updatefix(frontend) mapper tuple order, Lexical FAQ wrap, brand merge, sync secret guard, dead codedocs(sdd) add frontend final fix reportchore ignore superpowers scratch directoryfeat add TypeScript design token system with CSS generationfix make token CSS generation idempotent and remove extra blank lines
| Super Premium Claude Opus 4.8 | 38.0h | $3,040 | $15,200 | $25,650 190.0h |
| 06-26 | chore(pi) complete Liteline migration — delete legacy scriptsfeat(eiko) add Eiko catalog sync and Shopify push scriptsfeat(eiko) add price spot-check scriptfix(storefront) publish products to CLS Headless, surface cart userErrorsfeat CMS-first with fallback — full hero editability, skip sets, E2E testsfix rename heroSlidesToFallbackSlides → resolveHeroSlides, add heroSlider to HP_SKIP
| Super Premium Claude Opus 4.8 | 13.4h | $1,072 | $5,360 | $9,045 67.0h |
| 06-28 | feat(brands) add RENO, Canolight and Votatec to brands index and handle pagesfeat(turolight) add Turolight scraper strategy and pi-sync webhook trigger
| Super Premium Claude Opus 4.8 | 4.5h | $360 | $1,800 | $3,038 22.5h |
| 06-29 | feat(parser) add comprehensive source material system with file upload, URL, and directory supportfeat(catalog) drive batch recategorize from DB vendor listfeat(brands) expand featured brands from 3 to 6 major brandsperf optimize navigation and image loading for faster page transitionsperf reduce nav prefetch and cache brand data pathsfix(admin) repair 401 auth and surface 530 pipeline errors clearlyMerge branch 'main' of https//github.com/tindevelopers/canada-lighting-suppliesfix(shop) add resilient product image fallback chainfix(shop) prefer Neon B2 images for PLP fallbacksfeat(brand) add Eiko to homepage metadata and brand messaging
| Super Premium Claude Opus 4.8 | 22.4h | $1,792 | $8,960 | $15,120 112.0h |
| 06-30 | fix(frontend) normalize CMS contact page fields — channels.lines, subjects, supportPromisesfix(revalidate) accept CMS header format + handle paths for instant ISR invalidationfix add missing cms-normalize module for Vercel buildfix add second argument to revalidateTag for Next.js 16fix(turolight) correct scraper categorization, SKU extraction and concurrencyrefactor(images) centralize B2 image enrichment across product card pages
| Super Premium Claude Opus 4.8 | 13.4h | $1,072 | $5,360 | $9,045 67.0h |
| 07-01 | perf(plp) memoize filter section computation, add brand context to hero
| Premium Claude Sonnet 4.5 | 1.6h | $80 | $400 | $1,080 8.0h |
| 07-02 | - Project Manager — sprint planning, client comms, timelines, risk
| Planning Project Manager · $110/hr | 5h | $550 | $550 | $550 5h |
| 07-05 | feat(eurofase) import full catalog, fix brand page product limits and paginationfix(shop) add missing getPrimaryImagesByShopifyHandles importfix(scripts) inline countProductMedia to fix Vercel buildtest(e2e) add Playwright cart-to-checkout walkthrough scriptfix(wishlist) fill heart icon and show header badge countfeat(wishlist) add two-stage favorites and folder organization- ...
fix(images) force B2 URLs through product-image proxy
| Premium Claude Sonnet 4.5 | 12.8h | $640 | $3,200 | $8,640 64.0h |
| 07-06 | fix(images) replace dead Unsplash asset used for Track Lighting tiledocs(spec) Votatec price list ingestion designdocs(plan) Votatec price list ingestion implementation planfeat(votatec) fix filePath casing and add pHash helperfeat(votatec) add sync and Shopify push scriptsfix(votatec) improve PDF parser with relaxed SKU pattern and truncated SKU fixfix(votatec) use authenticated B2 download for image pHash and direct image updatefix(votatec) handle string prices from Neon in Shopify pushchore(droid) update catalog-orchestrator votatec entry to match new sync scriptfix(shopify) support regional B2 presigned URLs and skip already-synced Eiko products
| Super Premium Claude Opus 4.8 | 22.4h | $1,792 | $8,960 | $15,120 112.0h |
| 07-07 | fix(plp) fetch full cross-brand product set for accurate filter sidebar
| Premium Claude Sonnet 4.5 | 1.6h | $80 | $400 | $1,080 8.0h |
| 07-08 | chore add maintenance scripts and dev configfix(plp) use tag search as source of truth for category pagesrefactor(b2) rename extractB2Key to getObjectKeyFromUrlfeat(categorizer) dynamic supplier list + categorizeProduct return status + remediate scriptfeat(rooms) add Shop by Room feature with tag-based product routingfix(catalog) prevent PLP crashes from invalid image hostsfeat(plp) show SKU + description on product cards, fix list view, correct Shopify tag mappings
| Super Premium Claude Opus 4.8 | 15.7h | $1,256 | $6,280 | $10,598 78.5h |
| 07-09 | - Security Engineer — audits, pen testing, compliance, rls, stripe security
| Planning Security Engineer · $160/hr | 4h | $640 | $640 | $640 4h |
| 07-12 | feat(scripts) add categorize-chunk.sh idempotent chunk runner for scheduled categorizationfeat(catalog) enhance categorization logic and operational scriptsfeat add operational and investigative scripts, design assets, and documentation
| Premium Claude Sonnet 4.5 | 4.8h | $240 | $1,200 | $3,240 24.0h |
| 07-13 | fix(images) restore PLP listings and proxy image delivery- Merge remote-tracking branch 'origin/main'
feat(ui) update category, room, and brand imagery with relevant high-quality Unsplash photosfix(ui) replace remaining mismatched images in hero, journal, seed scripts, and testsfix gate storefront products against Neon DB pricing and fix double dollar signfix guard line-card sections/versions against non-array CMS responsefix validate line-card sections entries are arrays before destructuringfeat add Eurofase dealer API sync + Shopify push pipelinefix(cms) normalize line-card sections to prevent prerender crashdocs category tile room-image designdocs plan for category tile room imagesfeat(catalog) room-match shop-by-category tile images
| Super Premium Claude Opus 4.8 | 26.9h | $2,152 | $10,760 | $18,158 134.5h |
| 07-14 | feat(canolight) parallel categorization and Shopify sync with B2 image fixfeat(catalog) resolve missing images and fix category empty statesfix(plp) resolve blank page on filter click with dynamic quick filtersfix(plp) normalize brand names and enhance filter matchingfix resolve type error in debug scriptfix resolve another type error in debug scriptfix resolve type errors in propagation scriptfix make stripe initialization resilient during buildfix(plp) restore missing brands by fixing handle-based search and enhancing tag mappingfix(plp) speed up commercial category loadingfix(plp) paginate commercial category resultsfix(plp) wrap useSearchParams in suspense boundary to fix prerender crashfeat(search) add lakebase_text BM25 migration, reindex, and Neon preload scriptsfeat(search) add Neon BM25 search and autocomplete query layerfeat(search) route storefront search through Neon BM25 with Shopify fallbackfeat(search) add header autocomplete typeahead powered by Neon BM25feat(admin) route catalog search through BM25 with ILIKE fallbackdocs(plp) add PLP performance and count mismatch fix planfix(plp) restore missing brands by fixing handle-based search and enhancing tag mappingfix(plp) fix broken brand facets - supplier_products has no tags columnfix(plp) pagination did nothing on tag-based and taxonomy-only category pagesfix(nav) add commercial subcategory links to footer for faster discoveryfix(nav) resolve submenu click race condition and update sub-category linksperf(plp) cache Neon queries, cut DB round-trips, add streaming skeletonperf(p2) add DB index migration script and PDP generateStaticParamschore add perf measurement script, fix nav subcategory links and dark-sky taggingperf(search) merge search+count query, cache results, add streaming skeletonfix(plp) enable global client-side filtering by passing full product setchore update performance benchmark resultsfix(plp) resolve count discrepancy between sidebar facets and total countfeat(plp) replace fixed price buckets with dynamic price range sliderfix(plp) remove stale getPriceBucket import causing build failurefeat(wishlist) implement Add to Cart and Add all to cart functionalityfix(cart) resolve disappearing images by enriching cart with Neon images server-side
| Super Premium Claude Opus 4.8 | 38.0h | $3,040 | $15,200 | $25,650 190.0h |
| 07-15 | feat add Eurofase Excel image ingestion script + B2 upload pipeline
| Super Premium Claude Opus 4.8 | 2.2h | $176 | $880 | $1,485 11.0h |
| 07-16 | fix(plp) retry Shopify Admin/Storefront fetches to stop empty category pagesMerge branch 'main' of https//github.com/tindevelopers/canada-lighting-suppliesfix(plp) resolve product count discrepancy in header and pagination- Merge branch 'main' into develop
fix(plp) restore ISR caching by removing searchParams from server component
| Premium Claude Sonnet 4.5 | 8.0h | $400 | $2,000 | $5,400 40.0h |
| 07-17 | docs add broken-image handling & audit design specfeat(pdp) implement dynamic related products and fix broken mock imagesfix(build) exclude scripts from tsconfig to prevent build failures from ad-hoc scriptsfix(build) wrap PLP in Suspense to resolve useSearchParams build failuredocs add broken-image handling implementation planfeat(images) add shouldShowPlaceholder helper for image fallback UIfeat(images) add ProductImage component with no-image placeholderfeat(images) use ProductImage in ProductCard for no-image fallbackfeat(images) use ProductImage in PDP Gallery for no-image fallbackfeat(images) use ProductImage in admin ImageGallery for no-image fallbackfeat(images) add pure audit helpers (hasNoImages, dedupe, concurrency)feat(images) add image_audit_findings table migration + check scriptfeat(images) add broken-image audit script (Neon + Shopify)chore(images) add npm run audit:images script aliasfix(images) use supplier_sku in audit script since supplier_products has no handle column
| Super Premium Claude Opus 4.8 | 33.6h | $2,688 | $13,440 | $22,680 168.0h |
| 07-20 | - QA Engineer — test planning, tdd support, regression, sign-off
| Planning QA Engineer · $95/hr | 2h | $190 | $190 | $190 2h |
| 07-21 | - Junior Programmer — templated screens, crud, wiring, fixes
| Planning Junior Programmer · $75/hr | 4h | $300 | $300 | $300 4h |
| 07-23 | - Business Analyst — requirements, acceptance criteria, user stories
| Planning Business Analyst · $105/hr | 3h | $315 | $315 | $315 3h |
| 07-24 | - DevOps Engineer — ci/cd, cloud infra, monitoring, deployments
| Planning DevOps Engineer · $145/hr | 5h | $725 | $725 | $725 5h |
| 07-27 | - Senior Programmer — architecture, code review, hard problems, sequencing
| Planning Senior Programmer · $150/hr | 4h | $600 | $600 | $600 4h |
| 07-29 | - Design Expert — ux flows, screen design, design system
| Planning Design Expert · $135/hr | 3h | $405 | $405 | $405 3h |
| 07-30 | - QA Engineer — test planning, tdd support, regression, sign-off
| Planning QA Engineer · $95/hr | 5h | $475 | $475 | $475 5h |
| 08-04 | - Security Engineer — audits, pen testing, compliance, rls, stripe security
| Planning Security Engineer · $160/hr | 3h | $480 | $480 | $480 3h |
| 08-05 | - UX Researcher — usability testing, user interviews, flows
| Planning UX Researcher · $120/hr | 5h | $600 | $600 | $600 5h |
| 08-07 | - Database Expert — schema, migrations, rls, query performance
| Planning Database Expert · $140/hr | 2h | $280 | $280 | $280 2h |
| 08-10 | - Junior Programmer — templated screens, crud, wiring, fixes
| Planning Junior Programmer · $75/hr | 3h | $225 | $225 | $225 3h |
| 08-11 | feat(specs) populate PDP specs via metafields + resilient mapper + Reno extractionfeat(specs) harden AI spec extraction, metafield type resilience, and Reno concurrencyfeat(specs) fix PDP spec rendering for optional fields and wire Shopify metafield read pathfix(specs) guard metafield transform against null entries from Storefront APIdocs(spec) add magnetic track light ingestion design spec
| Premium Claude Sonnet 4.5 | 8.0h | $400 | $2,000 | $5,400 40.0h |
| 08-12 | feat(eiko) migrate product documents S3 to B2 with searchable metadatafeat(canolight) add SKU normalization for magnetic track productsfeat(specs) AI extraction for Eurofase/Votatec + metafield push pipeline + coverage auditfix(canolight) remove redundant operations in SKU normalizationfeat(canolight) add magnetic track PDF parserfeat(canolight) add magnetic track category derivationfeat(canolight) add --ingest-magnetic-track mode
| Super Premium Claude Opus 4.8 | 15.7h | $1,256 | $6,280 | $10,598 78.5h |