Controller integration pass after the three wave 2 subagents (phases
9, 10, 11) completed their phase implementations. Three changes in
one commit because they're a single coordinated post-dispatch step:
1. App.tsx routing
- Adds 5 new per-project builder tab routes for phase 11:
projects/:projectId/agents
projects/:projectId/gates
projects/:projectId/costs
projects/:projectId/activity
projects/:projectId/org
plus their unprefixed UnprefixedBoardRedirect variants so
direct nav and deep links resolve through the same fallback
chain as /overview and /issues.
- Adds content-studio/:workshopSlug as a sibling route for
phase 10's workshop detail view. Without this, clicking a
workshop card hit the * fallback NotFoundPage because the
existing content-studio route was an exact match and the
ContentStudio-internal pathname workaround couldn't fire.
- Does NOT rename the legacy /convert route. ConvertPage still
renders directly at /convert for backwards compat; Studio's
Convert workshop reuses the ConvertPanel body inside its own
detail shell.
2. IconRail volt-dot indicator
- Imports useCompany from CompanyContext and useGateIndicator
from the new phase 11 hook.
- When selectedCompanyId resolves to a company with at least
one pending approval (displayed as "gates" per phase 11's
display rename), renders a 6px volt dot overlay in the
top-right of the Assistant destination icon and updates
the link's aria-label to "Assistant (pending gates)".
- This is the single global notification surface specified by
spec section 10.4 - no badge counts, no inbox icons, no toasts.
3. IconRail.test.tsx
- Mocks useGateIndicator at module scope so tests don't need
a QueryClientProvider for the rail's useQuery-backed data.
- Replaces the plain function mock with a vi.fn() spy so
per-suite overrides can flip hasPendingGates without dynamic
imports.
- Adds a sibling describe block that verifies the volt dot
renders and the aria-label updates when hasPendingGates is true.
- 7 original tests pass; 2 new tests cover dot-absent and
dot-present cases. 9 tests total.
Verification: 211/211 tests passing across 22 files in the combined
frame + assistant + studio + projects suites; tsc clean on every
wave 1 and wave 2 file plus App.tsx.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| public | ||
| src | ||
| components.json | ||
| index.html | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| vite.config.ts | ||
| vitest.config.ts | ||
@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.
Typical use
Install the package, then serve or copy the built files from node_modules/@paperclipai/ui/dist.