Skip to content
This repository was archived by the owner on Jul 31, 2026. It is now read-only.

feat(formatting): switch prettier to oxfmt - #352

Merged
alx-xo merged 2 commits into
mainfrom
alexm/feat-switch-prettier-oxfmt
Jun 15, 2026
Merged

feat(formatting): switch prettier to oxfmt#352
alx-xo merged 2 commits into
mainfrom
alexm/feat-switch-prettier-oxfmt

Conversation

@alx-xo

@alx-xo alx-xo commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Replace Prettier config, dependencies, and ESLint formatting enforcement with oxfmt.
  • Add Moonshine's oxfmt config with existing generated-file ignores and Tailwind class sorting for src.
  • Keep the repo-wide oxfmt rewrite isolated in a separate formatting commit.

A prelude to moving into gram repo. Align our formatting deps and config

Cubic found some preexisting bugs but in the intertest of keeping this PR aligned going to move those to it's own PR. #353

Test Plan

  • Formatter/lint gate passes with oxfmt checking 258 files.
  • TypeScript type-check passes.
  • vitest suite passes 64 tests.

@alx-xo
alx-xo requested a review from adaam2 June 9, 2026 21:56

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

4 issues found across 244 files

Confidence score: 3/5

  • There is a concrete user-facing behavior risk in src/components/SegmentedButton/index.tsx: enhancedChildren memoization omits hoveredId, so highlighted state can become stale after interaction.
  • Accessibility is also impacted in src/components/WorkspaceSelector/SearchBox.tsx because the icon-only clear button lacks an accessible name (aria-label), which can make the control unclear for assistive technology users.
  • Given the medium-severity interaction bug (6/10, high confidence) plus an accessibility issue, this carries some merge risk rather than being a clean low-risk merge.
  • Pay close attention to src/components/SegmentedButton/index.tsx, src/components/WorkspaceSelector/SearchBox.tsx, src/components/Table/context/tableProvider.tsx, and src/components/LanguageIndicator/index.tsx - fix stale memo state first, then address accessibility and minor cleanup issues.

Partial review: This PR has more than 100 files, so cubic reviewed the highest-priority files first.
For a deeper review of large PRs, comment @cubic-dev-ai ultrareview. Learn more.

Fix all with cubic | Re-trigger cubic

Comment thread src/components/SegmentedButton/index.tsx
Comment thread src/components/WorkspaceSelector/SearchBox.tsx
Comment thread src/components/Table/context/tableProvider.tsx
Comment thread src/components/LanguageIndicator/index.tsx

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

6 issues found across 244 files

Confidence score: 3/5

  • src/components/ExternalPill/index.tsx opens external links with _blank but without rel="noopener noreferrer", which leaves a concrete reverse-tabnabbing hole if a linked page is malicious. Add the rel attributes before merging to close the security gap.
  • src/components/Tabs/index.tsx and src/components/AppLayout/useAppLayoutKeys.ts both have state-selection/toggle edge cases (|| fallback and captured !collapsed) that can mis-handle valid tab IDs or drop rapid keyboard toggles, leading to inconsistent UI behavior. Switch to nullish coalescing for tab fallback and a functional state updater for collapse toggles before merge.
  • src/components/KeyHint/index.tsx uses a clickable div for dismiss, so keyboard and assistive-technology users may be unable to trigger the action reliably. Replace it with a semantic button (or equivalent keyboard-complete control) before merging.
  • src/components/KeyHint/index.tsx and src/components/UserAvatar/index.tsx include smaller rendering correctness issues (keyless mapped fragments and possible undefined fallback colors for non-letter initials) that can produce warnings or visual glitches in edge cases. Add stable keys and guard the color index calculation to de-risk UI polish regressions.

Tip: instead of fixing issues one by one fix them all with cubic
Partial review: This PR has more than 100 files, so cubic reviewed the highest-priority files first.
For a deeper review of large PRs, comment @cubic-dev-ai ultrareview. Learn more.

Re-trigger cubic

Comment thread src/components/KeyHint/index.tsx
Comment thread src/components/KeyHint/index.tsx
Comment thread src/components/ExternalPill/index.tsx
Comment thread src/components/Tabs/index.tsx
Comment thread src/components/AppLayout/useAppLayoutKeys.ts
Comment thread src/components/UserAvatar/index.tsx
@alx-xo
alx-xo force-pushed the alexm/feat-switch-prettier-oxfmt branch from 9c43059 to 0097d60 Compare June 11, 2026 20:09
@alx-xo
alx-xo merged commit e04585b into main Jun 15, 2026
11 checks passed
@alx-xo
alx-xo deleted the alexm/feat-switch-prettier-oxfmt branch June 15, 2026 22:50
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant