Skip to content

feat: npm publishing with Changesets#37

Merged
joshuapare merged 8 commits into
mainfrom
feat/npm-publishing
Mar 28, 2026
Merged

feat: npm publishing with Changesets#37
joshuapare merged 8 commits into
mainfrom
feat/npm-publishing

Conversation

@joshuapare
Copy link
Copy Markdown
Contributor

Summary

  • Rename package scope from @omniview/ to @omniviewdev/ across the entire monorepo (~200 files)
  • Remove "private": true from base-ui, ai-ui, and editors packages; add "publishConfig": { "access": "public" }
  • Install and configure @changesets/cli with independent versioning, GitHub changelog integration, and benchmarks/showcase ignored
  • Add release.yml GitHub Actions workflow using changesets/action — creates Version Packages PRs on merge, publishes to npm when that PR merges

Post-merge setup

NPM_TOKEN secret is already configured. After merge:

  1. Run pnpm changeset to create the first changeset
  2. Merge the resulting "Version Packages" PR to trigger first publish

Test plan

  • pnpm build passes for all packages
  • pnpm test passes (886 tests)
  • npm pack --dry-run shows @omniviewdev/ names with correct dist/ contents
  • No stale @omniview/ references in source/config files
  • Release workflow triggers on merge to main

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 28, 2026

Important

Review skipped

Too many files!

This PR contains 209 files, which is 59 over the limit of 150.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 34b59a77-95aa-4823-a071-026bb76df9f5

📥 Commits

Reviewing files that changed from the base of the PR and between c0ddc76 and 5a3fbb7.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (209)
  • .changeset/README.md
  • .changeset/config.json
  • .github/workflows/codspeed.yml
  • .github/workflows/release.yml
  • .storybook/main.ts
  • .storybook/preview.tsx
  • Taskfile.yml
  • apps/showcase/package.json
  • apps/showcase/src/App.tsx
  • apps/showcase/src/Dock.tsx
  • apps/showcase/src/Home.tsx
  • apps/showcase/src/demos/ai-chat/components/ArtifactPanel.tsx
  • apps/showcase/src/demos/ai-chat/components/MessageRenderer.tsx
  • apps/showcase/src/demos/ai-chat/index.tsx
  • apps/showcase/src/demos/chat-app/components/ChannelHeader.tsx
  • apps/showcase/src/demos/chat-app/components/ChannelSidebar.tsx
  • apps/showcase/src/demos/chat-app/components/MessageComposer.tsx
  • apps/showcase/src/demos/chat-app/components/MessageItem.tsx
  • apps/showcase/src/demos/chat-app/components/ThreadPanel.tsx
  • apps/showcase/src/demos/chat-app/components/WorkspaceRail.tsx
  • apps/showcase/src/demos/chat-app/index.tsx
  • apps/showcase/src/demos/container-management/components/ContainerDetail.tsx
  • apps/showcase/src/demos/container-management/components/ContainerList.tsx
  • apps/showcase/src/demos/container-management/components/tabs/FilesTab.tsx
  • apps/showcase/src/demos/container-management/components/tabs/InspectTab.tsx
  • apps/showcase/src/demos/container-management/components/tabs/LogsTab.tsx
  • apps/showcase/src/demos/container-management/components/tabs/StatsTab.tsx
  • apps/showcase/src/demos/container-management/data.ts
  • apps/showcase/src/demos/container-management/index.tsx
  • apps/showcase/src/demos/file-explorer/components/DetailPanel.tsx
  • apps/showcase/src/demos/file-explorer/components/ExplorerToolbar.tsx
  • apps/showcase/src/demos/file-explorer/components/FilePane.tsx
  • apps/showcase/src/demos/file-explorer/components/TransferPanel.tsx
  • apps/showcase/src/demos/file-explorer/components/TreePane.tsx
  • apps/showcase/src/demos/file-explorer/data.ts
  • apps/showcase/src/demos/file-explorer/index.tsx
  • apps/showcase/src/demos/ide-editor/components/IconStrip.tsx
  • apps/showcase/src/demos/ide-editor/components/SidebarPanel.tsx
  • apps/showcase/src/demos/ide-editor/index.tsx
  • apps/showcase/src/demos/notes/index.tsx
  • apps/showcase/src/demos/web-browser/components/BookmarksBar.tsx
  • apps/showcase/src/demos/web-browser/components/BrowserToolbar.tsx
  • apps/showcase/src/demos/web-browser/components/NewTabPage.tsx
  • apps/showcase/src/demos/web-browser/index.tsx
  • apps/showcase/src/main.tsx
  • docs/superpowers/plans/2026-03-12-showcase-demos.md
  • docs/superpowers/plans/2026-03-12-showcase-shell.md
  • docs/superpowers/plans/2026-03-13-base-ui-components.md
  • docs/superpowers/plans/2026-03-13-web-browser-demo.md
  • docs/superpowers/plans/2026-03-15-chat-app.md
  • docs/superpowers/plans/2026-03-16-theme-palettes.md
  • docs/superpowers/specs/2026-03-10-ui-audit-design.md
  • docs/superpowers/specs/2026-03-12-showcase-app-design.md
  • docs/superpowers/specs/2026-03-12-showcase-demos-design.md
  • docs/superpowers/specs/2026-03-13-base-ui-components-design.md
  • package.json
  • packages/ai-ui/.storybook/main.ts
  • packages/ai-ui/.storybook/preview.tsx
  • packages/ai-ui/package.json
  • packages/ai-ui/src/components/agent/AgentControls.tsx
  • packages/ai-ui/src/components/agent/AgentTaskList.tsx
  • packages/ai-ui/src/components/artifact/AIArtifact.tsx
  • packages/ai-ui/src/components/branching/AIBranch.tsx
  • packages/ai-ui/src/components/chat/AIAttachment.tsx
  • packages/ai-ui/src/components/chat/AIContextIndicator.tsx
  • packages/ai-ui/src/components/chat/AIConversationHeader.tsx
  • packages/ai-ui/src/components/chat/AIErrorMessage.tsx
  • packages/ai-ui/src/components/chat/AIFollowUp.tsx
  • packages/ai-ui/src/components/chat/AIMessageActions.tsx
  • packages/ai-ui/src/components/chat/AIMessageEditor.tsx
  • packages/ai-ui/src/components/chat/AIModelSelector.stories.tsx
  • packages/ai-ui/src/components/chat/AIModelSelector.tsx
  • packages/ai-ui/src/components/chat/AIRetryButton.tsx
  • packages/ai-ui/src/components/chat/ChatAvatar.tsx
  • packages/ai-ui/src/components/chat/ChatInput.stories.tsx
  • packages/ai-ui/src/components/chat/ChatMessageList.tsx
  • packages/ai-ui/src/components/chat/ChatSuggestions.tsx
  • packages/ai-ui/src/components/content/AICodeBlock.stories.tsx
  • packages/ai-ui/src/components/content/AICodeBlock.tsx
  • packages/ai-ui/src/components/content/AICostIndicator.tsx
  • packages/ai-ui/src/components/content/AIImageGeneration.tsx
  • packages/ai-ui/src/components/content/AIInferenceStats.tsx
  • packages/ai-ui/src/components/content/AIInlineCitation.tsx
  • packages/ai-ui/src/components/content/AIMarkdown.tsx
  • packages/ai-ui/src/components/content/AISources.tsx
  • packages/ai-ui/src/components/content/AITokenUsage.tsx
  • packages/ai-ui/src/components/domain/AIActionConfirmation.tsx
  • packages/ai-ui/src/components/domain/AICommandSuggestion.tsx
  • packages/ai-ui/src/components/permissions/PermissionRequest.tsx
  • packages/ai-ui/src/components/reasoning/ChainOfThought.tsx
  • packages/ai-ui/src/components/reasoning/ThinkingBlock.tsx
  • packages/ai-ui/src/components/step-divider/AIStepDivider.tsx
  • packages/ai-ui/src/components/streaming/AIStopButton.tsx
  • packages/ai-ui/src/components/tool-calls/ToolCall.tsx
  • packages/ai-ui/src/components/tool-calls/ToolResult.tsx
  • packages/ai-ui/src/test/render.tsx
  • packages/ai-ui/tsconfig.json
  • packages/ai-ui/vitest.config.ts
  • packages/base-ui/package.json
  • packages/base-ui/src/components/ComponentCoverage.stories.tsx
  • packages/base-ui/src/components/typography/Code.stories.tsx
  • packages/benchmarks/README.md
  • packages/benchmarks/package.json
  • packages/benchmarks/scripts/generate-competitive-report.js
  • packages/benchmarks/src/__perf__/base-ui/Accordion.perf-test.tsx
  • packages/benchmarks/src/__perf__/base-ui/Button.perf-test.tsx
  • packages/benchmarks/src/__perf__/base-ui/Checkbox.perf-test.tsx
  • packages/benchmarks/src/__perf__/base-ui/Dialog.perf-test.tsx
  • packages/benchmarks/src/__perf__/base-ui/Input.perf-test.tsx
  • packages/benchmarks/src/__perf__/base-ui/Select.perf-test.tsx
  • packages/benchmarks/src/__perf__/base-ui/Tabs.perf-test.tsx
  • packages/benchmarks/src/__perf__/utils/theme-wrapper.tsx
  • packages/benchmarks/src/base-ui/Accordion.bench.tsx
  • packages/benchmarks/src/base-ui/ActionList.bench.tsx
  • packages/benchmarks/src/base-ui/AlertDialog.bench.tsx
  • packages/benchmarks/src/base-ui/AppShell.bench.tsx
  • packages/benchmarks/src/base-ui/Autocomplete.bench.tsx
  • packages/benchmarks/src/base-ui/Banner.bench.tsx
  • packages/benchmarks/src/base-ui/BasicList.bench.tsx
  • packages/benchmarks/src/base-ui/Box.bench.tsx
  • packages/benchmarks/src/base-ui/Breadcrumbs.bench.tsx
  • packages/benchmarks/src/base-ui/Button.bench.tsx
  • packages/benchmarks/src/base-ui/ButtonGroup.bench.tsx
  • packages/benchmarks/src/base-ui/Card.bench.tsx
  • packages/benchmarks/src/base-ui/Checkbox.bench.tsx
  • packages/benchmarks/src/base-ui/CheckboxGroup.bench.tsx
  • packages/benchmarks/src/base-ui/Chip.bench.tsx
  • packages/benchmarks/src/base-ui/ClipboardText.bench.tsx
  • packages/benchmarks/src/base-ui/CodeBlock.bench.tsx
  • packages/benchmarks/src/base-ui/Collapsible.bench.tsx
  • packages/benchmarks/src/base-ui/Combobox.bench.tsx
  • packages/benchmarks/src/base-ui/CommandList.bench.tsx
  • packages/benchmarks/src/base-ui/ConfirmButton.bench.tsx
  • packages/benchmarks/src/base-ui/ContextMenu.bench.tsx
  • packages/benchmarks/src/base-ui/DataTable.bench.tsx
  • packages/benchmarks/src/base-ui/DescriptionList.bench.tsx
  • packages/benchmarks/src/base-ui/Dialog.bench.tsx
  • packages/benchmarks/src/base-ui/DockLayout.bench.tsx
  • packages/benchmarks/src/base-ui/Drawer.bench.tsx
  • packages/benchmarks/src/base-ui/EditableList.bench.tsx
  • packages/benchmarks/src/base-ui/EditorTabs.bench.tsx
  • packages/benchmarks/src/base-ui/EmptyState.bench.tsx
  • packages/benchmarks/src/base-ui/FilterBar.bench.tsx
  • packages/benchmarks/src/base-ui/FindBar.bench.tsx
  • packages/benchmarks/src/base-ui/FormField.bench.tsx
  • packages/benchmarks/src/base-ui/IconButton.bench.tsx
  • packages/benchmarks/src/base-ui/Input.bench.tsx
  • packages/benchmarks/src/base-ui/List.bench.tsx
  • packages/benchmarks/src/base-ui/Menu.bench.tsx
  • packages/benchmarks/src/base-ui/Meter.bench.tsx
  • packages/benchmarks/src/base-ui/MultiSelect.bench.tsx
  • packages/benchmarks/src/base-ui/NavList.bench.tsx
  • packages/benchmarks/src/base-ui/NumberInput.bench.tsx
  • packages/benchmarks/src/base-ui/Pagination.bench.tsx
  • packages/benchmarks/src/base-ui/Popover.bench.tsx
  • packages/benchmarks/src/base-ui/Progress.bench.tsx
  • packages/benchmarks/src/base-ui/Radio.bench.tsx
  • packages/benchmarks/src/base-ui/RadioGroup.bench.tsx
  • packages/benchmarks/src/base-ui/ResizableSplitPane.bench.tsx
  • packages/benchmarks/src/base-ui/RowList.bench.tsx
  • packages/benchmarks/src/base-ui/ScrollArea.bench.tsx
  • packages/benchmarks/src/base-ui/SearchInput.bench.tsx
  • packages/benchmarks/src/base-ui/SegmentedControl.bench.tsx
  • packages/benchmarks/src/base-ui/Select.bench.tsx
  • packages/benchmarks/src/base-ui/SelectableList.bench.tsx
  • packages/benchmarks/src/base-ui/Sheet.bench.tsx
  • packages/benchmarks/src/base-ui/Slider.bench.tsx
  • packages/benchmarks/src/base-ui/Spinner.bench.tsx
  • packages/benchmarks/src/base-ui/SplitButton.bench.tsx
  • packages/benchmarks/src/base-ui/StatRow.bench.tsx
  • packages/benchmarks/src/base-ui/StatusBar.bench.tsx
  • packages/benchmarks/src/base-ui/Stepper.bench.tsx
  • packages/benchmarks/src/base-ui/Switch.bench.tsx
  • packages/benchmarks/src/base-ui/Table.bench.tsx
  • packages/benchmarks/src/base-ui/Tabs.bench.tsx
  • packages/benchmarks/src/base-ui/TagInput.bench.tsx
  • packages/benchmarks/src/base-ui/TextArea.bench.tsx
  • packages/benchmarks/src/base-ui/TextField.bench.tsx
  • packages/benchmarks/src/base-ui/Timeline.bench.tsx
  • packages/benchmarks/src/base-ui/Toast.bench.tsx
  • packages/benchmarks/src/base-ui/ToggleButton.bench.tsx
  • packages/benchmarks/src/base-ui/ToggleButtonGroup.bench.tsx
  • packages/benchmarks/src/base-ui/Toolbar.bench.tsx
  • packages/benchmarks/src/base-ui/Tooltip.bench.tsx
  • packages/benchmarks/src/base-ui/TreeList.bench.tsx
  • packages/benchmarks/src/competitive/Button.competitive.tsx
  • packages/benchmarks/src/competitive/Checkbox.competitive.tsx
  • packages/benchmarks/src/competitive/Popover.competitive.tsx
  • packages/benchmarks/src/competitive/Select.competitive.tsx
  • packages/benchmarks/src/competitive/Switch.competitive.tsx
  • packages/benchmarks/src/competitive/TextField.competitive.tsx
  • packages/benchmarks/src/competitive/Tooltip.competitive.tsx
  • packages/benchmarks/src/competitive/implementations/wrappers.tsx
  • packages/benchmarks/src/utils/bench-compare.ts
  • packages/benchmarks/src/utils/bench-render.test.ts
  • packages/benchmarks/src/utils/bench-render.ts
  • packages/benchmarks/vitest.config.browser.ts
  • packages/benchmarks/vitest.config.competitive.ts
  • packages/benchmarks/vitest.config.perf.ts
  • packages/benchmarks/vitest.config.ts
  • packages/editors/package.json
  • packages/editors/src/components/command-palette/CommandPalette.test.tsx
  • packages/editors/src/components/command-palette/CommandPalette.tsx
  • packages/editors/src/components/markdown-preview/MarkdownPreview.stories.tsx
  • packages/editors/src/components/markdown-preview/MarkdownPreview.test.tsx
  • packages/editors/src/components/markdown-preview/MarkdownPreview.tsx
  • packages/editors/src/schemas/EditorSchemaRegistry.ts
  • packages/editors/src/setup/setupMonacoWorkers.ts
  • packages/editors/vite.config.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/npm-publishing

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown

Storybook Preview
https://storybook-preview.omniview.dev/pr-37/

Updated: b8093a4

@joshuapare joshuapare merged commit 2f36e87 into main Mar 28, 2026
3 checks passed
@codspeed-hq
Copy link
Copy Markdown

codspeed-hq Bot commented Mar 28, 2026

Merging this PR will improve performance by 11.32%

⚡ 1 improved benchmark
✅ 182 untouched benchmarks
⏩ 2 skipped benchmarks1

Performance Changes

Mode Benchmark BASE HEAD Efficiency
WallTime mount with 3 items 6.9 ms 6.2 ms +11.32%

Comparing feat/npm-publishing (5a3fbb7) with main (8bcce58)2

Open in CodSpeed

Footnotes

  1. 2 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

  2. No successful run was found on main (c0ddc76) during the generation of this report, so 8bcce58 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

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