Commit Graph

6 Commits

  • feat: 定位模型重做、聚焦短显、托盘交互与 host spawn 修复
    - 定位改为 水平(左/中/右) × 垂直(上/中/下) + 边缘留白,取代四角枚举
    - 完成类通知在目标窗口已聚焦时用更短停留(FocusedDurationSeconds)
    - 托盘左键单击直接打开设置,右键菜单仅保留退出
    - 修复 host 拉起用 UseShellExecute=true,脱离钩子 stdout 管道,避免 Claude 卡在 running stop hook
  • feat: 提示音、调用方图标与消息清洗(P2)
    - 提示音:winmm 从内存异步播放打包 wav,可在设置开关,带防连环音
    - 调用方图标:进程树上溯识别编辑器/终端,ExtractIconEx + GDI 转 Avalonia 位图显示
    - 进程树跳过 shell/运行时,取不到图标回退默认 Claude 图标
    - 消息清洗:折叠换行/多余空白为单行,避免撑乱 toast 布局
    - 全程 LibraryImport/源生成,AOT 友好
  • feat: WT 切标签、工具窗口化与非阻塞投递
    - P1b: 点击通知切回 Windows Terminal 原标签(源生成 COM UIAutomation,AOT 友好)
    - Toast 设为工具窗口(WS_EX_TOOLWINDOW),从任务栏与 Alt+Tab 隐藏
    - 投递改为落盘队列 spool + FileSystemWatcher,CLI 毫秒级返回不阻塞 Claude Code
    - 移除命名管道(PipeServer/PipeClient/PipeMessage),新增 NotificationSpool/SpoolWatcher
    - NativeAOT 发布配置 + scripts/build.bat(vcvars 自动配置 MSVC 工具链)
    - .gitattributes 保证 .bat 用 CRLF
  • feat: 点击 toast 激活原窗口(P1a)
    - WindowActivator:ALT 模拟 + AttachThreadInput + SetForegroundWindow 组合技抢前台
    - save 抓的前台句柄经 PipeMessage/ToastRequest 一路带到 toast
    - 点击 toast 主体激活目标窗口后再关闭
    - Win32 互操作用 LibraryImport(AOT 友好)
    - 新增 acttest 自测子命令
  • feat: 打通 hook CLI 与命名管道链路(P0)
    - 子命令 save/notify/input/cleanup:纯互操作 IPC,不加载 Avalonia
    - 命名管道:瘦客户端投递请求,Host 未运行时自动拉起并重试
    - 每会话状态文件 %TEMP%\claude-notify-{id}.json,保存前台窗口与 prompt
    - Host 单例互斥量 + 管道监听,收到请求切回 UI 线程弹窗
    - stdin 改为 UTF-8 原始字节读取,修复中文乱码与读不到的问题
    - 符合 Claude Code 插件规范的 .claude-plugin 与 hooks 结构
  • feat: Avalonia 常驻通知应用(保活 + 弹窗 + 跨桌面)
    - 常驻 Host:无主窗口保活 + 系统托盘菜单
    - Toast 弹窗:堆叠 / 自动消失 / 悬停暂停 / 淡入淡出 / 点击关闭
    - Sticky 常驻弹窗与 InputMode 边框配色
    - 跨虚拟桌面显示(源生成 COM PinView,AOT 友好)
    - 设置窗口(Semi + Ursa)+ JSON 源生成持久化
    - AOT 准备:IsAotCompatible 0 警告