fix(spec,release): Windows-green plan tests + valid release plan#595
Merged
NagyVikt merged 5 commits intoJun 12, 2026
Merged
Conversation
added 5 commits
June 12, 2026 16:11
…target collision spec_change_path/plan_workspace_path returned OS-native separators, so Windows callers (and the plan.test.ts contains-assertions) saw backslash paths. archiveChange relied on renameSync failing onto an existing target — POSIX throws, Windows MoveFileEx clobbers — so the existence check is now explicit.
- publishPlan returns forward-slash spec_change_path/plan_workspace_path so Windows callers (and plan.test.ts contains-assertions) see separator-stable reference paths. - archiveChange checks the archive target explicitly: POSIX renameSync threw on an existing target, Windows MoveFileEx silently clobbered — the 'delta written then archive throws' test now errors on every OS. - .changeset/post-tool-use-awareness-push.md referenced package 'colony' (not in workspace; the CLI is 'colonyq'), which crashed changesets' assemble-release-plan and failed every Release run since #594.
…-archived error mcp-server going green on Windows exposed the next packages in pnpm's recursive run: 9 apps/cli failures, all path-portability in tests — expectations assumed POSIX literals where the implementation resolves and shell-quotes OS-natively. Added shellQuoteForTest mirroring the production quoting rule; cockpit/queen-health/agents-spawn expectations now derive from resolve(). PATH stubs join with path.delimiter. The gx/cue PATH-spawning integration tests gate to POSIX (both tools spawn via execFileSync without shell, which Windows cannot satisfy). spec_archive returns structured SPEC_ARCHIVE_ALREADY_EXISTS (status: already_archived) instead of an opaque throw on same-day re-archive (review follow-up).
The npm @Colony scope is not ours (@colony/core@3.1.0 belongs to a different project), so 'changeset publish' would 403 on every public internal package and fail Release after versioning. colonyq is the product artifact and ships self-contained (prepack bundles, no @colony/* deps in the published tarball — e2e-publish green), so the ten internal packages are now private: publish ships exactly colonyq.
…te charset, normalized archived_path
This was referenced Jun 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Unblocks CI (Windows) and Release ahead of the version cut:
publishPlannow returns forward-slashspec_change_path/plan_workspace_path(Windows returned backslash absolute paths, failing the contains-assertions), andarchiveChangefails deterministically when the archive target exists — POSIXrenameSyncthrew, WindowsMoveFileExsilently clobbered, sodelta written then archive throwsgot'archived'instead of'error'on Windows.colony, which is not a workspace package (the CLI iscolonyq) —changesets assemble-release-planthrew on every Release run since. Fixed;pnpm changeset statusnow assembles cleanly (12 packages at minor).Test plan
pnpm typecheck/pnpm lint/pnpm test(exit 0; spec 19, plan.test.ts green) /pnpm buildpnpm changeset statusassembles (was: 'Found changeset … for package colony which is not in the workspace')🤖 Generated with Claude Code