Skip to content

Releases: deskwand/agent

1.0.25

Choose a tag to compare

@deskwand deskwand released this 05 Aug 13:18

🎉 1.0.25

中文

✨ 新功能

  • Slash 菜单统一召回排序:命令、插件命令和技能现在共享同一套"近期使用"排序(上限 10 → 20),"全部"标签合并为按召回度排序的扁平列表,类型通过图标/徽标区分;插件命令被选中时也会记录召回度。
  • 超长会话历史分页:22k+ 条消息(约 30MB)的超长会话不再卡死——历史加载改为分页进行,打开和滚动都更流畅,同时修复了用户消息稀疏分布下的分页正确性问题。
  • 工具摘要归类增强ls/find 纳入聊天过程摘要分组——ls 新增文件浏览片段(文件夹图标),find 并入现有搜索组;并添加覆盖守卫测试,确保每个内置工具都有归类。
  • 模型搜索框智能隐藏:模型列表能完整放下时,自动隐藏搜索框,界面更清爽。
  • 侧边栏导航优化:Apps/自动化入口移入滚动区域,长列表不再被截断。

🐛 修复

  • Goal 循环稳定性:goal 工具(get_goal/update_goal/goal_complete)改为全局常驻,模型请求失败时不再因工具消失导致目标卡死,同时保住提示词缓存不被反复失效;跨应用重启也能恢复 goal 状态;到达上限后恢复时从第 1 轮重新计数并给出提示。
  • OAuth 刷新与 auth.json 锁竞争:移除应用层每小时 OAuth 刷新(原来是 240 倍的过度刷新),令牌生命周期完全交给 pi-ai 上游;auth.json 读取改为无锁设计(原子写保证完整读)。
  • 子代理工具与插件加载:修复内联扩展(pi-subagents、deskwand-tools)和打包的 pi 插件在集成场景下工具不暴露的问题。
  • 侧边栏后台运行指示:后台子代理执行时显示运行中指示器,不再需要切换视图确认。
  • 全局焦点样式:抑制浏览器默认 focus outline,界面更统一。

🎨 样式

  • 侧边栏精简:移除导航项的 accent 竖条装饰。

♻️ 重构

  • 清理死代码:移除废弃的 artifacts IPC、ollama i18n 键和 SettingsSchedule。

📝 文档

  • 重写 AGENTS.md 为面向 Agent 的协作最佳实践;新增设计文档/实现计划存储约定。

🔧 工程

  • 修复测试环境变量污染与 electron mock 漂移,更新漂移断言;版本号更新至 1.0.25

English

✨ New Features

  • Unified slash-menu recency sorting: Commands, plugin commands, and skills now share one recency ranking (cap raised from 10 to 20). The "All" tab is merged into a single flat list ordered by recency, with types distinguished by icon/badge; plugin command selections are now recorded too.
  • Paginated history for long sessions: Sessions with 22k+ messages (~30MB) no longer freeze — history loading is now paginated for smooth opens and scrolling, and paging correctness around sparse user-message distributions is fixed.
  • Better tool grouping in process summaries: ls/find are now classified into chat process-summary groups — ls gets a file-browse fragment (folder icon), find joins the existing search group; a coverage guard test ensures every built-in tool is classified.
  • Smart model search box: The model search box now hides automatically when the list fits, keeping the UI clean.
  • Sidebar navigation improvements: Apps/Automation entries moved into the scroll area so long lists are no longer clipped.

🐛 Bug Fixes

  • Goal loop stability: Goal tools (get_goal/update_goal/goal_complete) are now globally resident — a failed model request no longer removes the tools and strands the goal, and the prompt cache is preserved instead of invalidated on every goal start/end. Goal state also survives app restarts, and resuming at the cap restarts counting at turn 1 with a notice.
  • OAuth refresh & auth.json lock contention: Removed the app-layer hourly OAuth refresh (a 240x over-refresh that amplified lock contention); token lifecycle is fully delegated to pi-ai. auth.json reads are now lock-free (atomic temp+rename writes guarantee complete reads).
  • Subagent tools & plugin loading: Fixed tool exposure for inline extensions (pi-subagents, deskwand-tools) and packaged pi plugins in deep-integration scenarios.
  • Sidebar running indicator: Background subagents now show a running indicator in the sidebar.
  • Global focus styles: Browser default focus outlines suppressed app-wide for a cleaner look.

🎨 Style

  • Sidebar polish: Removed the accent quote bar from nav items.

♻️ Refactoring

  • Dead code removal: Dropped obsolete artifacts IPC, ollama i18n keys, and SettingsSchedule.

📝 Documentation

  • Rewrote AGENTS.md with agent-focused collaboration best practices; documented the design-doc/implementation-plan storage convention.

🔧 Engineering

  • Fixed test env pollution and electron mock drift, updated drifted assertions; version bumped to 1.0.25.

1.0.24

Choose a tag to compare

@deskwand deskwand released this 03 Aug 01:29

🎉 1.0.24

中文

✨ 新功能

  • 智谱 GLM-4.6V-Flash 视觉模型: 新增智谱视觉模型供应商,支持国内 / 国际双区域端点,视觉模型设置中可直接切换区域;通过 OpenAI 兼容协议接入 vision_describe,并附带品牌图标与完整中英文文案。

  • 全局记忆开关默认开启: 新安装用户默认启用全局记忆,开箱即可体验跨会话记忆能力。

  • 统一「应用」视图: 侧边栏顶部新增 Skills 云端 / 插件 / 自动化 入口,并将 Skills 云端与插件合并为统一的应用视图,插件管理更集中、入口更好找。

🐛 修复

  • 修复子代理工具与插件加载: 修复深度内联扩展(pi-subagents、deskwand-tools)以及用户安装的 Pi 插件无法加载的问题——工具注册生命周期与打包后依赖路径解析均得到修正,Agent 工具恢复正常暴露。

  • 目标状态栏耗时实时刷新: 目标进行中的状态栏耗时改为每秒实时跳动,不再停留在初始值。

  • 恢复 OAuth token 新鲜度检查: 恢复每小时主动刷新 OAuth 访问令牌的逻辑(OpenAI Codex 等服务端约每小时轮换令牌),并跳过 manual_code 登录弹窗、改由系统浏览器主路径完成登录,消除偶发 401。

📝 文档

  • README 补充 Pi 扩展与消息渠道相关说明。

English

✨ New Features

  • Zhipu GLM-4.6V-Flash Vision Model: New Zhipu vision provider with CN/Global region endpoints and an in-editor region switcher. It connects through the OpenAI-compatible protocol for vision_describe, complete with brand icon and full bilingual strings.

  • Global Memory On by Default: New installs now ship with the global memory switch enabled, so cross-session memory works out of the box.

  • Unified Apps View: The sidebar top nav gains Skills Cloud / Plugins / Automation entries, with Skills Cloud and Plugins merged into one unified apps view for easier plugin management.

🐛 Bug Fixes

  • Restored Subagent Tools & Plugin Loading: Fixed deep-integration inline extensions (pi-subagents, deskwand-tools) and user-installed Pi plugins failing to load — tool registration lifecycle and packaged dependency resolution are both corrected, and Agent tools are properly exposed again.

  • Live-Ticking Goal Elapsed Time: The elapsed time in the goal status bar now updates every second instead of freezing at its initial value.

  • Restored Hourly OAuth Freshness Check: Reintroduced proactive hourly refresh of OAuth access tokens (providers like OpenAI Codex rotate them server-side), and skipped the manual_code login dialog in favor of the system-browser flow — eliminating intermittent 401s.

📝 Documentation

  • README now covers Pi extensions and messaging channels.

1.0.23

Choose a tag to compare

@deskwand deskwand released this 01 Aug 17:28

🎉 1.0.23

中文

✨ 新功能

  • 远程频道运行时(Channel Runtime): 全新的频道运行时核心,涵盖生命周期管理、会话绑定持久化、投递回执与发件箱提交、崩溃恢复、附件存储、交互鉴权、通知路由与策略引擎;新增 Telegram、Discord、QQ、Slack、微信、飞书 六大频道适配器,其中 Slack 支持 Socket Mode 与签名校验,微信 iLink 支持扫码登录与媒体 CDN。
  • 频道目录全面改版: 品牌 Logo + 网格卡片布局,每个频道类型单一实例,新增频道状态指示、凭据编辑与微信扫码配对;同时移除遗留的飞书配置/配对/网关 UI。
  • Pi 扩展兼容(P0–P2): 第三方 Pi 扩展可在 DeskWand 中完整运行——共享 ~/.pi/agent 配置与信任门控、包管理器 UI、RPC 模式 ExtensionUIContext 桥(27 个方法)、TUI 模态(虚拟终端 + ANSI 渲染)、以及映射到 DeskWand 会话的会话桥(waitForIdle / reload / newSession / fork / switchSession)。
  • Pi 包市场: 在设置页直接浏览、搜索并安装 6437 个pi-package 标签的 npm 包(扩展 / 技能 / 提示词 / 主题),双列市场 UI、安装状态联动、详情画廊与下载量展示。
  • 插件命令子系统: 斜杠菜单发现插件命令,拦截逻辑与 SDK 会话命令运行器保持单一事实来源,重复命令自动映射到 SDK 调用名(如 /plan:1),并带执行中/错误反馈。
  • ModelRuntime 迁移: Pi SDK 迁移至共享模型运行时与 provider 桥,内联 OAuth 模块,每会话模型设置持久化;pi-coding-agent 补丁升级至 0.82.1,新增 pi-subagents 0.14.3。
  • Provider 品牌图标: API 设置页为各模型提供商新增品牌图标。

🐛 修复

  • 每会话 API Key 隔离: 修复占位 Key 经跨提供商注册表回退后覆盖共享运行时,导致 DeepSeek 会话间歇性 401 的问题;每个 pi 会话现在拥有独立的 ModelRuntime 实例,并在会话关闭、驱逐与 OAuth 登出时统一清理。
  • 聊天自动跟随滚动重构: 以单一底部状态标志重写滚动逻辑,彻底解决流式输出时滚动抖动、触控板滚轮误杀跟随、回到底部按钮被阻塞等问题。
  • 安全存储降级: safeStorage 不可用时(如未签名的 macOS 构建)自动回退到 0600 权限的明文密钥文件并给出警告;已存在的加密密钥仍会报错,防止静默数据丢失。

♻️ 重构

  • 移除遗留远程网关后端: 删除旧的网关 Webhook 服务器、消息路由器与隧道管理器,同步精简 IPC 与 preload 暴露面。

🔧 工程

  • 版本号提升至 1.0.23;更新远程运行时与配对测试套件,新增兼容性与配对 IPC 测试,并适配配置存储测试。

English

✨ New Features

  • Channel Runtime: A brand-new remote channel runtime core covering lifecycle management, session-binding persistence, delivery receipts with outbox commits, crash recovery, attachment storage, interaction authorization, notification routing, and a policy engine — plus six channel adapters for Telegram, Discord, QQ, Slack, WeChat and Feishu, with Slack Socket Mode + signature verification and WeChat iLink QR login with media CDN.
  • Channel Catalog Redesign: Brand-new grid layout with brand logos, one instance per channel type, channel status indicators, credential editing and WeChat QR pairing; legacy Feishu config/pairing/gateway UI removed.
  • Pi Extension Compatibility (P0–P2): Third-party Pi extensions now run fully inside DeskWand — shared ~/.pi/agent config with project trust gating, package manager UI, an RPC-mode ExtensionUIContext bridge (27 methods), TUI modal with virtual terminal + ANSI rendering, and a session bridge mapping waitForIdle / reload / newSession / fork / switchSession onto DeskWand sessions.
  • Pi Package Marketplace: Browse, search and install 6,437 npm packages tagged pi-package (extensions / skills / prompts / themes) right from the settings tab, with a two-column market UI, installed-state linkage, preview galleries and download counts.
  • Plugin Command Subsystem: Slash-menu discoverable plugin commands with interception kept consistent with the SDK's session-bound command runner, duplicate commands auto-mapped to SDK invocation names (e.g. /plan:1), and immediate executing/error feedback.
  • ModelRuntime Migration: Pi SDK migrated onto a shared model runtime with a provider bridge, inlined OAuth modules, per-session model settings persistence; pi-coding-agent patch bumped to 0.82.1 with pi-subagents 0.14.3 added.
  • Provider Brand Icons: API settings now show brand icons for each model provider.

🐛 Bug Fixes

  • Per-Session API Key Isolation: Fixed intermittent 401 errors on DeepSeek sessions caused by a placeholder key overwriting the shared runtime via cross-provider registry fallback; each Pi session now gets its own ModelRuntime instance, cleaned up on session close, eviction and OAuth logout.
  • Chat Auto-Follow Rebuild: Rewrote auto-follow scrolling around a single bottom-state flag, eliminating stream-time scroll jitter, trackpad wheels killing follow, and a blocked scroll-to-bottom button.
  • Secure Storage Fallback: When safeStorage is unavailable (e.g. unsigned macOS builds), the key store now falls back to a 0600 plaintext key file with a visible warning; existing encrypted keys still throw to prevent silent data loss.

♻️ Refactoring

  • Legacy Remote Gateway Removed: Deleted the old gateway webhook server, message router and tunnel manager, with a slimmer IPC and preload surface.

🔧 Engineering

  • Version bumped to 1.0.23; remote runtime and pairing test suites updated with new compatibility and pairing IPC tests, plus config-store test adaptation.

204 files changed · +41372 −7183
Full Changelog: 1.0.22...1.0.23

1.0.22

Choose a tag to compare

@deskwand deskwand released this 23 Jul 15:29

🎉 1.0.22

中文

✨ 新功能

  • Goal 持久化恢复:目标(Goal)状态现在写入 SQLite 数据库,应用重启后自动恢复进行中的目标,不再丢失迭代进度和预算追踪数据。

  • Memory 按需检索与选择性后台学习:Memory 从"自动注入"切换为"按需检索"模式,配合策略化的系统提示词和受限制的工作区工具。新增选择性后台学习,避免无差别全量记忆造成上下文噪音。

  • 子代理思考强度配置:每个子代理现在可独立配置思考深度(off / low / medium / high / max),不再受限于全局默认值。

  • 内置 Review 子代理:新增 Review 内置代理,可对代码变更、设计方案、架构提案进行系统性审查。

  • 侧边栏分组展开状态持久化:项目分组和普通会话的展开/折叠状态现在保存到 localStorage,应用重启后保持原样。

  • 进程摘要增强:子代理操作、Memory 工具、Goal 工具现在统一归入进程摘要区块,不再散落为独立内容块。子代理任务摘要现在也展示在摘要中。

🐛 修复

  • 上下文压缩策略修复:将固定的 reserveTokens 默认值替换为基于窗口大小的分级百分比策略(<16K 禁用,16-64K 25%,64-256K 20%,≥256K 15%),解决大上下文窗口下过早触发压缩导致溢出的问题。

  • 初始窗口尺寸约束:限制初始窗口尺寸不超过屏幕可用区域(workAreaSize),避免窗口超出 macOS Dock 或菜单栏范围。

  • 子代理配置编辑修复:编辑代理时自动回填 Provider/Model 下拉框;setAgentModel IPC 桥接现在正确透传 thinking 参数。

  • 工具展示 UI 修复:超长工具组片段以省略号截断;工具标签移除 flex-1 使摘要正确对齐;get_subagent_result / steer_subagent 不再显示无意义的行数统计;子代理工具标签现在显示类型 + 描述。

  • 编译产物部署修复deployBuiltinAgents 源路径补全缺失的一层 dirname,修复打包后内置代理部署失败。

♻️ 重构

  • 子代理模型配置简化:移除全局默认子代理模型配置,改为每个代理独立设置(支持"跟随主模型"或自选模型),删除冗余 model-strategy.ts,简化 config-store 逻辑。

🎨 样式

  • ESLint 全面接入:新增 .eslintrc.js 配置(TypeScript + React Hooks 规则),修复 97 处 ESLint 错误覆盖 43 个文件,npm run lint 零错误通过。

English

✨ New Features

  • Goal Persistence & Recovery: Goal state is now written to SQLite, with automatic recovery of active goals on app restart — iteration progress and budget tracking survive crashes and restarts.

  • On-Demand Memory Retrieval & Selective Background Learning: Memory shifts from automatic injection to on-demand retrieval, backed by a policy-aware system prompt and workspace-bound tools. Selective background learning avoids indiscriminate memory ingestion and reduces context noise.

  • Per-Subagent Thinking Level: Each subagent can now independently configure its thinking depth (off / low / medium / high / max), decoupled from any global default.

  • Built-in Review Agent: New Review built-in agent for systematic review of code changes, design documents, and architectural proposals.

  • Sidebar Expansion State Persistence: Project group and session collapse/expand states are now persisted to localStorage, surviving app restarts.

  • Process Summary Enhancements: Subagent operations, Memory tools, and Goal tools are now grouped into process summary blocks instead of appearing as standalone content. Subagent task summaries are also rendered in the summary.

🐛 Bug Fixes

  • Context Compaction Strategy Fix: Replaced fixed reserveTokens defaults with tiered window-size-based percentages (<16K disabled, 16-64K 25%, 64-256K 20%, ≥256K 15%), preventing premature compaction-triggered overflows in large context windows.

  • Initial Window Size Constraint: Window dimensions are now capped to screen.workAreaSize, preventing the window from extending behind the macOS Dock or menu bar.

  • Subagent Config Edit Fix: Provider/Model dropdowns now auto-populate when editing an agent. The setAgentModel IPC bridge correctly forwards the thinking parameter.

  • Tool Display UI Fixes: Overflowing tool group fragments are now truncated with ellipsis. Removed flex-1 from tool labels so summaries align correctly. get_subagent_result / steer_subagent no longer show meaningless line counts. Subagent tool labels now show type + description.

  • Compiled Output Deployment Fix: deployBuiltinAgents source path now includes the missing dirname level, fixing built-in agent deployment failures in packaged builds.

♻️ Refactoring

  • Simplified Subagent Model Config: Removed global default subagent model configuration. Each agent now has independent model selection (follow main model or custom selection). Removed dead code (model-strategy.ts) and simplified config-store logic.

🎨 Style

  • ESLint Integration: Added .eslintrc.js with TypeScript + React Hooks rules. Fixed 97 ESLint errors across 43 files. npm run lint now passes with zero errors.

1.0.21

Choose a tag to compare

@deskwand deskwand released this 22 Jul 01:25

🎉 1.0.21

中文

✨ 新功能

  • 后台子智能体自动恢复对话:当后台运行的子智能体完成后,主会话将自动继续,无需人工干预。通过 ExtensionAPIpi.events 拦截子智能体生命周期事件,在子智能体结束时自动触发新一轮对话。同时新增了状态栏指示器:

    • ChatInputStatusBar 实时显示后台子智能体数量
    • 单个子智能体时展示类型 + 任务描述详情
    • 完成/已处理状态带 1 秒平滑过渡动画
      多智能体并行任务从此一气呵成,告别手动 "继续"。
  • 目标状态文字流光渐变动画:当目标处于活跃执行状态(如思考中、工作中)时,状态文本会呈现渐变流光(shimmer)效果,让运行状态更直观、更具视觉反馈。

🐛 修复

  • 跨会话上下文泄漏:修复了经验记忆(experience memory)被注入同一工作空间内所有会话的问题。这会导致磁盘清理等会话的历史记录意外泄漏到制作产品视频等无关会话中。现在新安装默认关闭 memoryEnabled,从根本上杜绝跨会话污染。
  • 消息导航定位偏移:修复了消息导航栏(MessageNavRail)点击定位不准的问题。用 scrollIntoView 替换了比率计算,直接定位到实际 DOM 元素位置,长短消息不再偏移。

📝 文档

  • README 完善:为 README 补充了项目介绍、核心特性及使用流程章节,帮助新用户快速了解 DeskWand。

🔧 工程

  • 版本号升级至 1.0.21。

English

✨ New Features

  • Background Subagent Auto-Continue: When a background subagent completes its task, the main session now automatically resumes — no manual "continue" clicks needed. Subagent lifecycle events are intercepted via ExtensionAPI's pi.events, triggering a new conversation turn when the subagent finishes. Plus, a new status bar indicator:

    • ChatInputStatusBar shows a live count of running background subagents
    • Single subagent displays its type + task description in detail
    • Smooth 1-second transition animation for done/completed states
      Multi-agent parallel workflows now complete without interruption.
  • Gradient Shimmer on Goal Status: The goal status text now features an animated gradient shimmer effect when in active execution states (thinking, working, etc.), making active progress instantly readable at a glance.

🐛 Bug Fixes

  • Cross-Session Context Leak: Fixed an issue where experience memory was injected into all sessions within the same workspace, causing conversation history from one session (e.g., disk cleanup) to leak into unrelated sessions (e.g., product video recording). memoryEnabled now defaults to false for new installations, eliminating cross-session pollution at the root.
  • Message Nav Rail Misalignment: Fixed inaccurate scroll positioning when clicking message navigation rail ticks. Replaced ratio-based calculation with scrollIntoView targeting the actual DOM element, ensuring correct alignment regardless of message length.

📝 Documentation

  • README Expansion: Added project introduction, key features, and workflow sections to the README, helping newcomers quickly understand what DeskWand offers.

🔧 Engineering

  • Version bump to 1.0.21.

1.0.20

Choose a tag to compare

@deskwand deskwand released this 21 Jul 07:55

🎉 1.0.20

中文

✨ 新功能

  • 子代理系统 (Subagent System):集成 @tintinweb/pi-subagents,让 DeskWand 支持自主子代理调度。全新的 Provider Bridge 架构打通多模型提供商的认证与调用链路,内置智能模型策略引擎,配合 子代理设置面板 和开箱即用的 Agent 配置,复杂任务自动拆解、并行执行。同步统一了中文术语体系——「子代理」与「代理」——UI 中不再混用多种译法。

  • 侧边栏分组增强:新增 紧凑分组模式置顶功能,可折叠长会话列表、将常用分组固定在顶部。运行中的分组图标会显示动态状态徽章,一眼辨出活跃任务。

  • 目标状态栏全面升级:执行耗时现在覆盖所有目标状态(非仅运行中),支持暂停等中间态的计时。目标摘要消息使用更直观的 「3 分 42 秒」「12.5K tokens」 等人性化可读格式。

  • ReviewPanel 国际化:代码审查面板全面接入 i18n,支持中英文切换,告别硬编码中文。

🐛 修复

  • Agent 工具卡片状态图标恢复:流程分组内 Agent 卡片的运行状态图标现在正确显示。
  • 暂停状态修复:补传 timeUsedSeconds 以正确记录暂停态耗时;暂停/继续按钮改为强调色(告别红色误读),并添加 ⏸/▶ 图标前缀加以区分。
  • 设置面板 MCP 标签页排序:MCP 标签页移至 API 标签之后,贴合操作直觉顺序。

📝 文档

  • README 新增用户手册链接,方便新用户快速上手。
  • 新增工作流 Demo 画廊,展示典型使用场景。

English

✨ New Features

  • Subagent System: Integrated @tintinweb/pi-subagents, enabling autonomous subagent orchestration in DeskWand. A new Provider Bridge architecture connects multi-provider auth and invocation pipelines, backed by an intelligent model strategy engine, a dedicated Subagent Settings panel, and out-of-the-box agent configurations. Complex tasks are now automatically decomposed and executed in parallel. Chinese terminology has also been standardized across the UI.

  • Sidebar Enhancements: Introduced compact groups and pinning — collapse long session lists and keep frequently used groups at the top. Running group icons now display a dynamic status badge, making active tasks instantly recognizable.

  • Goal Status Bar Overhaul: Elapsed time now tracks across all goal states (not just running), including paused and intermediate states. Goal summary messages now use human-readable formats like "3 min 42 sec" and "12.5K tokens".

  • ReviewPanel i18n: The code review panel is now fully internationalized with Chinese/English support.

🐛 Bug Fixes

  • Agent tool card status icon: Restored the running status icon on Agent cards within process groups.
  • Paused state fixes: Correctly passes timeUsedSeconds for goal-paused status tracking. The pause/resume button now uses an accent color instead of error red, with ⏸/▶ icon prefixes for clarity.
  • Settings MCP tab order: Moved the MCP tab after API in the settings panel for a more intuitive flow.

📝 Documentation

  • Added user manual links to README for easier onboarding.
  • Added a workflow demo gallery showcasing common use cases.

1.0.19

Choose a tag to compare

@deskwand deskwand released this 19 Jul 10:52

🎉 1.0.19

中文

✨ 新功能

  • 原生网络访问工具:新增网页搜索、内容抓取与缓存读取能力,支持多服务商自动回退、网页与文档解析,以及完整的双语配置界面。
  • 目标任务交互升级:状态栏现在可展示执行中、已暂停、已完成或受限等状态,并提供暂停、继续和清除操作;任务结束后还会生成清晰的总结卡片。
  • 模型设置统一入口:合并模型与思考强度控制,新增层叠菜单和悬停级联交互,让模型切换更加紧凑、顺畅。
  • 智能体指令反馈:状态栏会实时显示指令的发送中、已接收和发送失败状态,帮助用户确认操作是否成功送达。
  • 辅助功能元素查询:新增对 macOS 辅助功能接口和 Windows 用户界面自动化元素的查询能力,为跨平台图形界面操作提供更可靠的定位支持。
  • 制品变更统计:制品卡片现在会显示新增与删除的代码行数,并正确处理重复编辑、换行格式和空白内容。
  • 匿名遥测设置:新增匿名使用情况上报及退出开关,让用户可以自主控制数据分享。
  • 灵活的请求安全策略:网络访问配置新增服务端请求伪造防护开关,可根据受信任环境的实际需要调整内部地址访问限制。
  • Windows 终端适配:改进终端自动检测与注入逻辑,依次支持 Git Bash、MSYS2 Bash 和命令提示符,并随应用提供所需运行组件。
  • 统一动效体验:整理并统一界面动画策略,使弹窗、状态切换和交互反馈更加协调自然。

🐛 修复

  • 浏览器脚本返回值:修复脚本执行结果为未定义值时生成无效文本块并导致会话崩溃的问题。
  • 输入设置面板:修复选择模型或思考强度后面板意外关闭、菜单宽度溢出及垂直定位异常的问题。
  • 消息操作栏:没有可展示内容时不再显示无意义的时间戳与复制按钮。
  • 项目分组排序:保持项目分组顺序稳定,并允许在会话运行期间折叠分组。
  • 目标工具卡片:统一图标列和目标描述布局,移除重复状态信息与摘要内容。
  • 底部操作按钮:统一输入控制按钮的圆角样式,保持底部工具栏视觉一致。

🎨 样式

  • 消息导航轨道:降低闲置状态下导航刻度的宽度与不透明度,减少视觉干扰。
  • 制品卡片滚动:为较长内容增加最大高度和内部滚动,避免卡片过度占用界面空间。

♻️ 重构

  • 制品面板简化:移除工作区扫描、数量徽标及冗余状态,制品列表现在完全基于实际操作轨迹生成。
  • 模型菜单架构:采用统一的悬停级联模式重构模型设置菜单,简化底部输入栏结构。

🔧 工程

  • 版本更新:应用版本升级至 1.0.19。
  • 终端诊断:原生执行器初始化时会记录检测到的终端,便于排查跨平台运行问题。
  • 测试覆盖扩展:补充网络访问、辅助功能查询、目标状态、模型菜单、制品统计、动效策略和图像交互等场景的自动化测试。

English

✨ New Features

  • Native web access tools: Added web search, content fetching, and cached retrieval with provider fallbacks, webpage and document extraction, and fully localized settings.
  • Enhanced goal interactions: The status bar now represents active, paused, completed, blocked, and budget-limited states with pause, resume, and clear actions. Completed goals also produce concise summary cards.
  • Unified model settings: Model and thinking controls are now combined into a compact cascading menu with smoother hover-based navigation.
  • Agent steer feedback: The status bar now reports pending, accepted, and failed delivery states so users immediately know whether an instruction reached the agent.
  • Accessibility element queries: Added bounded macOS accessibility and Windows user interface automation queries for more reliable cross-platform graphical interface operations.
  • Artifact change statistics: Artifact cards now show added and removed line counts, including accurate handling of repeated edits, line endings, and blank content.
  • Anonymous telemetry controls: Added anonymous usage telemetry with an explicit opt-out setting.
  • Configurable request protection: Server-side request forgery protection can now be configured for trusted environments that require access to internal resources.
  • Improved Windows shell support: Shell detection now prioritizes Git Bash, MSYS2 Bash, and Command Prompt, with the required MSYS2 runtime bundled with the application.
  • Unified interface motion: Standardized animation policies across the application for more consistent transitions and interaction feedback.

🐛 Bug Fixes

  • Browser script results: Fixed a crash caused by undefined script evaluation results producing invalid text blocks.
  • Input settings panel: Fixed the panel closing after model or thinking selection, along with menu width overflow and vertical positioning issues.
  • Message action bar: Messages without displayable content no longer show unnecessary timestamps or copy controls.
  • Project group ordering: Project groups now retain stable ordering and can be collapsed while a session is running.
  • Goal tool cards: Aligned icon columns and inline objectives while removing duplicate status and summary content.
  • Bottom bar controls: Standardized chip corner rounding to match the other bottom bar buttons.

🎨 Style

  • Message navigation rail: Reduced idle tick width and opacity to make the navigation rail less visually prominent.
  • Scrollable artifact cards: Added a maximum height and internal scrolling for artifacts with lengthy content.

♻️ Refactoring

  • Simplified artifact panel: Removed workspace scanning, count badges, and redundant state so artifacts are now driven entirely by actual execution traces.
  • Model menu architecture: Reworked model settings around a reusable hover-cascade pattern and simplified the input bar structure.

🔧 Engineering

  • Version update: Bumped the application version to 1.0.19.
  • Shell diagnostics: The native executor now records the detected shell during initialization for easier cross-platform troubleshooting.
  • Expanded test coverage: Added automated coverage for web access, accessibility queries, goal states, model menus, artifact statistics, motion policies, and image interactions.

1.0.18

Choose a tag to compare

@deskwand deskwand released this 17 Jul 12:21

🎉 1.0.18

中文

✨ 新功能

  • Windows 智能 Shell 探测:NativeExecutor 现在能在 Windows 上自动选择最优 Shell,按优先级探测 Git Bash → busybox-w32 → CMD。新增统一的 Shell 解析器(shell-resolver.ts),让 macOS 和 Windows 共用同一套 Shell 选择逻辑,避免硬编码 /bin/bash

🐛 修复

  • 浏览器 evaluate 返回值崩溃:修复了 internal_browser_evaluate 工具在 JS 表达式返回 undefined 时生成无效内容块({"type":"text"} 缺少 text 字段),导致 pi-ai SDK 在 token 估算时崩溃的问题。现在未定义返回值统一输出 "(no return value)",并覆盖了所有 JS 值类型的回归测试。

  • Windows 应用图标嵌入:修复了 Windows exe 没有嵌入应用图标的问题。使用纯 JS 的 reseditafter-pack 钩子中替换 exe 图标,无需 wine 或 rcedit,同时将 icon.ico 纳入 extraResources 以确保运行时窗口图标正确加载。

  • pdfjs-dist 懒加载(Windows 崩溃修复):修复了 Windows 版本在 Electron 启动时因 pdfjs-dist 顶层代码调用 new DOMMatrix() 导致 ReferenceError 崩溃的问题。@napi-rs/canvas-win32-x64-msvc 缺失时 DOMMatrix 未被 polyfill。——将 import 改为动态 import(),仅在真正打开 PDF 时才加载 pdfjs-dist。

  • 文件预览弹窗被 CSS containment 裁剪:修复了 FilePreviewModal 在包含 transformfilter CSS 的容器内渲染时,position: fixed 被浏览器限定在容器内而非视口的 bug。改为通过 createPortal 挂载到 document.body,与 ArtifactPanel / ArtifactCard 保持一致。

🔧 工程

  • Linux .deb 构建支持:electron-builder 新增 deb 目标,支持生成 Debian/Ubuntu 安装包。
  • busybox.exe 打包:Windows 构建现在自动捆绑 busybox.exe,为无 Git Bash 环境提供基本的 Shell 能力。
  • Shell 日志:NativeExecutor 初始化时输出检测到的 Shell 路径,方便排查跨平台 Shell 问题。

English

✨ New Features

  • Windows smart shell detection: NativeExecutor now automatically picks the best available shell on Windows, probing in priority order: Git Bash → busybox-w32 → CMD. A unified shell-resolver.ts is shared across macOS and Windows, replacing hardcoded /bin/bash paths.

🐛 Bug Fixes

  • Browser evaluate crash on undefined: Fixed a bug where internal_browser_evaluate produced an invalid content block ({"type":"text"} with no text field) when the evaluated JS expression returned undefined, crashing the pi-ai SDK during token estimation. Undefined results now produce "(no return value)" with regression tests covering all JS value types.

  • Windows exe icon embedding: Fixed the Windows exe missing its embedded app icon. Uses pure-JS resedit in the after-pack hook to replace the exe icon resource — no wine or rcedit needed. Also added icon.ico to extraResources so the runtime window icon loads correctly.

  • pdfjs-dist lazy loading (Windows crash fix): Fixed a startup crash on Windows where pdfjs-dist's top-level new DOMMatrix() call threw ReferenceError because @napi-rs/canvas-win32-x64-msvc wasn't polyfilling it. Moved the import to a dynamic import() inside readPdf(), so pdfjs-dist is only loaded when a PDF is actually opened.

  • File preview modal clipping: Fixed FilePreviewModal being clipped when rendered inside a container with CSS transform or filter, which scoped position: fixed to the container instead of the viewport. Now renders via createPortal to document.body, matching the existing pattern in ArtifactPanel and ArtifactCard.

🔧 Engineering

  • Linux .deb target: Added deb target to electron-builder config for Debian/Ubuntu package generation.
  • busybox.exe bundled: Windows builds now bundle busybox.exe, providing basic shell capabilities when Git Bash is unavailable.
  • Shell logging: NativeExecutor logs the detected shell path on init for easier cross-platform debugging.

1.0.17

Choose a tag to compare

@deskwand deskwand released this 17 Jul 07:58

🎉 1.0.17

中文

✨ 新功能

  • 侧边栏会话按项目分组:侧边栏会话现在按工作目录自动分组,支持一键折叠/展开项目组,活动会话自动展开并滚动定位。超过 5 条的会话组默认折叠,点击展开更多时每次加载 5 条,避免长列表卡顿。

  • 消息导航条(MessageNavRail):新增垂直导航条,悬停消息气泡时显示对话轮次预览文本,点击可快速跳转到任意轮次。解决了长对话中来回翻找的痛点,预览卡片限制 5 行,防止遮挡内容。

  • 聊天中预览本地视频:聊天消息里的本地视频文件现在可以直接在对话中播放预览,支持 .mp4 / .mov / .webm 等常见格式,无需离开聊天界面。

  • 过程摘要紧凑行视图:工具执行的过程摘要(ProcessSummary)从列表样式改为紧凑的可展开行,单行显示工具名 + 状态,点击展开查看详情。设定了最大高度滚动容器,展开大量工具时不会撑爆页面。

  • 压缩上下文反馈:当 AI 自动压缩对话历史时,聊天界面现在会显示清晰的视觉反馈,告知用户压缩已发生及概要信息。

  • 冷启动上下文恢复:SessionManager 从纯内存存储升级为基于 JSONL 的文件持久化。应用重启后,历史对话的完整结构化上下文(含工具调用、图片、压缩摘要)可无损恢复,不再依赖文本注入的回退方案。旧会话无缝兼容。

  • 浏览器面板智能分屏:打开内置浏览器时,侧边栏自动折叠,浏览器面板默认占 50% 可用宽度。手动拖动分隔条退出自动模式,双击可重置为 50%。窗口缩放时自动保持 50% 比例。

  • 粘贴图片自动压缩:粘贴截图到输入框时,自动将图片缩放至最长边 1568px 并转为 JPEG(质量 0.85),超过 3.75MB 则迭代降低质量/尺寸,有效减少 token 消耗。GIF 和 SVG 原样透传。

  • 全局字重升级:整体字体粗细从 400 提升至 500,正文阅读更饱满清晰。

🐛 修复

  • 应用图标灰度修正:修复了应用图标在小尺寸 Dock 中偏紫的问题,图标核心改为 100% 灰度着色,保留 Alpha 通道以确保圆角透明效果正常。

  • macOS 首次退出响应:修复了 macOS 上首次点击退出时应用无反应的问题,现在一次即可正常退出。

  • 滚动可靠性修复:将 scrollIntoView 替换为 scrollTo,解决了平滑滚动动画期间自动跟随状态被意外关闭的竞态问题,以及 ResizeObserver 纠正被阻导致的"卡在半路"现象。

  • 工具块文本截断修复:移除了 BashToolBlock、FileToolBlock 和 ToolResultBlock 中的 JS 级别文本截断逻辑,全部交给 CSS 的 text-overflow: ellipsis 处理,避免截断时丢失关键信息。

  • 过程摘要布局修复:修复了展开视图因缺少 scrollbar-gutter 导致的布局抖动,并恢复了缩进间距。

  • 浏览器层级修复:确保内置浏览器面板始终渲染在模态对话框下方,避免遮挡登录、权限确认等弹窗。

  • 闲置会话固定底部:修复了非活跃会话的聊天区域不再因内容增减而跳动,保持在底部。

  • 导航条闪烁修复:将鼠标事件监听从附属 div 移动到导航条的祖先容器,彻底消除了 MessageNavRail 的闪烁问题。

  • 侧边栏修复与打磨:修复了运行中会话的状态指示器在缓冲期不进位的问题;移除了 5 分钟自动过期逻辑,✓ 标记保留到用户手动消除;修复了 ✓ 被时间戳遮盖无法点击的布局问题;改进搜索高亮的可见度。

  • 侧边栏视觉分隔:用 box-shadow 为侧边栏右侧添加内阴影分隔线,替换了原本在不同主题下表现不一致的背景色方案。

🎨 样式

  • 图标焕新:整体图标风格刷新,标题栏和侧边栏视觉整理更整齐统一。

  • 工具执行状态图标弱化:将工具执行块的运行/成功/错误状态图标从语义色(绿/蓝/红)统一改为 text-muted,降低视觉噪音。

  • 元信息精简:移除了 WebFetch、vision_describe、office_read 工具结果中多余的元数据摘要,以及 FileToolBlock 折叠态的文件行数和大小信息,减少信息冗余。

  • 斜杠菜单技能徽章美化:优化了技能选择器的标签样式。

  • 侧边栏按钮弱化:减少了溢出按钮的视觉强调,移除了新建对话按钮组的背景色和设置按钮的箭头图标。

♻️ 重构

  • 应用图标去紫化:图标和 Logo 的主题色从紫色全面替换为锌灰色(#71717A / #D4D4D8),将产品从 AI 紫色美学转向更中性的工具定位。

  • 产物卡片扁平化:将组合式产物卡片拆分为每个文件一张独立卡片,采用简化的两级排版(16px + 12px),移除组标签、底部操作栏和悬停按钮,增加视频帧缩略图。

  • 侧边栏统一化:合并「当前任务」和「全部会话」为单一扁平列表,去掉虚线分隔和项目组的展开/折叠按钮,改为内联状态指示器(● 运行中 / ✓ 已完成)。代码净减少 274 行。

  • 状态栏动画重构:将状态栏的旋转图标替换为渐变色文字动画,视觉更流畅轻量。

  • 图片灯箱全局化:将 ImageLightbox 的状态从多个组件的本地 useState 提升到 zustand 全局 store,统一渲染单实例,消除重复渲染,并适配多主题暗色模式。


English

✨ New Features

  • Sidebar sessions grouped by project: Sessions in the sidebar are now automatically grouped by working directory. Groups can be collapsed/expanded with one click, and the active session auto-expands and scrolls into view. Groups with more than 5 sessions are collapsed by default; expanding reveals 5 at a time to avoid lag.

  • Message Navigation Rail: A new vertical navigation strip appears when hovering over message bubbles, showing a turn preview and allowing quick jumps to any conversation turn. Preview cards are capped at 5 lines to avoid obscuring chat content. A major quality-of-life improvement for navigating long conversations.

  • Local video previews in chat: Local video files shared in chat can now be played inline with a video player supporting .mp4, .mov, .webm, and other common formats — no need to leave the conversation.

  • Compact ProcessSummary rows: Tool execution summaries now use compact expandable rows instead of a flat list, showing tool name + status on a single line with expand-to-detail. A max-height scroll container prevents the view from blowing up when many tools are expanded.

  • Compaction lifecycle feedback: The chat interface now shows a clear visual indicator when the AI automatically compacts conversation history, informing you that compaction occurred along with a summary.

  • Cold-start context recovery: SessionManager upgraded from in-memory storage to file-persisted JSONL. On app restart, full structured conversation context — including tool calls, images, and compaction summaries — is restored losslessly from disk, eliminating the degraded text-injection fallback. Legacy sessions remain fully compatible.

  • Smart browser panel split: Opening the built-in browser now auto-collapses the sidebar and splits the browser panel to 50% of available width. Manually dragging the divider exits auto mode; double-clicking the handle resets to 50%. The ratio is preserved on window resize while in auto mode.

  • Pasted image compression: Images pasted into the chat input are automatically scaled to a max longest edge of 1568px and converted to JPEG (quality 0.85). If the result still exceeds 3.75MB, iterative quality/scale reduction kicks in. GIF and SVG pass through unchanged. Reduces token costs significantly for screenshot-heavy workflows.

  • Heavier typography: Global font weight upgraded from 400 to 500 for bolder, more legible body text.

🐛 Bug Fixes

  • App icon grayscale correction: Fixed the app icon appearing purple-tinted at small Dock sizes. Icon core is now 100% grayscale with preserved alpha for proper rounded corner transparency.

  • macOS first quit fix: Fixed an issue where the app ignored the first quit request on macOS. Now exits reliably on the first attempt.

  • Scroll reliability: Replaced scrollIntoView with scrollTo, eliminating a race condition where smooth scroll animation would flip the auto-follow state, plus a ResizeObserver correction block that caused the chat to get stuck mid-scroll.

  • Tool block text truncation: Removed all JS-level text truncation from BashToolBlock, FileToolBlock, and ToolResultBlock headers, delegating entirely to CSS text-overflow: ellipsis to avoid critical information loss at truncation boundaries.

  • ProcessSummary layout: Fixed layout jitter in the expanded view caused by missing scrollbar-gutter, and restored proper indentation spacing.

  • Browser z-index fix: Ensured the built-in browser panel always renders behind modal dialogs (login, permissions, confirmations), preventing overlay conflicts.

  • Idle conversation pinning: Fixed idle conversations drifting on content changes. They now stay pinned to the bottom.

  • Nav rail flickering fix: Moved mouse event listeners from a sibling div to the nav rail's ancestor container, eliminating the MessageNavRail flickering entirely.

  • Sidebar polish: Fixed the running status indicator not entering the buffer state; removed the 5-minute auto-expiry — the ✓ now persists until dismissed by the user; fixed ✓ being unclickable due to timestamp overlay; improved search highlight visibility.

  • Sidebar visual separation: Added an inset box-shadow on the sidebar's right edge, replacing a background color scheme that rendered inconsistently across themes.

🎨 Style

  • Icon refresh: Overall icon style updated; title bar and sidebar visually tidied for a more cohesive look.

  • Muted tool status icons: Replaced semantic colors (green/blue/red) on tool execution status icons with text-muted across ToolUseBlock, ToolResultBlock, BashToolBlock, and FileToolBlock, reducing visual noise.

  • Metadata cleanup: Removed redundant metadata summaries from WebFetch, vision_describe, and office_read tool results, plus line count and file size from collapsed FileToolBlock headers, cutting information clutter.

  • Slash menu skill badges: Refined the visual styling of skill selector badges.

  • Sidebar button de-emphasis: Reduced the visual weight of the overflow button, removed the background color from the new-chat button group, and removed the chevron icon from the settings button.

♻️ Refactoring

  • Icon de-purpling: Icon and logo accent color changed from purple to zinc gray (#71717A / #D4D8D4), shifting the product identity from AI-purple aesthetic to a more neutral tool persona.

  • Flattened artifact cards: Replaced the grouped artifact card with one card per file, using a clean two-tier typography (16px + 12px). Removed group labels, bottom action bars, and hover-only buttons. Added video frame thumbnails.

  • Unified sidebar: Merged "Current Tasks" and "All Sessions" into a single flat list, removing dotted dividers and per-project expand/collapse buttons in favor of inline status indicators (● running / ✓ completed). Net reduction: 274 lines.

  • Status bar gradient animation: Replaced spinner icons in the status bar with a gradient text animation for a smoother, lighter visual presence.

  • Global ImageLightbox: Lifted lightbox state from per-component useState to a zustand global store. Renders a single instance at the App level, eliminating duplicate renderings and adapting to multi-theme dark mode.

1.0.16

Choose a tag to compare

@deskwand deskwand released this 12 Jul 09:27

🎉 1.0.16

中文

📄 内置文档阅读工具(重磅)

零配置即用——现在你的 AI 助手可以直接阅读 Office 和 PDF 文档,无需手动导出或转换。

  • office_read_xlsx:读取 Excel 表格,输出为 Markdown 表格,支持指定工作表。
  • office_read_docx:读取 Word 文档,保留标题、列表、表格和粗体/斜体格式,输出为 Markdown。
  • office_read_pptx:读取 PPT,纯 ZIP 解析器零依赖,支持提取演讲者备注。
  • office_read_pdf:读取 PDF,文本页直接提取,纯图片页(扫描件、图表)渲染为 PNG 后传给 vision_describe 识别。中文/东亚文字通过 CMap 字体映射完美支持。
  • 30 项测试覆盖所有工具和边界情况。

🍎 Apple Design 视觉升级

全面引入 Apple 设计语言,让交互更流畅、更有质感:

  • 毛玻璃遮罩:新增 .modal-overlay / -subtle / -heavy 三级毛玻璃叠加层(backdrop-filter: blur()),8 个组件统一切换。
  • 弹性动效:面板滑入使用 spring 曲线(cubic-bezier(0.34,1.56,0.64,1),350ms),带轻微回弹感。
  • 退出动画基础设施:新增 slide-out-right / fade-out 关键帧,支持元素退出时的平滑过渡。
  • 减少动效优化prefers-reduced-motion 模式下替换为渐隐而非完全禁用动画。
  • 消息动作栏:hover 时按钮带放大效果,交互反馈更细腻。

💬 消息交互优化

  • 消息时间戳:鼠标悬停在任意消息上会显示精确时间。
  • 统一复制操作栏:每条消息 hover 时出现一致的操作按钮组(复制等)。
  • Thinking 块处理:thinking 过滤逻辑扩展至全部消息(非仅当前轮次),历史会话中也能正确处理。
  • 追踪块简化:移除过程块的展开/折叠开关,追踪内容始终可见,减少一个不必要的切换状态。
  • 流式输出自由滚动:用户可以随时脱离自动跟随,不再被"拽"回底部。

🔔 应用更新通知

  • 紫色更新提示胶囊:应用自动下载更新后,侧边栏设置按钮旁显示带版本号的紫色提示胶囊。
  • 应用内确认弹窗:点击后在应用内弹出优雅的确认对话框(非系统弹窗),展示版本对比和重启按钮。

🛍️ 技能市场体验优化

  • 移至设置菜单:Skills Cloud 从侧边栏一级导航移入设置面板,界面更简洁。
  • MCP 独立管理:MCP 配置页从技能市场分离,作为设置面板的独立「Connectors」标签页。
  • 缓存持久化:市场列表、分类、详情三层缓存均写入 localStorage,TTL 大幅延长(市场 5min→2h,分类 10min→4h)。
  • 手动刷新:新增刷新按钮,一键拉取最新数据。
  • 账户切换自动清理:切换账号时自动清空旧缓存。

🔧 工程与细节

  • OAuth 模型富化:接入 pi-ai 的 getBuiltinModels(),为 Codex、Copilot、Anthropic 等 OAuth Provider 自动获取完整模型列表。
  • 任务槽排序:按「运行中 → 最近更新」排序,当前活跃任务始终在最前面。
  • 侧边栏标题区分:当前任务区域用强调色,全部会话区域用弱化色,视觉层次更清晰。
  • 邮箱登录降级:邮箱验证码登录改为链接式入口,为 Google OAuth 让路。
  • Artifact 文件预览修复:无 diff 变更时也能正常预览文件。
  • 版本升级至 1.0.16;清理内置 claude-api skill;修正会话状态变更时 updatedAt 更新。

English

📄 Built-in Document Readers (Major)

Zero config, instant access — your AI assistant can now read Office and PDF documents natively, no manual export or conversion needed.

  • office_read_xlsx: Read Excel spreadsheets, output as Markdown tables. Supports sheet selection.
  • office_read_docx: Read Word documents with headings, lists, tables, and bold/italic preserved — output as Markdown.
  • office_read_pptx: Read PowerPoint with a zero-dependency ZIP parser. Speaker notes included.
  • office_read_pdf: Read PDFs — text pages are extracted natively; image-only pages (scans, diagrams) are rendered to PNG and passed to vision_describe. Full Chinese/CJK support via CMap font mapping.
  • 30 tests covering all tools and edge cases.

🍎 Apple Design Visual Upgrade

A comprehensive infusion of Apple design language for smoother, more tactile interactions:

  • Frosted glass overlays: Three-tier modal overlay system (.modal-overlay / -subtle / -heavy) with backdrop-filter: blur() — 8 components unified.
  • Spring animations: Panel slide-ins use a spring curve (cubic-bezier(0.34,1.56,0.64,1), 350ms) with subtle bounce.
  • Exit animation infrastructure: New slide-out-right / fade-out keyframes for smooth element dismissal.
  • Reduced motion refinement: Animations now fade instead of disabling entirely under prefers-reduced-motion.
  • Message action bar: Buttons scale up on hover for refined feedback.

💬 Message Interaction Polish

  • Hover timestamp: Hover over any message to see its exact time.
  • Unified copy action bar: Consistent action button group appears on every message hover.
  • Thinking block handling: Filtering logic now covers all messages (not just the active turn) — works correctly in history.
  • Process trace simplified: Removed the expand/collapse toggle — process blocks are always visible, eliminating an unnecessary toggle state.
  • Streaming free scroll: Users can now scroll away during streaming without being pulled back to the bottom.

🔔 In-App Update Notifications

  • Purple update pill: A version-numbered purple badge appears next to Settings in the sidebar when an update is auto-downloaded.
  • In-app confirm dialog: Clicking it opens a polished in-app dialog (not a system dialog) showing version comparison and a restart button.

🛍️ Skill Marketplace Refinements

  • Moved to Settings: Skills Cloud moved from sidebar top-level to the Settings panel for a cleaner layout.
  • MCP as its own tab: MCP config split out from the marketplace into a dedicated "Connectors" tab in Settings.
  • Persistent cache: All three cache layers (market list, categories, detail) now persist to localStorage with much longer TTLs (market: 5min→2h, categories: 10min→4h).
  • Manual refresh button: Pull fresh data with one click.
  • Auto-clear on account switch: Old cache is purged automatically when switching accounts.

🔧 Engineering & Details

  • OAuth model enrichment: Uses pi-ai's getBuiltinModels() to auto-populate full model lists for Codex, Copilot, Anthropic, and other OAuth providers.
  • Task slot sorting: Running tasks sort first, then by most recently updated — active tasks always on top.
  • Sidebar header differentiation: Current tasks use accent color; all sessions use muted color for clear visual hierarchy.
  • Email login downgraded: Email verification login moved to a fallback link, making room for Google OAuth.
  • Artifact file preview fix: Files without diffs now preview correctly.
  • Version bump to 1.0.16; removed built-in claude-api skill; fixed updatedAt on session status change.