Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/fix-back-merge-pre-json-conflict.md
Original file line number Diff line number Diff line change
@@ -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.
5 changes: 5 additions & 0 deletions .changeset/fix-js-yaml-override-conflict.md
Original file line number Diff line number Diff line change
@@ -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.
40 changes: 40 additions & 0 deletions .changeset/pre.json
Original file line number Diff line number Diff line change
@@ -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"
]
}
8 changes: 7 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
39 changes: 2 additions & 37 deletions packages/cli/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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 `<!-- stackwright:interface-table:start/end -->` 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

Expand Down
2 changes: 1 addition & 1 deletion packages/cli/package.json
Original file line number Diff line number Diff line change
@@ -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": {
Expand Down
37 changes: 0 additions & 37 deletions packages/collections/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion packages/collections/package.json
Original file line number Diff line number Diff line change
@@ -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": {
Expand Down
41 changes: 0 additions & 41 deletions packages/hooks-registry/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion packages/hooks-registry/package.json
Original file line number Diff line number Diff line change
@@ -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": {
Expand Down
19 changes: 3 additions & 16 deletions packages/launch-stackwright/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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

Expand Down
2 changes: 1 addition & 1 deletion packages/launch-stackwright/package.json
Original file line number Diff line number Diff line change
@@ -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": {
Expand Down
21 changes: 3 additions & 18 deletions packages/mcp/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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

Expand Down
2 changes: 1 addition & 1 deletion packages/mcp/package.json
Original file line number Diff line number Diff line change
@@ -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": {
Expand Down
26 changes: 0 additions & 26 deletions packages/scaffold-core/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion packages/scaffold-core/package.json
Original file line number Diff line number Diff line change
@@ -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": {
Expand Down
Loading