Use when the team wants to catch desktop app users up on recent features with a one-time "What's new" dialog (apps/examples/desktop-app). Guides deciding whethe
复制下面这句话,粘贴给 Claude Code、Codex、Cursor 等 AI 编程工具,它会读取安装说明并在你确认后完成安装。
请阅读 https://ai.atlankj.com/install/asset/gh-desktop-whats-new-a60fdafea077 ,按照其中的说明把「desktop-whats-new」安装到你(当前 AI 工具)中。执行前先告诉我将运行的命令和写入的位置,等我确认。
查看 AI 将读取的安装说明正在读取 GitHub 原文…
内容来自 GitHub 原始文件,由原作者维护。在 GitHub 查看
Use this skill when the user asks to show desktop users what's new, catch users up on recent updates, publish a what's-new modal, or refresh the highlights in Settings → About.
Working directory: run every command below from the repository root.
The desktop app ships every couple of days, so individual releases are never announced in-app; Settings → About always lists the bundled release notes. A catch-up is the exception: once enough notable features have accumulated, one dialog shows them, once, on the first launch after the update that carries it. Publishing one is a content change in a single file plus a preview, nothing else.
apps/examples/desktop-app/webview/lib/whats-new-content.ts as WHATS_NEW_RELEASES, newest first. Each entry has a stable id, a title, and 3–4 highlights (title, description, lucide icon).webview/lib/whats-new.ts stores the last seen id in localStorage (cline.code.whats-new.v1). The app shell (webview/app/page.tsx) shows WhatsNewDialog when the newest id differs from the stored one; closing it, or clicking "See all changes", stores the id.webview/components/whats-new-dialog.tsx) is fixed: violet hero with an eyebrow and headline, a 2×2 grid of highlights, footer with "See all changes" and "Get Started". Do not add per-entry layout options, images, or extra buttons; keep it a content change.git log --oneline -1 -- apps/examples/desktop-app/webview/lib/whats-new-content.ts
sed -n '1,80p' apps/examples/desktop-app/CHANGELOG.md
Read the changelog sections since the last catch-up (the first entry's id is date-prefixed; the git log above shows when it landed). A catch-up needs 3–4 features a user would change how they work for — new capabilities, not fixes or polish. If there are fewer, say so and stop; the About page already covers everything else. Never ship a catch-up for a single release or for bug fixes.
lucide-react icon that already exists in the codebase or the lucide set (Network, GitBranchPlus, GitPullRequest, Users, Terminal, Mic, Cloud, …).WHATS_NEW_RELEASES in apps/examples/desktop-app/webview/lib/whats-new-content.ts.{
id: "2026-11-cloud-and-voice", // YYYY-MM-<slug>, unique, never reused or edited later
title: "Run it in the cloud",
highlights: [
{ title: "Cloud sessions", description: "…", icon: Cloud },
// 3–4 total
],
},
Import any new icons at the top of the file. The id is what the seen-tracking compares, so changing an existing entry's id would re-show it to everyone; changing its copy would not. Keep old entries in the array; they are harmless and document history.
cd apps/examples/desktop-app
bunx vitest run webview/lib/whats-new.test.ts --config vitest.config.ts # ids unique, newest resolves
bun run typecheck
Then preview in the app. From apps/examples/desktop-app, start bun run dev:sidecar and bun run dev:web (or bun run dev for the native window), open Settings → About → "Show what's new", and check both themes (General → Dark mode). Confirm no description wraps past three lines at the default font size and the headline fits on one line at 560px. Also confirm the dialog appears on launch for a returning user: clear cline.code.whats-new.v1 from localStorage and reload.
publish-desktop skill.WHATS_NEW_RELEASES[0] must be the newest entry. whats-new.test.ts checks id uniqueness but cannot know the intended order.main reaches beta on the next merge.