From d816b591c33cbf7495641858dffd803398ccfa4d Mon Sep 17 00:00:00 2001 From: Steve Sewell Date: Wed, 9 Sep 2026 07:47:28 -0700 Subject: [PATCH 1/8] fix: resolve latest feedback regressions --- .changeset/fix-share-list-schema-drift.md | 6 ++++ .../workflows/deploy-beta-sites-prebuilt.yml | 8 ++++- .../core/src/server/security-headers.spec.ts | 6 ++-- packages/core/src/server/security-headers.ts | 10 +++--- packages/core/src/sharing/access.spec.ts | 33 +++++++++++++++++++ .../sharing/actions/list-resource-shares.ts | 8 ++++- .../guard-netlify-prebuilt-workflow.test.ts | 3 ++ .../clips/desktop/src/hooks/useMicMeter.ts | 16 ++------- .../src/lib/media-capture-constraints.test.ts | 27 +++++++++++++++ .../src/lib/media-capture-constraints.ts | 2 ++ 10 files changed, 94 insertions(+), 25 deletions(-) create mode 100644 .changeset/fix-share-list-schema-drift.md diff --git a/.changeset/fix-share-list-schema-drift.md b/.changeset/fix-share-list-schema-drift.md new file mode 100644 index 00000000000..ecfe9e3643e --- /dev/null +++ b/.changeset/fix-share-list-schema-drift.md @@ -0,0 +1,6 @@ +--- +"@agent-native/core": patch +--- + +Keep share dialogs readable while additive migrations are pending, and let +ordinary iframe pages load cross-origin subresources. diff --git a/.github/workflows/deploy-beta-sites-prebuilt.yml b/.github/workflows/deploy-beta-sites-prebuilt.yml index f1095bc8454..f1628622ffd 100644 --- a/.github/workflows/deploy-beta-sites-prebuilt.yml +++ b/.github/workflows/deploy-beta-sites-prebuilt.yml @@ -222,7 +222,13 @@ jobs: changed_files="$(git diff --name-only "$base_sha" "$source_sha")" # ponytail: path-based schema gate; replace with production migration # status when GitHub Actions can access Netlify's masked secrets. - schema_files="$(printf '%s\n' "$changed_files" | rg -N '(^|/)(server/db/|packages/core/src/db/|packages/core/src/(resources|extensions|data-programs)/).+\.ts$|(^|/)store\.ts$|(^|/)(server/db/schema\.ts|server/db/migrations\.ts|server/plugins/(db|factory-migrations)\.ts|(?:scripts/)?migrate-production\.ts|drizzle(?:\.local)?\.config\.ts|netlify\.toml)$|(^|/)(migrations|supabase/migrations)/|(^|/).*schema\.ts$|(^|/).*migrations\.ts$|\.sql$' || true)" + schema_files="$( + printf '%s\n' "$changed_files" | + grep -E '(^|/)(server/db/|packages/core/src/db/|packages/core/src/(resources|extensions|data-programs)/).+\.ts$|(^|/)store\.ts$|(^|/)(server/db/schema\.ts|server/db/migrations\.ts|server/plugins/(db|factory-migrations)\.ts|(scripts/)?migrate-production\.ts|drizzle(\.local)?\.config\.ts|netlify\.toml)$|(^|/)(migrations|supabase/migrations)/|(^|/).*schema\.ts$|(^|/).*migrations\.ts$|\.sql$' || { + status=$? + [[ "$status" -eq 1 ]] || exit "$status" + } + )" if [[ -n "$unresolved_pending_sha" ]]; then echo "::error::Beta remains withheld for unconfirmed production migration at $unresolved_pending_sha." if [[ -n "$schema_files" ]]; then diff --git a/packages/core/src/server/security-headers.spec.ts b/packages/core/src/server/security-headers.spec.ts index db0d5b16f60..062ec2d71ea 100644 --- a/packages/core/src/server/security-headers.spec.ts +++ b/packages/core/src/server/security-headers.spec.ts @@ -129,7 +129,7 @@ describe("createSecurityHeadersMiddleware", () => { expect(res.headers.get("Content-Security-Policy-Report-Only")).toBeNull(); }); - it("allows iframe navigations to satisfy cross-origin isolated parents", async () => { + it("allows ordinary iframe navigations without isolating their subresources", async () => { const app = createApp(); app.use(createSecurityHeadersMiddleware()); @@ -153,9 +153,7 @@ describe("createSecurityHeadersMiddleware", () => { expect(res.headers.get("Cross-Origin-Resource-Policy")).toBe( "cross-origin", ); - expect(res.headers.get("Cross-Origin-Embedder-Policy")).toBe( - "require-corp", - ); + expect(res.headers.get("Cross-Origin-Embedder-Policy")).toBeNull(); }); it("keeps a same-origin Referer on embed responses", async () => { diff --git a/packages/core/src/server/security-headers.ts b/packages/core/src/server/security-headers.ts index 003d6265984..02d4ee96fc3 100644 --- a/packages/core/src/server/security-headers.ts +++ b/packages/core/src/server/security-headers.ts @@ -33,9 +33,8 @@ * - `Cross-Origin-Opener-Policy: same-origin` — isolates window.opener so * a popup-window opener reference can't read or modify our document. * - `Cross-Origin-Embedder-Policy: require-corp` — emitted only for - * validated MCP embed-session page loads and browser iframe navigations. - * COEP hosts such as Claude's MCP Apps proxy require framed cross-origin - * documents to opt in explicitly. + * validated MCP embed-session page loads. COEP hosts such as Claude's MCP + * Apps proxy require framed cross-origin documents to opt in explicitly. * - `Cross-Origin-Resource-Policy: same-site` — prevents other origins from * embedding our endpoints as `` / `