Commit graph

1706 commits

Author SHA1 Message Date
open-design-bot
2dfb3b9aae chore(card): generated card
Some checks failed
visual-baseline / Capture visual baselines (push) Waiting to run
ci / Detect CI change scopes (push) Successful in 1s
landing-page-ci / Validate landing page (push) Failing after 2s
landing-page-staging / Deploy landing page to staging (push) Has been skipped
nix-check / build (push) Failing after 1s
ci / Validate Nix flake (push) Has been skipped
ci / Preflight (push) Failing after 1s
ci / Workspace unit tests (push) Failing after 1s
ci / Daemon workspace tests (push) Failing after 1s
ci / Web workspace tests (push) Failing after 1s
ci / Browser tests (push) Failing after 1s
ci / Build workspaces (push) Failing after 1s
ci / Validate workspace (push) Failing after 0s
ci / Runtime trace (push) Has been skipped
2026-05-26 21:31:41 +00:00
open-design-bot
c53561ee88 chore(events): append issue_opened_accepted 2026-05-26 21:31:39 +00:00
open-design-bot
fbfe04c042 chore(contributors): @Zo-arch opened issue #3062 2026-05-26 21:31:38 +00:00
open-design-bot
6018035b1e chore(card): generated card 2026-05-26 17:00:04 +00:00
open-design-bot
a73c0e91ed chore(events): append pr_merged 2026-05-26 17:00:02 +00:00
open-design-bot
825ceecf0a chore(contributors): +30pts for @alchemistklk (PR #3048) 2026-05-26 16:59:59 +00:00
open-design-bot
1d72914de6 chore(card): generated card 2026-05-26 15:17:25 +00:00
open-design-bot
aa0ad7bf69 chore(events): append issue_opened_accepted 2026-05-26 15:17:23 +00:00
open-design-bot
bddb92aeda chore(contributors): @522700967-wq opened issue #3028 2026-05-26 15:17:21 +00:00
open-design-bot
2dd6b1a619 chore(card): generated card 2026-05-26 15:13:03 +00:00
open-design-bot
9798352302 chore(events): append pr_merged 2026-05-26 15:13:00 +00:00
open-design-bot
0a930b3930 chore(contributors): +30pts for @mturac (PR #2949) 2026-05-26 15:12:59 +00:00
mehmet turac
d70070fcbc
skills: add research decision room (#2949)
* skills: add research decision room

* skills: align research room example contract
2026-05-26 15:01:37 +00:00
open-design-bot
230c80d8a4 chore(card): generated card 2026-05-26 15:05:05 +00:00
open-design-bot
81635af669 chore(events): append pr_merged 2026-05-26 15:05:03 +00:00
open-design-bot
477929153c chore(contributors): +30pts for @leno23 (PR #3014) 2026-05-26 15:05:01 +00:00
吴杨帆
8e52617738
fix(daemon): resolve imported design systems in user catalog (#3014)
Import/install routes compared bare directory slugs against catalog ids
prefixed with user:, causing a false 500 after a successful write and
duplicate entries on retry. Normalize lookup and reserved slug ids.

Fixes #2489
2026-05-26 15:00:25 +00:00
open-design-bot
b744177d49 chore(card): generated card 2026-05-26 14:53:18 +00:00
open-design-bot
f70a9735be chore(events): append pr_merged 2026-05-26 14:53:16 +00:00
open-design-bot
c66735fa2e chore(contributors): +30pts for @AmyShang-alt (PR #2992) 2026-05-26 14:53:14 +00:00
Amy
5563e7eca6
test: expand home entry and html preview coverage (#2992)
* test: cover entry topbar and hero flows

* test: expand entry and html preview coverage

* test: isolate mocked github stars in home entry e2e

Generated-By: looper 0.8.1 (runner=fixer, agent=codex)

* chore: retrigger CI for PR 2992
2026-05-26 14:48:35 +00:00
open-design-bot
9cf986fe81 chore(card): generated card
Some checks failed
visual-baseline / Capture visual baselines (push) Waiting to run
actionlint / Lint GitHub Actions workflows (push) Failing after 1s
ci / Detect CI change scopes (push) Successful in 0s
landing-page-ci / Validate landing page (push) Failing after 1s
landing-page-staging / Deploy landing page to staging (push) Has been skipped
nix-check / build (push) Failing after 1s
ci / Validate Nix flake (push) Has been skipped
ci / Preflight (push) Failing after 1s
ci / Workspace unit tests (push) Failing after 2s
ci / Daemon workspace tests (push) Failing after 1s
ci / Web workspace tests (push) Failing after 2s
ci / Browser tests (push) Failing after 1s
ci / Build workspaces (push) Failing after 1s
ci / Validate workspace (push) Failing after 0s
ci / Runtime trace (push) Has been skipped
2026-05-26 14:24:03 +00:00
open-design-bot
a834c39909 chore(events): append issue_opened_accepted 2026-05-26 14:24:00 +00:00
open-design-bot
9d0efa944a chore(contributors): @xiaobinHub opened issue #3017 2026-05-26 14:23:59 +00:00
open-design-bot
6eab748995 chore(card): generated card 2026-05-26 14:22:37 +00:00
open-design-bot
8060f2ffb6 chore(events): append issue_opened_accepted 2026-05-26 14:22:35 +00:00
open-design-bot
dd6080c2bf chore(contributors): @xxiaoxiong opened issue #3016 2026-05-26 14:22:33 +00:00
open-design-bot
ec1f46d827 chore(events): append pr_merged 2026-05-26 14:09:48 +00:00
open-design-bot
034f8e5e65 chore(contributors): +12pts for @lefarcen (PR #2994) 2026-05-26 14:09:46 +00:00
lefarcen
7312c64580
ci(landing): split landing deploy into staging gate + manual production (#2994)
* ci(landing): split landing deploy into staging gate + manual production

A merge to `main` previously published the landing page straight to
production (open-design.ai) via `landing-page-deploy`. There was no
buffer to review the rendered site, so a bad merge was live instantly.

Split deploys across two Cloudflare Pages projects so production is only
ever reached by an explicit human action:

- `landing-page-staging` (push to main) -> staging project
  `open-design-landing-staging` -> staging.open-design.ai.
- `landing-page-production` (manual workflow_dispatch only) -> production
  project `open-design-landing` -> open-design.ai. Only this workflow
  names the production project; gate it with required reviewers on the
  `production` GitHub environment.
- `landing-page-ci` now also deploys a per-PR preview into the staging
  project (`--branch=pr-<n>`) for same-repo branches and comments the URL.
  Fork PRs (no secrets / read-only token) skip the deploy and keep just
  the build validation. Path filters already scope this to landing edits.

Decouple search-engine indexing from staging:

- `blog-indexing-on-deploy` now triggers on `landing-page-production`
  (not every main push), so the test environment is never submitted to
  Google/IndexNow.
- It diffs from a new `blog-indexed-prod` tag (the last indexed prod
  commit) instead of `HEAD^`, and force-advances the tag after a
  successful run, so a manual promotion bundling several merged posts
  indexes all of them rather than only the last commit.

Staging and PR-preview builds drop `PUBLIC_GA_MEASUREMENT_ID` so test
traffic does not pollute the production GA property.

* ci(landing): keep staging + PR previews out of the search index

staging.open-design.ai mirrors production and is exposed via cert
transparency logs, so search engines can discover it. Indexing the
mirror competes with open-design.ai for the same content.

Emit `<meta name="robots" content="noindex, nofollow">` whenever
OD_LANDING_NOINDEX=1, and set that flag on the staging and PR-preview
builds (production leaves it unset and stays indexable). noindex is
used rather than a robots.txt Disallow so crawlers can still fetch the
page and read both the tag and the canonical, which already points at
the production origin.

* fix(landing): make staging noindex actually take effect

The previous commit read `process.env.OD_LANDING_NOINDEX` directly in
`seo-head.astro`, but `.astro` frontmatter is transformed by Vite and
does not see process.env, so the meta never rendered. Two fixes:

- Inject the flag as the compile-time constant `__OD_LANDING_NOINDEX__`
  via `vite.define` in astro.config.ts (config runs in Node and can read
  process.env); SeoHead consumes that constant.
- The homepage (`index.astro`) and `og.astro` build their own <head> and
  never use SeoHead, so a per-component meta can miss pages. Add an
  `astro:build:done` integration that appends a catch-all
  `/*  X-Robots-Tag: noindex, nofollow` to the Cloudflare Pages `_headers`
  on staging/preview builds, covering every response (homepage, assets,
  any custom-head page) at the HTTP layer. Production builds leave
  `_headers` untouched.

Verified: build with OD_LANDING_NOINDEX=1 emits the _headers block and
the SeoHead <meta>; build without the flag emits neither; astro check
clean.

* fix(landing): address review — pin prod checkout to main, defer index pointer

Two blockers from review:

- landing-page-production: workflow_dispatch can be launched from any ref
  via the Actions "Use workflow from" dropdown, so an operator could ship
  an arbitrary branch to open-design.ai. Pin the checkout to `ref: main`
  so the deployed artifact always equals reviewed main.

- blog-indexing-on-deploy: the `blog-indexed-prod` pointer was advanced
  right after sitemap submission, before Inspect / Search Analytics /
  Render status / Open status PR. A failure in any of those still moved
  the pointer, so the next production run skipped those posts. Move the
  advance to the very end, gated on `success()`, so a failure leaves the
  tag in place and the range is re-processed next run (submissions are
  idempotent).

* fix(landing): gate production promotion to the main ref only

Follow-up to the production-path review note: pinning checkout to main
fixed the deployed content, but the workflow was still dispatchable from
any ref, which records a non-main production run and would dodge
blog-indexing's `workflow_run` `branches: [main]` filter. Gate the whole
job on `github.ref == 'refs/heads/main'` so a dispatch from any other
branch/tag is skipped outright.
2026-05-26 14:05:04 +00:00
open-design-bot
6618780812 chore(card): generated card 2026-05-26 14:01:21 +00:00
open-design-bot
a7bafe78f7 chore(events): append pr_merged 2026-05-26 14:01:19 +00:00
open-design-bot
22d7830943 chore(contributors): +30pts for @jinmeihong0201-gif (PR #3012) 2026-05-26 14:01:17 +00:00
ashleytheash
f27fbfb3f1 chore(test): restore contributor data after email pipeline verification 2026-05-26 21:10:10 +08:00
open-design-bot
2e45a49a8d chore(card): generated card 2026-05-26 13:05:40 +00:00
open-design-bot
5ebced04f8 chore(events): append issue_opened_accepted 2026-05-26 13:05:38 +00:00
open-design-bot
c6c98d11a5 chore(contributors): @ashleytheash opened issue #3008 2026-05-26 13:05:37 +00:00
ashleytheash
9d5343a7de chore(test): reset for end-to-end resend send verification 2026-05-26 21:05:30 +08:00
open-design-bot
997a07e57d chore(card): generated card 2026-05-26 13:04:30 +00:00
open-design-bot
1bb91282b2 chore(events): append pr_merged 2026-05-26 13:04:28 +00:00
open-design-bot
51c46201fb chore(contributors): +30pts for @lefarcen (PR #2993) 2026-05-26 13:04:27 +00:00
lefarcen
a0ea9bdaf3
ci: make agent PR exploration manual only (#2993)
* Make agent PR explore manual dispatch only

* chore: retrigger PR checks

* chore: retrigger CI after Actions recovery
2026-05-26 12:59:58 +00:00
open-design-bot
faa77a940d chore(card): generated card 2026-05-26 12:59:04 +00:00
open-design-bot
371cf483e3 chore(events): append issue_opened_accepted 2026-05-26 12:59:03 +00:00
open-design-bot
c97d817ad8 chore(contributors): @ashleytheash opened issue #3007 2026-05-26 12:59:01 +00:00
ashleyashli
a922d077bf chore(test): reset contributors before resend-key end-to-end test 2026-05-26 20:58:01 +08:00
open-design-bot
2c968dd528 chore(card): generated card 2026-05-26 12:54:38 +00:00
open-design-bot
80149127e2 chore(events): append issue_opened_accepted 2026-05-26 12:54:37 +00:00
open-design-bot
7f2abf6b67 chore(contributors): @ashleytheash opened issue #3006 2026-05-26 12:54:35 +00:00
ashleyashli
31ac82b4e7 chore(test): reset contributors to test spark welcome flow end-to-end 2026-05-26 20:53:07 +08:00