completed critical

Screenshot

Issue screenshot

Stored at legacy-import/issues/192/1773075319102-c0e09bb6-90d3-4949-ad08-ebcff8a1bfdc.png

Metadata

Selector candidates
[
  {
    "matches": 1,
    "score": 76,
    "selector": "div.bg-white.rounded-xl.shadow-md",
    "strategy": "class"
  },
  {
    "matches": 1,
    "score": 74,
    "selector": "#action-center \u003e div:nth-of-type(1)",
    "strategy": "scoped-parent-id"
  },
  {
    "matches": 247,
    "score": 60,
    "selector": "div:nth-of-type(1)",
    "strategy": "nth-of-type"
  },
  {
    "matches": 2,
    "score": 58,
    "selector": "#action-center \u003e div \u003e div:nth-of-type(1)",
    "strategy": "ancestor-path"
  }
]
Target fingerprint
{
  "ancestorPath": [
    "#action-center",
    "div"
  ],
  "ariaLabel": null,
  "className": "bg-white rounded-xl shadow-md border-2 border-[#7FBCE6] p-6",
  "href": null,
  "id": null,
  "name": null,
  "role": null,
  "tagName": "div",
  "textSample": "Pending Requests (Requires decision) 1 total MAE (Visits) Aug 3 - Aug 3, 2026 3d left Accept Decline Keeping your calend"
}
Secondary signal
{
  "hasFiberInstance": true,
  "reactComponentStack": [
    "div",
    "section",
    "eC",
    "Content",
    "c",
    "eV",
    "x",
    "f",
    "T",
    "E",
    "j",
    "u"
  ],
  "reactOwnerStack": [],
  "source": "react-fiber"
}
Layout evidence
bbox:
{
  "bottom": 1350,
  "height": 606,
  "left": 504,
  "right": 1108,
  "top": 744,
  "width": 604,
  "x": 504,
  "y": 744
}

viewport:
{
  "height": 1112,
  "width": 1920
}

scroll:
{
  "x": 0,
  "y": 0
}

screenshotMarks:
[]
DOM excerpt
<div class="bg-white rounded-xl shadow-md border-2 border-[#7FBCE6] p-6"><div class="flex items-center justify-between mb-5"><div class="flex items-center"><h3 class="text-lg font-bold text-gray-900">Pending Requests</h3><span class="ml-2 text-xs text-gray-500 font-medium">(<!-- -->Requires decision<!-- -->)</span></div><span class="bg-red-500 text-white text-xs font-bold px-3 py-1.5 rounded-full">1 total</span></div><div class="space-y-4"><div class="border-l-4 rounded-lg p-4 shadow-sm hover:shadow-lg hover:scale-[1.01] transition-all duration-200 cursor-pointer group border-l-[#7FBCE6] bg-blue-50"><div class="flex items-start justify-between mb-3"><div class="flex items-start"><div class="w-10 h-10 bg-white rounded-full flex items-center justify-center shadow-sm mr-3 flex-shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar w-5 h-5 text-[#7FBCE6]" aria-hidden="true" data-sentry-element="Calendar" data-sentry-component="renderRequestIcon" data-sentry-source-file="PetsitterDashboardV2Desktop.tsx"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg></div><div><h4 class="font-bold text-gray-900 text-base">MAE (Visits)</h4><p class="text-sm text-gray-600 mt-1 flex items-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar w-3.5 h-3.5 mr-1" aria-hidden="true"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg>Aug 3 - Aug 3, 2026</p></div></div><span class="text-xs font-bold text-white bg-[#7FBCE6] px-2.5 py-1.5 rounded-lg flex items-center gap-1 shadow-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock w-3 h-3" aria-hidden="true"><path d="M12 6v6l4 2"></path><circle cx="12" cy="12" r="10"></circle></svg>3d left</span></div><div class="flex space-x-3 mt-4 mb-2"><button type="button" class="flex-1 px-4 py-3 bg-[#7FBCE6] text-white rounded-lg text-sm font-bold hover:bg-[#5FA5D1] shadow-md hover:shadow-lg transition-all disabled:opacity-60 disabled:cursor-not-allowed">Accept</button><button type="button" class="flex-1 px-4 py-3 bg-white border border-gray-200 text-gray-600 rounded-lg text-sm font-semibold hover:bg-gray-50 transition-all disabled:opacity-60 disabled:cursor-not-allowed">Decline</button></div><p class="text-xs text-[#7FBCE6] text-center mb-2 font-medium">Keeping your calendar accurate helps you avoid cancellations and stay higher in search.</p><div class="text-center"><a class="text-sm text-gray-500 hover:text-gray-700 inline-flex items-center" href="/at/petsitter/bookings/132665">View details<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right ml-1 w-3 h-3" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div></div></div><div class="mt-4 text-center"><a class="text-sm text-[#7FBCE6] hover:text-[#5FA5D1] font-medium" data-sentry-element="Link" data-sentry-source-file="PetsitterDashboardV2Desktop.tsx" href="/at/petsitter/bookings">View all requests</a></div></div>

Thread

qa-user 2026-03-10 10:24:28

Implemented fix locally on 2026-03-10. Root cause: the petsitter dashboard live model duplicated sitter-action requests into both buckets. Fix: strict pending requests now populate only the Pending Requests section, while quote/reservation requests that need sitter action remain in Action Required. Verification: - regression test added and passing: tests/unit/petsitter-dashboard/build-live-model.test.ts - browser retest done in DevTools on the local action-heavy debug preset - confirmed visual split: 2 request cards in Action Required, 1 request card in Pending Requests

qa-user 2026-03-10 10:24:28

Desktop viewport screenshot from DevTools retest. This shows the corrected split with Action Required containing sitter-action request cards and Pending Requests showing only the pending request card.

qa-192-action-heavy-top.png qa-192-action-heavy-top.png