diff --git a/desktop/package.json b/desktop/package.json index 5f770f08..efe8a1ae 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -2,6 +2,12 @@ "name": "claude-code-desktop", "private": true, "version": "0.3.2", + "description": "Desktop coding agent workbench for Claude Code Haha.", + "homepage": "https://github.com/NanmiCoder/cc-haha", + "author": { + "name": "NanmiCoder", + "email": "relakkes@gmail.com" + }, "type": "module", "main": "electron-dist/main.cjs", "build": { @@ -50,7 +56,8 @@ "deb" ], "icon": "src-tauri/icons", - "category": "Development" + "category": "Development", + "maintainer": "NanmiCoder " }, "publish": [ { diff --git a/scripts/pr/release-workflow.test.ts b/scripts/pr/release-workflow.test.ts index 2b4675d5..4d94676b 100644 --- a/scripts/pr/release-workflow.test.ts +++ b/scripts/pr/release-workflow.test.ts @@ -47,6 +47,28 @@ describe('release desktop workflow', () => { } }) + test('desktop package includes Linux deb metadata required by electron-builder', () => { + const desktopPackage = JSON.parse(readFileSync('desktop/package.json', 'utf8')) as { + description?: string + homepage?: string + author?: { + name?: string + email?: string + } + build?: { + linux?: { + maintainer?: string + } + } + } + + expect(desktopPackage.description).toBeTruthy() + expect(desktopPackage.homepage).toBe('https://github.com/NanmiCoder/cc-haha') + expect(desktopPackage.author?.name).toBe('NanmiCoder') + expect(desktopPackage.author?.email).toBe('relakkes@gmail.com') + expect(desktopPackage.build?.linux?.maintainer).toBe('NanmiCoder ') + }) + test('release workflow requires macOS Gatekeeper launch approval before upload', () => { const workflow = readReleaseWorkflow() const gatekeeperStep = workflow.match(