Files
PaperClipAI/ui
Claude abb0430111 storybook: stop the Jev task title stand-in from naming tasks after URLs
A prompt that began with a Slack link produced a title made of the URL,
because the stand-in took the first sentence. It now strips links, splits
the prompt into clauses, prefers the clause naming a deliverable over
reading steps, turns questions into decisions, resolves a leading pronoun,
and cuts at phrase boundaries. Every title passes isUsableTitle (no links,
at most 10 words) or falls back to Untitled task. The Haiku request tells
the model to name the deliverable and ignore links. Adds the messy prompt
as a regression story, fixes story interactions for the portaled modal,
and wraps long links in the prompt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SWn6etZjfGz6p8NWYkCQve
2026-09-24 22:47:56 +00:00
..

@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.