Commit graph

57 commits

Author SHA1 Message Date
lefarcen
c20d1560d0 chore(changelog): refresh 0.8.0 entry for auto-update + remove resume conversation
- Auto-update on both macOS and Windows is now battle-hardened through
  the preview cycle; list the 7 additional hardening PRs that landed
  since the initial draft (#2565, #2575, #2592, #2595, #2677, #2687, #2700)
  and tighten the headline.
- Remove the 'Resume conversation in a new chat' bullet — the UI entry
  point was reverted in #2562 before stable cut.
2026-05-22 19:49:17 +08:00
lefarcen
aedbb9dbe4 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
2026-05-20 21:22:17 +08:00
kami
e64f1d8497
fix(desktop): export PDF saves to a file instead of the OS print dialog (#1920)
* fix(desktop): export PDF saves to a file instead of the OS print dialog

The `od:print-pdf` IPC handler called `webContents.print()`, which
opens the printer-first macOS system print dialog. That handler is the
destination of the renderer's `window.__odDesktop.printPdf()` bridge,
so on desktop "Export PDF" felt like a print flow rather than a file
export — from both the PreviewModal share menu (which always uses this
path) and the FileViewer share menu (whose daemon-route fallback lands
here too).

Route the handler through a direct Save-as-PDF flow instead: a native
Save dialog, then `webContents.printToPDF()` straight to the chosen
file — the same shape `exportPdfFromHtml` already uses for the
daemon-backed export path. The flow is extracted into
`savePrintReadyDocumentAsPdf` behind a structural `PrintReadyPdfTarget`
surface that has no `print()` method, so the regression cannot be
reintroduced.

Fixes #1774

Co-authored-by: multica-agent <github@multica.ai>

* fix(desktop): preserve PDF page sizing in print bridge

Co-authored-by: multica-agent <github@multica.ai>

---------

Co-authored-by: multica-agent <github@multica.ai>
2026-05-17 11:26:08 +08:00
李韭二
440de58e10
docs(packaging): clarify Intel Mac ZIP support (#1874)
Co-authored-by: li9292 <li9292@li9292s-MacBook-Air.local>
2026-05-16 22:27:33 +08:00
PerishCode
cba8bf151d chore: align namespace lifecycle packaging 2026-05-14 16:35:46 +08:00
lefarcen
53997990b7 Merge origin/main (post-0.7.0) into reconciled garnet branch
Second-pass merge layering 41+ new commits from origin/main on top of
the first reconcile commit. Headline upstream additions absorbed:

- 0.7.0 release: redesigned chat bubble user-text styling, neutralised
  palette, lucide icons, ElevenLabs audio voice option discovery in the
  prompt composer, analytics tracking (PostHog) wired across home /
  studio / create surfaces, Prometheus `/api/metrics` endpoint,
  critique-theater drop-in mount with a settings toggle.
- Misc upstream fixes (titlebar padding, release header layout, deck
  preview chrome, feedback form auto-scroll, conversation-created SSE
  on routine runs, etc.)

Conflict resolutions (12 files, ~22 hunks):

- contracts barrel + prompts/system: union of both sides; new analytics
  exports (`./analytics/events`, `./analytics/public-params`) added
  alongside garnet's plugin/atom/genui exports. Both ElevenLabs voice
  fields (audioVoiceOptions/audioVoiceOptionsError, main) and
  pluginBlock/activeStageBlocks (garnet) preserved on ComposeInput.
- daemon/server.ts: Prometheus `/api/metrics` route inserted after
  garnet's `/api/daemon/shutdown`. main's `createAnalyticsService` call
  added before the chat-run service init alongside the prior reconcile
  note about the dropped legacy POST /api/projects body.
- App.tsx: handleCreateProject now consumes both garnet's plugin
  fields (pluginId / appliedPluginSnapshotId / pluginInputs /
  autoSendFirstMessage) and main's analytics requestId. Tracking
  fires success + failure paths; PluginLoopHome auto-send sessionStorage
  flag is preserved.
- ProjectView.tsx: the garnet auto-send useEffect coexists with main's
  `useCritiqueTheaterEnabled()` hook.
- ChatComposer.tsx: imports merged (drop now-unused fetchSkills,
  add analytics provider + tracking + buildVisualAnnotationAttachment).
- index.css: main's redesigned `.msg.user .user-text` chat bubble
  styling wins over garnet's plain text rule; garnet's
  `.msg-plugin-chip*` rules preserved alongside.
- EntryView.tsx: accepted HEAD (garnet wrapper) — consistent with
  reconcile decision #2. main's added PetRail / TopTab / analytics
  view tracking is intentionally NOT brought into the wrapper; the
  follow-up to re-integrate PetRail / image-templates / video-templates
  into EntryShell still stands and now also covers analytics
  view-tracking hooks.
- daemon/package.json + pnpm-lock: merged dep set (tar + posthog-node +
  prom-client coexist).
- Test fixtures (FileWorkspace.test): kept garnet's plugin-folders
  describe block intact; main's projectKind="prototype" addition is
  dropped where it conflicted with garnet's plugin-folder fixture
  files.

Verification: `pnpm install` (after lockfile reconciled), `pnpm typecheck`
exits 0 across all workspace packages.

Follow-up not done in this commit:
- PetRail / image-templates / video-templates / 0.7.0 analytics
  view-tracking hooks need to be added to EntryShell.
- Critique-theater settings toggle UX (added on main) lives in the
  SettingsDialog hierarchy; the reconcile state preserves the
  SettingsDialog so this should work without changes, but no
  end-to-end verification yet.
2026-05-13 23:29:56 +08:00
lefarcen
d3602be666 Merge origin/main into garnet-hemisphere (reconcile)
Merge of `origin/main` (`03ed3960`, 2026-05-13 pre-0.7.0) into the
161-commit garnet-hemisphere line, reconciling the product-vibe-coded
plugin/marketplace/EntryShell surfaces from garnet with the routines /
skills / live-artifacts feature work landed on main since the fork point.

Headline decisions (full rationale + side-by-side screenshots in
`specs/change/20260513-garnet-skills-automations/reconcile-result-vs-garnet.md`):

- #1 SettingsDialog: keep main's Memory / Skills / External MCP /
  Connectors / Routines / MCP server nav items even though the top-level
  /integrations + /automations routes also cover them. Two entries
  coexist for now; revisit once Track A/B fill in the placeholder content.
- #2 EntryView: accept garnet's thin wrapper delegating to EntryShell.
  Main's PetRail sidebar + image-templates/video-templates tabs are
  intentionally deferred to a follow-up that re-integrates them into
  the new EntryShell layout.
- #3 /integrations + /automations top-level routes: kept (garnet's
  product intent). Skills tab is still a "Coming soon" placeholder
  awaiting Track A; Routines/Schedules/Live-artifacts cards on
  /automations are still mock awaiting Track B.
- #5 DesignFilesPanel: hybrid — main's pagination as primary list,
  garnet's Plugin folders section preserved between the live-artifacts
  block and the pagination block. (by-kind sections drop in favour of
  pagination; plugin-folders rendering stays because it is a
  garnet-specific product addition.)
- #7 server.ts (10 hunks, ~5400 conflict lines): manual hunk-by-hunk
  merge. Both daemon admin routes + plugin/genui routes (garnet) and
  routines/memory/skills upgrades (main) preserved. Garnet's inline
  project route block kept alongside main's `registerProjectRoutes` /
  `registerProjectUploadRoutes` modular wiring — duplicate route
  audit is a follow-up. Garnet's POST /api/projects plugin-snapshot
  resolution + default-scenario fallback is intentionally dropped from
  the inline body (now handled by registerProjectRoutes) and listed for
  follow-up re-integration into `project-routes.ts`.

Verification (worktree at /Users/elian/Documents/open-design-garnet):
- `pnpm typecheck` exits 0 across all workspace packages
- daemon (`pnpm tools-dev run web --namespace reconcile-shots`) boots,
  serves `/api/daemon/status` healthy, and survives a Playwright
  walkthrough of /integrations / /automations / home / projects /
  design-systems / plugins / settings dialog
- `@open-design/plugin-runtime` package built (was missing dist/ on
  garnet); without it the daemon's plugins/* imports fail at boot

Track A (Skills tab → real SkillsSection) and Track B (Automations
cards → real routines / live-artifacts backend) are the two remaining
follow-ups blocking the placeholder/mock content from going live. See
`spec.md` and `track-skills.md` in the same directory.
2026-05-13 22:29:21 +08:00
lefarcen
eb2c232858 Revert "chore(changelog): note #1432 app header layout fix"
This reverts commit 68d64da3a6.
2026-05-13 11:20:16 +08:00
lefarcen
68d64da3a6 chore(changelog): note #1432 app header layout fix 2026-05-12 23:17:04 +08:00
lefarcen
9811b16eba chore(changelog): note 3 stabilization fixes for 0.7.0
- #1402 Langfuse report finalization hook
- #1439 Appearance accent color persistence
- #1442 Orbit templates from design-templates (cherry-pick of #1429)
2026-05-12 22:39:36 +08:00
lefarcen
2a0ebea50b release: Open Design 0.7.0
- bump 14 monorepo package.json files to 0.7.0 (root + apps/{web,daemon,desktop,packaged,landing-page} + packages/{contracts,platform,sidecar,sidecar-proto} + tools/{dev,pack,pr} + e2e); apps/packaged was already at 0.6.1 from beta lane, all others at 0.6.0
- add CHANGELOG.md [0.7.0] - 2026-05-12 entry covering 97 merged PRs since 0.6.0:
  - Critique Theater: Phase 7 web client state machine (#1307) + Phase 6.2 daemon artifact extraction (#1085)
  - Web/UI: thumbs-up/down feedback widget (#1308), Cmd+, opens Settings (#1173), Finalize design package + Continue in CLI (#974), fetch models button for BYOK (#1034), provider models alphabetical sort (#1097), collapsible MCP JSON field-mapping (#1136), design file rename (#894)
  - Daemon: auto-memory store with chat-protocol-aware extraction (#999), install/uninstall skills & design systems (#1003), HTTP 206 range requests for video/audio (#1105), scheduled routines (#1033), agent runtime + route registration refactor (#1063, #1043)
  - HyperFrames: HTML-in-Canvas across web + skills (#866)
  - Skills/design systems: generic skills + design-templates split + finalize-design API (#955), agent-browser skill (#1284), WeChat design system + login-flow skill (#1083), hud/loom/trading-terminal design systems (#1069), release-notes-one-pager skill (#873), tokens.css schema (#1231)
  - Packaging: macOS Intel (x64) build (#759), official Nix flake (#402), beta packaging cache (#1095)
  - Maintainer ops: tools-pr PR-duty workspace (#1259), MAINTAINERS.md (#1290), contributor card bot (#932), PR→issue linking discipline (#1263)
  - Changed: conversation run isolation (#1271), default English i18n fallback (#1270), Codex CLI exit diagnostics / empty-response handling / path fallback (#1267, #1244, #1205)
  - Fixed: ~30 web + desktop + daemon + packaging bugfixes
  - Internal: nightly UI/desktop regression coverage (#1256), e2e/release report hardening (#1140), entry/settings automation (#954)
- catch up [Unreleased] compare link to v0.7.0 and add missing [0.6.0] release link
- add 97 PR footnote refs ([#402]..[#1330])

Verified locally: pnpm install + pre-build contracts/daemon/desktop dist + pnpm typecheck (exit 0 across all 14 packages on Node 22.22 with engine-warning).

Release workflow validation runs after merge via release-stable.
2026-05-12 15:33:28 +08:00
huyhoangnhh98
140a4e1ff6
Improve responsive preview and design handoff outputs (#1224)
* feat: improve responsive design handoff

* feat: refine cross-platform design outputs

Changelog:\n- Add auto-fit responsive preview behavior for tablet/mobile frames.\n- Add landing page and OS widgets metadata options with project header chips.\n- Strengthen prompt contracts for modern breakpoints, app-specific modules, CJX-ready UX, and final product surfaces.\n- Require cross-platform outputs to use separate platform files instead of tabbed demo selectors.\n- Add DESIGN-MANIFEST.json plus richer handoff guidance to daemon/client exports.\n- Update archive/export tests for manifest and responsive viewport matrix.

* feat: enforce screen-file design outputs

Changelog:\n- Enforce screen-file-first generation for landing pages, app screens, platform surfaces, and OS widgets.\n- Update design handoff and manifest exports so coding tools map each screen file to separate routes/surfaces.\n- Strengthen minimal-brief visual guidance to avoid monochrome or unstyled design outputs.

* fix: address responsive handoff review feedback

* fix: address handoff review blockers

* fix: preserve proxy auth and normalized export entry

* fix: narrow frame wrapper filter to directory paths only

* fix: make artifact save failure banner generic

---------

Co-authored-by: Huy Hoàng <macos@MacBook-Pro-Hoang.local>
2026-05-12 14:18:33 +08:00
Cursor Agent
f6b826aa14
docs(plugins): record NN-series landing in CHANGELOG
Plan NN2 — sync CHANGELOG.md with the NN-series shipped this turn:

  NN1. `od plugin events purge` admin escape hatch

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 18:32:51 +00:00
Cursor Agent
a834c8f9f4
docs(plugins): record MM-series landing in CHANGELOG
Plan MM3 — sync CHANGELOG.md with the MM-series shipped this turn:

  MM1. `od plugin manifest <id>` print only manifest JSON
  MM2. `od plugin sources` distinct sources rollup

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 18:26:09 +00:00
Cursor Agent
fd88098251
docs(daemon): record LL-series landing in CHANGELOG
Plan LL2 — sync CHANGELOG.md with the LL-series shipped this turn:

  LL1. `od daemon db verify` SQLite integrity check

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 18:17:22 +00:00
Cursor Agent
ccc1d0cf62
docs(plugins): record KK-series landing in CHANGELOG
Plan KK4 — sync CHANGELOG.md with the KK-series shipped this turn:

  KK1. `od plugin events snapshot` non-SSE one-shot read
  KK2. `od plugin events stats` rollup helper
  KK3. `--kind` / `--plugin-id` filter flags on tail/snapshot

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 18:11:39 +00:00
Cursor Agent
a0827e5881
docs(plugins): record JJ-series landing in CHANGELOG
Plan JJ2 — sync CHANGELOG.md with the JJ-series shipped this turn:

  JJ1. More plugin event producer hooks
       (upgrade-vs-install, trust-changed, snapshot-pruned,
        marketplace-refreshed)

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 18:05:33 +00:00
Cursor Agent
6001f274c9
docs(plugins): record II-series landing in living plan + CHANGELOG
Plan II2 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the II-series shipped this turn:

  II1. Plugin event ring buffer + SSE tail

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 17:56:49 +00:00
Cursor Agent
ccf5d6d17d
docs(plugins,daemon): record HH-series landing in CHANGELOG
Plan HH3 — sync CHANGELOG.md with the HH-series shipped this turn:

  HH1. `od plugin doctor --strict` + verify strict propagation
  HH2. `od daemon db vacuum`

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 17:48:08 +00:00
Cursor Agent
11f8a01b90
docs(daemon): record GG-series landing in living plan + CHANGELOG
Plan GG2 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the GG-series shipped this turn:

  GG1. `od daemon db status` SQLite inventory

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 17:40:14 +00:00
Cursor Agent
b9fb14e68b
docs(plugins): record FF-series landing in living plan + CHANGELOG
Plan FF2 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the FF-series shipped this turn:

  FF1. `od plugin verify <id>` CI meta-command

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 17:33:08 +00:00
Cursor Agent
675bfa2a85
docs(plugins): record EE-series landing in living plan + CHANGELOG
Plan EE2 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the EE-series shipped this turn:

  EE1. `od plugin simulate <id>` pipeline dry-run

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 17:26:47 +00:00
Cursor Agent
2da68ba0a6
docs(plugins): record DD-series landing in living plan + CHANGELOG
Plan DD3 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the DD-series shipped this turn:

  DD1. `od plugin stats` inventory health report
  DD2. `od plugin canon --check <expected-file>` byte-equality fixtures

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 17:18:21 +00:00
Cursor Agent
6ab8b224c4
docs(plugins): record CC-series landing in CHANGELOG
Plan CC2 — sync CHANGELOG.md with the CC-series shipped this turn:

  CC1. `od plugin canon <snapshotId>` show canonical prompt block

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 17:10:36 +00:00
Cursor Agent
adcffab253
docs(plugins): record BB-series landing in living plan + CHANGELOG
Plan BB3 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the BB-series shipped this turn:

  BB1. `od plugin snapshots show <id>`
  BB2. `od plugin snapshots diff <a> <b>` + diffSnapshots() helper

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 17:04:23 +00:00
Cursor Agent
81412fcf6a
docs(plugins): record AA-series landing in living plan + CHANGELOG
Plan AA3 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the AA-series shipped this turn:

  AA1. `od plugin diff <a> <b>` author tooling
  AA2. `od atoms info <id>` + atom catalog drift fix

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 16:54:00 +00:00
Cursor Agent
9f4e8df498
docs(plugins): record Z-series landing in living plan + CHANGELOG
Plan Z3 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the Z-series shipped this turn:

  Z1. patch-edit atomic file writes (Phase 7 safety patch)
  Z2. `od plugin upgrade <id>` re-install from recorded source

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 16:44:02 +00:00
Cursor Agent
000ea5a734
docs(plugins): record Y-series landing in living plan + CHANGELOG
Plan Y2 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the Y-series shipped this turn:

  Y1. `od plugin search <query>` + filters on `od plugin list`

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 16:34:26 +00:00
Cursor Agent
2d8f556b3b
docs(plugins): record X-series landing in living plan + CHANGELOG
Plan X2 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the X-series shipped this turn:

  X1. `od plugin pack <folder>` distribution archive

The Phase 4 author dev-loop is now closed end-to-end:

  od plugin scaffold --id <id>          # bootstrap a folder
  od plugin validate <folder>           # lint before install
  od plugin pack <folder>               # build a .tgz archive
  od plugin install --source <path>     # install (local OR https)
  od plugin export <projectId>          # build a publish-ready folder
  od plugin publish ...                 # generate catalog PR link

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 16:28:30 +00:00
Cursor Agent
fbddf11f8b
docs(plugins): record W-series landing in living plan + CHANGELOG
Plan W2 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the W-series shipped this turn:

  W1. `od plugin validate <folder>` author-side lint

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 16:22:50 +00:00
Cursor Agent
e026a54fd9
docs(daemon): record V-series landing in living plan + CHANGELOG
Plan V2 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the V-series shipped this turn:

  V1. OD_BUNDLED_ATOM_PROMPTS default flipped to ON

Living plan now reads:
  Phase 4 \u2192 'full incl. OD_BUNDLED_ATOM_PROMPTS default ON'

Remaining backlog: postgres adapter wiring inside the DaemonDb
resolver — the only stubbed item left.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 16:16:29 +00:00
Cursor Agent
0ddd29aeb6
docs(daemon): record U-series landing in living plan + CHANGELOG
Plan U2 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the U-series shipped this turn:

  U1. S3ProjectStorage live impl via AWS SigV4

Living plan now reads:
  Phase 5 \u2192 'full incl. live S3 impl; postgres adapter still stubbed'

Remaining backlog:
  - Promote OD_BUNDLED_ATOM_PROMPTS=1 to default (audit-blocked)
  - Postgres adapter wiring inside DaemonDb resolver

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 16:11:10 +00:00
Cursor Agent
798ffaec48
docs(plugins): record T-series landing in living plan + CHANGELOG
Plan T3 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the T-series shipped this turn:

  T1. runAndPersistHandoff() + auto-handoff from diff-review bridge
  T2. figma-migration pipeline e2e smoke test

Phase 8 promotion ladder now closes end-to-end without an agent turn:
GenUI Accept \u2192 review/decision.json + handoff/manifest.json with
handoffKind set.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 16:03:37 +00:00
Cursor Agent
4c3423a500
docs(plugins): record S-series landing in living plan + CHANGELOG
Plan S3 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the S-series shipped this turn:

  S1. runHandoffAtom() pipeline-driven promotion-ladder bridge
  S2. Full code-migration pipeline e2e smoke test

Living plan now records:
  Phase 7 \u2705 + 'full pipeline e2e covered by smoke test'
  Phase 8 \u2705 + 'handoff promotion ladder bridge landed'

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 15:56:54 +00:00
Cursor Agent
c1f6d1f02d
docs(plugins): record R-series landing in living plan + CHANGELOG
Plan R2 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the R-series shipped this turn:

  R1. diff-review GenUI \u2192 review/decision.json bridge

Living plan now reads:
  Phase 8 → \u2705 COMPLETE end-to-end. Patch substrate +
    diff-review atom + auto-surface + native UI mount + GenUI \u2192
    runDiffReview bridge all landed.
  Phase 6 → \u2705 COMPLETE.
  Phase 7 → \u2705 COMPLETE.

Remaining backlog:
  - Promote OD_BUNDLED_ATOM_PROMPTS=1 to default (audit-blocked)
  - AWS SDK wiring inside S3ProjectStorage
  - Postgres adapter wiring inside DaemonDb resolver

Changelog names every shipped surface so a reviewer can audit the
delta without reading the plan.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 15:49:50 +00:00
Cursor Agent
72ec5fb176
docs(plugins): record Q-series landing in living plan + CHANGELOG
Plan Q3 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the Q-series shipped this turn:

  Q1. Native diff-review UI on GenUISurfaceRenderer  (Phase 8 entry slice)
  Q2. figma-extract asset rasterisation second pass  (Phase 6 entry slice)

Living plan now reads:
  Phase 6 → COMPLETE: figma-extract REST + token-map crosswalk +
    asset rasterisation second pass via GET /v1/images.
  Phase 8 → patch + review + auto-surface + native review UI all
    landed. The remaining slice is wiring the GenUI response back
    through runDiffReview() to auto-update review/decision.json
    (today the daemon stores the response on the run; the
    diff-review runner reads it on next invocation).

Changelog names every shipped surface so a reviewer can audit the
delta without reading the plan.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 15:41:46 +00:00
Cursor Agent
e135739f99
docs(plugins): record P-series landing in living plan + CHANGELOG
Plan P4 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the P-series shipped this turn:

  P1. token-map atom impl                       (Phase 6/7 entry slice)
  P2. figma-extract atom impl                   (Phase 6 entry slice)
  P3. Auto-derived choice surface for diff-review (Phase 8 entry slice)

Living plan now reads:
  Phase 6 → COMPLETE: figma-extract REST shell-out + token-map
    crosswalk both implemented. Bundled scenario plugin
    od-figma-migration ships the canonical pipeline. Asset
    rasterisation second pass (offlineAssets=false) stays
    scheduled.
  Phase 7 → COMPLETE (continued from O-series): all six atom impls.
  Phase 8 → patch + review + auto-surface substrate landed; native
    UI mount in the web composer stays scheduled.

Changelog names every shipped surface so a reviewer can audit the
delta without reading the plan.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 15:32:23 +00:00
Cursor Agent
01e94a92be
docs(plugins): record O-series landing in living plan + CHANGELOG
Plan O6 — sync docs/plans/plugins-implementation.md and CHANGELOG.md
with the O-series shipped this turn:

  O1. Bundled-scenario pipeline fallback resolver (spec §23.3.3)
  O2. design-extract atom impl                    (Phase 6/7 entry slice)
  O3. rewrite-plan atom impl                      (Phase 7 entry slice)
  O4. patch-edit atom impl                        (Phase 7 entry slice)
  O5. diff-review atom impl                       (Phase 7-8 entry slice)

Living plan now reads:
  Phase 7 → ALL SIX atoms IMPLEMENTED (build-test + code-import +
    design-extract + rewrite-plan + patch-edit + diff-review).
    Bundled scenario plugin od-code-migration ships the canonical
    pipeline. Live HTTP wiring for the per-stage runner stays
    scheduled.
  Phase 8 → patch + review substrate landed; native review-and-apply
    UI mounting diff-review through a GenUI choice surface stays
    scheduled.
  Phase 6 → SKILL.md substrate + scenario plugin registered;
    design-extract impl is reused under the figma-migration
    flow as well.

Changelog names every shipped surface so a reviewer can audit the
delta without reading the plan.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 15:19:04 +00:00
Cursor Agent
1d142b4214
docs(plugins): record N-series landing in living plan + CHANGELOG
Plan §3.N5 — sync docs/plans/plugins-implementation.md and
CHANGELOG.md with the N-series shipped this turn:

  N1. build-test atom shell-out runner (Phase 7 entry slice)
  N2. code-import atom repo walker      (Phase 7 entry slice)
  N3. handoff helper + ArtifactManifest provenance fields
                                        (Phase 7-8 entry slice)
  N4. Bundled scenario plugins          (spec §23.3.3)

Living plan now reads:
  Phase 7 → build-test + code-import IMPLEMENTED; design-extract +
    rewrite-plan + patch-edit + diff-review remain SKILL.md
    substrate.
  Phase 8 → handoff helper + provenance fields IMPLEMENTED; native
    review-and-apply UI remains scheduled.
  Phase 6 → SKILL.md substrate + scenario plugin registered;
    Figma REST + token-map heuristic remain scheduled.

Changelog names every shipped surface so a reviewer can audit the
delta without reading the plan.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 14:57:23 +00:00
Cursor Agent
4aec507cd3
docs(plugins): record M-series — retention TTL + atom prompt rewiring + Phase 6/7/8 substrate
CHANGELOG.md ## Unreleased gets a new bullet block summarising:
  - OD_SNAPSHOT_RETENTION_DAYS referenced-row TTL (PB2 closed).
  - OD_BUNDLED_ATOM_PROMPTS=1 activates composeDaemonSystemPrompt's
    atom-block branch (default off; byte-equal to today's prompt).
  - Nine new bundled atom SKILL.md fragments under
    plugins/_official/atoms/ for Phases 6, 7, and 8.

docs/plans/plugins-implementation.md §6 Phase 6 / 7 / 8 deliverables
record their substrate-shipped state; the actual implementations
remain scheduled. §9 Status snapshot updated; next-planned-PR cell
moves the AWS SDK / postgres adapter wiring + Phase 6 / 7 / 8
shell-out implementations + the OD_BUNDLED_ATOM_PROMPTS default
flip to the head of the queue.

Final gates: pnpm guard ✓, daemon 1521 tests ✓, web 586 tests ✓,
contracts 12 tests ✓, agui-adapter 9 tests ✓, plugin-runtime 21.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 14:25:22 +00:00
Cursor Agent
35b4030834
docs(plugins): record L-series — Helm overrides + activeStageBlocks + asset route + storage substrate
CHANGELOG.md ## Unreleased gets a new bullet block summarising:
  - Per-cloud Helm value overrides (AWS / GCP / Azure / Aliyun /
    Tencent / Huawei / self-hosted).
  - composeSystemPrompt accepts activeStageBlocks so a future PR can
    swap inline DISCOVERY_AND_PHILOSOPHY for SKILL.md fragments.
  - Plugin-bundled component surface (sandboxed iframe) +
    GET /api/plugins/:id/asset/* with §9.2 CSP.
  - ProjectStorage + DaemonDb adapter substrate (Local impl wired,
    S3 + postgres stubs interface-locked).

docs/plans/plugins-implementation.md §3 / §6 / §9 flipped:
  - Phase 5 deliverables: chart templates + per-cloud overrides +
    bound-API-token guard + ghcr CI + ProjectStorage + DaemonDb all
    record their landed shipped state.
  - §6 Phase 4 absorbs the activeStageBlocks composer field +
    surface.component sandbox loader as shipped slices.
  - §9 Status snapshot updated; head of the queue is now the live
    composeSystemPrompt rewiring + AWS SDK / postgres adapter
    wiring + OD_SNAPSHOT_RETENTION_DAYS referenced-row TTL +
    Phase 6/7/8 native scenarios.

Final gates: pnpm guard ✓, daemon 1516 tests ✓, web 586 tests ✓,
contracts 12 tests ✓, agui-adapter 9 tests ✓, plugin-runtime 21.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 14:01:29 +00:00
Cursor Agent
d0dbc7314f
docs(plugins): record K-series — bound-API-token + Helm + surface.component + ghcr CI
CHANGELOG.md ## Unreleased gets a new bullet block summarising:
  - Phase 5 bound-API-token guard (startServer refusal + bearer
    middleware on /api/*).
  - Helm chart templates (Deployment / Service / Secret / ConfigMap /
    PVCs / Ingress / NOTES).
  - od.genui.surfaces[].component manifest field + capability gate.
  - GitHub Actions multi-arch image push to ghcr.io.

docs/plans/plugins-implementation.md §6 / §9 flipped:
  - Phase 5 bound-API-token guard, CI push, Helm templates → shipped.
  - Phase 4 surface.component manifest upgrade → shipped (substrate;
    web sandbox loader stays scheduled).
  - §9 Status snapshot updated; head of the queue is now the
    composeSystemPrompt rewiring + the web custom-component sandbox
    loader + ProjectStorage S3 adapter + DaemonDb Postgres adapter +
    per-cloud values-<cloud>.yaml override files + Phase 6 / 7 / 8.

Final gates: pnpm guard ✓, daemon 1496 tests ✓, web 586 tests ✓,
contracts 12 tests ✓, agui-adapter 9 tests ✓, plugin-runtime 21 tests ✓.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 13:42:54 +00:00
Cursor Agent
735b7bdffb
docs(plugins): record J-series — AG-UI adapter + atom-block + Phase 5 entry slice
CHANGELOG.md ## Unreleased gets a new bullet block summarising:
  - @open-design/agui-adapter package + GET /api/runs/:runId/agui
    (spec §10.3.5).
  - renderActiveStageBlock + loadAtomBodies (spec §23.3.2 substrate).
  - Phase 5 Dockerfile bundles plugins/_official/, plus
    tools/pack/docker-compose.yml and tools/pack/helm/open-design/
    parameter surface.

docs/plans/plugins-implementation.md §3 / §6 / §9 flipped:
  - Architecture-state table records agui-adapter, atom-bodies,
    atom-block, docker-compose, Helm values.
  - HTTP route table marks /api/runs/:runId/agui shipped.
  - §6 Phase 4 'AG-UI adapter package' deliverable flips. The
    'plugins/_official/atoms/<atom>/SKILL.md extraction' deliverable
    is recorded as substrate-shipped; the composeSystemPrompt
    rewiring stays as the next planned PR.
  - §6 Phase 5 deliverable list flips Dockerfile + docker-compose +
    Helm + snapshot retention worker; the bound-API-token guard +
    pluggable storage / Postgres adapters stay open.
  - §9 Status snapshot updated; head of the queue is now the
    composeSystemPrompt rewiring + od.genui.surfaces[].component
    upgrade + CI pushing :edge / :<version> + bound-API-token guard
    + Postgres / S3 adapters.

Final gates: pnpm guard ✓, daemon 1486 tests ✓, web 586 tests ✓,
contracts 12 tests ✓, agui-adapter 9 tests ✓.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 13:24:53 +00:00
Cursor Agent
d06c1b4905
docs(plugins): record I-series — pipeline-into-startChatRun + doctor/config + bundled atoms
CHANGELOG.md ## Unreleased gets a new bullet block summarising:
  - Pipeline runner wired into POST /api/runs (e2e-3 full §8 contract).
  - od doctor (repo-wide diagnostics) + od config get/set/list/unset.
  - Phase 4 §23 entry slice — bundled atom plugins + boot walker.

docs/plans/plugins-implementation.md §3 / §6 / §8 / §9 flipped:
  - Architecture-state table records scaffold / export / publish /
    bundled / plugins/_official/atoms as shipped.
  - §6 Phase 4 deliverable list flips bundled atom extraction +
    full CLI parity remainder; the system.ts → SKILL.md prompt
    rewiring stays open as the next planned PR.
  - §8 e2e-3 row flips from entry-slice to full §8 contract:
    plugins-headless-run.test.ts asserts the first SSE event on a
    pipeline-bearing run is pipeline_stage_started.
  - §9 Status snapshot updated; head of the queue is now
    composeSystemPrompt() reading atom fragments from
    plugins/_official/atoms/<atom>/SKILL.md, then the AG-UI adapter,
    then Phase 5 Docker image.

Final gates: pnpm guard ✓, daemon 1481 tests ✓, web 586 tests ✓.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 13:03:57 +00:00
Cursor Agent
26c5a27cf9
docs(plugins): record Phase 4 publish + CLI parity remainder
CHANGELOG.md ## Unreleased gets a new bullet block summarising:
  - Phase 4 publish CLI (od plugin publish --to <catalog> [--open]).
  - CLI parity remainder (od atoms / skills / design-systems / craft /
    status / version).
  - od marketplace search across configured catalogs.

docs/plans/plugins-implementation.md §3 / §6 / §9 flipped:
  - The CLI table records publish + atoms + skills + design-systems +
    craft + status + version + marketplace search as shipped, with the
    only remaining open verbs being od doctor + od config get/set/list.
  - Phase 4 deliverable list flips publish to shipped.
  - Status snapshot moves marketplace search and library CLI parity
    out of next-planned and into shipped; head of the queue is now the
    pipeline-runner-into-startChatRun integration plus Phase 4 atom
    migration into plugins/_official/ and the AG-UI adapter package.

Final gates: pnpm guard ✓, daemon 1475 tests ✓, web 586 tests ✓.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 12:44:16 +00:00
Cursor Agent
a1798ba47d
docs(plugins): record Phase 4 author tooling + Phase 2B marketplace UI
CHANGELOG.md ## Unreleased gets a new bullet block summarising:
  - Phase 4 author tooling: od plugin scaffold + od plugin export with
    provenance README + claude-plugin / agent-skill targets.
  - Phase 2B marketplace deep UI: /marketplace + /marketplace/:id
    routes, MarketplaceView grid + filters + configured catalogs panel,
    PluginDetailView with capability + connector + GenUI surface
    summaries plus a 'Use this plugin' button.
  - Phase 2B ChatComposer mount of PluginsSection.
  - docs/atoms.md as the canonical first-party atom catalog reference.

docs/plans/plugins-implementation.md §3 / §6 / §9 flipped:
  - The web component table now records MarketplaceView + PluginDetailView
    as shipped (with the routes attached) and the ChatComposer rail mount
    flipped from absent → shipped.
  - The CLI table records od plugin scaffold + od plugin export as
    shipped Phase 4 deliverables; od plugin publish stays absent.
  - The Phase 4 deliverable list flips: docs/atoms.md, scaffold, export,
    and run shorthand are all checked. Atom migration into
    plugins/_official/, AG-UI adapter, plugin manifest .component
    capability, and CLI parity remainder stay open.
  - §9 Status snapshot updated; next-planned-PR cell moves the
    pipeline-runner-into-startChatRun integration to the head of the
    queue and points at the remaining Phase 4 / 5 backlog.

Final gates: pnpm guard ✓, daemon 1465 tests ✓, web 586 tests ✓.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 12:33:38 +00:00
Cursor Agent
0e92952ac7
docs(plugins): record Phase 1 follow-up + 1.5 + 2B mount + 3 install resolution
CHANGELOG.md gets a new bullet block summarising:
  - Phase 1 follow-up CLI (od project / run / files / conversation).
  - Phase 1.5 headless lifecycle (od daemon start --headless / --serve-web /
    status / stop) with backing /api/daemon/status + /api/daemon/shutdown.
  - Phase 3 'od plugin install <name>' resolution through configured
    marketplaces.
  - Web composer mount: PluginsSection + NewProjectPanel integration.

docs/plans/plugins-implementation.md §3 / §6 / §8 / §9 flipped:
  - The Phase 1.5 deliverable list moves from open boxes to shipped
    rows.
  - The CLI table moves od project / run / files / conversation /
    daemon to shipped, with the lone remaining deferrals (od files
    diff, od project import, od conversation new, od marketplace
    search) called out explicitly.
  - The web component table records PluginsSection + the
    NewProjectPanel mount as shipped, with the deeper ChatComposer
    mount + MarketplaceView + PluginDetailView still scheduled for
    Phase 2B.
  - Phase 3 marks 'od plugin install <name>' as shipped; the Phase 3
    items still open are: trust UI, bundle-plugin installer, full
    doctor expansion.
  - §8 e2e-3 flips to entry-slice complete (HTTP-layer walkthrough);
    the live-agent-loop integration moves to the next-planned-PR cell.
  - §9 Status snapshot updated.

Final gates green: pnpm guard ✓, daemon 1455 tests ✓, web 579 tests ✓.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 12:16:15 +00:00
Marc Chan
b03a504da6
release: Open Design 0.6.0 (#1080) 2026-05-09 19:58:11 +08:00
Cursor Agent
20285c9959
docs(plugins): flip Phase 2A boxes + record Phase 3/5 entry slices
Plan §3 architecture state, §6 phase deliverables, §8 definition of done,
§9 status snapshot all updated to reflect the work that landed in this
branch.

CHANGELOG.md gets a new ## Unreleased bullet summarising the daemon /
CLI / web slice, with explicit pointers to the e2e test paths that
anchor each §8 row.

Phases / slices that flipped to shipped:

  - All Phase 2A daemon deliverables (pipeline, pipeline-runner,
    connector-gate, GenUI registry/store/events, snapshot resolver,
    SQLite migrations, HTTP routes, SSE / ND-JSON event emission, PB1
    renderer in contracts).
  - Phase 2A CLI: trust mutation, --grant-caps, --input k=v, recoverable
    exit codes 64–73, ui list/show/respond/revoke/prefill, plugin
    replay, plugin run shorthand, plugin snapshots prune.
  - Phase 2A web: applyPlugin() helper, InlinePluginsRail,
    ContextChipStrip, PluginInputsForm, GenUISurfaceRenderer
    (confirmation + oauth-prompt first-class), GenUIInbox.
  - Phase 3 entry slice: marketplace registry + od marketplace add /
    list / info / refresh / remove / trust + matching HTTP routes.
    Plugin-name resolution + trust UI stay scheduled.
  - Phase 5 (early): snapshot GC worker + applied-plugins audit
    routes + od plugin snapshots prune.

§8 Definition of Done: e2e-1, e2e-2, e2e-4, e2e-5, e2e-6, e2e-7, e2e-8
all anchored to specific daemon test paths. e2e-3 (headless run) stays
TBD pending Phase 1.5.

Status snapshot: Phase 2A finished + entry slices of Phase 2B/2C/3 +
early Phase 5; next planned PRs: Phase 1.5 headless flag (e2e-3
unblock), Phase 2B marketplace deep UI, Phase 3 `od plugin install
<name>` resolution + trust UI.

Co-authored-by: Tom Huang <1043269994@qq.com>
2026-05-09 11:54:29 +00:00
ashleyashli
2b5ea36f21
feat: add ib-pitch-book deck skill (Pitch Agent port) (#888)
* feat(skills): add ib-pitch-book deck skill (Pitch Agent port)

- Add investment-banking strategic-alternatives pitch book skill adapted from anthropics/financial-services Pitch Agent (Apache-2.0)

- Ship self-contained example.html (fictional NorthPeak / Hartfield case)

- Add references: compliance, attribution, conventions, P0/P1/P2 checklist

- Document in CHANGELOG [Unreleased]

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(ib-pitch-book): align comps copy and DCF sensitivity base cell

- Trading comps: narrative now matches table (12.5× vs 12.4× median; explain via growth/mix)

- DCF: base-case sensitivity cell at 9.0% WACC × 2.5% g = $56.40, matching implied equity / share

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: register ib-pitch-book in i18n fallbacks; add demo disclaimer banner

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: address ib-pitch-book review feedback

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: prevent ib-pitch-book dense slide overflow

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: ashley li <ashleyli@ashleydeMacBook-Air-2.local>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-08 17:49:57 +08:00