fix: Resolve merge conflicts with v1 on homepage redesign - #1507
Conversation
## Summary - Ports [#1481](#1481) (`dev`) to `v1`: `pull_request_target` for labeled PR previews so fork PRs receive Vercel secrets. - Keeps secret hygiene (checkout PR HEAD with `persist-credentials: false`; inject `VERCEL_*` only on Vercel CLI steps). - Updates CONTRIBUTING preview section to match; no package/changeset changes (workflows + docs only). ## Test plan - [ ] Same-repo / fork PRs targeting `v1` with `preview` get a green Actions Deploy-Preview after this merges - [ ] Unlabeled fork PRs do not deploy Made with [Cursor](https://cursor.com) Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
chore: verify v1 branch domain deploy (#1460)
ci: forward-port Vercel branch-domain alias wiring to v1 (#1460)
## Summary - Forward-port of [#1490](#1490) (`dev`) onto `v1` - Centralize missing-schema text in `formatMissingSchemaError` (`@arkenv/build`) - Wire **Bun, Vite, Next, and Nuxt** through the shared helper (Vite included on `v1` because it has a discovery miss path; `dev` Vite does not) - Mock registry fetch in CLI init tests (same flake fix as #1490) ## Test plan - [x] `pnpm exec vitest run packages/build packages/bun-plugin/src/env-module.test.ts packages/vite-plugin/src/env-module.test.ts packages/nuxt/src/module.test.ts packages/arkenv/src/cli/commands/init.test.ts --run` - [x] `pnpm run typecheck` - [x] `pnpm run fix` - [x] `pnpm run test -- --run` (1066 passed) Made with [Cursor](https://cursor.com) --------- Co-authored-by: Cursor <cursoragent@cursor.com>
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to v1, this PR will be updated.⚠️ ⚠️ ⚠️ ⚠️ ⚠️ ⚠️ `v1` is currently in **pre mode** so this branch has prereleases rather than normal releases. If you want to exit prereleases, run `changeset pre exit` on `v1`.⚠️ ⚠️ ⚠️ ⚠️ ⚠️ ⚠️ # Releases ## arkenv@1.0.0-alpha.11 ### Patch Changes - #### Split `--help` options into Global and `init` sections _[`#1487`](#1487) [`f86887c`](f86887c) [@yamcodes](https://github.com/yamcodes)_ List shared flags under **Global options** and scaffolding flags under **init options**, matching the multi-command `/docs/cli` taxonomy. ```bash npx arkenv@alpha --help ``` ```text Usage: arkenv init [project-name] ... arkenv add host [provider] ... Global options: --yes, -y Skip prompts and use defaults ... --quiet, -q Quiet mode ... --json, -j Output structured JSON ... --agent Enable non-interactive, machine-readable mode ... --help, -h Show this help message init options: --example Specify an example name ... --force, -f Bypass checks and force scaffolding --no-codegen Disable automatic env.gen.ts code generation ... --host-preset, -H <preset> Specify a hosting provider preset ... ``` ## @arkenv/build@0.0.2-alpha.2 ### Patch Changes - #### Make missing-schema errors short and actionable across hosts _[`#1495`](#1495) [`3785c6b`](3785c6b) [@yamcodes](https://github.com/yamcodes)_ When a host cannot find an env schema, throw a consistent message that names the expected path / `schemaPath` and points to `npx arkenv@latest init`, without embedding a starter `env.ts` module. Example: ```text [ArkEnv] Could not find schema file at src/env.ts or env.ts. Please specify 'schemaPath' in ArkEnv options (or run `npx arkenv@latest init`). ``` - #### Make `env/internal/shared.ts` optional in strict layout _[`#1505`](#1505) [`9bfe1c4`](9bfe1c4) [@yamcodes](https://github.com/yamcodes)_ Strict layout now works with just `client.ts` and `server.ts`. Omit `internal/shared.ts` when you have nothing to share — shared keys are treated as empty. ```ts // env/client.ts + env/server.ts alone is enough export default withArkEnv(nextConfig, { layout: "strict", }); ``` The CLI still scaffolds `shared.ts` by default for convenience. ## @arkenv/bun-plugin@1.0.0-alpha.8 ### Patch Changes - #### Make missing-schema errors short and actionable across hosts _[`#1495`](#1495) [`3785c6b`](3785c6b) [@yamcodes](https://github.com/yamcodes)_ When a host cannot find an env schema, throw a consistent message that names the expected path / `schemaPath` and points to `npx arkenv@latest init`, without embedding a starter `env.ts` module. Example: ```text [ArkEnv] Could not find schema file at src/env.ts or env.ts. Please specify 'schemaPath' in ArkEnv options (or run `npx arkenv@latest init`). ``` <details><summary>Updated 1 dependency</summary> <small> [`3785c6b`](3785c6b) [`9bfe1c4`](9bfe1c4) </small> - `@arkenv/build@0.0.2-alpha.2` </details> ## @arkenv/nextjs@1.0.0-alpha.9 ### Patch Changes - #### Align missing-schema errors with short, actionable host guidance _[`#1488`](#1488) [`9d5bdbb`](9d5bdbb) [@yamcodes](https://github.com/yamcodes)_ Point missing-schema errors at checked paths / `schemaPath` and `arkenv init`, matching the Bun plugin style, without embedding starter `env.ts` modules. - #### Make missing-schema errors short and actionable across hosts _[`#1495`](#1495) [`3785c6b`](3785c6b) [@yamcodes](https://github.com/yamcodes)_ When a host cannot find an env schema, throw a consistent message that names the expected path / `schemaPath` and points to `npx arkenv@latest init`, without embedding a starter `env.ts` module. Example: ```text [ArkEnv] Could not find schema file at src/env.ts or env.ts. Please specify 'schemaPath' in ArkEnv options (or run `npx arkenv@latest init`). ``` - #### Make `env/internal/shared.ts` optional in strict layout _[`#1505`](#1505) [`9bfe1c4`](9bfe1c4) [@yamcodes](https://github.com/yamcodes)_ Strict layout now works with just `client.ts` and `server.ts`. Omit `internal/shared.ts` when you have nothing to share — shared keys are treated as empty. ```ts // env/client.ts + env/server.ts alone is enough export default withArkEnv(nextConfig, { layout: "strict", }); ``` The CLI still scaffolds `shared.ts` by default for convenience. <details><summary>Updated 1 dependency</summary> <small> [`3785c6b`](3785c6b) [`9bfe1c4`](9bfe1c4) </small> - `@arkenv/build@0.0.2-alpha.2` </details> ## @arkenv/nuxt@1.0.0-alpha.11 ### Patch Changes - #### Align missing-schema errors with short, actionable host guidance _[`#1488`](#1488) [`9d5bdbb`](9d5bdbb) [@yamcodes](https://github.com/yamcodes)_ Point missing-schema errors at checked paths / `schemaPath` and `arkenv init`, matching the Bun plugin style, without embedding starter `env.ts` modules. - #### Make missing-schema errors short and actionable across hosts _[`#1495`](#1495) [`3785c6b`](3785c6b) [@yamcodes](https://github.com/yamcodes)_ When a host cannot find an env schema, throw a consistent message that names the expected path / `schemaPath` and points to `npx arkenv@latest init`, without embedding a starter `env.ts` module. Example: ```text [ArkEnv] Could not find schema file at src/env.ts or env.ts. Please specify 'schemaPath' in ArkEnv options (or run `npx arkenv@latest init`). ``` - #### Make `env/internal/shared.ts` optional in strict layout _[`#1505`](#1505) [`9bfe1c4`](9bfe1c4) [@yamcodes](https://github.com/yamcodes)_ Strict layout now works with just `client.ts` and `server.ts`. Omit `internal/shared.ts` when you have nothing to share — shared keys are treated as empty. ```ts // env/client.ts + env/server.ts alone is enough export default withArkEnv(nextConfig, { layout: "strict", }); ``` The CLI still scaffolds `shared.ts` by default for convenience. <details><summary>Updated 1 dependency</summary> <small> [`3785c6b`](3785c6b) [`9bfe1c4`](9bfe1c4) </small> - `@arkenv/build@0.0.2-alpha.2` </details> ## @arkenv/vite-plugin@1.0.0-alpha.8 ### Patch Changes - #### Align missing-schema errors with short, actionable host guidance _[`#1488`](#1488) [`9d5bdbb`](9d5bdbb) [@yamcodes](https://github.com/yamcodes)_ Point missing-schema errors at checked paths / `schemaPath` and `arkenv init`, matching the Bun plugin style, without embedding starter `env.ts` modules. - #### Make missing-schema errors short and actionable across hosts _[`#1495`](#1495) [`3785c6b`](3785c6b) [@yamcodes](https://github.com/yamcodes)_ When a host cannot find an env schema, throw a consistent message that names the expected path / `schemaPath` and points to `npx arkenv@latest init`, without embedding a starter `env.ts` module. Example: ```text [ArkEnv] Could not find schema file at src/env.ts or env.ts. Please specify 'schemaPath' in ArkEnv options (or run `npx arkenv@latest init`). ``` <details><summary>Updated 1 dependency</summary> <small> [`3785c6b`](3785c6b) [`9bfe1c4`](9bfe1c4) </small> - `@arkenv/build@0.0.2-alpha.2` </details> --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Resolve the sole conflict in .changeset/pre.json by keeping v1's changeset entries (align-missing-schema-host-hints, align-v1-shared-missing-schema-errors, optional-strict-shared-v1, split-help-global-init-options). Co-authored-by: Yam Borodetsky <hi@yam.codes>
🦋 Changeset detectedLatest commit: 54c1a11 The changes in this PR will be included in the next version bump. This PR includes no changesetsWhen changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes — this PR merges 18 v1 commits into design/homepage-redesign. The only conflict that needed resolution was .changeset/pre.json, which correctly keeps v1's four new changeset entries (align-missing-schema-host-hints, align-v1-shared-missing-schema-errors, optional-strict-shared-v1, split-help-global-init-options).
- CI security hardening:
pull_request_targetreplacespull_requestfor fork PR previews; secrets moved from workflow-levelenvto step-level injection;persist-credentials: falseon checkout; explicitpermissions:block; newdeploy-www-manual.ymlmaintainer escape hatch; branch-domain aliasing forarkenv-dev/arkenv-v1preview deployments. - Optional shared.ts in strict layout:
isStrictLayoutDirin@arkenv/buildnow requires onlyclient.ts+server.ts;resolveLayoutandfindSchemaPathuse it; Nuxt aliases#arkenv/shared-schematoempty-shared-schema.tsstub wheninternal/shared.tsis absent;boot-gate.tsguards theSharedSchemaload behind an existence check; removedmissingSharedTsError. - Consistent missing-schema errors: new
formatMissingSchemaErrorin@arkenv/buildgives short, actionable messages across all hosts (Bun, Vite, Next.js, Nuxt) withnpx arkenv@latest initguidance and no embedded starter modules;assertFlatSchemaFilerejects discovered strict layout directories in Vite/Bun plugins. - CLI
--helpsplit: options divided into Global options (--yes,--quiet,--json,--agent,--help) and init options (--example,--force,--no-codegen,--host-preset), each with independent column alignment. - Docs: Next.js and Nuxt strict layout pages updated to reflect optional
shared.ts; CONTRIBUTING.md documents preview deployment flow. - Version bumps across all affected packages (
arkenv@1.0.0-alpha.11,@arkenv/build@0.0.2-alpha.2,@arkenv/nextjs@1.0.0-alpha.9,@arkenv/nuxt@1.0.0-alpha.11,@arkenv/bun-plugin@1.0.0-alpha.8,@arkenv/vite-plugin@1.0.0-alpha.8) with corresponding CHANGELOG entries.
None of the code in this PR is novel — every behavioral change passed through its own v1 review before landing here. The merge is clean and the conflict resolution is correct.
DeepSeek Pro (free via Pullfrog for OSS) (GPT Sol not used — the program covers this model; add its provider key to run your pick) | 𝕏

Summary
Resolves the merge conflict between
design/homepage-redesignandv1(PR #1161).The only conflict was in
.changeset/pre.json:v1added four changeset entries that the redesign branch did not have. Resolution keepsv1's full changeset list:align-missing-schema-host-hintsalign-v1-shared-missing-schema-errorsoptional-strict-shared-v1split-help-global-init-optionsMerging this into
design/homepage-redesignshould make #1161 mergeable intov1again.Test plan
.changeset/pre.json)v1