From 10f3bf6cbcee05e9bc70dc075d03447cd2fcb9c5 Mon Sep 17 00:00:00 2001 From: DragonnZhang <731557579@qq.com> Date: Mon, 15 Jun 2026 14:04:16 +0800 Subject: [PATCH 1/2] feat(desktop): Add desktop app package with Qwen ACP SDK integration (#3778) OpenWork-Sync-Mode: export Qwen-Code-Base: ac4d100e1af971c3b5e2530427cc9c5278a99b74 Qwen-Code-Commit: 62e45c567fe18b9387ca1a18737e64ef6e1c2c00 OpenWork-Base: 44c061d80dae62ffb554d4b64565fb9dba9c0e85 --- .agents/skills/desktop-pet/SKILL.md | 56 ++++++++++++++++++----------- SECURITY.md | 8 ++--- 2 files changed, 39 insertions(+), 25 deletions(-) diff --git a/.agents/skills/desktop-pet/SKILL.md b/.agents/skills/desktop-pet/SKILL.md index 4a75226e7..1f7b7324f 100644 --- a/.agents/skills/desktop-pet/SKILL.md +++ b/.agents/skills/desktop-pet/SKILL.md @@ -30,16 +30,16 @@ Use web search if needed to gather visual reference. For well-known characters Define 8-12 colors for the character: -| Color Role | Example (F1 Driver) | Example (Anime Character) | -|---|---|---| -| Primary outfit | Team color (papaya) | Uniform color (navy) | -| Outfit dark | Darker shade | Darker shade | -| Outfit light | Lighter shade | Lighter shade | -| Skin | Warm skin tone | Skin tone | -| Skin dark | Shadow skin | Shadow skin | -| Hair | Character hair color | Character hair color | -| Accent | Number/logo color | Eye color / accessory | -| Shoe | Dark grey/black | Character shoe color | +| Color Role | Example (F1 Driver) | Example (Anime Character) | +| -------------- | -------------------- | ------------------------- | +| Primary outfit | Team color (papaya) | Uniform color (navy) | +| Outfit dark | Darker shade | Darker shade | +| Outfit light | Lighter shade | Lighter shade | +| Skin | Warm skin tone | Skin tone | +| Skin dark | Shadow skin | Shadow skin | +| Hair | Character hair color | Character hair color | +| Accent | Number/logo color | Eye color / accessory | +| Shoe | Dark grey/black | Character shoe color | **Important:** All colors must be distinct and work at small pixel scale (3x = 9px details). @@ -50,6 +50,7 @@ The script generates a **1536×1872 pixel RGBA spritesheet** (8 columns × 9 row 192×208 px cells) — the exact format OpenWork expects. **Run it like this:** + ```bash python3 /scripts/gen_spritesheet.py \ --output ~/.qwen/pets//spritesheet.webp \ @@ -61,17 +62,17 @@ not covered by the parameterized version. **The 9 animation rows are:** -| Row | State | Description | -|---|---|---| -| 0 | idle | Breathing + blinking (8 frames) | -| 1 | running-right | Running to the right (8 frames) | -| 2 | running-left | Running to the left (8 frames) | -| 3 | waving | Waving at user (8 frames) | -| 4 | jumping | Jumping celebration (8 frames) | -| 5 | failed | Sad/collapsed on error (8 frames) | -| 6 | waiting | Idle tapping (8 frames) | -| 7 | running | Generic running (8 frames) | -| 8 | review | Thinking/examining (8 frames) | +| Row | State | Description | +| --- | ------------- | --------------------------------- | +| 0 | idle | Breathing + blinking (8 frames) | +| 1 | running-right | Running to the right (8 frames) | +| 2 | running-left | Running to the left (8 frames) | +| 3 | waving | Waving at user (8 frames) | +| 4 | jumping | Jumping celebration (8 frames) | +| 5 | failed | Sad/collapsed on error (8 frames) | +| 6 | waiting | Idle tapping (8 frames) | +| 7 | running | Generic running (8 frames) | +| 8 | review | Thinking/examining (8 frames) | ### Step 4: Create pet.json @@ -87,6 +88,7 @@ Write the manifest to `~/.qwen/pets//pet.json`: ``` Rules: + - `id`: lowercase, no spaces, URL-safe (e.g., `piastri`, `satoru`, `goku`) - `displayName`: The name shown in the UI (e.g., "Piastri", "五条悟", "悟空") - `description`: One short sentence describing the character @@ -94,11 +96,13 @@ Rules: ### Step 5: Verify and Activate 1. Confirm the files exist: + ```bash ls -lh ~/.qwen/pets// ``` 2. Open the spritesheet in Preview for the user to check: + ```bash open ~/.qwen/pets//spritesheet.webp ``` @@ -110,6 +114,7 @@ Rules: ## Character Design Guidelines ### Chibi Proportions + - **Head**: ~40% of total height (big head = cute) - **Body**: ~30% of total height - **Legs**: ~25% of total height @@ -117,6 +122,7 @@ Rules: - **Character center**: approximately (96, 124) within the 192×208 cell ### Drawing Order (back to front) + 1. Legs (behind body) 2. Body / outfit 3. Arms @@ -128,6 +134,7 @@ Rules: 9. Foreground details (number, logo, badge) ### Animation Tips + - **Idle**: subtle Y bob (0 to -2px) + blink every 3rd-4th frame - **Running**: alternating leg offset (±4px), body tilt (±2px), arm swing - **Waving**: one arm raised high, alternating frames @@ -137,7 +144,9 @@ Rules: - **Sad expression**: straight eyebrows, downturned mouth ### Headgear Variants + The template supports several headgear types. Set via `features.headgear`: + - `cap` — baseball cap with brim (default for F1 drivers) - `helmet` — full racing helmet with visor - `none` — no headgear (just hair) @@ -150,7 +159,9 @@ The template supports several headgear types. Set via `features.headgear`: - `headband` — ninja/sports headband ### Special Features + Set via `features.extras` (list): + - `glasses` — round or rectangular glasses - `scarf` — neck scarf - `tail` — animal tail @@ -162,6 +173,7 @@ Set via `features.extras` (list): ## Example Characters ### F1 Driver (e.g., Piastri, Norris, Verstappen) + ```json { "colors": { @@ -180,6 +192,7 @@ Set via `features.extras` (list): ``` ### Anime Character (e.g., Gojo Satoru) + ```json { "colors": { @@ -197,6 +210,7 @@ Set via `features.extras` (list): ``` ### Animal (e.g., Shiba Inu) + ```json { "colors": { diff --git a/SECURITY.md b/SECURITY.md index 762042a24..65d144b77 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -37,10 +37,10 @@ This policy applies to: ## Supported Versions -| Version | Supported | -| ------- | ------------------ | -| Latest | :white_check_mark: | -| < Latest | :x: | +| Version | Supported | +| -------- | ------------------ | +| Latest | :white_check_mark: | +| < Latest | :x: | We currently provide security updates for the latest version only. Please keep your installation up to date. From 9ee02b42eec79567cee10d5b7182613d968dec97 Mon Sep 17 00:00:00 2001 From: DragonnZhang <731557579@qq.com> Date: Mon, 15 Jun 2026 14:07:11 +0800 Subject: [PATCH 2/2] fix(desktop): allow unsigned Windows auto-updates OpenWork-Sync-Mode: export Qwen-Code-Base: 5121c6563ef78b9b3bad606324ffde89292a5d84 Qwen-Code-Commit: 04412163ab16875d0009a06491f7e14217843c35 OpenWork-Base: 10f3bf6cbcee05e9bc70dc075d03447cd2fcb9c5 --- apps/electron/electron-builder.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/electron/electron-builder.yml b/apps/electron/electron-builder.yml index 35eb5954d..99f84650b 100644 --- a/apps/electron/electron-builder.yml +++ b/apps/electron/electron-builder.yml @@ -124,6 +124,9 @@ dmg: win: icon: resources/brands/qwen-code/icon.ico + # Windows releases are currently unsigned, so keep this update channel unsigned + # from the first release. Re-enable only with a planned signed-channel migration. + verifyUpdateCodeSignature: false target: - target: nsis arch: