← All tests

NIX-OS-87 — Settings master-detail layout PROD

Narong's "Settings content should load on the right instead of jumping to a different page" complaint, fixed by lifting the nav rail + page header into a Next.js layout shared across every settings sub-route. Clicking a built sub-page (Payment Methods, Diff Reasons, Customer Display) now swaps only the right pane — the rail stays mounted across navigations.

11/11 prod checks green via test-nix-os-87-prod.mjs. Tested by tagging the rail's DOM node with a data-test-rail-id attribute on first visit, then navigating through all four built sections and re-asserting the same node still bears the tag — proves the layout-level rail isn't unmounting/remounting between routes.

All prod checks (11)

Walkthrough screenshots

Regression sweep

SuiteScoreStatus
test-nix-os-87-prod (this bundle)11/11PASS
test-phase4-prod10/10PASS
test-receipt-fixes-prod6/6PASS
test-phase1-prod11/11PASS
Total38/38PASS

First receipt-fixes-prod run flaked at 2/6 (transient — looked like Cloudflare warm-up); re-ran clean at 6/6. Pattern noted in the receipt-fixes session memory as well: when the FIRST step of a Playwright prod test times out, always retry once before debugging.

Code surface

nix-cafe (no backend touched, no DB migration):
  app/(authed)/settings/layout.tsx                                          NEW (server)
  app/(authed)/settings/_components/settings-nav.tsx                        NEW (client)
  app/(authed)/settings/page.tsx                                            stripped header + nav
  app/(authed)/settings/payment-methods/page.tsx                            h1 → h2
  app/(authed)/settings/payment-methods/starter-client.tsx                  h1 → h2
  app/(authed)/settings/payment-diff-reasons/diff-reasons-client.tsx        h1 → h2
  app/(authed)/settings/display/display-branding-client.tsx                 h1 → h2

Commit: 7d24500