release: Open Design 0.8.0

Bumps 14 workspace package.json files from 0.7.0 to 0.8.0:
- root, apps/{web,daemon,desktop,landing-page}
- packages/{contracts,host,platform,sidecar,sidecar-proto}
- tools/{dev,pack,pr}, e2e

apps/packaged was already at 0.8.0 from the preview lane.
Independently versioned packages keep their own tracks.

Adds CHANGELOG [0.8.0] - 2026-05-20 entry covering the
305 PRs merged since 0.7.0 by 75 contributors:

- Plugin engine rebuild + Plugin Registry surface
- Headless by default (desktop is thin wrapper around CLI)
- Critique Theater Phases 9 through 16
- 149 design systems with structured tokens.css
- Italian locale + CJK font fallback
- Leonardo.ai, ElevenLabs, SenseAudio providers
- Windows packaged auto-update
- Visual refresh + Quick-brief discovery overhaul
- PostHog v2 analytics
- Manual edit UX overhaul
This commit is contained in:
lefarcen 2026-05-20 21:22:17 +08:00
parent 1cfe274a90
commit aedbb9dbe4
15 changed files with 274 additions and 17 deletions

View file

@ -7,8 +7,177 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
- Fixed: desktop "Export PDF" now opens a direct "Save as PDF" file dialog and writes the PDF to disk, instead of opening the macOS system print dialog. Fixes [#1774](https://github.com/nexu-io/open-design/issues/1774).
- Docs: clarify that packaged macOS support includes a verified Intel x64 ZIP path on Monterey, and document the Finder `PATH` caveat for packaged CLI detection. Fixes [#327](https://github.com/nexu-io/open-design/issues/327).
## [0.8.0] - 2026-05-20
The rebuilt-core release: **everything is a plugin**, **headless by default**, **plugins create plugins**. Open Design's research-preview architecture has been replaced with a small, boring engine plus a plugin surface — design systems, slices, prototypes, exports, and Figma itself all live in plugins now. The desktop app is a thin wrapper around the OD CLI, so the same engine runs in Claude Code, OpenClaw, Hermes Agent, and chat bots in Lark / Discord / Slack. **Critique Theater** matures through **Phase 16** (rollout ratchet, conformance API, 9 Prometheus metrics, Grafana dashboard, M0 dark-launch by default). **149 design systems** now ship with structured `tokens.css` + components manifests across 60+ new brand fixtures. **Italian (it) locale** + **CJK font fallback**. New media providers: **Leonardo.ai**, **ElevenLabs**, **SenseAudio**. **Windows packaged auto-update** lands with feature parity to macOS. Plus a **top-to-bottom visual refresh**, **Quick-brief discovery overhaul**, **PostHog v2 analytics schema**, **manual edit UX overhaul** (focus mode, uploads, remove-element patch), **Resume conversation in new chat**, **custom CLI agent profiles**, and **HTML Anything** landing page. 305 merged PRs by 75 contributors since 0.7.0.
### Added
#### Plugin engine, registry & publishing
- **Plugin engine rebuild** with `packages/plugin-runtime`, `packages/registry-protocol`, and `packages/host` — the engine surfaces the plugin lifecycle through a small, neutral API so design systems, slices, prototypes, exports, and even Figma itself can live as plugins.
- **Plugin registry detail drawer** with trust badges and marketplace metadata. ([#2087])
- **GitHub rate-limit fallback for marketplace plugins** keeps install / refresh flows reliable when GitHub API is throttled. ([#2064])
- **Plugin Publish-repo flow creates the author's repo correctly.** ([#2332], [#2363])
- **CLI plugin publish reads manifest version** when the stored row is the `0.0.0` sentinel. ([#1903])
- **Block raw publish CLIs from the authoring summary** — keep agents on the OD publish path. ([#2380])
- **Demote Plugins + Integrations to the nav rail footer** so primary surface stays focused. ([#1806], [#2360], [#2397])
#### Critique Theater (Phases 9 16)
- **Phase 9** — drop-in mount wrapper, native i18n for `de` / `ja` / `ko` / `zh-TW`. ([#1315])
- **Phase 10** — daemon adapter conformance lab + degraded registry. ([#1316])
- **Phase 11** — Playwright stage suite (happy path, interrupt, 3 viewports, a11y). ([#1317], [#1483])
- **Phase 12** — 9 Prometheus metrics + 6 log events + OTel span + Grafana dashboard. ([#1485])
- **Phase 13** — reducer p99 benchmark + surface coverage walker. ([#1318])
- **Phase 15** — rollout resolver + Settings toggle hook. ([#1320])
- **Phase 16** — M-phase rollout ratchet + `/api/critique/conformance`. ([#1499])
- **Wireup with M0 dark-launch by default.** ([#1338])
- **Settings toggle** with dedicated section + i18n keys across 6 locales. ([#1484])
#### Design systems & tokens
- **Token channel default-on (PR-D)** so the new fixture pipeline is the default surface. ([#1544])
- **Structured `tokens.css` for 60+ new brands** across AI, devtool, SaaS, fintech, docs, consumer, hardware, cultural categories (Apple, Stripe, Airbnb, Vercel, Notion, Linear, GitHub, Figma, Slack, Discord, OpenAI, Shopify, Spotify, Uber, Cursor, and many more). ([#1652], [#1794], [#1841], [#2023], [#2028], [#2029], [#2033])
- **Token fixture catalog** — 20 brand + 20 product + remaining style fixtures, component-fixture coverage report. ([#2037], [#2040], [#2043], [#2049])
- **Component manifests** — extract + consume manifests for design systems. ([#2051])
- **Import design-system projects** via the discovery flow.
- **Perplexity design system.** ([#1747])
#### Agents, providers & media
- **Local custom CLI agent profiles** for arbitrary CLI agents. ([#378])
- **Leonardo.ai image provider.** ([#1123])
- **ElevenLabs audio support.** ([#1384])
- **SenseAudio TTS provider** + BYOK chat with image / video generation tools. ([#1633], [#2065])
- **User-configurable model alias for the media dispatcher.** ([#1277])
- **Cursor Agent live model id parsing** + auth diagnostics. ([#1538], [#2228])
#### Web UI
- **Resume conversation in a new chat** — split long threads without losing prior context. ([#2264])
- **Manual edit UX overhaul** — focus mode, inline uploads, remove-element patch. ([#1516])
- **Manual edit inspector.** ([#1448])
- **Tweaks toolbar bound to the artifact panel** (toggle visibility from the panel chrome).
- **Custom select primitive** for cleaner dropdowns.
- **Collapsible comment side panel.**
- **Export as image** in the share menu.
- **Render GFM tables in markdown artifacts and chat.**
- **Surface saved Project instructions** for review and retrieval.
- **Copy-to-clipboard for user messages.**
- **Filter-by-kind dropdown** on the design-files viewer.
#### Discovery & onboarding
- **Quick-brief: collapse freeform clarification into a single form.** ([#2226])
- **Plugin inputs as authoritative Quick-brief answers.** ([#2243])
- **Stabilize discovery brand answers** in prompts. ([#1861])
- **Daemon surfaces discovery form answers to agents.** ([#2071])
#### Desktop & packaging
- **Windows packaged auto-update flow.** ([#2362])
- **Desktop updater UI flow** — new in-app updater popup. ([#2270], [#2403])
- **Packaged update apply observations** captured for telemetry / debugging. ([#2429])
- **Nightly + preview package identity** so beta installs don't collide with stable. ([#2437])
- **macOS Dock icon stays put** when desktop-pet window opens. ([#2413])
- **Refresh Open Design app visuals** — new app icons, logo, brand glyphs. ([#2436])
- **Linux packaged client parity smoke coverage.**
- **Ensure node binary dir is on PATH for agent sub-processes on Windows.** ([#1989])
#### Internationalization
- **Italian (it) locale** — full UI translation, brings supported languages to 19. ([#1323])
- **CJK font fallback** for Chinese / Japanese / Korean. ([#2227])
- **Refresh + polish French UI locale.**
- **Translate template platform selection + Companion surfaces to Chinese.** ([#1491])
- **Localize accent controls in settings**, comment-panel strings ([#1390], [#1392]), and skill validation messages.
#### Analytics, observability & infra
- **PostHog v2 event schema.** ([#2285])
- **Unify `page_name` + onboarding / design-system page_views.** ([#2390])
- **Upgrade `posthog-node` 4 → 5 in the daemon.** ([#2309])
- **One-click log export from Settings → About.**
#### Templates, landing & tutorials
- **HTML Anything page + responsive landing header.** ([#2452])
- **Rebuild `/templates` catalog from `design-templates`.** ([#2369])
- **Refresh templates + add tutorials channel** on the landing site. ([#2409])
- **Blog routes** on the landing site.
- **Search Console reporting workflows** + GSC report opportunities. ([#2388])
- **WeRead year-in-review HyperFrames template.**
### Changed
- **Critique Theater dark-launched at M0 by default**, gated through the new rollout ratchet so phases can be promoted independently.
- **Plugin trust badges unified** across registry surfaces.
- Plugins and Integrations moved to the nav rail footer ([#1806], [#2360], [#2397]) — keep primary surface focused.
### Fixed
#### Web
- Block pitch-deck placeholder publishes and unbreak framework decks.
- Rename FileViewer "Share" button to "Export".
- Confirm before deleting a saved template in New Project.
- Restore consistent app header layout on the entry view. ([#1519])
- Refine preview and project dropdown controls. ([#1514])
- Pin chat during content growth.
- Auto-scroll feedback form.
- Routines history rows deep-link to their specific conversation. (Fixes [#1505])
- Hide resolved comments from preview overlays.
- Keep filter pill hover labels readable.
- Improve replace-modal button hover contrast.
- Freeze completed run durations across conversations.
- Align Home prompt overlay with textarea so caret lands on click.
- Restore release-light background. ([#1540])
- Allow downloads from preview iframes; fall back to srcDoc when HTML preview needs sandbox shim.
- Coalesce chokidar rewrite bursts before refreshing files.
- Reveal memory editor after edit click; distinguish expanded memory preview action.
- Auto-annotate imported HTML elements for Tweaks selection. ([#892])
- Stable shared frame screen paths from referrer.
- Restore custom dropdown chevron for timezone selector in dark mode.
- Daemon run recovery across reloads. ([#2374])
#### Desktop & packaging
- macOS Dock icon stays put when desktop-pet window opens. ([#2413])
- Align Windows smoke update root with portable installs. ([#2376])
- Nightly release smoke identity. ([#2446])
- Improve desktop updater ready UI. ([#2403])
- Forward proxy env vars to packaged sidecars.
- Detect mise-installed npm package bins.
- Launch Windows updater fixture via Node. ([#2364])
- Desktop "Export PDF" opens a direct "Save as PDF" file dialog and writes the PDF to disk, instead of opening the macOS system print dialog. (Fixes [#1774])
- macOS close exits fullscreen before hiding.
- Daemon's external-browser opener fixed on Windows.
#### Daemon, runtime & connectivity
- Surface discovery form answers to agents. ([#2071])
- Stabilize discovery brand answers in prompts. ([#1861])
- ACP model detection timeout is configurable.
- Wrap Claude smoke test stdin as stream-json.
- Preserve Claude tool inputs. ([#1476])
- Codex CLI path fallback UX. ([#1205])
- Treat Codex reconnect events as warnings, not fatal errors. ([#1482])
- ACP config options used for model selection. ([#1208])
- Remove OpenCode stdin dash sentinel; soft empty API response handling.
- Forward external MCP servers to OpenCode.
### Documentation
- Critique Theater Phase 14 user guide + 2 AGENTS module maps. ([#1319])
- Windows native setup notes in `AGENTS.md`.
- Comprehensive contributor guide in `TRANSLATIONS.md`.
- RTL_LOCALES UI guidance + `es-ES` alignment.
- Sync `zh-TW` README with the English version.
- Sync Windows troubleshooting link across locale READMEs.
- Refresh contributors wall + GitHub metrics SVG.
- Clarify Intel Mac ZIP packaging support (includes the Monterey verified path and the Finder `PATH` caveat for packaged CLI detection). (Fixes [#327])
- README inventory badges sync — skills 31 → 131, design-systems 72 → 149. ([#1899])
- 0.8.0-preview banner + Discussion #1727 pointer. ([#1781])
- Active 0.8.0 contributors point at `main`. ([#1846])
### Internal
- Critique Theater Playwright stage suite (happy, interrupt, 3 viewports, a11y). ([#1317], [#1483])
- Reducer p99 bench + surface coverage walker. ([#1318])
- Harden e2e extended coverage state assertions. ([#2245])
- Visual regression PR workflow (CI).
- Component manifest extraction + daemon consume path. ([#2051])
- OD CLI wraps GitHub CLI (so plugins create plugins).
- `pnpm i18n:coverage` informational report.
- Issue templates: bug, feature, preview/v0.8.0 + chooser config. ([#1708])
## [0.7.0] - 2026-05-12
@ -941,7 +1110,8 @@ First public release of Open Design — a local-first, open-source alternative t
- Beta release workflow placeholder. ([#36])
- Git commit co-author policy. ([#131])
[Unreleased]: https://github.com/nexu-io/open-design/compare/open-design-v0.7.0...HEAD
[Unreleased]: https://github.com/nexu-io/open-design/compare/open-design-v0.8.0...HEAD
[0.8.0]: https://github.com/nexu-io/open-design/releases/tag/open-design-v0.8.0
[0.7.0]: https://github.com/nexu-io/open-design/releases/tag/open-design-v0.7.0
[0.6.0]: https://github.com/nexu-io/open-design/releases/tag/open-design-v0.6.0
[0.5.0]: https://github.com/nexu-io/open-design/releases/tag/open-design-v0.5.0
@ -1510,3 +1680,90 @@ First public release of Open Design — a local-first, open-source alternative t
[#1402]: https://github.com/nexu-io/open-design/pull/1402
[#1439]: https://github.com/nexu-io/open-design/pull/1439
[#1442]: https://github.com/nexu-io/open-design/pull/1442
[#327]: https://github.com/nexu-io/open-design/issues/327
[#378]: https://github.com/nexu-io/open-design/pull/378
[#892]: https://github.com/nexu-io/open-design/pull/892
[#1123]: https://github.com/nexu-io/open-design/pull/1123
[#1277]: https://github.com/nexu-io/open-design/pull/1277
[#1315]: https://github.com/nexu-io/open-design/pull/1315
[#1316]: https://github.com/nexu-io/open-design/pull/1316
[#1317]: https://github.com/nexu-io/open-design/pull/1317
[#1318]: https://github.com/nexu-io/open-design/pull/1318
[#1319]: https://github.com/nexu-io/open-design/pull/1319
[#1320]: https://github.com/nexu-io/open-design/pull/1320
[#1323]: https://github.com/nexu-io/open-design/pull/1323
[#1338]: https://github.com/nexu-io/open-design/pull/1338
[#1384]: https://github.com/nexu-io/open-design/pull/1384
[#1390]: https://github.com/nexu-io/open-design/pull/1390
[#1392]: https://github.com/nexu-io/open-design/pull/1392
[#1448]: https://github.com/nexu-io/open-design/pull/1448
[#1476]: https://github.com/nexu-io/open-design/pull/1476
[#1482]: https://github.com/nexu-io/open-design/pull/1482
[#1483]: https://github.com/nexu-io/open-design/pull/1483
[#1484]: https://github.com/nexu-io/open-design/pull/1484
[#1485]: https://github.com/nexu-io/open-design/pull/1485
[#1491]: https://github.com/nexu-io/open-design/pull/1491
[#1499]: https://github.com/nexu-io/open-design/pull/1499
[#1505]: https://github.com/nexu-io/open-design/issues/1505
[#1514]: https://github.com/nexu-io/open-design/pull/1514
[#1516]: https://github.com/nexu-io/open-design/pull/1516
[#1519]: https://github.com/nexu-io/open-design/pull/1519
[#1538]: https://github.com/nexu-io/open-design/pull/1538
[#1540]: https://github.com/nexu-io/open-design/pull/1540
[#1544]: https://github.com/nexu-io/open-design/pull/1544
[#1633]: https://github.com/nexu-io/open-design/pull/1633
[#1652]: https://github.com/nexu-io/open-design/pull/1652
[#1708]: https://github.com/nexu-io/open-design/pull/1708
[#1747]: https://github.com/nexu-io/open-design/pull/1747
[#1774]: https://github.com/nexu-io/open-design/issues/1774
[#1781]: https://github.com/nexu-io/open-design/pull/1781
[#1794]: https://github.com/nexu-io/open-design/pull/1794
[#1806]: https://github.com/nexu-io/open-design/pull/1806
[#1841]: https://github.com/nexu-io/open-design/pull/1841
[#1846]: https://github.com/nexu-io/open-design/pull/1846
[#1861]: https://github.com/nexu-io/open-design/pull/1861
[#1899]: https://github.com/nexu-io/open-design/pull/1899
[#1903]: https://github.com/nexu-io/open-design/pull/1903
[#1989]: https://github.com/nexu-io/open-design/pull/1989
[#2023]: https://github.com/nexu-io/open-design/pull/2023
[#2028]: https://github.com/nexu-io/open-design/pull/2028
[#2029]: https://github.com/nexu-io/open-design/pull/2029
[#2033]: https://github.com/nexu-io/open-design/pull/2033
[#2037]: https://github.com/nexu-io/open-design/pull/2037
[#2040]: https://github.com/nexu-io/open-design/pull/2040
[#2043]: https://github.com/nexu-io/open-design/pull/2043
[#2049]: https://github.com/nexu-io/open-design/pull/2049
[#2051]: https://github.com/nexu-io/open-design/pull/2051
[#2064]: https://github.com/nexu-io/open-design/pull/2064
[#2065]: https://github.com/nexu-io/open-design/pull/2065
[#2071]: https://github.com/nexu-io/open-design/pull/2071
[#2087]: https://github.com/nexu-io/open-design/pull/2087
[#2226]: https://github.com/nexu-io/open-design/pull/2226
[#2227]: https://github.com/nexu-io/open-design/pull/2227
[#2228]: https://github.com/nexu-io/open-design/pull/2228
[#2243]: https://github.com/nexu-io/open-design/pull/2243
[#2245]: https://github.com/nexu-io/open-design/pull/2245
[#2264]: https://github.com/nexu-io/open-design/pull/2264
[#2270]: https://github.com/nexu-io/open-design/pull/2270
[#2285]: https://github.com/nexu-io/open-design/pull/2285
[#2309]: https://github.com/nexu-io/open-design/pull/2309
[#2332]: https://github.com/nexu-io/open-design/pull/2332
[#2360]: https://github.com/nexu-io/open-design/pull/2360
[#2362]: https://github.com/nexu-io/open-design/pull/2362
[#2363]: https://github.com/nexu-io/open-design/pull/2363
[#2364]: https://github.com/nexu-io/open-design/pull/2364
[#2369]: https://github.com/nexu-io/open-design/pull/2369
[#2374]: https://github.com/nexu-io/open-design/pull/2374
[#2376]: https://github.com/nexu-io/open-design/pull/2376
[#2380]: https://github.com/nexu-io/open-design/pull/2380
[#2388]: https://github.com/nexu-io/open-design/pull/2388
[#2390]: https://github.com/nexu-io/open-design/pull/2390
[#2397]: https://github.com/nexu-io/open-design/pull/2397
[#2403]: https://github.com/nexu-io/open-design/pull/2403
[#2409]: https://github.com/nexu-io/open-design/pull/2409
[#2413]: https://github.com/nexu-io/open-design/pull/2413
[#2429]: https://github.com/nexu-io/open-design/pull/2429
[#2436]: https://github.com/nexu-io/open-design/pull/2436
[#2437]: https://github.com/nexu-io/open-design/pull/2437
[#2446]: https://github.com/nexu-io/open-design/pull/2446
[#2452]: https://github.com/nexu-io/open-design/pull/2452

View file

@ -1,6 +1,6 @@
{
"name": "@open-design/daemon",
"version": "0.7.0",
"version": "0.8.0",
"private": true,
"type": "module",
"main": "./dist/cli.js",

View file

@ -1,6 +1,6 @@
{
"name": "@open-design/desktop",
"version": "0.7.0",
"version": "0.8.0",
"private": true,
"type": "module",
"main": "./dist/main/index.js",

View file

@ -1,6 +1,6 @@
{
"name": "@open-design/landing-page",
"version": "0.7.0",
"version": "0.8.0",
"private": true,
"type": "module",
"scripts": {

View file

@ -1,6 +1,6 @@
{
"name": "@open-design/web",
"version": "0.7.0",
"version": "0.8.0",
"private": true,
"type": "module",
"exports": {

View file

@ -1,6 +1,6 @@
{
"name": "@open-design/e2e",
"version": "0.7.0",
"version": "0.8.0",
"private": true,
"type": "module",
"scripts": {

View file

@ -1,6 +1,6 @@
{
"name": "open-design",
"version": "0.7.0",
"version": "0.8.0",
"private": true,
"packageManager": "pnpm@10.33.2",
"type": "module",

View file

@ -1,6 +1,6 @@
{
"name": "@open-design/contracts",
"version": "0.7.0",
"version": "0.8.0",
"private": true,
"type": "module",
"description": "Shared pure TypeScript contracts for the Open Design web/daemon boundary.",

View file

@ -1,6 +1,6 @@
{
"name": "@open-design/host",
"version": "0.7.0",
"version": "0.8.0",
"private": true,
"type": "module",
"description": "Open Design renderer host bridge protocol.",

View file

@ -1,6 +1,6 @@
{
"name": "@open-design/platform",
"version": "0.7.0",
"version": "0.8.0",
"private": true,
"type": "module",
"main": "./dist/index.mjs",

View file

@ -1,6 +1,6 @@
{
"name": "@open-design/sidecar-proto",
"version": "0.7.0",
"version": "0.8.0",
"private": true,
"type": "module",
"main": "./dist/index.mjs",

View file

@ -1,6 +1,6 @@
{
"name": "@open-design/sidecar",
"version": "0.7.0",
"version": "0.8.0",
"private": true,
"type": "module",
"main": "./dist/index.mjs",

View file

@ -1,6 +1,6 @@
{
"name": "@open-design/tools-dev",
"version": "0.7.0",
"version": "0.8.0",
"private": true,
"type": "module",
"bin": {

View file

@ -1,6 +1,6 @@
{
"name": "@open-design/tools-pack",
"version": "0.7.0",
"version": "0.8.0",
"private": true,
"type": "module",
"bin": {

View file

@ -1,6 +1,6 @@
{
"name": "@open-design/tools-pr",
"version": "0.7.0",
"version": "0.8.0",
"private": true,
"type": "module",
"bin": {