Implemented locally and verified for the sitter-side declined proposal flow. Summary: - Fixed scenario resolution for rejected sitter-side quote history so the correct proposal-declined card renders. - Updated card copy to show Your proposal was declined and The owner declined your proposal. You can archive this conversation. - Updated CTAs to Archive plus See details. - Archive CTA now uses the same archive flow as the thread header and menu. Regression tests run: - pnpm exec vitest run tests/unit/booking/request-flow-scenario-resolver.test.ts tests/unit/booking/request-flow-scenario-copy-actions.test.ts tests/unit/request-flow/request-flow-state-card-model-render.test.tsx tests/unit/booking/request-flow-manifest-en-hash.test.ts tests/unit/booking/request-flow-overrides-coverage.test.ts - Result: all green (70 of 70). Visual verification on March 10, 2026: - /home/tarasowski/Coding/projects/holidog-3002/tmp/qa-169-fixed-card.png - /home/tarasowski/Coding/projects/holidog-3002/tmp/qa-169-archive-action.png
Standalone QA Hub
Issue #52
/at/petsitter/messages · 2026-03-10 12:05:18
completed
critical
Screenshot
Stored at legacy-import/issues/169/1772784356315-93931dbf-576a-4e66-b4f1-90572691e3e3.png
Metadata
Selector candidates
[
{
"matches": 14,
"score": 76,
"selector": "div.bg-white.border.border-\\[\\#E3EDF7\\]",
"strategy": "class"
},
{
"matches": 117,
"score": 60,
"selector": "div:nth-of-type(1)",
"strategy": "nth-of-type"
},
{
"matches": 92,
"score": 58,
"selector": "div \u003e div \u003e div \u003e div \u003e div \u003e div:nth-of-type(1)",
"strategy": "ancestor-path"
}
]
Target fingerprint
{
"ancestorPath": [
"div",
"div",
"div",
"div",
"div",
"div"
],
"ariaLabel": null,
"className": "bg-white border border-[#E3EDF7] rounded-2xl p-5 w-full max-w-[500px] shadow-[0_1px_2px_rgba(0,0,0,0.04)]",
"href": null,
"id": null,
"name": null,
"role": null,
"tagName": "div",
"textSample": "Request closed Pet Boarding • 7 mai – 8 mai You declined this request. See details"
}
Secondary signal
{
"hasFiberInstance": true,
"reactComponentStack": [
"div",
"sa",
"eO",
"su",
"Content",
"o",
"I",
"U",
"x",
"c",
"f",
"T"
],
"reactOwnerStack": [],
"source": "react-fiber"
}
Layout evidence
bbox:
{
"bottom": 944,
"height": 181,
"left": 17,
"right": 517,
"top": 763,
"width": 500,
"x": 17,
"y": 763
}
viewport:
{
"height": 1112,
"width": 916
}
scroll:
{
"x": 0,
"y": 0
}
screenshotMarks:
[]
DOM excerpt
<div class="bg-white border border-[#E3EDF7] rounded-2xl p-5 w-full max-w-[500px] shadow-[0_1px_2px_rgba(0,0,0,0.04)]"><div class="flex items-start gap-4 mb-4"><div class="w-10 h-10 rounded-full flex items-center justify-center shrink-0 mt-1 bg-red-50 text-red-600"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" class="text-base" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z"></path></svg></div><div class="flex-1"><h3 class="text-[#1F2937] text-lg font-semibold leading-tight mb-1">Request closed</h3><p class="text-[#6B7280] text-sm mb-2">Pet Boarding • 7 mai – 8 mai</p><p class="text-[#6B7280] text-sm leading-relaxed mb-3">You declined this request.</p></div></div><div class="flex flex-col items-center gap-3 mt-2"><button type="button" class="text-[#6B7280] text-sm font-medium hover:text-[#7fbce6] hover:underline transition-colors pb-1" data-sentry-component="InlineLinkAction" data-sentry-source-file="RequestFlowStateCard.tsx">See details</button></div></div>
Thread
qa-user
2026-03-10 12:05:58
qa-user
2026-03-10 12:09:22
Visual verification screenshot: fixed declined-proposal card showing Archive and See details.
qa-169-fixed-card.png
qa-user
2026-03-10 12:09:22
Visual verification screenshot: archive action verified from the declined-proposal thread.
qa-169-archive-action.png