completed high

Screenshot

Issue screenshot

Stored at legacy-import/issues/174/1773065719920-a153b5a8-027c-426c-a4d9-92970cb3d3cb.png

Metadata

Selector candidates
[
  {
    "matches": 3,
    "score": 76,
    "selector": "div.rounded-lg.shadow-sm.border",
    "strategy": "class"
  },
  {
    "matches": 194,
    "score": 60,
    "selector": "div:nth-of-type(1)",
    "strategy": "nth-of-type"
  },
  {
    "matches": 2,
    "score": 58,
    "selector": "#action-required-section \u003e div \u003e div \u003e div:nth-of-type(1)",
    "strategy": "ancestor-path"
  }
]
Target fingerprint
{
  "ancestorPath": [
    "#action-required-section",
    "div",
    "div"
  ],
  "ariaLabel": null,
  "className": "rounded-lg shadow-sm border border-gray-100 border-l-4 p-5 border-l-[#7FBCE6] bg-blue-50",
  "href": null,
  "id": null,
  "name": null,
  "role": null,
  "tagName": "div",
  "textSample": "Payment Setup Required Complete your payment setup to start accepting bookings Complete Setup"
}
Secondary signal
{
  "hasFiberInstance": true,
  "reactComponentStack": [
    "div",
    "ew",
    "section",
    "eC",
    "Content",
    "o",
    "eV",
    "x",
    "c",
    "f",
    "T",
    "E"
  ],
  "reactOwnerStack": [],
  "source": "react-fiber"
}
Layout evidence
bbox:
{
  "bottom": 409,
  "height": 102,
  "left": 529,
  "right": 1711,
  "top": 307,
  "width": 1182,
  "x": 529,
  "y": 307
}

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

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

screenshotMarks:
[]
DOM excerpt
<div class="rounded-lg shadow-sm border border-gray-100 border-l-4 p-5 border-l-[#7FBCE6] bg-blue-50"><div class="flex flex-col md:flex-row md:items-center md:justify-between gap-4"><div class="flex-1"><div class="flex items-center gap-2 mb-1"><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-circle-check w-4 h-4 text-[#7FBCE6]" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg><h3 class="font-bold text-gray-900">Payment Setup Required</h3></div><p class="text-sm text-gray-600 mb-3">Complete your payment setup to start accepting bookings</p></div><div class="flex flex-col gap-2 md:flex-row md:gap-3"><a class="px-6 py-2.5 bg-[#7FBCE6] hover:bg-[#5FA5D1] text-white font-semibold rounded-lg transition-colors whitespace-nowrap text-center" href="/at/petsitter/payments/onboarding">Complete Setup</a></div></div></div>

Thread

qa-user 2026-03-10 15:33:54

Fixed in local code and verified. Root cause: - The petsitter dashboard banner was reading stale translation copy for the Stripe setup alert, so the route rendered the old title, subtitle, CTA, and supporting text shown in the issue evidence. Implementation: - Updated the dashboard Stripe alert copy in the petsitter translation sources used by the route. - Kept the component and route logic unchanged; this was a content-source fix, not a UI-logic workaround. Regression coverage: - tests/unit/petsitter-dashboard-stripe-copy.test.ts - tests/unit/lib/petsitter-dashboard-capacity.test.ts Commands run: - npx vitest run tests/unit/petsitter-dashboard-stripe-copy.test.ts tests/unit/lib/petsitter-dashboard-capacity.test.ts -> pass Reproduction result: - Confirmed from the original staging issue payload and DOM excerpt: the card previously rendered "Payment Setup Required", "Complete your payment setup to start accepting bookings", and "Complete Setup". - Local post-fix verification was run on the same dashboard flow with a seeded sitter session. Visual verification: - Route verified in Chrome DevTools MCP: http://localhost:3000/at/petsitter/dashboard - Confirmed the banner now shows "Let us know where to send your earnings!", the updated subtitle, and the "Complete setup" CTA. - Console check: no critical errors; one unrelated existing Next.js image sizing warning for /holidog.webp. - Network check: core dashboard/auth/bootstrap requests were 200; one aborted /api/events/poll long-poll request was non-blocking and unrelated to the banner state. Artifacts: - Attached screenshot: full local /at/petsitter/dashboard after the fix, with the updated payment banner visible near the top of the page. Residual risk: - Low. The change is isolated to translation copy, and the new regression test locks the exact banner strings used by the dashboard.

qa-fix-174-full.png qa-fix-174-full.png
qa-user 2026-03-10 15:33:54

Focused artifact: the corrected payment banner title rendered on the dashboard after the fix.

qa-fix-174-detail.png qa-fix-174-detail.png