completed high

Screenshot

Issue screenshot

Stored at legacy-import/issues/193/1773075926227-382d12b5-335b-40ba-8c03-31a0a2c47556.png

Metadata

Selector candidates
[
  {
    "matches": 1,
    "score": 100,
    "selector": "#profile-completion",
    "strategy": "id"
  },
  {
    "matches": 5,
    "score": 76,
    "selector": "section.bg-white.rounded-xl.shadow-sm",
    "strategy": "class"
  },
  {
    "matches": 2,
    "score": 60,
    "selector": "section:nth-of-type(7)",
    "strategy": "nth-of-type"
  },
  {
    "matches": 0,
    "score": 58,
    "selector": "#profile-completion \u003e section:nth-of-type(7)",
    "strategy": "ancestor-path"
  }
]
Target fingerprint
{
  "ancestorPath": [
    "#profile-completion"
  ],
  "ariaLabel": null,
  "className": "bg-white rounded-xl shadow-sm border border-gray-200 p-8 mb-6",
  "href": null,
  "id": "profile-completion",
  "name": null,
  "role": null,
  "tagName": "section",
  "textSample": "Complete Your Profile A complete profile increases trust and booking chances. Profile Completion 20% Photos Add photos t"
}
Secondary signal
{
  "hasFiberInstance": true,
  "reactComponentStack": [
    "section",
    "div",
    "eC",
    "Content",
    "c",
    "eV",
    "x",
    "f",
    "T",
    "E",
    "j",
    "u"
  ],
  "reactOwnerStack": [],
  "source": "react-fiber"
}
Layout evidence
bbox:
{
  "bottom": 880,
  "height": 1166,
  "left": 504,
  "right": 1736,
  "top": -286,
  "width": 1232,
  "x": 504,
  "y": -286
}

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

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

screenshotMarks:
[]
DOM excerpt
<section id="profile-completion" class="bg-white rounded-xl shadow-sm border border-gray-200 p-8 mb-6"><div class="flex items-start justify-between mb-6"><div class="flex-1"><h3 class="text-xl font-bold text-gray-900 mb-2">Complete Your Profile</h3><p class="text-gray-600">A complete profile increases trust and booking chances.</p></div></div><div class="mb-6"><div class="flex items-center justify-between mb-2"><span class="text-sm font-semibold text-gray-900">Profile Completion</span><span class="text-sm font-bold text-[#7FBCE6]">20%</span></div><div class="w-full bg-gray-200 rounded-full h-3"><div class="bg-[#7FBCE6] h-3 rounded-full transition-all duration-500" style="width: 20%;"></div></div></div><div class="space-y-3"><div class="flex items-start p-4 rounded-lg border bg-green-50 border-green-200"><div class="w-6 h-6 rounded-full flex items-center justify-center flex-shrink-0 mt-0.5 bg-green-500"><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-check text-white text-xs w-3.5 h-3.5" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg></div><div class="ml-4 flex-1"><div class="flex items-center justify-between mb-2"><h4 class="font-semibold text-gray-900 text-sm">Photos</h4></div><p class="text-xs text-gray-600">Add photos to your profile</p></div></div><div class="flex items-start p-4 rounded-lg border bg-green-50 border-green-200"><div class="w-6 h-6 rounded-full flex items-center justify-center flex-shrink-0 mt-0.5 bg-green-500"><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-check text-white text-xs w-3.5 h-3.5" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg></div><div class="ml-4 flex-1"><div class="flex items-center justify-between mb-2"><h4 class="font-semibold text-gray-900 text-sm">Your Address</h4></div><p class="text-xs text-gray-600">Where you provide services</p></div></div><div class="flex items-start p-4 rounded-lg border bg-gray-50 border-gray-200"><div class="w-6 h-6 rounded-full flex items-center justify-center flex-shrink-0 mt-0.5 bg-gray-300"><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 text-gray-500 text-xs w-3 h-3" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle></svg></div><div class="ml-4 flex-1"><div class="flex items-center justify-between mb-2"><h4 class="font-semibold text-gray-900 text-sm">Services &amp; Pricing</h4><a class="px-3 py-1.5 bg-[#7FBCE6] text-white rounded-lg text-xs font-medium hover:bg-[#5FA5D1] transition" href="/at/petsitter/services">Complete</a></div><p class="text-xs text-gray-600">What you offer and your rates</p></div></div><div class="flex items-start p-4 rounded-lg border bg-gray-50 border-gray-200"><div class="w-6 h-6 rounded-full flex items-center justify-center flex-shrink-0 mt-0.5 bg-gray-300"><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 text-gray-500 text-xs w-3 h-3" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle></svg></div><div class="ml-4 flex-1"><div class="flex items-center justify-between mb-2"><h4 class="font-semibold text-gray-900 text-sm">Your Story</h4><a class="px-3 py-1.5 bg-[#7FBCE6] text-white rounded-lg text-xs font-medium hover:bg-[#5FA5D1] transition" href="/at/petsitter/basic">Complete</a></div><p class="text-xs text-gray-600">Tell pet owners about yourself</p></div></div><div class="flex items-start p-4 rounded-lg border bg-gray-50 border-gray-200"><div class="w-6 h-6 rounded-full flex items-center justify-center flex-shrink-0 mt-0.5 bg-gray-300"><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 text-gray-500 text-xs w-3 h-3" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle></svg></div><div class="ml-4 flex-1"><div class="flex items-center justify-between mb-2"><h4 class="font-semibold text-gray-900 text-sm">Personal Information</h4><a class="px-3 py-1.5 bg-[#7FBCE6] text-white rounded-lg text-xs font-medium hover:bg-[#5FA5D1] transition" href="/at/petsitter/basic">Complete</a></div><p class="text-xs text-gray-600">Your basic details</p></div></div><div class="flex items-start p-4 rounded-lg border bg-gray-50 border-gray-200"><div class="w-6 h-6 rounded-full flex items-center justify-center flex-shrink-0 mt-0.5 bg-gray-300"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 2

Thread

qa-user 2026-03-10 13:11:38

Mobile verification screenshot: the mobile profile-completion card no longer includes Preview & Launch / Vorschau & Start and no /petsitter/profile completion CTA is present.

qa-fix-193-detail.png qa-fix-193-detail.png
qa-user 2026-03-10 13:11:38

Fixed in local code and verified. Root cause: - The petsitter dashboard V2 profile-completion model was built from the full onboarding step list, so it still included the non-user-action "preview" step and linked to /petsitter/profile. Implementation: - Excluded the preview step from dashboard profile-completion items by introducing a dedicated profile-completion step list and using it in the petsitter dashboard server model. Regression coverage: - tests/unit/petsitter-dashboard/build-server-model.test.ts - omits the preview step from profile completion progress and checklist items - updated route-link assertions to ensure no preview item is exposed Commands run: - pnpm exec vitest run tests/unit/petsitter-dashboard/build-server-model.test.ts -> pass - pnpm exec vitest run tests/unit/petsitter-dashboard/build-links.test.ts -> pass - pnpm exec eslint 'src/features/petsitter-dashboard/application/build-server-model.ts' 'src/lib/onboarding/petsitter-steps.ts' 'tests/unit/petsitter-dashboard/build-server-model.test.ts' -> pass with pre-existing no-explicit-any warnings in build-server-model.ts Visual verification: - Reproduced on staging at /at/petsitter/dashboard?debug=true&debugDashboardPreset=new-sitter&pen=true before the fix: the checklist showed "Vorschau & Start" with CTA to /at/petsitter/profile. - Verified after the fix on local at http://localhost:3002/at/petsitter/dashboard?debug=true&debugDashboardPreset=new-sitter&pen=true with Chrome DevTools MCP: the profile-completion section no longer shows Preview & Launch / Vorschau & Start and no CTA to /petsitter/profile remains. - Checked console: no critical client errors after reload; only normal dev/HMR noise earlier. - Checked network: dashboard document and core dashboard APIs returned 200 after reload. Artifacts: - Attached screenshot: desktop after-fix dashboard showing the profile-completion section without the preview item. Reproduction result: - exact reproduction confirmed on staging before the fix Residual risk: - Low. The change is limited to the dashboard V2 profile-completion model. Onboarding step 10 still exists for the actual activation flow, so risk is mainly any other consumer that intentionally wants the full onboarding step list.

qa-fix-193-after.png qa-fix-193-after.png