fix(frontend): repair staging breakpoint and focus contracts
Independent Staging Quality Gate / validate (push) Failing after 12m24s
Independent Staging Quality Gate / publish (push) Skipped

Merge entry overflow rules into the existing 480px breakpoint, restore picker focus without scrolling, and sync composer and entry contracts without changing page logic. Add AST generation-state guard and both picker close-path regressions.

Validation: targeted 33/33; Chrome isolated components 145 checks; tsc and lint zero errors. Node22 full suite 3706 tests, no lost names or new failures; three target failures fixed, 88 baseline environment/contract failures unchanged. Windows build remains blocked by symlink EPERM. Changed-file privacy check: 11 files, no findings, not a full-repository pass. BUG-1011 remains separate.

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
jesse-ux
2026-09-23 16:31:10 +08:00
co-authored by Claude Code
parent 93cd01dbf9
commit 36a737616c
11 changed files with 187 additions and 18 deletions
@@ -46,7 +46,7 @@ export function ChatProfilePicker({
function closePicker() {
setOpen(false);
triggerRef.current?.focus();
triggerRef.current?.focus({ preventScroll: true });
}
async function choose(row: ChatProfilePickerRow) {
@@ -78,7 +78,7 @@ export function ChatProfilePicker({
open={open}
onOpenChange={(next) => {
setOpen(next);
if (!next) triggerRef.current?.focus();
if (!next) triggerRef.current?.focus({ preventScroll: true });
}}
>
<Popover.Trigger