Help page "Steil Stitch" is a made-up name (likely meant "Stem Stitch") + FAQ accordion below it doesn't expand on click (same IntersectionObserver race as #104) #109
Labels
No labels
blocked:commit-ready-failed
blocked:gate-fetch
blocked:gate-lint
blocked:gate-plan
blocked:gate-research
blocked:needs-attention
blocked:needs-decision
blocked:needs-human
blocked:no-changes
blocked:verify-failed
bug
deferred
feature-request
in-progress
needs-decompose
needs-triage
quickfix
security/medium
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/Kimi_Agent_Brother_10_Digitizing_App#109
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Bug: Help page "Steil Stitch" is a made-up name + every section on Help page uses the broken IntersectionObserver pattern (same shape as #104, NOT generalized)
Two findings on
src/pages/Help.tsx1. "Steil Stitch" is not a real embroidery stitch type
src/pages/Help.tsx:95lists a stitch type:The description ("very narrow satin columns, fine detail, small text") matches Stem Stitch — a real embroidery technique commonly used for thin outlines and small detail work. "Steil" is not an English embroidery term. It looks like a typo for "Stem" (missing
m) or a phonetic attempt at the German "steil" (steep) which isn't an embroidery term either.The visual component at
src/components/help/StitchPatterns.tsx:266-267is also namedSteilPattern:…and rendered as a "narrow vertical satin" pattern — which is exactly what a stem stitch looks like in SVG. The intent is clearly a stem stitch; the name was just misspelled.
Reproduction:
cd ~/Projects/Kimi_Agent_Brother_10_Digitizing_App && npm run devhttp://localhost:3000/help.Expected: "Stem Stitch" (or a similarly legitimate embroidery term).
Actual: "Steil Stitch" — not a real term, will confuse any embroiderer reading the help docs.
2. Every section on Help page uses the broken IntersectionObserver pattern (10 occurrences in Help.tsx alone)
grep -nE 'animate=\{X?Trigger\.inView' src/pages/Help.tsxreturns 10 hits — every section on Help page uses the broken pattern that #104 originally diagnosed:All ten use the shape
animate={someTrigger.inView ? 'visible' : 'hidden'}withuseInView({ once: true, amount: 0.2 })driving the trigger. If the IntersectionObserver doesn't fire when a section enters the viewport, the section stays in the "hidden" variant state atopacity: 0.#104 only fixed Three Steps on Home. The same broken pattern was NOT generalized to Home (where every motion div now correctly uses
whileInView) nor to Help. Help page is entirely broken by this race — a user landing on /help at scrollY=0 sees only the chrome; everything else is at opacity 0 until they scroll. Even after scrolling, the FAQ accordion doesn't expand because its parentmotion.divstays hidden.Reproduction:
npm run dev, navigate tohttp://localhost:3000/help.[collapsed], no answer reveals.Verified 2026-09-25: scroll-trigger via
mcp__browseros__read(which scrolls the page internally) does NOT cause the FAQ accordion to become interactable. Question text is in DOM (extractable) but AccordionContent stays at opacity 0 because themotion.divparent is gated onfaqTrigger.inView.Suggested fix scope
The #104 fix shape worked. Generalize it.
Rename
SteilPattern→StemPatterninsrc/components/help/StitchPatterns.tsx:266-267,src/pages/Help.tsx:21(import),src/pages/Help.tsx:95(label + Pattern reference). Confirm "Stem" is the intended stitch with the embroidery reference; if not, pick another legitimate name.Apply the #104 fix to every remaining
animate={X.inView ? ... : ...}instance in the codebase. That's 10 instances insrc/pages/Help.tsxalone. Also sweep the rest ofsrc/for the same shape:For each instance, replace with per-element
whileInView={{...}}+viewport={{ once: true, amount: 0.2 }}per the pattern that closed #104.isIntersecting: trueimmediately, assert every section's content is visible (opacity > 0), then click each FAQ trigger and assert the answer is revealed.Labels
Severity
Medium–High. "Steil Stitch" alone is a credibility-undermining typo on the educational surface. The IntersectionObserver race means the Help page — the place users go when they have questions — is functionally unusable on first paint; only the chrome and headline show. For an SMB-pro audience paying $49–399/mo, this is a critical support-path failure.
Related
inView ? 'visible' : 'hidden'pattern. Fix was applied locally to Three Steps but not generalized. The right follow-up was always to apply the same fix everywhere; this issue captures the rest of the surface area.Filed 2026-09-25 by user-driven bughunt session.