mirror of
https://github.com/nexu-io/open-design.git
synced 2026-09-20 06:15:06 +08:00
da7c4ae051
* fix(web): rank Community "Newest" by shipped publishedAt, not local install timestamps
The Community gallery Newest toggle sorted by the installed-record
updatedAt/installedAt. Those are stamped when a machine seeds its own
database, so a fresh install (or an upgrade that re-stamps the catalog)
writes the whole bundled catalog milliseconds apart in folder-walk
order — Newest showed reverse walk order (roughly reverse-alphabetical),
unrelated to publication recency.
Root-cause fix: bundled templates now ship a real publication date.
- packages/contracts: add optional manifest field publishedAt (ISO 8601).
- apps/web sortByNewest: freshness = publishedAt when parseable, else
updatedAt (right signal for user-installed plugins); tie-breaks and
stability unchanged.
- plugins/_official: backfill publishedAt into all 460 bundled manifests
from each folder's first-appearance commit date in upstream git
history.
- e2e: repository-resource guard requiring every bundled manifest to
declare a parseable publishedAt, so the signal cannot silently erode.
- docs: field reference entries in plugins-spec (en + zh-CN).
Issue: https://plane.powerformer.net/open-design/projects/49832a02-3158-4faf-bf2f-d0e39c40c7e6/issues/ca0778af-97f5-4fc0-bc63-739280904979
Generated-By: looper 0.0.0-dev (runner=worker, agent=claude-code)
* worker: 模板用最新筛选,筛选出来的不是最新的
Generated-By: looper 0.0.0-dev (runner=worker, agent=claude-code)
* fix(web): keep shipped appeal order inside same-publishedAt batches
Review follow-up (#5597, nettee): after the freshness tie on an equal
publishedAt, the comparator still consulted local updatedAt/installedAt,
which a fresh install stamps in folder-walk order — so every
same-publication batch (largest: 322 manifests on one catalog date)
re-sorted per machine instead of keeping the shipped visual-appeal
ranking. Same-publishedAt records now preserve their incoming position;
local timestamps break ties only when at least one side has no usable
publishedAt. Adds the requested regression spec pinning
same-publishedAt / different-updatedAt records.
Generated-By: looper 0.0.0-dev (runner=worker, agent=claude-code)
* fix(web): gate publishedAt freshness to bundled records; untrack oversized looper attachment
Review follow-up (#5597, nettee round 2): publishedAt was overriding
updatedAt for every visible plugin, so a user-installed github/local/
marketplace plugin carrying an old manifest publishedAt would be buried
behind bundled templates despite a newer local install. publishedAtMs
now returns null for non-bundled records — "Newest" means install
recency for user installs, catalog publication for bundled ones. Adds
the requested regression (non-bundled, old publishedAt, newer
updatedAt) and clarifies the field docs (en + zh-CN).
CI repair: commit 578f7a9 tracked .looper-attachments/bug13_1.png
(3.8MB bug screenshot), tripping the Static gate 1MiB blob guard and
the Validate workspace aggregate. Untrack it and gitignore
.looper-attachments/ so harness attachments stay out of the repo.
Generated-By: looper 0.0.0-dev (runner=worker, agent=claude-code)
133 lines
8.3 KiB
JSON
133 lines
8.3 KiB
JSON
{
|
||
"$schema": "https://open-design.ai/schemas/plugin.v1.json",
|
||
"specVersion": "1.0.0",
|
||
"name": "example-dashboard",
|
||
"title": "Dashboard",
|
||
"title_i18n": {
|
||
"zh-CN": "仪表盘",
|
||
"zh-TW": "儀表板",
|
||
"ja": "ダッシュボード",
|
||
"ko": "대시보드",
|
||
"de": "Dashboard",
|
||
"fr": "Tableau de bord",
|
||
"ru": "Панель управления",
|
||
"es": "Panel de control",
|
||
"pt-BR": "Painel",
|
||
"it": "Dashboard",
|
||
"vi": "Bảng điều khiển",
|
||
"pl": "Panel administracyjny",
|
||
"id": "Dashboard",
|
||
"nl": "Dashboard",
|
||
"ar": "لوحة التحكم",
|
||
"tr": "Gösterge Paneli",
|
||
"uk": "Панель керування",
|
||
"en": "Dashboard"
|
||
},
|
||
"version": "0.1.0",
|
||
"publishedAt": "2026-05-12T05:25:44Z",
|
||
"description": "Admin / analytics dashboard in a single HTML file. Fixed left sidebar, top bar with user/search, main grid of KPI cards and one or two charts. Use when the brief asks for a \"dashboard\", \"admin\", \"analytics\", or \"control panel\" screen.",
|
||
"description_i18n": {
|
||
"zh-CN": "单文件 HTML 管理/分析仪表盘。固定左侧边栏,顶部用户/搜索栏,主区域显示 KPI 卡片网格和图表。适用于需要'仪表盘'、'管理后台'、'数据分析'或'控制面板'界面的场景。",
|
||
"zh-TW": "單檔 HTML 管理/分析儀表板。固定左側邊欄,頂部使用者/搜尋列,主區域顯示 KPI 卡片網格和圖表。適用於需要『儀表板』、『管理後台』、『數據分析』或『控制面板』畫面的場景。",
|
||
"ja": "単一HTMLファイルの管理/分析ダッシュボード。固定左サイドバー、ユーザー/検索機能付きトップバー、KPIカードとチャートのメイングリッド。『ダッシュボード』『管理画面』『分析』『コントロールパネル』が必要な場合に使用。",
|
||
"ko": "단일 HTML 파일 관리/분석 대시보드. 고정 좌측 사이드바, 사용자/검색 기능이 있는 상단바, KPI 카드 그리드 및 차트로 구성. '대시보드', '관리자', '분석' 또는 '제어판' 화면이 필요할 때 사용.",
|
||
"de": "Admin-/Analyse-Dashboard in einer einzelnen HTML-Datei. Feste linke Seitenleiste, obere Leiste mit Benutzer/Suche, Hauptraster mit KPI-Karten und Diagrammen. Verwenden Sie es für 'Dashboard', 'Admin', 'Analytics' oder 'Systemsteuerung'.",
|
||
"fr": "Tableau de bord administrateur/analytique dans un seul fichier HTML. Barre latérale gauche fixe, barre supérieure avec utilisateur/recherche, grille principale de cartes KPI et graphiques. À utiliser pour un écran de 'tableau de bord', 'admin', 'analytique' ou 'panneau de contrôle'.",
|
||
"ru": "Панель администрирования и аналитики в одном HTML-файле. Фиксированная левая боковая панель, верхняя панель с поиском и пользователем, основная сетка KPI-карточек и графиков. Используйте для экранов 'панели управления', 'админки', 'аналитики' или 'контрольной панели'.",
|
||
"es": "Panel de administración y análisis en un solo archivo HTML. Barra lateral izquierda fija, barra superior con usuario/búsqueda, cuadrícula principal de tarjetas KPI y gráficos. Úselo para pantallas de 'panel de control', 'administración', 'analítica' o 'panel de gestión'.",
|
||
"pt-BR": "Painel administrativo e analítico em um único arquivo HTML. Barra lateral esquerda fixa, barra superior com usuário/busca, grade principal de cartões KPI e gráficos. Use para telas de 'painel', 'admin', 'analytics' ou 'painel de controle'.",
|
||
"it": "Dashboard amministrativa e analitica in un singolo file HTML. Barra laterale sinistra fissa, barra superiore con utente/ricerca, griglia principale di schede KPI e grafici. Da usare per schermate di 'dashboard', 'admin', 'analytics' o 'pannello di controllo'.",
|
||
"vi": "Bảng điều khiển quản trị/phân tích trong một file HTML duy nhất. Thanh bên trái cố định, thanh trên có người dùng/tìm kiếm, lưới chính các thẻ KPI và biểu đồ. Sử dụng khi cần màn hình 'bảng điều khiển', 'quản trị', 'phân tích' hoặc 'bảng điều khiển'.",
|
||
"pl": "Panel administracyjny i analityczny w jednym pliku HTML. Stały lewy pasek boczny, górny pasek z użytkownikiem/wyszukiwaniem, główna siatka kart KPI i wykresów. Użyj dla ekranów 'panelu', 'admina', 'analityki' lub 'panelu sterowania'.",
|
||
"id": "Dashboard admin/analitik dalam satu file HTML. Sidebar kiri tetap, bar atas dengan pengguna/pencarian, grid utama kartu KPI dan grafik. Gunakan untuk layar 'dashboard', 'admin', 'analytics', atau 'panel kontrol'.",
|
||
"nl": "Admin-/analysedashboard in één HTML-bestand. Vaste linkerzijbalk, bovenbalk met gebruiker/zoeken, hoofdraster met KPI-kaarten en grafieken. Gebruik voor 'dashboard', 'admin', 'analytics' of 'configuratiescherm'.",
|
||
"ar": "لوحة تحكم إدارية وتحليلية في ملف HTML واحد. شريط جانبي أيسر ثابت، شريط علوي للمستخدم/البحث، شبكة رئيسية لبطاقات KPI والرسوم البيانية. استخدمها لشاشات 'لوحة التحكم' أو 'الإدارة' أو 'التحليلات' أو 'لوحة التحكم'.",
|
||
"tr": "Tek HTML dosyasında yönetici/analitik gösterge paneli. Sabit sol kenar çubuğu, kullanıcı/arama içeren üst çubuk, ana KPI kart ızgarası ve grafikler. 'Gösterge paneli', 'yönetici', 'analitik' veya 'kontrol paneli' ekranları için kullanın.",
|
||
"uk": "Адміністративна та аналітична панель в одному HTML-файлі. Фіксована ліва бічна панель, верхня панель з користувачем/пошуком, основна сітка KPI-карток і графіків. Використовуйте для екранів 'панелі керування', 'адміністрування', 'аналітики' або 'контрольної панелі'.",
|
||
"en": "Admin / analytics dashboard in a single HTML file. Fixed left sidebar, top bar with user/search, main grid of KPI cards and one or two charts. Use when the brief asks for a \"dashboard\", \"admin\", \"analytics\", or \"control panel\" screen."
|
||
},
|
||
"license": "MIT",
|
||
"author": {
|
||
"name": "Open Design",
|
||
"url": "https://github.com/nexu-io"
|
||
},
|
||
"homepage": "https://github.com/nexu-io/open-design/tree/main/plugins/_official/examples/dashboard",
|
||
"tags": [
|
||
"example",
|
||
"first-party",
|
||
"prototype",
|
||
"operations",
|
||
"web",
|
||
"desktop",
|
||
"dashboard",
|
||
"admin-panel",
|
||
"analytics",
|
||
"control-panel",
|
||
"untitled"
|
||
],
|
||
"compat": {
|
||
"agentSkills": [
|
||
{
|
||
"path": "./SKILL.md"
|
||
}
|
||
]
|
||
},
|
||
"od": {
|
||
"kind": "scenario",
|
||
"taskKind": "new-generation",
|
||
"mode": "prototype",
|
||
"platform": "desktop",
|
||
"scenario": "operations",
|
||
"surface": "web",
|
||
"preview": {
|
||
"type": "html",
|
||
"entry": "./example.html"
|
||
},
|
||
"useCase": {
|
||
"query": {
|
||
"en": "Admin / analytics dashboard in a single HTML file. Fixed left sidebar, top bar with user/search, main grid of KPI cards and one or two charts. Use when the brief asks for a \"dashboard\", \"admin\", \"analytics\", or \"control panel\" screen.",
|
||
"zh-CN": "使用这个插件完成以下任务:Admin / analytics dashboard in a single HTML file. Fixed left sidebar, top bar with user/search, main grid of KPI cards and one or two charts. Use when the brief asks for a \"dashboard\", \"admin\", \"analytics\", or \"control panel\" screen."
|
||
},
|
||
"exampleOutputs": [
|
||
{
|
||
"path": "./example.html",
|
||
"title": "Dashboard"
|
||
}
|
||
]
|
||
},
|
||
"context": {
|
||
"skills": [
|
||
{
|
||
"path": "./SKILL.md"
|
||
}
|
||
],
|
||
"designSystem": {
|
||
"primary": true
|
||
},
|
||
"craft": [
|
||
"state-coverage",
|
||
"accessibility-baseline",
|
||
"laws-of-ux"
|
||
],
|
||
"assets": [
|
||
"./example.html"
|
||
]
|
||
},
|
||
"pipeline": {
|
||
"stages": [
|
||
{
|
||
"id": "generate",
|
||
"atoms": [
|
||
"file-write",
|
||
"live-artifact"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"capabilities": [
|
||
"prompt:inject",
|
||
"fs:write"
|
||
]
|
||
}
|
||
}
|