Brings the branch level with master so it can run against a staging stack
whose schema is already at 0290. The branch image predated four migrations
(including 0289_drop_user_keyboard_shortcuts) and failed every
authenticated request there.
Conflicts resolved toward the one-screen connect flow:
- Master's read-only capability disclosure is folded into the existing
single Advanced panel rather than added as a second one; the stated
capability line ("Read & create: ...") is kept.
- Master's onCancel prop for gateway setup is kept alongside companyId.
- Master's new tests that still stepped through the Access step now use
the single screen.
- pnpm-lock.yaml takes master's copy; the branch's lockfile diff was
accidental patch-hash churn.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@paperclipai/ui
Published static assets for the Paperclip board UI.
What gets published
The npm package contains the production build under dist/. It does not ship the UI source tree or workspace-only dependencies.
Storybook
Storybook config, stories, and fixtures live under ui/storybook/.
pnpm --filter @paperclipai/ui storybook
pnpm --filter @paperclipai/ui build-storybook
Typical use
Install the package, then serve or copy the built files from node_modules/@paperclipai/ui/dist.
Editor dependency identity
Keep the root and workspace overrides for @codemirror/state,
@codemirror/view, and @lezer/common aligned. CodeMirror requires shared
extension identity, while Lezer parsers and syntax highlighters require shared
NodeProp IDs. Multiple Lezer copies can crash code-block highlighting with
tags is not iterable. src/lib/codemirror-single-instance.test.ts checks the
installed dependency graph and highlights sample code through the editor's real
language dependencies. GitHub Actions owns regeneration of pnpm-lock.yaml.