Commit graph

1700 commits

Author SHA1 Message Date
open-design-bot
d9bea6e8cf chore(contributors): +5pts for @AmyShang-alt (issue #3089) 2026-05-27 07:40:52 +00:00
open-design-bot
1e6b383157 chore(events): append pr_merged 2026-05-27 07:32:33 +00:00
open-design-bot
69156c93bb chore(contributors): +12pts for @alchemistklk (PR #3088) 2026-05-27 07:32:31 +00:00
open-design-bot
3fb620af42 chore(events): append pr_merged 2026-05-27 07:25:06 +00:00
open-design-bot
8b5a88cfdc chore(contributors): +12pts for @YOMXXX (PR #3072) 2026-05-27 07:25:04 +00:00
YOMXXX
72be9f4e63
test(web): pin the Web Storage shim's sandbox-iframe end-to-end behavior (#1403 verify) (#3072)
PR #1306 routed artifacts whose source matches htmlNeedsSandboxShim() through buildSrcdoc(), which injects a localStorage / sessionStorage polyfill before any user script runs. Issue #1403 stayed open as a verification placeholder against the original repro shape — a React tree whose useState initializer reads localStorage in a sandboxed iframe.

file-viewer-render-mode.test.ts already covers the routing decision. This commit closes the loop on the runtime payload: a real-shape React artifact is fed through buildSrcdoc, the produced doc is run inside a Node vm context whose window forbids Web Storage the same way an allow-scripts iframe does, and we assert (a) the bare sandbox raises SecurityError on access, (b) the shim takes over and exposes a working in-memory store, (c) the original boot script that read localStorage from initializers runs cleanly, and (d) the shim does NOT clobber a working native storage when one is present (the allow-same-origin path stays untouched). Also pins shim ordering — the shim script must appear before the first user storage read for the polyfill to be effective.
2026-05-27 06:35:17 +00:00
open-design-bot
4db1585047 chore(card): generated card 2026-05-27 07:18:59 +00:00
open-design-bot
72b8807e09 chore(events): append pr_merged 2026-05-27 07:18:57 +00:00
open-design-bot
cf02afee4a chore(contributors): +30pts for @YOMXXX (PR #3070) 2026-05-27 07:18:56 +00:00
YOMXXX
9e76bf0556
fix(web): swap in typographic fallback when a Home media poster fails to load (#2955) (#3070)
MediaSurface rendered preview.poster straight into an <img> with no error handler, so an official Community card whose poster URL 404'd / failed to decode / hit a dead host left the browser's default broken-image glyph on the discovery surface. Reported on the Home page where several official image-template cards looked unreliable side-by-side with healthy ones.

Track a per-URL load-failure flag and swap in the existing plugins-home__media-fallback element (the typographic glyph + media icon) when the <img> fires onError. The flag resets whenever preview.poster changes, so filter rotations or a daemon repopulating the preview after an offline flip get a fresh attempt instead of staying stuck on the fallback.

Regression tests cover the four shapes: default <img> render, error -> fallback swap, poster URL change resets the failed state, and the original no-poster branch still goes straight to the fallback.
2026-05-27 06:34:58 +00:00
open-design-bot
12d1c6dc73 chore(events): append pr_merged
Some checks failed
visual-baseline / Capture visual baselines (push) Waiting to run
actionlint / Lint GitHub Actions workflows (push) Failing after 3s
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 2s
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-27 07:11:48 +00:00
open-design-bot
22cd5a5fda chore(contributors): +12pts for @leno23 (PR #3053) 2026-05-27 07:11:47 +00:00
吴杨帆
9641c9e11c
fix(web): parse ask-question blocks as question-form alias (#1194) (#3053)
Accept <ask-question> as an alias for <question-form> and locate close
tags with a Unicode-safe scan so Turkish dotted-I prose before the tag
does not desync parser indices.
2026-05-27 06:34:36 +00:00
open-design-bot
d0981a28b4 chore(events): append pr_merged 2026-05-27 07:05:08 +00:00
open-design-bot
89d95ec20e chore(contributors): +12pts for @lefarcen (PR #3086) 2026-05-27 07:05:07 +00:00
lefarcen
fed464509b
ci: drive agent PR exploration with the Codex ACP backend (#3086)
expect-cli defaults to the Claude Code ACP provider, which is not
installed on the self-hosted runner, so the exploration step errored
(AcpProviderNotInstalledError) and fell back to a reachability-only smoke
trace instead of real UI exploration.

Pass `-a codex` to expect-cli so it drives the Codex agent (installed on
the runner, authenticated via CODEX_HOME). Configurable via
OD_EXPECT_AGENT (set to empty to use expect-cli's default). When the
agent is unavailable the existing smoke-trace fallback still applies, so
this is safe even before Codex is authenticated.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 15:05:03 +08:00
open-design-bot
e28106af44 chore(events): append pr_merged 2026-05-27 07:01:57 +00:00
open-design-bot
abe9e2c12e chore(contributors): +12pts for @leno23 (PR #3050) 2026-05-27 07:01:56 +00:00
吴杨帆
2a56f1bca9
fix(daemon): map Claude Not logged in output to /login guidance (#1928) (#3050)
Treat Claude Code stdout like "Not logged in · Please run /login." as an
auth failure in diagnoseClaudeCliFailure so connection tests and chat
runs surface actionable login guidance instead of raw CLI text.
2026-05-27 06:34:09 +00:00
open-design-bot
e635fe9b21 chore(events): append pr_merged 2026-05-27 06:55:07 +00:00
open-design-bot
3bdfb4a0af chore(contributors): +12pts for @leno23 (PR #3047) 2026-05-27 06:55:06 +00:00
吴杨帆
6155ad8cbe
fix(web): surface Claude Design zip import failures (#1862) (#3047)
Show a toast when the daemon rejects a ZIP import instead of silently
closing the file picker with no feedback.
2026-05-27 06:24:38 +00:00
open-design-bot
52f6ca0cf5 chore(card): generated card 2026-05-27 06:47:41 +00:00
open-design-bot
8b02aca586 chore(events): append pr_merged 2026-05-27 06:47:39 +00:00
open-design-bot
5b0fb158ad chore(contributors): +12pts for @leno23 (PR #3046) 2026-05-27 06:47:38 +00:00
吴杨帆
916438d919
fix(daemon): hide agent executable paths from chat status (#2874) (#3046)
Stop emitting resolved filesystem paths in chat start events and
inactivity-timeout diagnostics; surface agent ids instead.
Complements web-side redaction in #2894.
2026-05-27 06:22:56 +00:00
open-design-bot
de36ec1a37 chore(events): append pr_merged 2026-05-27 06:41:43 +00:00
open-design-bot
99ea7735b9 chore(contributors): +12pts for @leno23 (PR #3045) 2026-05-27 06:41:42 +00:00
吴杨帆
26ef90ffd9
fix(web): clear prompt when removing Home example chip (#2989) (#3045)
Removing the selected example prompt chip now also clears the composer
input so chip state stays in sync with the inserted example text.
2026-05-27 06:21:35 +00:00
open-design-bot
a72d66d243 chore(events): append pr_merged 2026-05-27 06:35:18 +00:00
open-design-bot
6f6e437489 chore(contributors): +12pts for @leno23 (PR #3042) 2026-05-27 06:35:17 +00:00
吴杨帆
4808cdab3c
fix(web): render srcdoc artifacts directly after leaving URL-load (#3042)
Lazy srcdoc transport was still active after URL-load preview switched off,
leaving the visible iframe on an empty activation shell until Edit forced a
full srcdoc reload. Mount real artifact HTML whenever srcdoc is the active
transport and remount when leaving URL-load.

Fixes #2791
2026-05-27 06:21:01 +00:00
open-design-bot
3d6e06ad21 chore(events): append pr_merged 2026-05-27 06:31:03 +00:00
open-design-bot
2c652816a5 chore(contributors): +12pts for @lefarcen (PR #3084) 2026-05-27 06:31:02 +00:00
lefarcen
114be63a4e
ci: route agent sandbox installs through the China npm mirror (#3084)
After fixing source acquisition (#3078), the #3060 validation run reached
the container and got through most of `pnpm install`, then failed building
the better-sqlite3 native module: prebuild-install could not reach github
releases and the node-gyp fallback could not fetch node headers from
nodejs.org (ECONNRESET). The electron postinstall hits the same blocked
hosts, and package tarballs from npmjs were throttled to ~20 KB/s.

The runner's network to npmjs / nodejs.org / github releases is throttled
or reset by GFW; the China npm mirror (npmmirror.com) is fast and complete
(verified from the runner: registry ~2.4 MB/s, node headers ~3.6 MB/s,
better-sqlite3 prebuilt present). Point the in-container install at it via
registry + disturl (node-gyp headers) + electron / electron-builder /
better-sqlite3 binary mirrors + Playwright download host.

Package integrity is still verified against the lockfile, so the mirror
only changes transport. Once a native module builds, pnpm's side-effects
cache in the persistent store keeps it warm for later runs.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 14:30:59 +08:00
open-design-bot
8ebf971ca4 chore(events): append pr_merged 2026-05-27 06:24:58 +00:00
open-design-bot
1d267861fd chore(contributors): +12pts for @leno23 (PR #3041) 2026-05-27 06:24:57 +00:00
吴杨帆
582a03195f
fix(web): clarify finalize BYOK requirements for Local CLI users (#3041)
Local CLI chat does not supply BYOK credentials to finalize synthesis.
Resolve per-protocol saved settings before calling the daemon and show an
actionable toast instead of a generic BAD_REQUEST when credentials are
missing.

Fixes #2959
2026-05-27 06:20:33 +00:00
open-design-bot
f44a5d5816 chore(events): append pr_merged 2026-05-27 05:56:23 +00:00
open-design-bot
19a30b6c8a chore(contributors): +12pts for @lefarcen (PR #3080) 2026-05-27 05:56:21 +00:00
lefarcen
1ac3da130f
ci: add skip_comment dry-run input to agent PR exploration (#3080)
Add a `skip_comment` workflow_dispatch input (default false). When set,
the "Comment exploration report" step is skipped, so a validation/dry
run can exercise the full pipeline and produce the report artifact
without posting a public comment on the target PR (useful when testing
against an external contributor's PR). The report is still uploaded as
an artifact for review.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 05:51:48 +00:00
open-design-bot
b0a76c23a1 chore(events): append pr_merged 2026-05-27 05:46:07 +00:00
open-design-bot
51c30057bd chore(contributors): +12pts for @lefarcen (PR #3078) 2026-05-27 05:46:07 +00:00
lefarcen
12141648e4
ci: fetch agent sandbox PR source on the host over SSH via a local mirror (#3078)
The sandbox checked out PR code with `git fetch https://github.com/...`
*inside* the container. The self-hosted runner's bandwidth to github.com
is throttled across every transport (HTTPS/SSH/codeload/API, all
~30-90 KB/s) and the HTTPS handshake is frequently RST'd, so a
from-scratch fetch of this ~200MB repo is impractical and unreliable per
run (run 26491460889 failed here with repeated GnuTLS resets).

Move source acquisition to the trusted host and make it incremental:

- Keep a persistent bare mirror of the base repo
  ($HOME/.cache/agent-pr-explore/open-design.git, overridable via
  OD_SANDBOX_REPO_MIRROR). Each run fetches only the PR's delta via
  `refs/pull/<n>/head` over SSH -- the one transport GFW doesn't reset --
  using a read-only deploy key (OD_SANDBOX_GIT_SSH_KEY).
- Take the head from the BASE repo's pull ref so fork PRs work without
  depending on the head fork, and verify it equals the resolved HEAD_SHA.
- Check the PR head into a per-run worktree and mount it read-only into
  the container; the container copies it into a writable workdir and no
  longer needs (or has) any github access.

The deploy key stays on the trusted host and is never exposed to the
untrusted PR code. The mirror must be seeded once on the runner (the
error message prints the exact clone command if it is missing).

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 05:36:13 +00:00
open-design-bot
e2414dd291 chore(card): generated card 2026-05-27 05:40:52 +00:00
open-design-bot
0612849d67 chore(events): append issue_opened_accepted 2026-05-27 05:40:50 +00:00
open-design-bot
db4ac1841d chore(contributors): +5pts for @RoverKai (issue #3079) 2026-05-27 05:40:49 +00:00
open-design-bot
6bbca6c373 chore(events): append pr_merged 2026-05-27 05:33:16 +00:00
open-design-bot
7194a5e2f4 chore(contributors): +12pts for @alchemistklk (PR #3073) 2026-05-27 05:33:15 +00:00
open-design-bot
bb691d3c0b chore(events): append pr_merged 2026-05-27 05:20:43 +00:00