@josstei/maestro 1.6.4-rc.3 → 1.6.4-rc.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -19,7 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
19
19
 
20
20
  ### Fixed
21
21
 
22
- - **Stable npm release recovery**: Release now uses `NPM_TOKEN` for stable publishes, supports manual recovery from an existing `vX.Y.Z` tag and target SHA, and enforces a stable-only `latest` dist-tag through the idempotent npm publish helper.
22
+ - **Stable npm release recovery**: Release now uses `NPM_TOKEN` for stable publishes, uses verified Git tag lookups, supports manual recovery from an existing `vX.Y.Z` tag and target SHA, and enforces a stable-only `latest` dist-tag through the idempotent npm publish helper. Prerelease publishes defer stale `latest` repair when no stable version exists instead of attempting to delete npm's `latest` tag.
23
23
  - **Codex plugin MCP server fails to start**: corrected `npx` args in `plugins/maestro/.mcp.json` — added `-p`/`--package` flag so `maestro-mcp-server` is resolved as the binary name rather than an argument to the package's default binary.
24
24
  - **Release metadata drift**: runtime manifests, marketplace entries, detached payload versions, and Codex MCP package specs are now generated from `package.json` so stable and prerelease packages stay self-consistent.
25
25
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "maestro",
3
- "version": "1.6.4-rc.3",
3
+ "version": "1.6.4-rc.5",
4
4
  "description": "Multi-agent development orchestration platform — 39 specialists, 4-phase orchestration, native parallel subagents, persistent sessions, and standalone review/debug/security/perf/seo/a11y/compliance commands",
5
5
  "author": {
6
6
  "name": "josstei",
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "1.6.4-rc.3"
2
+ "version": "1.6.4-rc.5"
3
3
  }
package/docs/cicd.md CHANGED
@@ -655,4 +655,4 @@ The `RELEASE_TOKEN` used by Prepare Release is a personal access token with elev
655
655
  | `preview` | PR preview build | `X.Y.Z-preview.SHORT_SHA` | Preview Build |
656
656
  | `nightly` | Daily main snapshot | `X.Y.Z-nightly.YYYYMMDD` | Nightly Build |
657
657
 
658
- `latest` must never point at `rc`, `preview`, or `nightly`. If a prerelease publish or idempotent skip sees `latest` pointing to a prerelease, the helper repairs it by moving `latest` back to the highest published stable version or removing it when no stable exists.
658
+ `latest` must never intentionally point at `rc`, `preview`, or `nightly`. If a prerelease publish or idempotent skip sees `latest` pointing to a prerelease and at least one stable version exists, the helper repairs it by moving `latest` back to the highest published stable version. If no stable version exists yet, the helper logs a warning and defers repair until the stable Release workflow publishes `X.Y.Z`; it does not delete `latest`.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "maestro",
3
- "version": "1.6.4-rc.3",
3
+ "version": "1.6.4-rc.5",
4
4
  "description": "Multi-agent development orchestration platform — 39 specialists, 4-phase orchestration, native parallel subagents, persistent sessions, and standalone review/debug/security/perf/seo/a11y/compliance commands",
5
5
  "contextFileName": "GEMINI.md",
6
6
  "settings": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@josstei/maestro",
3
- "version": "1.6.4-rc.3",
3
+ "version": "1.6.4-rc.5",
4
4
  "description": "Multi-agent development orchestration platform — 39 specialists, 4-phase workflows, 4 runtime targets (Gemini CLI, Claude Code, OpenAI Codex, Qwen Code)",
5
5
  "license": "Apache-2.0",
6
6
  "author": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "maestro",
3
- "version": "1.6.4-rc.3",
3
+ "version": "1.6.4-rc.5",
4
4
  "description": "Generated Codex runtime for Maestro's multi-agent design, planning, execution, and review workflows.",
5
5
  "author": {
6
6
  "name": "josstei",
@@ -5,7 +5,7 @@
5
5
  "args": [
6
6
  "-y",
7
7
  "-p",
8
- "@josstei/maestro@1.6.4-rc.3",
8
+ "@josstei/maestro@1.6.4-rc.5",
9
9
  "maestro-mcp-server"
10
10
  ],
11
11
  "env": {
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "1.6.4-rc.3"
2
+ "version": "1.6.4-rc.5"
3
3
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "maestro",
3
- "version": "1.6.4-rc.3",
3
+ "version": "1.6.4-rc.5",
4
4
  "description": "Multi-agent development orchestration platform — 39 specialists, 4-phase orchestration, native parallel subagents, persistent sessions, and standalone review/debug/security/perf/seo/a11y/compliance commands",
5
5
  "contextFileName": "QWEN.md",
6
6
  "settings": [
@@ -206,13 +206,20 @@ function validatePublishTag(pkg, tag) {
206
206
  }
207
207
  }
208
208
 
209
- function ensureLatestTagPolicy(pkg, runner) {
209
+ function ensureLatestTagPolicy(pkg, runner, logger = console) {
210
210
  const tags = getDistTags(pkg.name, runner);
211
- const latest = tags.latest;
211
+ const latest = tags.latest || null;
212
212
 
213
213
  if (isPrereleaseVersion(pkg.version)) {
214
214
  if (!latest || !isPrereleaseVersion(latest)) {
215
- return;
215
+ return {
216
+ latest,
217
+ reason: latest
218
+ ? `latest already points to stable version ${latest}.`
219
+ : 'latest dist-tag is not set.',
220
+ status: 'ok',
221
+ target: null,
222
+ };
216
223
  }
217
224
 
218
225
  const stableVersion = highestStableVersion(getPublishedVersions(pkg.name, runner));
@@ -220,31 +227,58 @@ function ensureLatestTagPolicy(pkg, runner) {
220
227
  runner('npm', ['dist-tag', 'add', `${pkg.name}@${stableVersion}`, 'latest'], {
221
228
  stdio: 'inherit',
222
229
  });
223
- } else {
224
- runner('npm', ['dist-tag', 'rm', pkg.name, 'latest'], {
225
- stdio: 'inherit',
226
- });
230
+ logger.log(`Moved npm latest dist-tag from ${latest} to stable ${stableVersion}.`);
231
+ return {
232
+ latest,
233
+ reason: `latest pointed to prerelease ${latest}; moved it back to stable ${stableVersion}.`,
234
+ status: 'moved',
235
+ target: stableVersion,
236
+ };
227
237
  }
228
- return;
238
+
239
+ const reason = `latest points to prerelease ${latest}, but no stable versions are published; stable release must move latest.`;
240
+ logger.warn(`Warning: ${reason}`);
241
+ return {
242
+ latest,
243
+ reason,
244
+ status: 'deferred',
245
+ target: null,
246
+ };
229
247
  }
230
248
 
231
249
  if (latest !== pkg.version) {
232
250
  runner('npm', ['dist-tag', 'add', `${pkg.name}@${pkg.version}`, 'latest'], {
233
251
  stdio: 'inherit',
234
252
  });
253
+ logger.log(`Moved npm latest dist-tag from ${latest || '<unset>'} to stable ${pkg.version}.`);
254
+ return {
255
+ latest,
256
+ reason: `latest pointed to ${latest || '<unset>'}; moved it to stable ${pkg.version}.`,
257
+ status: 'moved',
258
+ target: pkg.version,
259
+ };
235
260
  }
261
+
262
+ return {
263
+ latest,
264
+ reason: `latest already points to stable version ${pkg.version}.`,
265
+ status: 'ok',
266
+ target: pkg.version,
267
+ };
236
268
  }
237
269
 
238
270
  function publishIfNeeded(options = {}) {
239
271
  const root = options.root || ROOT;
240
272
  const runner = options.execFileSync || execFileSync;
273
+ const logger = options.logger || console;
241
274
  const pkg = readPackage(root);
242
275
  const packageSpec = `${pkg.name}@${pkg.version}`;
243
276
  validatePublishTag(pkg, options.tag);
244
277
 
245
278
  if (packageVersionExists(packageSpec, runner)) {
246
- ensureLatestTagPolicy(pkg, runner);
279
+ const latestPolicy = ensureLatestTagPolicy(pkg, runner, logger);
247
280
  return {
281
+ latestPolicy,
248
282
  packageSpec,
249
283
  published: false,
250
284
  };
@@ -261,9 +295,10 @@ function publishIfNeeded(options = {}) {
261
295
  stdio: 'inherit',
262
296
  });
263
297
 
264
- ensureLatestTagPolicy(pkg, runner);
298
+ const latestPolicy = ensureLatestTagPolicy(pkg, runner, logger);
265
299
 
266
300
  return {
301
+ latestPolicy,
267
302
  packageSpec,
268
303
  published: true,
269
304
  };