mirror of
https://github.com/nexu-io/open-design.git
synced 2026-09-20 06:15:06 +08:00
ab0a1a4e61
Reworks the entry experience end to end — the Home hero and its composer, the
nav rail, the workspace tab bar, the recent-projects strip, the community
gallery and the message center — and adds the per-project run status the rail
and the strip now render.
Home / entry
- Hero headline cycles a noun out of `homeHero.titleWords` (RotatingTitleWord);
locales whose `homeHero.title` carries no `{word}` stay a plain sentence.
- The composer is now one component in two shapes: `page` (Home's full column)
and `dock` (the bar alone, used by the community view), sharing @mentions,
staged files, the working-directory row and submit.
- ComposerModePicker is gone; ComposerPlusMenu absorbs what it offered.
- Entry layout, nav rail (with RailRecentRow), workspace tabs and the recent
projects strip are restyled together against one set of measurements.
Run status
- New `projectRunStatus` state, `useProjectRunStatuses`, `run-progress` and
`latest-user-prompt` runtime helpers, and `ProjectRunStatusIcon`.
- `ChatRunsResponse` gains `awaitingInputProjectIds`: a run that asked a
question reads `succeeded` while the project is still blocked, so a caller
rendering per-project status needs the set to avoid showing such a project
as finished. Optional — absent means unknown, not none.
Community / message center / design files
- Community gallery gets its own empty state, and the message center gets
archive plus a reworked card.
- Design files panel gets a dedicated empty state component.
Daemon / desktop / sidecar
- Project create bounds its read-only preparation work (15s) so a stalled
local catalogue scan cannot strand the web on an optimistic route or leave a
half-initialized project behind.
- The startup splash runs the same pixel-scan wordmark as the Home hero,
ported to raw WebGL because the splash renders before the sidecar boots
(replaces the splash video).
- Sidecar proxy tracks the in-flight request/response so a keepalive replay
tears down the previous attempt instead of leaking it.
New visuals: SiriOrb, MarqueeLabel, SpaceBackground, the composer beam and the
chat-cards-next surface.
No placeholder data ships with this: the community card byline (author name and
view/remix counts) and the message center's temporary cover image are removed,
so the card footer shows the title only and the media slot renders only when a
message payload actually carries `imageUrl`.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016cbrF36bYyw9qpnksvZTjd
79 lines
2.0 KiB
JSON
79 lines
2.0 KiB
JSON
{
|
|
"name": "@open-design/web",
|
|
"version": "0.18.2",
|
|
"private": true,
|
|
"type": "module",
|
|
"exports": {
|
|
"./package.json": "./package.json",
|
|
"./sidecar": {
|
|
"types": "./dist/sidecar/index.d.ts",
|
|
"default": "./dist/sidecar/index.js"
|
|
}
|
|
},
|
|
"files": [
|
|
".next",
|
|
"!.next/cache",
|
|
"app",
|
|
"dist",
|
|
"next.config.ts",
|
|
"package.json",
|
|
"public",
|
|
"src"
|
|
],
|
|
"scripts": {
|
|
"dev": "next dev --turbopack",
|
|
"build": "next build",
|
|
"build:sidecar": "tsc -p tsconfig.sidecar.json",
|
|
"typecheck": "tsc -b --noEmit",
|
|
"test": "vitest run -c vitest.config.ts --maxWorkers=2"
|
|
},
|
|
"dependencies": {
|
|
"@anthropic-ai/sdk": "0.32.1",
|
|
"@excalidraw/excalidraw": "0.18.1",
|
|
"@formkit/auto-animate": "0.9.0",
|
|
"@lexical/react": "0.36.2",
|
|
"@lexical/utils": "0.36.2",
|
|
"@open-design/components": "workspace:*",
|
|
"@open-design/contracts": "workspace:*",
|
|
"@open-design/host": "workspace:*",
|
|
"@open-design/platform": "workspace:*",
|
|
"@open-design/sidecar": "workspace:*",
|
|
"@open-design/sidecar-proto": "workspace:*",
|
|
"@xterm/addon-fit": "0.10.0",
|
|
"@xterm/xterm": "5.5.0",
|
|
"dompurify": "3.4.2",
|
|
"jspdf": "4.2.1",
|
|
"lexical": "0.36.2",
|
|
"lucide-react": "1.16.0",
|
|
"micromark": "4.0.2",
|
|
"micromark-extension-gfm": "3.0.0",
|
|
"motion": "12.40.0",
|
|
"next": "16.2.6",
|
|
"openai": "6.38.0",
|
|
"posthog-js": "1.374.2",
|
|
"react": "18.3.1",
|
|
"react-dom": "18.3.1",
|
|
"shiki": "4.1.0",
|
|
"thinking-orbs": "0.3.1",
|
|
"three": "0.185.1"
|
|
},
|
|
"devDependencies": {
|
|
"@tailwindcss/postcss": "4.3.0",
|
|
"@testing-library/jest-dom": "6.9.1",
|
|
"@testing-library/react": "16.3.2",
|
|
"@types/jsdom": "28.0.3",
|
|
"@types/node": "20.19.39",
|
|
"@types/react": "18.3.28",
|
|
"@types/react-dom": "18.3.7",
|
|
"@types/three": "0.185.1",
|
|
"jsdom": "29.1.1",
|
|
"postcss": "8.5.15",
|
|
"tailwindcss": "4.3.0",
|
|
"typescript": "5.9.3",
|
|
"vitest": "4.1.6"
|
|
},
|
|
"engines": {
|
|
"node": "~24"
|
|
}
|
|
}
|