Fix #547: merge strategy select #552

Merged
crueber merged 2 commits from fix/issue-547 into main 2026-09-15 01:34:25 +00:00
Owner

Fixes #547 — the merge-strategy select on the PR page joins the system select idiom (styling/markup only; no backend, SDK, or API change; no new deps).

What changed (4 files):

  • web/src/components/MergeBox.jsx — strategy select takes the canonical .input w-full (same-page finish-review-verdict sibling, Pull.jsx:678); undefined field label becomes the #479 shape (label.grid.gap-1 mt-2 + text-sm font-medium span). The mt-2 button row below keeps its spacing — no overlap desktop or ~390px (sidebar stacks full-width, select fills it).
  • web/src/ui.css — base layer declares :root { color-scheme: light } + .dark { color-scheme: dark } so the NATIVE dropdown panel/option highlight follows the theme. Deliberately no appearance-none (OwnerNameRow precedent).
  • web/test/unit/merge-strategy-select-547.test.js — 6 headless tests (idiom/width/options, no-bare/no-field pins, #479 label + button-row order, base-layer color-scheme + intact-.input, full-src select sweep + named siblings, no-behavior-change).
  • docs/go/12_web_ui.md — law-12 decision (guideline §2 .input + §7 form shape by reference; no new pattern).

Deliberately untouched: legacy web/css/base.css:74 bare-select rule (unbundled — index.jsx imports ui.css only; sweep proves no bare selects remain); PullNew.jsx field labels (separate page, stays a noted follow-up per #545).

Acceptance: all 5 criteria pinned in the new test (incl. light+dark panel via color-scheme declarations in the built CSS bundle — verified color-scheme:light + color-scheme:dark in dist/assets/*.css).

Verification: node --test web/test/unit/*.test.js 1284 total / 1283 pass / 1 fail (the 1 failure is pre-existing on pristine origin/main: live-server smoke subtest, /setup 403 on the standing instance; +6 net new, zero PR-caused); vite build + esbuild green. Browser proof open (reasoned; shared-daemon loopback guard — no private daemon per workspace rules).

Fixes #547 — the merge-strategy select on the PR page joins the system select idiom (styling/markup only; no backend, SDK, or API change; no new deps). **What changed (4 files):** - `web/src/components/MergeBox.jsx` — strategy select takes the canonical `.input w-full` (same-page finish-review-verdict sibling, `Pull.jsx:678`); undefined `field` label becomes the #479 shape (`label.grid.gap-1 mt-2` + `text-sm font-medium` span). The `mt-2` button row below keeps its spacing — no overlap desktop or ~390px (sidebar stacks full-width, select fills it). - `web/src/ui.css` — base layer declares `:root { color-scheme: light }` + `.dark { color-scheme: dark }` so the NATIVE dropdown panel/option highlight follows the theme. Deliberately no `appearance-none` (OwnerNameRow precedent). - `web/test/unit/merge-strategy-select-547.test.js` — 6 headless tests (idiom/width/options, no-bare/no-field pins, #479 label + button-row order, base-layer color-scheme + intact-`.input`, full-src select sweep + named siblings, no-behavior-change). - `docs/go/12_web_ui.md` — law-12 decision (guideline §2 `.input` + §7 form shape by reference; no new pattern). **Deliberately untouched:** legacy `web/css/base.css:74` bare-select rule (unbundled — `index.jsx` imports ui.css only; sweep proves no bare selects remain); `PullNew.jsx` `field` labels (separate page, stays a noted follow-up per #545). **Acceptance:** all 5 criteria pinned in the new test (incl. light+dark panel via color-scheme declarations in the built CSS bundle — verified `color-scheme:light` + `color-scheme:dark` in `dist/assets/*.css`). **Verification:** `node --test web/test/unit/*.test.js` 1284 total / 1283 pass / 1 fail (the 1 failure is pre-existing on pristine origin/main: live-server smoke subtest, /setup 403 on the standing instance; +6 net new, zero PR-caused); `vite build` + `esbuild` green. Browser proof open (reasoned; shared-daemon loopback guard — no private daemon per workspace rules).
MergeBox strategy select takes .input w-full (same-page
finish-review-verdict sibling) inside the #479 label shape; ui.css
base layer declares color-scheme light/dark so the native dropdown
panel follows the theme. Decision appended to 12_web_ui.md.
The sibling-select regression test claimed 'no bare <select> anywhere
in web/src' but walk(SRC_DIR) only covered web/src/components; the
pages/ selects rode on named pins alone. Point SRC_DIR at web/src so
the assertion is true (68 jsx files, all selects .input — verified).
Sign in to join this conversation.
No description provided.