Commit Graph
18 Commits
Author SHA1 Message Date
ebcba704ef feat(prompts): introduce on-demand discovery in SP v2.0 (#6223)
* feat(prompts): introduce on-demand discovery in SP v2.0

* fix(prompts): prevent nested deck label overlap

* fix(plugins): stabilize od-default task routing

* fix: address prompt and deck audit regressions

* fix(prompts): restore plan mode precedence

* fix(daemon): accept all form answer headers

---------

Co-authored-by: bone3deep1962-collab <bone3deep1962@gmail.com>
2026-07-31 02:35:18 +00:00
5435274ab4 Add Humanize PPT plugin (#5655)
* feat(plugins): add Humanize PPT community plugin

Ports LearnPrompt/humanize-ppt (MIT) into plugins/community/ following
the community/hallmark precedent, and registers it in the community
marketplace index (0.2.0 -> 0.2.1).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(plugins): harden humanize-ppt per review — out-dir guard, PPTX fail-closed, packaging (v1.1.1)

- brief mode no longer wipes a non-empty --out unless it carries Humanize
  run markers or --force is passed; wipe semantics documented in SKILL.md
  and docs/local-demo.md
- read_source fails closed on .ppt/.pptx with guidance (extract text
  first; rendered decks go to --qa-from); SKILL.md/SPEC.md wording aligned
- vendor examples/01-ai-tool-update/source.md, inline-fixture fallback in
  smoke_check.py, drop repo-only record_demo_gif.py, point dangling doc
  links at the upstream repo

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(plugins): humanize-ppt review follow-ups — outline-gate markers, shim exit codes (v1.1.2)

- HUMANIZE_OUT_MARKERS now includes outline-preview.md and
  preview-confirmed.json, so the documented --preview-outline ->
  --confirm-outline -> brief flow on one --out is no longer refused by
  the out-dir guard; refusal text, --out help, SKILL.md/SPEC.md/
  docs/local-demo.md list all four markers
- humanize_ppt_v3/v4/v5 shims call sys.exit(main()) like the stable
  entrypoint, so validation failures propagate exit 2 instead of 0
- smoke_check.py gains an outline-gate check (preview -> confirm ->
  brief on one --out, plus the unrelated-out refusal negative path) and
  an exit-code matrix across all five public entrypoints
- plugin 1.1.2, community registry 0.2.3

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 07:52:47 +00:00
f80ad9e2dc fix(plugins): add bundled Perplexity AI design-system plugin manifest (#4828) (#4833)
The Perplexity AI system ships a card on /plugins/systems/ from
design-systems/perplexity/, but had no matching bundled-plugin manifest
under plugins/_official/design-systems/perplexity/. As a result
detailHrefForSystemSlug() found no plugin and the card fell back to the
/plugins/systems/ index instead of opening a dedicated detail page.

Add the bundled plugin for perplexity:
- open-design.json: generated via the migrate-to-plugins design-system
  wrapper, then brought to parity with sibling systems (specVersion,
  full title_i18n/description_i18n, localized useCase query). Structure
  is byte-identical in shape to the other design-system manifests.
- DESIGN.md: embedded copy of design-systems/perplexity/DESIGN.md.
- open-design-marketplace.json: register the bundled plugin in the
  official registry seed (sorted insert + bundledPreinstallCount 413->414),
  matching how prior plugin-add commits regenerate the seed.

The landing page now builds a real /plugins/design-system-perplexity/
detail page and the systems-index card links to it.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 14:55:29 +00:00
3a92f8a011 Add web effect extractor scenario (#4811)
Co-authored-by: tuolaji <tuola@tuolajideMacBook-Air.local>
2026-06-26 07:15:53 +00:00
915548b4bd [codex] Fix social template English metadata (#4427)
* Fix social media template English metadata

* Remove social template description hard wraps

Generated-By: looper 0.9.10+codex.autoclean (runner=fixer, agent=codex)

---------

Co-authored-by: Siri-Ray <2667192167@qq.com>
Co-authored-by: Looper <looper@noreply.github.com>
2026-06-17 11:00:06 +08:00
eb749841b4 fix(home): surface community slide decks on Home with letterbox-free 16:9 previews (#4350)
* fix(plugins): surface slides decks on Home instead of marketplace sources

The 23 community slides/deck plugins from #4127 were registered as a
restricted community marketplace source, so they showed up as installable
"available sources" cards (受限 + Install) instead of on Home. Relocate them
to plugins/_official/examples so they ship bundled — appearing in the Home
Community gallery and the deck example-prompt rail, exactly like the existing
zhangzara / swiss / guizang decks — and drop their community-registry entries.

- Move 23 plugins/community/<slug> → plugins/_official/examples/<slug>
  (upstream LICENSE / author / homepage / "Based on" attribution preserved)
- Rename manifest name community-<slug> → example-<slug> (bundled convention)
- Remove the 23 entries from plugins/registry/community/open-design-marketplace.json
  (the 3 pre-existing community entries stay)
- HomeHero: uncap the deck example-prompt rail (other chips keep the curated 18)
  so every bundled slide template is reachable straight from "All"
- curatedPriority: pin the 23 slides to the front of both the deck example rail
  and the Community Slides shelf

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(home): drop provenance tail from deck seeds & fix deck preview letterbox

Two polish fixes for the slide/deck plugins now surfaced on Home:

1. Example-prompt seed: strip a trailing source-attribution sentence
   ("…。移植自 foo/bar 的 baz 模板。" / "Based on …") from the composer seed so
   the prompt doesn't end on provenance boilerplate. Conservative — only fires
   when the final sentence opens with an attribution marker and real text
   precedes it; attribution woven mid-description (followed by a use-case
   sentence) and the gallery/detail descriptions are left intact. Latin '.'
   only ends a sentence at whitespace/EOL so "STYLE_PRESETS.md" / "github.com/…"
   don't mis-split.

2. Deck gallery preview: decks ship a fixed 16:9 stage that scales to its
   viewport, so the tall scroll-preview frame letterboxed it and showed a dark
   --stage-bg band above/below the slide. Tag deck cards with data-od-mode and
   give them a 16:9 frame the iframe fills natively (no transform, no pan), so
   the stage sits edge-to-edge with no band.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(home): deck preview frame to 16:9 so no white strip below the slide

The deck preview override targeted the inner html-frame while the gallery frame
kept its fixed 300px height, leaving a white strip under the 16:9 slide. Make
the gallery frame itself 16:9 for deck cards so the stage fills it exactly —
title bar + slide, nothing left over.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(decks): hide the page-counter chrome on all 23 community slide decks

The five upstream deck families each render a different page-counter ("1 / 10")
— a center pill (.deck-controls), an id="counter" badge, a fixed .deck-counter,
or a .count span inside a Shadow-DOM rail — so the home gallery thumbnails
showed it inconsistently. Per maintainer request, drop it everywhere rather
than unify: inject a display:none rule for the light-DOM counters and inline-
hide the Shadow-DOM .count span. Keyboard/touch navigation is untouched; only
the visual counter is removed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(home): fix deck letterbox band in the example-prompt rail tiles too

The earlier 16:9 deck-preview fix only covered the Community gallery cards; the
hero example-prompt rail tiles render the deck in a 4:3 (1440×1080) preview and
still showed a dark --stage-bg band on top. Tag deck preset tiles with
data-od-mode and give them a 16:9 preview the iframe fills natively, matching
the gallery treatment.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(home): remove the ↗ open-external button from community gallery cards

The ↗ only rendered when a tile's preview was an HTML source, so it
appeared on some cards (most decks, a few prototypes) and not others
(images, srcless tiles) — inconsistent chrome across the shelf. Drop it
and the whole onOpenExternal pass-through (PluginCard → PluginsHomeSection
→ HomeView) plus the now-dead .plugins-home__gallery-open styles.

* fix(home): make the community search clear (×) button visible

The clear button uses the shared <Button> component, whose CSS-module
class set padding 6/12 and crushed the 12px × glyph to zero width inside
the 26px button (a blank grey square). The .plugins-home__search-clear
reset only out-specified the global `button {}` element rule, not the
component class — scope it under .plugins-home__search so the padding:0 /
20x20 sizing actually wins.

* fix(home): align deck example-prompt tile title row with other tiles

Deck preset tiles used a 16:9 `auto` preview row, so their card was
shorter than the fixed-150px sibling tiles; the flex rail stretched them
back up and the slack leaked into the title row, making deck titles ~6px
taller. Keep deck tiles on the standard 150px preview cell and center the
native 16:9 stage inside it (neutral margin, no dark band), so card and
title-row heights match prototype/HyperFrames/image tiles.

* fix(deck-bridge): mirror the visible class so reveal animations fire on navigation

Reveal-animation decks (the frontend-slides family) gate staggered
entrances on a separate `.slide.visible` class that the deck's own show()
adds alongside `.active`. The host bridge's setActive() flipped only the
active class, so bridge-driven page turns showed slide chrome but left
every .reveal child at opacity:0 — the body rendered blank. Mirror
`.visible` in lock-step with the active slide (only for decks that use it,
a no-op elsewhere). Adds a red→green regression test.

* fix(home): unpin the bare Frontend Slides template from the slides shelf

example-frontend-slides is the family-root template with a generic cover;
pinned first it read as filler leading the Slides shelf and deck chip.
Drop it from PINNED_SLIDE_PLUGIN_IDS so it falls to the uncurated tail
while the styled variants (Creative Voltage, Electric Studio, …) keep the
lead.

---------

Co-authored-by: free666799 <293857035+free666799@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 09:32:15 +00:00
ec524986b5 chore(plugins): remove html-ppt-dir-key-nav-minimal and html-ppt-xhs-post (#4212)
* chore(plugins): remove html-ppt-dir-key-nav-minimal and html-ppt-xhs-post

Final cut list from the maintainer review of the slide-template gallery
(narrowed from the originally proposed nine html-ppt studio seeds to
these two; the other seven stay).

Removed across every surface:
- plugins/_official/examples/<slug>/ (2 plugin dirs)
- design-templates/<slug>/ (2 catalogue entries)
- plugins/registry/official/open-design-marketplace.json entries
- apps/web/src/i18n/content{,.ru,.fr}.ts slug keys

Landing-page solution showcases never referenced these two, so no
landing changes are needed. pnpm guard and pnpm typecheck pass;
repo-wide grep for both slugs returns zero hits.

* fix(registry): sync bundledPreinstallCount after removing two plugins

plugins-marketplaces.test.ts asserts metadata.bundledPreinstallCount
equals the registry plugins array length; update 414 -> 412 to match
the two removed entries.

---------

Co-authored-by: qiongyu1999 <2694684348@qq.com>
2026-06-13 13:15:04 +00:00
01d8e6baab feat(plugins): 23 community slides/deck plugins from top open-source slides skills (#4127)
* feat(plugins): add 30 community slides/deck plugins from top open-source slides skills

Convert the highest-starred MIT-licensed slides skills into community deck
plugins (one template style = one plugin), plus 3 family root plugins:

- frontend-slides (zarazhangrui, 21.1k stars): root + 7 style variants (fs-*)
- huashu-design (alchaincyf, 18k stars): slides cut root + 8 variants (huashu-*)
- html-ppt-skill (lewislulu, 5.8k stars): root + 9 theme variants (hps-*)
- visual-explainer (nicobailon, 8.7k stars): 3 aesthetics (ve-*)

Each plugin ships the standard trio (open-design.json + SKILL.md locked spec +
self-contained example.html seed, zero external JS), validated against
PluginManifestSchema. All 30 registered in the community marketplace registry
(0.1.2 -> 0.2.0). Every variant was deduped against the 59 existing official
deck plugins (zhangzara ports, guizang, html-ppt family) before inclusion.
Upstream attribution preserved: MIT LICENSE files + author/homepage per plugin.

* feat(plugins): unify all 30 community deck seeds with the Open Design product narrative

Replace per-deck placeholder content with one canonical 10-section story
sourced from the homepage structure doc and README: cover, why (Claude
Design proved it, OD opens it), three claims, numbers board (60K+ stars /
300+ contributors / 217+ plugins / 129 design systems / 21 agents), 5-step
workflow, multimodal outputs, capabilities, agent ecosystem, testimonial,
and CTA with GitHub/Discord/X links for organic resharing.

Content-only edits: CSS tokens, layouts, decorations, animations, keyboard
nav and hash routing untouched in every deck. huashu-* decks carry the zh
copy; fs-/hps-/ve- decks carry the en copy (latin display faces). All 29
rewrites + 1 pilot verified: script syntax, cover screenshot, no fictional
brand residue.

* fix(ve-presets): align preview motion and slideCount with example contracts

Review follow-up for #4127 (mrcfps):
- ve-midnight-editorial / ve-terminal-mono / ve-warm-signal set
  od.preview.motion to "deck" while their example.html files are
  vertical scroll-snap documents; switched to "scroll" so the
  marketplace hover clip traverses them correctly.
- ve-terminal-mono / ve-warm-signal advertised slideCount options
  (5-10 / 10-20 / 20+) that the locked prompt overrode with a hard
  8-11 requirement; the prompt now honors {{slideCount}}, and the
  SKILL.md slide-count rule is rephrased as a default that yields to
  the user's selection.

* style(community-slides): anti-slop polish across the 30 community deck seeds

Visual polish sweep (taste-skill + impeccable + gsap-skills guidelines)
over every community slides plugin example:

- All theme tokens stay LOCKED to each plugin's od.useCase.query spec;
  polish is limited to spacing rhythm, contrast (WCAG AA), hairline
  discipline, and prefers-reduced-motion guards.
- Motion only via transform/opacity; engine scripts byte-identical.
- Content unchanged: copy, numbers, links and slide counts match the
  previous seeds; SKILL.md craft notes updated where the polish touched
  documented details.

* fix(fs-presets): honor requested slideCount in fs-dark-botanical and fs-notebook-tabs

Review follow-up for #4127 (mrcfps, round 2): both plugins offered
medium/long slideCount options in their pickers while the en query and
SKILL.md hard-locked 8-11 slides, so picking 'medium 12-16' or 'long'
still produced an 8-11 deck. Same contract fix as the ve-* presets in
c2acb0c86:

- open-design.json en query now says 'match the requested slide count
  ({{slideCount}})' instead of a hard 8-11.
- SKILL.md states 8-11 as the default and honors the user's pick.

* i18n(community-slides): translate all Chinese deck seeds to English

All slide plugin example seeds are now English-only per template policy:
the 9 huashu-* decks (~7,200 CJK chars), html-ppt-studio and
hps-y2k-chrome (CSS-comment-level residue) are fully translated.

- Theme tokens, engine scripts, slide counts, stats (60K+/300+/217+/
  129/21/-80%) and links are unchanged; only content language changed.
- CJK-specific Google Fonts swapped to their Latin equivalents where
  the translated text used them (Noto Serif/Sans SC -> Noto Serif/Sans
  in huashu-takram-soft-tech and huashu-slides); locked token stacks
  untouched elsewhere.
- Minor type-size adjustments where English copy ran longer than the
  Chinese original (huashu-annual-letter prose/quote).
- Every deck screenshot-verified for overflow; zero CJK characters
  remain in any community example.html.

* chore(community-slides): drop four plugins per design review

Remove fs-bold-signal, hps-aurora-glass, html-ppt-studio, and
ve-warm-signal from the community slides batch — cut in the maintainer
design pass over the full template gallery (fs-bold-signal duplicates
the frontend-slides root look; hps-aurora-glass and html-ppt-studio
read closest to generic gradient decks; ve-warm-signal overlaps the
other two ve-* presets).

- Their marketplace entries are removed from
  plugins/registry/community/open-design-marketplace.json.
- hps-true-blueprint SKILL.md no longer points at the html-ppt-studio
  root plugin as if it shipped in-repo; it now references the upstream
  system the hps family is ported from. The remaining hps-* decks are
  self-contained single files and unaffected.

* chore(community-slides): drop fs-dark-botanical per design review

Second cut from the maintainer gallery pass. Plugin directory and its
marketplace registry entry removed; no other references existed.

* chore(community-slides): drop hps-catppuccin-mocha and hps-vaporwave per design review

Third cut from the maintainer gallery pass. Plugin directories and their
marketplace registry entries removed; no other references existed.

---------

Co-authored-by: qiongyu1999 <2694684348@qq.com>
2026-06-12 09:17:58 +00:00
2940876409 feat(plugins): refresh HyperFrames video templates from html-video (#4063)
* feat(plugins): refresh HyperFrames video templates from html-video

Replace the 11 HeyGen catalog stub entries (no bundled source, duplicate
catalog-block cover images) with 23 fully bundled HyperFrames templates
imported from nexu-io/html-video, so both the in-app Plugins home and the
marketing site's /plugins/templates/hyperframes/ show real, renderable,
visually distinct templates with hover-autoplay motion previews.

Added (plugins/_official/video-templates/<slug>/):
- open-design.json — od.surface "hyperframes" (HyperFrames artifact type),
  en + zh-CN title/description, inputs, and jsDelivr-hosted preview assets.
- template.json — client card metadata.
- SKILL.md — how to repaint and render the composition.
- source/ — the HTML+CSS+GSAP (or Remotion) composition, verbatim.
- preview.mp4 — a looping motion preview rendered with the html-video
  HyperFrames renderer, trimmed to the full animation length (cards
  hover-autoplay from frame 0, detail page plays it); each under the 1 MiB
  blob limit. 21 of 23 ship a video; frame-logo-outro (a held logo) and
  frame-data-rollup (Remotion, blank native render) ship a still poster.
- preview.png — poster frame extracted from that render.

Landing-page tweaks:
- Hide the two cover-less examples/{hyperframes,video-hyperframes} onboarding
  scenarios from the public template library (feature demos, not templates).
- Point the "use this" CTAs (template card + plugin detail) at the desktop
  download page instead of the detail page / GitHub releases.
- Hover-autoplay restarts each preview from frame 0 so the full animation
  plays on every hover instead of resuming mid-loop.
- SEO: keyword-led <title> ("HyperFrames templates & skills …") and a
  rewritten, keyword-rich category description (all 18 locales) to target
  "hyperframes template" / "hyperframes skill" search intent.

Removed the 11 source-less hyperframes-* HeyGen catalog stubs. Licensing is
mirrored faithfully per upstream and summarised in HYPERFRAMES-ATTRIBUTIONS.md:
8 Apache-2.0 forks of heygen-com/hyperframes, 1 MIT from
nateherkai/hyperframes-student-kit, 7 original Apache-2.0, and 7 derived from
MIT design skills (frontend-slides, huashu-design) with studio inspiration
recorded as non-affiliated L1 origin.

Registry seed nets +12 entries (402 -> 414); bundledPreinstallCount updated.

* fix(plugins): self-contain hyperframes templates + narrow aspect options

Address review on the HyperFrames import:
- Narrow each fixed-layout (1920×1080) hyperframes manifest's
  od.inputs.aspect.options to the single aspect its template.json actually
  ships (e.g. frame-vignelli is 9:16, the rest 16:9), so the picker/agent
  can't request portrait/square renders the composition can't produce.
  frame-data-rollup (responsive Remotion, layout computed off canvas size)
  keeps 16:9/9:16/1:1.
- frame-kinetic-type: drop the external 9 MB S3 A-roll video from
  source/compositions/main-graphics.html. The timeline sets that layer to
  opacity:0 at t=0 and never reveals it, so it was never visible; replacing
  it with an empty self-contained layer keeps the render identical (verified)
  and removes the only third-party runtime media dependency. Re-rendered its
  preview from the vendored source.

* fix(plugins): vendor all runtime assets so hyperframes templates are self-contained

Make every bundled HyperFrames template render with no third-party network
dependency, per review and per each template's own SKILL.md "keep the
composition self-contained under source/" contract:

- GSAP: vendor gsap@3.14.2 into each template's source/ and rewrite the
  jsDelivr <script src> to a relative path (9 templates).
- Google Fonts: fetch each family's woff2, ship them under source/fonts/,
  inline a local @font-face fonts.css, and drop the googleapis <link>/@import
  (20 templates). CJK families (Noto Sans/Serif SC) are intentionally not
  vendored — they exceed the 1 MiB blob limit; their placeholder sample text
  falls back to the OS CJK font, keeping the source dependency-free.
- Tailwind: replace the cdn.tailwindcss.com JIT script with a static
  tailwind.css built from the classes each template actually uses (6).
- Textures/media: vendor the remaining external texture (warm-grain) and copy
  the previously-missing local assets/ (screenshots, audio, swiss-grid.svg)
  into frame-product-promo, frame-product-promo-30s, frame-swiss-grid.
- od.context.assets now stages ./template.json + ./source so the renderer
  materializes the full bundle.

All vendored files are under the 1 MiB blob limit. Re-rendered the six
templates whose output could shift (Tailwind static build + CJK fallback);
verified renders are visually intact. Final audit: zero external CDN/http
asset references across all 23 template sources.

* fix(plugins): inline vendored GSAP + enrich plugin detail SEO

- Inline the vendored GSAP runtime directly into each template's index.html
  instead of shipping gsap.min.js, so no new committed `.js` files trip the
  repository-layout guard (`scripts/guard.ts` residual-JS policy). Compositions
  use the global `gsap` the inlined runtime defines. Templates stay fully
  self-contained; re-rendered frame-kinetic-type / frame-swiss-grid to confirm
  motion is intact.
- Plugin detail pages now lead their <title> and meta description with the
  artifact type + brand keywords — "<HyperFrames video template> · Open Design"
  and "... for Open Design — the open-source Claude Design alternative" — so
  each detail page ranks for "hyperframes template", "Open Design", and
  "open source Claude Design alternative".

* fix(plugins): replace placeholder screenshots in frame-product-promo-30s

The product-surfaces scene referenced source/assets/screenshot-{1,2,3}.png,
which were 67-byte 1×1 placeholder PNGs carried over from the upstream
template, so a render of that scene showed blank laptop screens. Replace them
with three self-contained 1440×900 dashboard mockups (distinct Plan/Build/
Monitor accents) so the bundled source renders usable product surfaces, and
re-render the preview. All three are well under the 1 MiB blob limit.

* fix(plugins): give frame-logo-outro a motion preview like the rest

frame-logo-outro shipped as an image-only preview, so it was the one new
HyperFrames template without hover-autoplay / detail playback. Re-render it
from its (now self-contained) source as a short looping logo-reveal MP4 and
switch its manifest to previewType "video", matching the other 22. 72 KB,
under the 1 MiB blob limit. (frame-data-rollup remains a still poster — its
Remotion native render comes out blank; tracked as a follow-up.)

* fix(landing): keep plugin detail lead localized, SEO suffix meta-only

The keyword-rich English SEO suffix was appended to `description`, which is
both the <meta description> and the visible <p class="lead">, so non-English
plugin detail pages rendered mixed-language body copy. Split it: `description`
stays the fully-localized lead, and a separate `seoDescription` carries the
English brand/keyword suffix for <Layout description> + JSON-LD only.

---------

Co-authored-by: Joey <276262049+xne998808-ai@users.noreply.github.com>
2026-06-11 09:17:17 +00:00
28f5516697 feat(prompt-templates): add desk hologram AR realdesk Seedance 2.0 video template (#3967)
* feat(prompt-templates): add desk hologram AR realdesk Seedance 2.0 video template

Ship the two-phase keyframe + i2v workflow behind blue-warrior-realdesk-t2v-15s
as a first-party video prompt template with preview MP4/poster and plugin bundle.

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

* fix(prompt-templates): host desk-hologram previews on repo-assets CDN

Drop the 8.9 MB tracked MP4 to satisfy the 1 MiB blob guard and point
previewImageUrl/previewVideoUrl at repo-assets.open-design.ai, matching
the Three Kingdoms Seedance templates. Bump bundledPreinstallCount to 402.

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

* ci: add workflow to publish prompt-template previews to repo-assets R2

Maintainer workflow_dispatch helper for template PRs that drop large MP4s
from git and point preview URLs at repo-assets.open-design.ai.

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

* ci: auto-publish desk-hologram template previews on workflow push

Run the repository-assets upload when this workflow lands on the
template branch so PR #3967 preview URLs go live without waiting for main.

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

* ci: keep repository-template asset publish as workflow_dispatch only

Assets for PR #3967 are live on repo-assets; drop the one-shot branch push
trigger now that the upload succeeded.

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

* fix(plugins): add specVersion to desk-hologram video template manifest

Align open-design.json with the official video-template plugin schema.

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

---------

Co-authored-by: Tuola Ge <gexingli@refly.ai>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-09 12:16:49 +00:00
d065b50c4c feat(plugins): add Hallmark community skill (#3479)
Co-authored-by: tuolaji <tuola@tuolajideMacBook-Air.local>
2026-06-02 07:49:33 +00:00
lefarcen c14baf07d3 Merge origin/main into release/v0.8.0
PR #2461 sync prep — resolves 14 conflicts merging 84 main-side commits
on top of 58 release-side commits accumulated during the 0.8.0 cycle.

Resolution summary:

Take main (theirs) where main carried deliberate forward progress:
- apps/web/src/components/PluginCard.tsx — 7 hunks, i18n migration:
  hardcoded English aria-labels/titles replaced with t() calls keyed
  on pluginCard.* (all 8 keys verified present in en.ts).
- apps/web/src/components/TasksView.tsx — 1 hunk, source-ingestion
  feature: sortedRoutines (newest-first), sourceIngestionTemplates,
  patchSourceForm, submitSourceIngestion. activeCount/pausedCount
  semantics preserved (now keyed on sortedRoutines, count unchanged).
- e2e/ui/app.test.ts — new node:fs/promises + tmpdir + path + @/timeouts
  imports needed by main-side test helpers.
- e2e/ui/settings-local-cli-codex-fallback.test.ts — menu-dismissal
  helper block added by main.

Keep both sides where each added a different field to the same object
literal:
- apps/web/src/components/ProjectView.tsx (locale + analyticsHints
  spread).
- apps/web/src/components/DesignSystemFlow.tsx (locale + analyticsHints).

Take release (ours) where release carried deliberate work that ships
0.8.0:
- CHANGELOG.md — release-side 0.8.0 entry + PR link refs; main's
  Unreleased section was the same body of work, now finalized.
- apps/landing-page/public/{apple-touch-icon,favicon}.png +
  apps/web/public/app-icon.svg — release-side visual refresh assets
  consistent with 0.8.0 stable ship.
- tools/pack/src/linux.ts — packageVersion const required by line 466;
  taking main's empty line would build-error.
- e2e/ui/project-management-flows.test.ts +
  e2e/ui/settings-api-protocol.test.ts +
  e2e/ui/settings-memory-routines.test.ts — release-side release-smoke
  hardening (shangxinyu1 + PerishFire) takes precedence on overlap.

Closes-issue / unblocks: PR #2461 sync release/v0.8.0 → main.
2026-05-23 12:17:18 +08:00
Marc ChanandGitHub a5b47c5f76 fix(ci): narrow workflow scope and reuse setup steps (#2708)
* fix(ci): narrow workflow scope and reuse setup steps

* fix(ci): narrow workflow scope and reuse setup steps

Repair Nix fixed-output hashes for the filtered daemon and web source trees.

Generated-By: looper 0.0.0-dev (runner=fixer, agent=opencode)

* fix(ci): narrow workflow scope and reuse setup steps

Generated-By: looper 0.0.0-dev (runner=fixer, agent=opencode)

* fix(ci): narrow workflow scope and reuse setup steps

Generated-By: looper 0.0.0-dev (runner=fixer, agent=opencode)

* fix(ci): repair daemon and nix checks

Generated-By: looper 0.0.0-dev (runner=fixer, agent=opencode)
2026-05-22 18:58:53 +08:00
Siri-RayandGitHub e6da01e998 Add i18n metadata for official content (#2692) 2026-05-22 16:39:32 +08:00
0ba88a064d Add Codex interactive capability map example (#2657)
* Add Codex interactive capability map example

* Fix Codex map preview entry

---------

Co-authored-by: tuolaji <tuola@tuolajideMacBook-Air.local>
2026-05-22 15:49:16 +08:00
Tom HuangandGitHub 76defffb93 Garnet hemisphere (#1702)
* feat(chat-composer): enhance mention handling and input overlay

- Introduced a new overlay for inline mentions in the chat composer, improving user experience by visually indicating mentions as users type.
- Updated the `ChatComposer` component to manage mention entities and integrate them into the input field, allowing for better context and interaction.
- Enhanced the `AssistantMessage` component to support the display of plugin action panels based on the current project context, facilitating easier plugin management.
- Refactored related components to ensure consistent handling of project files and mentions across the application.

This update significantly improves the chat interaction model, making it more intuitive for users to engage with mentions and plugins.

* feat(plugin-management): enhance plugin action panels and UI components

- Updated the `AssistantMessage` component to include plugin action panels based on the latest project context, improving user interaction with generated plugins.
- Refactored the `PluginsView` to support detailed views for available marketplace entries, allowing users to access more information and actions for each plugin.
- Introduced new CSS styles for improved visual representation of plugin-related UI elements, enhancing overall user experience.
- Enhanced the `listPlugins` function to include an option for fetching hidden plugins, providing more flexibility in plugin management.

This update significantly improves the usability and functionality of the plugin management system, making it easier for users to interact with and manage their plugins.

* fix(assistant-message): refine plugin folder candidate selection logic

- Updated the `pluginFoldersTouchedThisTurn` function to improve the logic for selecting plugin folder candidates based on touched paths and message content.
- Introduced a new helper function, `pathMatchesFolderFileBasename`, to enhance the matching criteria for folder candidates.
- Added a check for explicit folder matches before falling back to a single candidate, improving accuracy in folder selection.
- Modified the `shouldRenderSlotAsText` function in `HomeHero` to include the name parameter, refining the rendering logic for slot text.

These changes enhance the functionality and reliability of the assistant message component in managing plugin folder candidates.

* feat(plugin-folder-actions): implement agent-routed CLI actions for plugin management

- Introduced a new `PluginFolderAgentAction` type to streamline actions related to plugin folders, including install, publish, and contribute.
- Updated the `DesignFilesPanel`, `FileWorkspace`, and `AssistantMessage` components to utilize the new agent action handling, improving user interaction with generated plugins.
- Refactored the action handling logic to send commands to the agent, enhancing the workflow for managing plugin folders.
- Added corresponding tests to ensure the new functionality works as expected and integrates seamlessly with existing components.

This update significantly enhances the plugin management experience by routing actions through the agent, allowing for a more cohesive and interactive user experience.

* Fix PR 1702 CI blockers

* Fix PR 1702 remaining CI checks

* Prebuild AGUI adapter after install

* Restore plugin project snapshot wiring

* feat(marketplace): refactor marketplace URL handling and enhance fetching logic

- Introduced new functions to normalize marketplace URLs and manage fetching of marketplace manifests, improving the reliability of marketplace integrations.
- Updated the server and plugin logic to utilize the new fetching mechanisms, ensuring consistent handling of marketplace data.
- Enhanced tests to cover new URL normalization and fetching scenarios, ensuring robustness in marketplace management.

This update significantly improves the marketplace experience by streamlining URL handling and enhancing data fetching capabilities.

* Fix project auto-send cleanup spec
2026-05-14 21:12:50 +08:00
pftom 9ea33e076b feat(context-plugins): add support for context plugins in project metadata and UI
- Introduced a new `contextPlugins` field in the `ProjectMetadata` type to accommodate plugins selected via `@` mentions, allowing for additive context in project creation.
- Updated the `HomeHero` and `EntryShell` components to handle and display context plugins, enhancing user interaction with selected plugins.
- Implemented rendering logic for context plugins in the metadata block, providing clear visibility of selected plugins and their descriptions.
- Enhanced the UI to support the removal of context plugins and display additional details on hover, improving the overall user experience.

This update significantly enriches the project creation process by allowing users to incorporate multiple context plugins seamlessly.
2026-05-14 15:29:49 +08:00
pftom 3b167b6921 feat(plugins): add registry protocol and enhance plugin management features
- Introduced the `@open-design/registry-protocol` package, enabling improved interactions with plugin registries.
- Updated the `typecheck` script in the daemon's `package.json` to include the new registry protocol.
- Enhanced the CLI with new flags and commands for better plugin management, including `yank` and additional marketplace functionalities.
- Implemented a plugin lockfile system to manage installed plugins and their versions, improving reliability during upgrades.
- Added new marketplace doctor functionality to validate plugin entries and ensure compliance with registry standards.

This update significantly enhances the plugin ecosystem by providing robust registry interactions and improved management capabilities.
2026-05-14 08:55:36 +08:00