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