mirror of
https://github.com/nexu-io/open-design.git
synced 2026-10-27 09:51:12 +01:00
* 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)
104 lines
2.5 KiB
Plaintext
104 lines
2.5 KiB
Plaintext
node_modules/
|
|
dist/
|
|
out/
|
|
.next/
|
|
.next-*/
|
|
.tmp/
|
|
.DS_Store
|
|
*.log
|
|
/OpenDesign.exe
|
|
.vite
|
|
.astro/
|
|
.wrangler/
|
|
.vscode
|
|
|
|
# Local runtime data — auto-created by the daemon on first start.
|
|
# Holds app.sqlite (project metadata), projects/<id>/ (per-project artifacts,
|
|
# the agent's CWD), and artifacts/ (one-off renders). Never commit.
|
|
.od
|
|
.od-e2e
|
|
test-results
|
|
playwright-report
|
|
e2e/.od-data
|
|
e2e/playwright-report
|
|
e2e/reports/html
|
|
e2e/reports/playwright-html-report
|
|
e2e/reports/test-results
|
|
e2e/reports/results.json
|
|
e2e/reports/junit.xml
|
|
e2e/reports/latest.md
|
|
e2e/ui/.od-data
|
|
e2e/ui/reports
|
|
e2e/ui/test-results
|
|
apps/web/playwright/
|
|
|
|
# Playwright MCP capture output (YAML page snapshots + PNG screenshots).
|
|
# Written ad-hoc during local visual checks; never commit — these hold local
|
|
# UI/session state and are not a maintained test fixture.
|
|
.playwright-mcp/
|
|
|
|
# Legacy folder name from before the rename; keep ignored so existing
|
|
# clones don't accidentally stage stale runtime data.
|
|
.ocd
|
|
|
|
tsconfig.tsbuildinfo
|
|
|
|
# Generated from the checked-in compressed vendor source during postinstall.
|
|
apps/desktop/vendor/dom-to-pptx/dom-to-pptx.bundle.js
|
|
|
|
**/.claude-sessions/*
|
|
|
|
.cursor/
|
|
.agents/
|
|
.opencode/
|
|
.claude/*
|
|
# Exception: od-contribute skill ships with the repo so the OD app can mount it
|
|
# for non-coder contributors. Personal Claude state (sessions, settings, etc.) stays ignored.
|
|
!.claude/skills/
|
|
.claude/skills/*
|
|
!.claude/skills/od-contribute/
|
|
!.claude/commands/
|
|
.claude/commands/*
|
|
!.claude/commands/od-contribute.md
|
|
.codex/
|
|
.deepseek/
|
|
.antigravitycli/
|
|
|
|
# Commander task scratchpad; keep local task notes out of git by default.
|
|
.task/
|
|
task.md
|
|
specs/change/active
|
|
.ralph/
|
|
docs/superpowers/
|
|
|
|
# Nix and direnv
|
|
.direnv/
|
|
.envrc
|
|
# Local secrets (PostHog keys, BYOK creds for local testing, etc.)
|
|
.env.local
|
|
.env.*.local
|
|
# Local design assistant context
|
|
.impeccable.md
|
|
|
|
# Landing-page preview thumbnails — regenerated by CI from
|
|
# `skills/<slug>/example.html` and `templates/live-artifacts/<slug>/`
|
|
# on every deploy. Should not be committed (~70MB of PNGs).
|
|
apps/landing-page/public/previews/
|
|
|
|
# On-demand enhancement runtimes (matter-js / cobe), regenerated from
|
|
# node_modules by `scripts/vendor-enhancers.ts` on every build/dev. Generated
|
|
# artifact, not source — must not be committed.
|
|
apps/landing-page/public/enhancers/
|
|
|
|
# Ad-hoc local e2e scripts and their screenshots
|
|
e2e/scripts/test-fal-webui.ts
|
|
e2e/scripts/fal-webui-*.png
|
|
growth/**
|
|
|
|
# Agent long-running task memory
|
|
.task/
|
|
deploy/agent-bins/
|
|
|
|
# Looper harness attachments (bug screenshots etc.) — agent scratch, not repo content
|
|
.looper-attachments/
|