Skip to content

chore: align repo scaffolding with the package standard - #79

Merged
TheGreatAxios merged 5 commits into
cl-9381-react-ui-switch-to-oxfmt-and-oxlintfrom
cl-9399-react-ui-align-repo-scaffolding-with-the-package-standard
Sep 27, 2026
Merged

TheGreatAxios merged 5 commits into
cl-9381-react-ui-switch-to-oxfmt-and-oxlintfrom
cl-9399-react-ui-align-repo-scaffolding-with-the-package-standard

Conversation

@TheGreatAxios

@TheGreatAxios TheGreatAxios commented Sep 26, 2026 •

Copy link
Copy Markdown
Contributor

Closes CL-9399

Summary

  • LICENSE: the Interchange LGPL-2.1 text, byte-identical across @corbits repos (was the FSF text); add CLA.md and the cla.yml CLA Assistant workflow
  • package.json: files ships README.md and LICENSE next to dist; add keywords; homepage points at #readme. Scripts: build is rm -rf dist && tsc -p tsconfig.build.json && bun run build:css (drops clean and build:js), test runs bun test src --pass-with-no-tests, test:e2e runs e2e, and a new check runs typecheck, lint, format check and unit tests. build:css, dep-guard, contrast-test, stories and stories:build stay because the build, CI and workbench use them. exports, sideEffects and packageManager are unchanged. Key order is oxfmt's
  • tsconfig.json follows the standard template plus jsx: react-jsx, the DOM libs and the stories/Ladle includes. It adds exactOptionalPropertyTypes, noImplicitOverride, verbatimModuleSyntax, moduleDetection and resolveJsonModule, moves target to ESNext, and drops noUnusedLocals/noUnusedParameters (oxlint's no-unused-vars covers them). tsconfig.build.json follows the template (NodeNext, no source or declaration maps) and also excludes *.test.tsx
  • exactOptionalPropertyTypes fixes (no behavior change): optional props and hook options that callers forward as-is accept undefined (ReasoningBlock.durationLabel, ChartFrame.className, MessageBubble.now/onRetry, AgentTurn.now, ArtifactNotice.pending, DialogContent.side, ProviderMark.className, SidebarItemRow.leaving, the parts-renderer reasoning and file parts, useControllableState value/onChange, useDismissablePopover open/onOpenChange); InfoTooltip passes defaultOpen ?? false to Radix
  • .gitignore: the standard list plus build/ (Ladle's stories:build output); drops scratch/, .worktrees/, .agent-state/
  • ci.yml: runs on all pull requests (was main-targeted only); bun run check, bun run build, contrast-test, dep-guard, bun run test:e2e (the exports check against dist), then a pack-and-import smoke under Node 24 that checks Button, ChatThread and Badge; drops the single-entry matrix and the explicit bun-version (packageManager pins it)
  • CONTRIBUTING.md: 199 lines down to the standard template plus a CLA line, the e2e and CI gate paragraph, and a short Theme and stories section
  • AGENTS.md (new): purpose, layout and the component rules that were in CONTRIBUTING (barrel and exports, dep-guard, "use client", peers, accessibility, naming)
  • Delete PRODUCT.md, ARCHITECTURE.md, IMPLEMENTATION.md and SECURITY.md
  • README: rename "Usage" to "Reference"

Stacked on #78.

  • CONTRIBUTING gets a Releasing section: releases are manual, as in Interchange (npm version, push tags, gh release create --generate-notes, npm publish).
  • CHANGELOG.md removed; GitHub Releases track changes. The README changelog link goes with it.

Commits

  1. refactor: accept undefined on optional props for exactOptionalPropertyTypes
  2. chore: use the Interchange LICENSE text and add the CLA
  3. build: align package.json and tsconfig with the package standard
  4. ci: run check and a Node pack smoke
  5. docs: trim CONTRIBUTING, add AGENTS.md, drop planning docs

Checks

bun run check (268 unit tests), bun run build, contrast-test, dep-guard and bun run test:e2e pass; npm pack --dry-run lists 255 files including README.md and LICENSE; the Node pack smoke passes locally.

@TheGreatAxios
TheGreatAxios added this pull request to stack #74 September 26, 2026 03:12
@TheGreatAxios
TheGreatAxios force-pushed the cl-9399-react-ui-align-repo-scaffolding-with-the-package-standard branch from f310df1 to f4d29bb Compare September 26, 2026 04:12
@TheGreatAxios
TheGreatAxios merged commit 2fcd56a into main Sep 27, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant