diff --git a/AGENTS.md b/AGENTS.md index 9a21419621b..2ff7a41a68c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -162,6 +162,8 @@ Skills own workflows; root owns hard policy and routing. - Issue/PR start: `git status -sb`; if clean, `git pull --ff-only`; if dirty, yell before pull/rebase. - PR refs: `gh pr view/diff` or `gh api`, not web search. Prefer `gitcrawl` for maintainer discovery; missing/stale `gitcrawl` falls through to live `gh`, not contributor setup. Verify live with `gh` before mutation. - zsh: quote `gh api` endpoints containing `?` or brackets; otherwise glob expansion corrupts the invocation. +- zsh: quote command globs; unmatched patterns abort before the tool runs. +- `scripts/pr` artifacts: preserve template enum values; validate before prepare. - Bare issue/PR URL/number: inspect live and take the efficient maintainer path; switch branches/refs when useful. - No unsolicited PR labels/retitles/rebases/fixups/landing. Comments/reviews ok only for reviewable findings, pre-merge proof, or close/duplicate reason after explicit close/sweep/landing request. - Maintainer decision closes the cluster: if deciding reported behavior/proposed fix is not planned, comment+close all directly associated open issues/PRs unless explicitly told to keep one open. Associated means linked PRs/issues, duplicates, companion workaround PRs, and the canonical issue for the rejected behavior. diff --git a/scripts/resolve-openclaw-package-candidate.mjs b/scripts/resolve-openclaw-package-candidate.mjs index c3000541723..097d604f124 100644 --- a/scripts/resolve-openclaw-package-candidate.mjs +++ b/scripts/resolve-openclaw-package-candidate.mjs @@ -1476,6 +1476,7 @@ async function resolveCandidate(options) { await installPackageSourceDeps(packageSource.sourceDir); await run("node", [ "scripts/package-openclaw-for-docker.mjs", + "--allow-unreleased-changelog", "--source-dir", packageSource.sourceDir, "--output-dir", diff --git a/test/scripts/resolve-openclaw-package-candidate.test.ts b/test/scripts/resolve-openclaw-package-candidate.test.ts index e9bec02f0de..16a88292e54 100644 --- a/test/scripts/resolve-openclaw-package-candidate.test.ts +++ b/test/scripts/resolve-openclaw-package-candidate.test.ts @@ -109,6 +109,17 @@ afterEach(async () => { }); describe("resolve-openclaw-package-candidate", () => { + it("allows Unreleased notes when packaging an exact ref candidate", () => { + const script = readFileSync("scripts/resolve-openclaw-package-candidate.mjs", "utf8"); + const refPackageBuild = script.slice( + script.indexOf('if (options.source === "ref")'), + script.indexOf('} else if (options.source === "npm")'), + ); + + expect(refPackageBuild).toContain('"scripts/package-openclaw-for-docker.mjs"'); + expect(refPackageBuild).toContain('"--allow-unreleased-changelog"'); + }); + it("accepts only OpenClaw release package specs for npm candidates", () => { for (const spec of [ "openclaw@beta",