diff --git a/.changeset/fix-back-merge-pre-json-conflict.md b/.changeset/fix-back-merge-pre-json-conflict.md new file mode 100644 index 00000000..5bb72d97 --- /dev/null +++ b/.changeset/fix-back-merge-pre-json-conflict.md @@ -0,0 +1,5 @@ +--- +"@stackwright/cli": patch +--- + +Fix back-merge into dev failing with a modify/delete conflict on `.changeset/pre.json` during rebase. The release workflow deletes this file via `changeset pre exit`, but dev's alpha-bump commits still reference it. The rebase now explicitly resolves the conflict by accepting main's deletion and continuing. diff --git a/.changeset/fix-js-yaml-override-conflict.md b/.changeset/fix-js-yaml-override-conflict.md new file mode 100644 index 00000000..c5edcbf0 --- /dev/null +++ b/.changeset/fix-js-yaml-override-conflict.md @@ -0,0 +1,5 @@ +--- +"@stackwright/cli": patch +--- + +Fix js-yaml version override conflict in pnpm overrides that caused `yaml.safeLoad is removed` errors when running `changeset pre exit` in CI. The global `js-yaml: >=4.1.1` override was stomping the scoped `read-yaml-file>js-yaml: ^3` override, forcing js-yaml v4 into read-yaml-file which doesn't support it. diff --git a/.changeset/pre.json b/.changeset/pre.json new file mode 100644 index 00000000..5225857d --- /dev/null +++ b/.changeset/pre.json @@ -0,0 +1,40 @@ +{ + "mode": "pre", + "tag": "alpha", + "initialVersions": { + "stackwright-docs": "0.1.3", + "@stackwright/build-scripts": "0.6.0", + "@stackwright/cli": "0.8.2", + "@stackwright/collections": "0.1.0", + "@stackwright/core": "0.8.1", + "@stackwright/e2e": "0.3.0", + "@stackwright/hooks-registry": "0.1.0", + "@stackwright/icons": "0.5.1", + "launch-stackwright": "0.2.2", + "@stackwright/maplibre": "2.0.1", + "@stackwright/mcp": "0.4.2", + "@stackwright/nextjs": "0.5.0", + "@stackwright/otters": "0.2.0", + "@stackwright/sbom-generator": "0.2.0", + "@stackwright/scaffold-core": "0.3.0", + "@stackwright/themes": "0.5.2", + "@stackwright/types": "1.3.0", + "@stackwright/ui-shadcn": "0.1.2" + }, + "changesets": [ + "collection-provider-interfaces-to-types", + "collections-types-cleanup", + "fix-back-merge-pre-json-conflict", + "fix-cli-bundle-workspace-deps", + "fix-core-dts-zod-compat", + "fix-js-yaml-override-conflict", + "fix-scaffold-template-versions", + "fix-types-prebuild-plugin-zod-compat", + "generate-agent-docs-interfaces", + "hookhandler-reexport", + "remove-workspace-prepublish-guard", + "scaffold-hook-interfaces-to-types", + "workspace-publish-guards", + "zodlike-export-path-fix" + ] +} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 84e4eb3e..56d1e8ef 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -134,7 +134,13 @@ jobs: # # -X ours: when conflicts arise (e.g. version numbers in package.json), # prefer main's graduated stable versions over dev's stale alpha versions. - git rebase origin/main -X ours + git rebase origin/main -X ours || { + # Expected modify/delete conflict on .changeset/pre.json: + # release deleted it via `changeset pre exit`, but dev's alpha-bump + # commit still referenced it. Accept main's deletion and continue. + git rm -f .changeset/pre.json 2>/dev/null || true + GIT_EDITOR=true git rebase --continue + } # Re-enter prerelease mode so the next dev push produces alphas. if [ ! -f ".changeset/pre.json" ]; then pnpm changeset pre enter alpha diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index a4429bbb..7a3abb03 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,45 +1,10 @@ # @stackwright/cli -## 0.8.5 +## 0.8.5-alpha.2 ### Patch Changes -- d4a06ff: Bundle internal `@stackwright/*` workspace dependencies into the CLI binary via tsup `noExternal`. This fixes `ERR_PNPM_WORKSPACE_PKG_NOT_FOUND` when installing `@stackwright/cli` via `pnpm dlx` outside a monorepo. Also adds a `prepublishOnly` guard to catch any future `workspace:*` leakage before publish. -- a276762: Fix js-yaml version override conflict in pnpm overrides that caused `yaml.safeLoad is removed` errors when running `changeset pre exit` in CI. The global `js-yaml: >=4.1.1` override was stomping the scoped `read-yaml-file>js-yaml: ^3` override, forcing js-yaml v4 into read-yaml-file which doesn't support it. -- d4a06ff: fix(cli): update stale scaffold template package versions - - `buildPackageJson()` in `template-processor.ts` was pinning scaffolded - projects to package versions that were 4+ releases behind: - - `@stackwright/core`: `^0.7.0` → `^0.8.0` - - `@stackwright/nextjs`: `^0.3.1` → `^0.5.0` - - `@stackwright/icons`: `^0.3.0` → `^0.5.0` - - `@stackwright/build-scripts`: `^0.4.0` → `^0.7.0` ← **critical** - - `@stackwright/ui-shadcn`: `^0.1.0` → `^0.1.2` - - `@stackwright/otters`: `^0.2.0-alpha.0` → `^0.2.0` - - The `build-scripts` version was the critical failure: the plugin API - (`PrebuildPlugin`, `beforeBuild`, `contentItemSchemas`) was introduced in - 0.5.0, but scaffolded projects installed 0.4.0 — a version that has no - plugin system at all. This caused Pro plugin hooks to silently fail or - crash in freshly scaffolded projects. - - Also adds `scripts/sync-versions.mjs` — a Node ESM utility that reads - workspace `package.json` versions and rewrites the VERSIONS constant - automatically. Run `node scripts/sync-versions.mjs` before cutting releases - to prevent version drift. - -- e6b3459: feat(cli): generate-agent-docs now emits an interface contracts table - - A new auto-generated section in AGENTS.md documents the TypeScript interface - contracts defined in `@stackwright/types`: - - CollectionProvider, CollectionEntry, CollectionListOptions, CollectionListResult - - ScaffoldHookContext, ScaffoldHook, HookHandler, ScaffoldHookType - - The section is delimited by `` markers - and updated by `pnpm stackwright -- generate-agent-docs` alongside the existing - content-type-table. This completes Phase 1 step 8 of the types-hierarchy-refactor. - -- f1637a6: Remove `prepublishOnly` workspace: specifier guard that conflicted with `pnpm publish`'s automatic `workspace:*` → semver resolution. The guard checked the local `package.json` for `workspace:*` entries and rejected them, but `pnpm publish` rewrites those specifiers inside the tarball at publish time without modifying the local file — so the guard always produced false positives and blocked all publishes. +- 11bfe0f: Fix back-merge into dev failing with a modify/delete conflict on `.changeset/pre.json` during rebase. The release workflow deletes this file via `changeset pre exit`, but dev's alpha-bump commits still reference it. The rebase now explicitly resolves the conflict by accepting main's deletion and continuing. ## 0.8.5-alpha.1 diff --git a/packages/cli/package.json b/packages/cli/package.json index 6435aefd..c951e0e1 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@stackwright/cli", - "version": "0.8.5", + "version": "0.8.5-alpha.2", "description": "CLI for Stackwright framework", "license": "MIT", "repository": { diff --git a/packages/collections/CHANGELOG.md b/packages/collections/CHANGELOG.md index 68a51a80..26bfb6e1 100644 --- a/packages/collections/CHANGELOG.md +++ b/packages/collections/CHANGELOG.md @@ -1,42 +1,5 @@ # @stackwright/collections -## 0.1.1 - -### Patch Changes - -- d4a06ff: Move `CollectionProvider`, `CollectionEntry`, `CollectionListOptions`, and - `CollectionListResult` interface contracts from `@stackwright/collections` into - `@stackwright/types`. - - `@stackwright/collections` re-exports all four types from `@stackwright/types` - so existing imports are fully backwards-compatible — no consumer changes required. - - This makes the interface contract accessible to Pro packages and other consumers - without requiring a dependency on any implementing package. - -- e6b3459: chore(collections): remove duplicate CollectionProvider definitions - - `file-collection-provider.ts` now imports `CollectionProvider`, `CollectionEntry`, - `CollectionListOptions`, and `CollectionListResult` directly from `@stackwright/types` - rather than from the local `./types` file. - - `types.ts` is converted to a re-export shim so any unexpected downstream imports - remain backward-compatible. This completes the Phase 1 cleanup from the - types-hierarchy-refactor. - -- f1637a6: Remove `prepublishOnly` workspace: specifier guard that conflicted with `pnpm publish`'s automatic `workspace:*` → semver resolution. The guard checked the local `package.json` for `workspace:*` entries and rejected them, but `pnpm publish` rewrites those specifiers inside the tarball at publish time without modifying the local file — so the guard always produced false positives and blocked all publishes. -- d4a06ff: Add `prepublishOnly` workspace protocol guard to all publishable packages to prevent accidentally publishing with unresolved `workspace:*` specifiers. - - Also removes a stale `@stackwright/collections` dependency from `@stackwright/core` (never imported, caused `ERR_PNPM_WORKSPACE_PKG_NOT_FOUND` when installing the published package), and fixes `@stackwright/maplibre` peer dependency on `@stackwright/core` from `workspace:*` to `>=0.8.0`. - -- Updated dependencies [d4a06ff] -- Updated dependencies [d4a06ff] -- Updated dependencies [f1637a6] -- Updated dependencies [d4a06ff] -- Updated dependencies [d4a06ff] -- Updated dependencies [d4a06ff] - - @stackwright/types@1.5.0 - ## 0.1.1-alpha.4 ### Patch Changes diff --git a/packages/collections/package.json b/packages/collections/package.json index fcfa3894..81c4e115 100644 --- a/packages/collections/package.json +++ b/packages/collections/package.json @@ -1,6 +1,6 @@ { "name": "@stackwright/collections", - "version": "0.1.1", + "version": "0.1.1-alpha.4", "description": "CollectionProvider interface and file-backed implementation for Stackwright", "license": "MIT", "repository": { diff --git a/packages/hooks-registry/CHANGELOG.md b/packages/hooks-registry/CHANGELOG.md index 61fbfc98..e12b765a 100644 --- a/packages/hooks-registry/CHANGELOG.md +++ b/packages/hooks-registry/CHANGELOG.md @@ -1,46 +1,5 @@ # @stackwright/hooks-registry -## 0.1.1 - -### Patch Changes - -- e6b3459: fix(scaffold-core): export HookHandler type from hooks-registry and scaffold-core - - `HookHandler` is the canonical type alias for scaffold hook handler functions, - defined in `@stackwright/types`. It was re-exported by `hooks-registry/src/hooks.ts` - but not forwarded through `index.ts`, making it unavailable via the public package - import paths. - - Both `@stackwright/hooks-registry` and `@stackwright/scaffold-core` now re-export - `HookHandler` alongside the other scaffold hook types. This completes Phase 1 step 4 - of the types-hierarchy-refactor. - -- f1637a6: Remove `prepublishOnly` workspace: specifier guard that conflicted with `pnpm publish`'s automatic `workspace:*` → semver resolution. The guard checked the local `package.json` for `workspace:*` entries and rejected them, but `pnpm publish` rewrites those specifiers inside the tarball at publish time without modifying the local file — so the guard always produced false positives and blocked all publishes. -- d4a06ff: fix(types): move scaffold hook interfaces from hooks-registry to types - - Moves `ScaffoldHookType`, `ScaffoldHook`, `ScaffoldHookContext`, and the new - `HookHandler` type alias into `@stackwright/types` — the canonical home for - interface contracts in the OSS stack. - - `@stackwright/hooks-registry` re-exports all four types unchanged, so existing - imports from `hooks-registry` or `scaffold-core` continue to work without any - consumer changes required. - - This eliminates the last remaining case where a framework contract was defined - in an implementing package rather than in `@stackwright/types`. - -- d4a06ff: Add `prepublishOnly` workspace protocol guard to all publishable packages to prevent accidentally publishing with unresolved `workspace:*` specifiers. - - Also removes a stale `@stackwright/collections` dependency from `@stackwright/core` (never imported, caused `ERR_PNPM_WORKSPACE_PKG_NOT_FOUND` when installing the published package), and fixes `@stackwright/maplibre` peer dependency on `@stackwright/core` from `workspace:*` to `>=0.8.0`. - -- Updated dependencies [d4a06ff] -- Updated dependencies [d4a06ff] -- Updated dependencies [f1637a6] -- Updated dependencies [d4a06ff] -- Updated dependencies [d4a06ff] -- Updated dependencies [d4a06ff] - - @stackwright/types@1.5.0 - ## 0.1.1-alpha.3 ### Patch Changes diff --git a/packages/hooks-registry/package.json b/packages/hooks-registry/package.json index 7ba19c89..8369934d 100644 --- a/packages/hooks-registry/package.json +++ b/packages/hooks-registry/package.json @@ -1,6 +1,6 @@ { "name": "@stackwright/hooks-registry", - "version": "0.1.1", + "version": "0.1.1-alpha.3", "description": "Singleton registry for scaffold hooks - survives module boundary crossings", "license": "MIT", "repository": { diff --git a/packages/launch-stackwright/CHANGELOG.md b/packages/launch-stackwright/CHANGELOG.md index b680d537..baf59196 100644 --- a/packages/launch-stackwright/CHANGELOG.md +++ b/packages/launch-stackwright/CHANGELOG.md @@ -1,24 +1,11 @@ # launch-stackwright -## 0.2.5 +## 0.2.5-alpha.4 ### Patch Changes -- f1637a6: Remove `prepublishOnly` workspace: specifier guard that conflicted with `pnpm publish`'s automatic `workspace:*` → semver resolution. The guard checked the local `package.json` for `workspace:*` entries and rejected them, but `pnpm publish` rewrites those specifiers inside the tarball at publish time without modifying the local file — so the guard always produced false positives and blocked all publishes. -- d4a06ff: Add `prepublishOnly` workspace protocol guard to all publishable packages to prevent accidentally publishing with unresolved `workspace:*` specifiers. - - Also removes a stale `@stackwright/collections` dependency from `@stackwright/core` (never imported, caused `ERR_PNPM_WORKSPACE_PKG_NOT_FOUND` when installing the published package), and fixes `@stackwright/maplibre` peer dependency on `@stackwright/core` from `workspace:*` to `>=0.8.0`. - -- Updated dependencies [d4a06ff] -- Updated dependencies [a276762] -- Updated dependencies [d4a06ff] -- Updated dependencies [e6b3459] -- Updated dependencies [e6b3459] -- Updated dependencies [f1637a6] -- Updated dependencies [d4a06ff] - - @stackwright/cli@0.8.5 - - @stackwright/scaffold-core@0.3.1 - - @stackwright/otters@0.2.1 +- Updated dependencies [11bfe0f] + - @stackwright/cli@0.8.5-alpha.2 ## 0.2.5-alpha.3 diff --git a/packages/launch-stackwright/package.json b/packages/launch-stackwright/package.json index 3ee4f425..942a9852 100644 --- a/packages/launch-stackwright/package.json +++ b/packages/launch-stackwright/package.json @@ -1,6 +1,6 @@ { "name": "launch-stackwright", - "version": "0.2.5", + "version": "0.2.5-alpha.4", "description": "Launch a new Stackwright project with the otter raft ready to build", "license": "MIT", "repository": { diff --git a/packages/mcp/CHANGELOG.md b/packages/mcp/CHANGELOG.md index 7311bc19..178a3d66 100644 --- a/packages/mcp/CHANGELOG.md +++ b/packages/mcp/CHANGELOG.md @@ -1,26 +1,11 @@ # @stackwright/mcp -## 0.4.5 +## 0.4.5-alpha.5 ### Patch Changes -- f1637a6: Remove `prepublishOnly` workspace: specifier guard that conflicted with `pnpm publish`'s automatic `workspace:*` → semver resolution. The guard checked the local `package.json` for `workspace:*` entries and rejected them, but `pnpm publish` rewrites those specifiers inside the tarball at publish time without modifying the local file — so the guard always produced false positives and blocked all publishes. -- d4a06ff: Add `prepublishOnly` workspace protocol guard to all publishable packages to prevent accidentally publishing with unresolved `workspace:*` specifiers. - - Also removes a stale `@stackwright/collections` dependency from `@stackwright/core` (never imported, caused `ERR_PNPM_WORKSPACE_PKG_NOT_FOUND` when installing the published package), and fixes `@stackwright/maplibre` peer dependency on `@stackwright/core` from `workspace:*` to `>=0.8.0`. - -- Updated dependencies [d4a06ff] -- Updated dependencies [d4a06ff] -- Updated dependencies [a276762] -- Updated dependencies [d4a06ff] -- Updated dependencies [d4a06ff] -- Updated dependencies [e6b3459] -- Updated dependencies [f1637a6] -- Updated dependencies [d4a06ff] -- Updated dependencies [d4a06ff] -- Updated dependencies [d4a06ff] - - @stackwright/types@1.5.0 - - @stackwright/cli@0.8.5 +- Updated dependencies [11bfe0f] + - @stackwright/cli@0.8.5-alpha.2 ## 0.4.5-alpha.4 diff --git a/packages/mcp/package.json b/packages/mcp/package.json index 905cd0e6..8b935c19 100644 --- a/packages/mcp/package.json +++ b/packages/mcp/package.json @@ -1,6 +1,6 @@ { "name": "@stackwright/mcp", - "version": "0.4.5", + "version": "0.4.5-alpha.5", "description": "MCP server for Stackwright — exposes content types, page management, and validation as agent tools", "license": "MIT", "repository": { diff --git a/packages/scaffold-core/CHANGELOG.md b/packages/scaffold-core/CHANGELOG.md index b453e12d..0e5e9f39 100644 --- a/packages/scaffold-core/CHANGELOG.md +++ b/packages/scaffold-core/CHANGELOG.md @@ -1,31 +1,5 @@ # Changelog -## 0.3.1 - -### Patch Changes - -- e6b3459: fix(scaffold-core): export HookHandler type from hooks-registry and scaffold-core - - `HookHandler` is the canonical type alias for scaffold hook handler functions, - defined in `@stackwright/types`. It was re-exported by `hooks-registry/src/hooks.ts` - but not forwarded through `index.ts`, making it unavailable via the public package - import paths. - - Both `@stackwright/hooks-registry` and `@stackwright/scaffold-core` now re-export - `HookHandler` alongside the other scaffold hook types. This completes Phase 1 step 4 - of the types-hierarchy-refactor. - -- f1637a6: Remove `prepublishOnly` workspace: specifier guard that conflicted with `pnpm publish`'s automatic `workspace:*` → semver resolution. The guard checked the local `package.json` for `workspace:*` entries and rejected them, but `pnpm publish` rewrites those specifiers inside the tarball at publish time without modifying the local file — so the guard always produced false positives and blocked all publishes. -- d4a06ff: Add `prepublishOnly` workspace protocol guard to all publishable packages to prevent accidentally publishing with unresolved `workspace:*` specifiers. - - Also removes a stale `@stackwright/collections` dependency from `@stackwright/core` (never imported, caused `ERR_PNPM_WORKSPACE_PKG_NOT_FOUND` when installing the published package), and fixes `@stackwright/maplibre` peer dependency on `@stackwright/core` from `workspace:*` to `>=0.8.0`. - -- Updated dependencies [e6b3459] -- Updated dependencies [f1637a6] -- Updated dependencies [d4a06ff] -- Updated dependencies [d4a06ff] - - @stackwright/hooks-registry@0.1.1 - ## 0.3.1-alpha.3 ### Patch Changes diff --git a/packages/scaffold-core/package.json b/packages/scaffold-core/package.json index 0b150d54..dd0bff35 100644 --- a/packages/scaffold-core/package.json +++ b/packages/scaffold-core/package.json @@ -1,6 +1,6 @@ { "name": "@stackwright/scaffold-core", - "version": "0.3.1", + "version": "0.3.1-alpha.3", "description": "Scaffold hooks system for Stackwright - enables extensible post-scaffold processing", "license": "MIT", "repository": {