Review: Fix Steam XWayland overlay crash (re-review)
Verdict: NEEDS_REFINEMENT
Re-review of board item #1652 after scope refinement. All
[BODY] issues from the previous review (review-1652-2026-06-28) have been resolved. Only [SCOPE] items remain.Template Completeness
Template:
template-issue-bug- [x] Type — Bug
- [x] Lineage — Standalone, discovered during Pal-E World Phase 2 testing on 2026-06-28
- [x] Repo —
ldraney/hyprland-config - [x] What Broke — Steam overlay pipe crash every 1-3 minutes on XWayland/Hyprland
- [x] Repro Steps — 4 clear steps provided
- [x] Expected Behavior — Present, specifies
-no-overlayfix - [x] Environment — archbox, GTX 1070, Hyprland + XWayland, Steam stable
- [x] File Targets — 3 targets with line numbers (added since previous review)
- [x] Acceptance Criteria — 4 criteria (increased from 3, added docs update AC)
- [x] Related —
pal-e-worldproject referenced
All required Bug template sections present. File Targets section is an extension beyond the base template — well-structured.
Traceability
- [x] story:remote-play label — present on board item
- [ ] story note MISSING — project-pal-e-world user-stories section lists "pal-e-world" but no "remote-play" entry. [SCOPE] Add "remote-play" user story entry to project-pal-e-world user-stories section. Three board items (#1651, #1652, #1654) use this label.
- [x] arch:infra label — present on board item
- [ ] arch note MISSING — search for
arch-infrareturned zero results in pal-e-docs. [SCOPE] Create architecture notearch-infrafor component infra. Multiple board items reference this label. - [x] Forgejo issue — ldraney/hyprland-config#14, state: open
File Targets
- [x]
hyprland.lua:137— verified: line 137 containshl.exec_cmd("pgrep -x steam || steam"). Fix correctly targets adding-no-overlayflag. - [x]
docs/architecture.md:76— verified: line 76 reads "Known limitation: Steam overlay pipe crash (pipes.cpp:900) every 1-3 minutes on XWayland. Unfixable." - [x]
docs/gpu-sharing-gow.md:5— verified: line 5 contains "has an unfixable Steam overlay crash (pipes.cpp:900)" - [ ]
docs/gpu-sharing-gow.md:65— NOT LISTED as file target. Blast radius finding: this line also says "Steam overlay pipe crash every 1-3 minutes on XWayland. Unfixable on Hyprland's XWayland." The AC "Docs updated to reflect the working fix (no longer 'Unfixable')" covers this implicitly, but adding the explicit file target would prevent a stale reference. [BODY] Adddocs/gpu-sharing-gow.md:65as a file target.
Repo Placement
OK — issue filed on
ldraney/hyprland-config, all file targets (hyprland.lua, docs/) live in that repo. Single repo, no cross-repo concerns.Dependencies
- #1651 "Install Sunshine on archbox" (3pt, story:remote-play) — same story, independent. Sunshine streaming is a separate concern.
- #1654 "E2E: MacBook → Moonlight → Tailscale → archbox" (2pt, story:remote-play) — soft dependency; E2E benefits from Steam stability but is not blocked.
- #1650 "Scale down k8s Ollama to free GPU" (1pt, story:gpu-freedom) — independent, different story.
- No items in
in_progressthat block this ticket. Phase 1 is in_progress but unrelated. - Dependencies acceptable for standalone bug — not documented in issue body, not needed.
Acceptance Criteria
4 criteria — reasonable count, under the 5 threshold.
- "Steam launches with
-no-overlayflag viahyprland.lua" — agent-verifiable (grep for flag in file). - "Steam runs without crashing for 30+ minutes" — manual testing only. Testable but not automatable.
- "Docs updated to reflect the working fix (no longer 'Unfixable')" — agent-verifiable (grep for "Unfixable" should return zero hits post-fix).
- "No regression in Hyprland session stability" — manual testing only. Testable but not automatable.
AC quality is solid. The docs AC is broad enough to cover all "Unfixable" references including the unlisted line 65.
Blast Radius
docs/gpu-sharing-gow.md:65— second "Unfixable" reference in same file, not listed as file target (see File Targets section above).docs/pal-e-world.md:73-94— already documents the crash and-no-overlaysolution correctly. No change needed.README.md— mentions Steam but makes no "Unfixable" claims. No change needed.- A worktree
.claude/worktrees/steam-crash-fixalready exists, suggesting prior implementation work was started. Implementer should check for stale state.
Decomposition Assessment
No decomposition needed.
- File targets: 3 files in 1 repo (plus 1 additional line in same file)
- Acceptance criteria: 4 (under threshold of 5)
- Estimated agent work: under 5 minutes
- Points: 1 (correctly sized)
Recommendations
Resolved from previous review:
- [BODY] Add file targets — RESOLVED: 3 file targets with line numbers now specified
- [BODY] Add AC for "Unfixable" docs — RESOLVED: AC now includes "Docs updated to reflect the working fix"
Remaining:
- [SCOPE] Add "remote-play" user story entry to project-pal-e-world user-stories section. Three board items (#1651, #1652, #1654) use this story label but no backing entry exists.
- [SCOPE] Create architecture note
arch-infrafor component infra. Multiple board items reference this arch label. - [BODY] Minor: Add
docs/gpu-sharing-gow.md:65as a fourth file target — second "Unfixable" reference in the same file. The AC covers this implicitly, but explicit targeting prevents oversight.