Uh oh!
There was an error while loading. Please reload this page.
fix(ui): separate sidebar row actions from navigation buttons - #2944
fix(ui): separate sidebar row actions from navigation buttons#2944jackeyfaker77 wants to merge 1 commit into
Conversation
Generated-by: Codex
Astro-Han
commented
Aug 13, 2026
Thanks for this — the diagnosis here is the sharper of the two PRs. I'm still leaning toward #2951 for this fix, for one reason. Two things from here are worth keeping. The ordering assertion, ported to One unrelated note: 中文感谢这个 PR——两个方案里它的诊断更准。 这次我仍倾向 #2951,理由只有一条。 有两样东西值得保留。一是顺序断言,改用 一条无关的提醒: |
jackeyfaker77
commented
Aug 13, 2026
Thanks — this makes sense. I agree that #2951 is the better landing path for the immediate fix if the ordering can be corrected at the call site without adding another local patch. I'd be happy to open an upstream Astryx PR. I'll move Good catch on the unreachable collapsed-sidebar selector as well. I'll leave this PR as-is for now unless you'd prefer me to close it after #2951 lands. 中文感谢说明,这个取舍很合理。如果能够在调用点修正顺序、避免新增本地 patch,我同意 #2951 更适合作为当前问题的落地方案。 我愿意给 Astryx 开上游 PR。我会把 也感谢指出折叠侧边栏选择器永远匹配不到。我暂时保留这个 PR;如果你希望在 #2951 合并后关闭它,我可以再处理。 Generated-by: Codex |
Astro-Han
commented
Aug 13, 2026
#2951 has landed, so I'm taking you up on the offer and closing this. Thank you for the work here, and for how gracefully you handled ending up as the duplicate. I did check whether to rebase and keep parts of it first — there's nothing left to salvage. The remaining delta over main is just the Astryx patch; everything else would revert what landed. #2951 went in with the call-site ordering fix plus an E2E that tabs through the row, toggles the disclosure and checks focus return. Your upstream plan is exactly right, and the split-action row is the part that matters — that's what makes the API own layout as well as DOM order, which is what lets both row types drop the absolute positioning and the mirrored chevron geometry. Link the Astryx PR here or on #2360 when it's up; I'll track it and delete our workaround the day it ships. Review assistance: Claude Code (Opus); I verified the focus-order behaviour and the Astryx DOM structure by hand. 中文#2951 已经合并,那就按你说的关掉这个。感谢你在这里的工作,也感谢你面对「成了重复的那一个」时的坦然。 我先确认过要不要 rebase 再挑一部分进去——没有可挑的了。相对 main 的残余只剩那条 Astryx patch,其余部分都会把已合并的东西改回去。#2951 最终带着调用点的顺序修复合入,另有一条 E2E:按 Tab 走过整行、开合 disclosure、检查回焦。 你的上游计划完全正确,而 split-action 行容器正是关键的那一步——它让这个 API 同时负责布局和 DOM 顺序,也正因如此,两种行才能去掉绝对定位和复刻的 chevron 几何。Astryx PR 开好后在这里或 #2360 贴个链接,我会跟进,上游一落地就删掉我们的绕行方案。 评审协助说明:Claude Code (Opus);焦点顺序的行为与 Astryx 的 DOM 结构由我手工核实。 |
Summary
SideNavItem.siblingActionslot for project rows so keyboard order stays project, project actions, then nested sessions without moving the control visually.Verification
npm --workspace @maka/ui test— 131 tests passednpm run lintnpm run format:checknpm run buildnpm run typechecknpx knip --workspace apps/desktopnpx knip --workspace packages/uiproduct-sidebar-session-list--project-groups: confirmed zero nested buttons, project → project actions → session focus order, and unchanged action placementBefore review
Checklist
Does this PR entail a change in behavior?
Generated-by: Codex