Files
nexu-io__open-design/apps/web/package.json
wangchenglong ab0a1a4e61 feat(web): refresh the home and entry surfaces
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
2026-08-31 12:01:27 +08:00

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"
}
}