mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-25 02:26:12 +02:00
Implements the remaining two surfaces of the PAP-10668 design spec on top of
the shared helpers/views shipped in PAP-10669 (PAP-10675).
Surface 2 — standalone assignee picker (IssueProperties):
- Grouped "Agents" / "Board users" sections plus the "No assignee" reset.
- A live role=status banner ("<agent> is running — changing the assignee will
interrupt this run") while a run is in flight.
- An "Interrupt & assign" confirm step: picking a different target mid-run
stages the selection until the operator confirms, instead of applying it
silently. hasActiveRun is threaded from IssueDetail's resolvedHasActiveRun.
Surface 4 — pause/hold dialog (IssueDetail):
- A "What this affects" bucket summary (live agent runs / queued wakes /
agent-owned / human-owned / static) computed from the tree-control preview,
plus an explanatory "Nothing live to pause" line replacing the bare warning.
Shared:
- lib/interrupt-handoff.ts: describeReassignInterrupt + computePauseAffectsSummary
(pure, disjoint-bucket partition).
- InterruptHandoffViews.tsx: AssigneeRunningBanner, InterruptAssignConfirm,
PauseAffectsSummaryView presentational views.
- Storybook "Surfaces/Interrupt Handoff": AssigneePicker + PauseAffects stories.
Tests: new logic (8) + view components (4) + an IssueProperties integration test
for the banner/confirm gate. Focused suites green; tsc -b clean.
Co-Authored-By: Claude Opus 4.8 <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.