Skip to content
Closed
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
4 changes: 0 additions & 4 deletions bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion packages/app/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@opencode-ai/app",
"version": "2026.5.2",
"version": "2026.5.2.2",
"description": "",
"type": "module",
"exports": {
Expand Down
2 changes: 1 addition & 1 deletion packages/desktop-electron/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@opencode-ai/desktop-electron",
"private": true,
"version": "2026.5.2",
"version": "2026.5.2.2",
"type": "module",
"license": "Apache-2.0",
"homepage": "https://pawwork.ai",
Expand Down
15 changes: 5 additions & 10 deletions packages/desktop-electron/scripts/verify-release.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,10 +79,7 @@ describe("verify-release", () => {
expect(() => normalizeTag("")).toThrow("Invalid release tag")
expect(() => normalizeTag("v")).toThrow("Invalid release tag")
expect(() => normalizeTag("abc")).toThrow("Invalid release tag")
expect(normalizeTag("2026.4.28.1")).toBe("v2026.4.28.1")
expect(normalizeTag("v2026.4.28.2")).toBe("v2026.4.28.2")
expect(normalizeTag("2026.4.28.0")).toBe("v2026.4.28.0")
expect(() => normalizeTag("2026.4.28.1234")).toThrow("Invalid release tag")
expect(() => normalizeTag("2026.4.28.1")).toThrow("Invalid release tag")
expect(() => normalizeTag("2026.4.28-hotfix.1")).toThrow("Invalid release tag")
})

Expand Down Expand Up @@ -258,13 +255,11 @@ path: pawwork-win-x64-2026.4.28.exe
test("reports invalid release tags in release payloads without throwing", () => {
expect(
verifyReleasePayload({
release: { ...baseRelease, tag_name: "v2026.4.28.1.1" },
release: { ...baseRelease, tag_name: "v2026.4.28.1" },
latestYml: "",
latestMacYml: "",
}),
).toEqual([
"Invalid release tag: v2026.4.28.1.1. Expected vYYYY.M.D or YYYY.M.D, with optional build number (vYYYY.M.D.N).",
])
).toEqual(["Invalid release tag: v2026.4.28.1. Expected vYYYY.M.D or YYYY.M.D."])
})

test("accepts a complete startup log for the release version", () => {
Expand Down Expand Up @@ -385,7 +380,7 @@ path: pawwork-win-x64-2026.4.28.exe
`,
"v",
),
).toEqual(["Invalid release tag: v. Expected vYYYY.M.D or YYYY.M.D, with optional build number (vYYYY.M.D.N)."])
).toEqual(["Invalid release tag: v. Expected vYYYY.M.D or YYYY.M.D."])
})

test("reports invalid release tags with other startup failures", () => {
Expand All @@ -396,7 +391,7 @@ path: pawwork-win-x64-2026.4.28.exe
"v",
),
).toEqual([
"Invalid release tag: v. Expected vYYYY.M.D or YYYY.M.D, with optional build number (vYYYY.M.D.N).",
"Invalid release tag: v. Expected vYYYY.M.D or YYYY.M.D.",
"Latest startup log does not include server ready",
"Latest startup log does not include loading task finished",
"Latest startup log does not include init step done",
Expand Down
6 changes: 2 additions & 4 deletions packages/desktop-electron/scripts/verify-release.ts
Original file line number Diff line number Diff line change
Expand Up @@ -231,10 +231,8 @@ export function verifyReleasePayload(input: VerificationInput) {

export function normalizeTag(raw: string) {
const normalized = raw.startsWith("v") ? raw : `v${raw}`
if (!/^v\d{4}\.\d{1,2}\.\d{1,2}(\.\d{1,3})?$/.test(normalized)) {
throw new Error(
`Invalid release tag: ${raw}. Expected vYYYY.M.D or YYYY.M.D, with optional build number (vYYYY.M.D.N).`,
)
if (!/^v\d{4}\.\d{1,2}\.\d{1,2}$/.test(normalized)) {
throw new Error(`Invalid release tag: ${raw}. Expected vYYYY.M.D or YYYY.M.D.`)
}
return normalized
}
Expand Down
2 changes: 1 addition & 1 deletion packages/opencode/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/package.json",
"version": "2026.5.2",
"version": "2026.5.2.2",
"name": "opencode",
"type": "module",
"license": "Apache-2.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/util/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@opencode-ai/util",
"version": "2026.5.2",
"version": "2026.5.2.2",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

Do npm and Bun accept a package.json version formatted as 2026.5.2.2, or must it be strict SemVer (e.g., 2026.5.2-2)?

💡 Result:

npm and Bun do not accept a package.json "version" formatted as 2026.5.2.2. They expect the version string to be valid SemVer (SemVer “normal version” is X.Y.Z with optional prerelease like -2). Use something like 2026.5.2-2 (or 2026.5.2+build, etc.), not a fourth dot-separated numeric component. Why: - npm states that the package.json "version" must be parseable by node-semver. - node-semver and SemVer’s “normal version” format require exactly three numeric dot-separated components (X.Y.Z); prerelease is introduced with a hyphen. - Bun’s semver implementation is designed to be compatible with node-semver, and Bun’s semver API returns false for invalid versions.

Citations:


Use a semver-compatible version format on Line 3.

2026.5.2.2 is a 4-segment version and is rejected by npm and Bun, which require strict SemVer (X.Y.Z with optional prerelease using hyphen). Use 2026.5.2-2 instead and apply it consistently across all bumped manifests.

Suggested manifest change
-  "version": "2026.5.2.2",
+  "version": "2026.5.2-2",
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"version": "2026.5.2.2",
"version": "2026.5.2-2",
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/util/package.json` at line 3, The package.json "version" field
currently uses a 4-part version string ("2026.5.2.2") which is not
semver-compliant; update the "version" value in packages/util/package.json to a
strict semver format such as "2026.5.2-2" (or X.Y.Z-prerelease) and make the
same change consistently across any other bumped manifests (other package.json
files or lockfiles) to avoid npm/Bun rejection; search for "version":
"2026.5.2.2" and replace with the chosen semver string, then run your usual
CI/versioning checks.

"private": true,
"type": "module",
"license": "Apache-2.0",
Expand Down
Loading