Skip to content

v2.2.0

Latest

Choose a tag to compare

@github-actions github-actions released this 01 Sep 14:33
Immutable release. Only release title and notes can be modified.

Release v2.2.0

fix(ci): macOS Intel 包改为在 ARM64 runner 上交叉编译
GitHub 的 macOS runner 全部是 ARM64(日志显示 macos-15 实为
macos-15-arm64 镜像),而 darwin Taskfile 用宿主机架构构建,
导致 ChYing-macos-amd64 实际一直是 arm64 产物(v2.1.3 起即如此)。

  • Intel job 从 macos-15 迁到 macos-latest,通过 ARCH=amd64 交叉编译
    (本地已验证:darwin:package ARCH=amd64 产出 x86_64 的 GUI/CLI/.app)
  • 构建命令统一附加 ARCH=${{ matrix.goarch }},让 matrix 架构真正生效
    (此前各 Taskfile 的 env 覆盖了 GOARCH 环境变量)
  • macos-15 镜像上 wails3 generate bindings 会触发 go 子进程创建
    工作目录 EINVAL 报错;macos-latest/Linux/Windows/本地均正常,弃用该镜像

Changes

  • fix(ci): macOS Intel 包改为在 ARM64 runner 上交叉编译
    GitHub 的 macOS runner 全部是 ARM64(日志显示 macos-15 实为
    macos-15-arm64 镜像),而 darwin Taskfile 用宿主机架构构建,
    导致 ChYing-macos-amd64 实际一直是 arm64 产物(v2.1.3 起即如此)。

    • Intel job 从 macos-15 迁到 macos-latest,通过 ARCH=amd64 交叉编译
      (本地已验证:darwin:package ARCH=amd64 产出 x86_64 的 GUI/CLI/.app)
    • 构建命令统一附加 ARCH=${{ matrix.goarch }},让 matrix 架构真正生效
      (此前各 Taskfile 的 env 覆盖了 GOARCH 环境变量)
    • macos-15 镜像上 wails3 generate bindings 会触发 go 子进程创建
      工作目录 EINVAL 报错;macos-latest/Linux/Windows/本地均正常,弃用该镜像
  • fix(build): 修复 CI 发布失败,wails 迁移到 v3.0.0-beta.16 固定版本
    wails 迁移(修复 #12):

    • 移除 go.mod 中 wails/v3 => ../wails/v3 的 replace,改为固定依赖
      v3.0.0-beta.16(已发布到 Go proxy),不再需要把 wails 克隆到同级目录
    • 升级 go-json-experiment/json(Go 1.27 默认启用 jsonv2 后旧版编译失败),
      go 指令 1.25.12 -> 1.26,CI Go 版本 1.25 -> 1.27,Dockerfile 同步

    CI 修复:

    • Install Wails 改为 go install @v3.0.0-beta.16,不再克隆 wails 仓库
      (v3-alpha 分支已删除导致 pathspec 报错,master 是移动目标不可复现)
    • Linux 依赖改为 libgtk-4-dev + libwebkitgtk-6.0-dev
      (wails v3 beta 起 Linux 默认 GTK4,旧 GTK3 包导致 pkg-config 失败)
    • 补全 pnpm-workspace.yaml 中 esbuild allowBuilds 占位值,
      修复 pnpm 11 全新安装时 ERR_PNPM_IGNORED_BUILDS 报错

    依赖安全升级(Dependabot 告警):

    • lib/proxify: x/crypto v0.54.0、x/net v0.57.0、grpc v1.82.1、
      circl v1.6.3、utls v1.8.2
    • 前端: postcss 8.5.26、js-yaml 4.3.2、nanoid 3.3.18
  • fix(ci): wails v3-alpha 分支已删除,改用 master 分支安装 wails3
    wails v3 已并入 master 分支(当前 v3.0.0-beta.16),CI 中
    git checkout v3-alpha 报 pathspec 错误导致构建失败。
    同步更新 CLAUDE/AGENTS/DEV 文档中的过时说明。

  • feat(ci): 发布产物新增 chying-cli 纯命令行版本

    • build.yml matrix 新增 cli_name,Prepare 步骤显式拷贝 chying-cli,
      发布 ChYing-cli-{windows,linux,macos}-{amd64,arm64} 纯 CLI 产物
    • windows/darwin 构建任务补齐 chying-cli 产出,与 linux 保持一致;
      darwin 同步补齐 universal lipo,windows 在 syso 清理后构建,
      避免 GUI manifest/图标被链接进 CLI
    • 修复 linux 发布时 bin/ 下多文件导致 cp bin/* 失败的问题
    • 版本号 2.1.4 -> 2.2.0
  • update

  • feat(mcp): 新增 pin_to_repeater 钉选漏洞证据到 Repeater

    • RepeaterTab 加 Note 字段并打通持久化链路(DB→prop→emit→落库),
      此前 NotesPanel 内容为组件内存态、刷新即丢
    • 新增 pin_to_repeater MCP 工具:标题/note/流量包钉到 Repeater 标签栏,
      confirmed 漏洞标红入「Confirmed」分组;通过 mcpserver.EmitEvent 事件桥
      (app_initialization 注入 wailsApp.Event.Emit)通知前端建组加 tab
    • 修复全量替换 save 在 pin 事件先于 RepeaterView 挂载时覆盖旧 tab 的问题:
      加 repeaterLoadedFromDb flag,首次挂载加载 DB 并合并 in-memory pin tab
    • Notes 按钮在有内容且未激活时高亮(图标变主题色 + 右上角圆点)
  • feat(chyingctl): 支持依附当前已就绪项目
    open 省略 --project 时不再启动或切换项目,只在 status=ready 时返回当前
    project 与 mcp_url(attachReadyProject);同步更新 SKILL.md 与
    agent-desktop-launch.md 的依附/打开两条路径说明,补 attach 路径测试。

  • chore(deps): 升级 imroc/req/v3 + quic-go 修复 GO-2026-5676(5 -> 4)

    • imroc/req/v3 v3.57.0 -> v3.59.0(要求 quic-go v0.60.0)
    • quic-go v0.59.0 -> v0.60.0,移除 quic-go replace 指令
      原 replace 因 imroc/req v3.57.0 不兼容 quic-go v0.59+ 而锁 v0.57.1,
      升级 req 后版本冲突消除,可使用已修复版本
    • ChYing 不直接 import quic-go(仅经 req/v3 HTTP/3 间接使用),
      oast 等直接用 req 的包编译通过,API 兼容

    验证:CGO_ENABLED=1 go build ./... + go test 通过;漏洞数 5 -> 4

  • chore(deps): 迁移 golang-jwt/jwt v3 -> v5(修复 GO-2025-3553)
    v3 已弃用且无修复版本,迁移到 v5.3.1。

    • pkg/Jie/scan/gadget/jwt/jwt.go、pkg/coder/twj/twj.go:import 改 v5,
      StandardClaims -> RegisteredClaims(v5 已移除 StandardClaims)
    • JSON 输出基本一致(audience 单值时由 array 变 string,不影响功能)
    • 漏洞数:6 -> 5

    验证:CGO_ENABLED=1 go build ./... + go test 通过

  • chore(deps): 升级依赖修复安全漏洞(54 -> 6)

    • golang.org/x/crypto v0.50.0 -> v0.54.0(修复多个 critical/high SSH 相关漏洞)
    • google.golang.org/grpc v1.78.0 -> v1.82.1(修复 critical: auth bypass)
    • golang.org/x/net v0.53.0 -> v0.57.0(修复 medium: HTML parser DoS)
    • github.com/buger/jsonparser v1.1.1 -> v1.2.0(修复 high: DoS)
    • github.com/yuin/goldmark v1.7.16 -> v1.8.4
    • Go 工具链 1.25.0 -> 1.25.12(修复 39 个 stdlib 漏洞)
    • 传递升级:x/text, x/mod, x/oauth2, x/sync, x/sys, x/term, x/tools, genproto
    • CI: build.yml go-version 1.23 -> 1.25(对齐 go.mod 要求)

    剩余 6 个暂未处理:x/crypto 新公告(上游无修复)、quic-go(replace 版本冲突)、
    archiver/rardecode(已弃用间接依赖)、jwt v3(待迁移 v5)

    验证:CGO_ENABLED=1 go build ./... + go test 通过

  • feat: 桌面项目启动器、MCP 会话归因重构与 pnpm 迁移

    • 桌面:新增 pkg/desktop 运行时与 project_runtime,支持 agent 就绪态项目启动并上报 MCP URL
    • CLI:新增 cmd/chyingctl 入口
    • MCP 会话归因重构:移除 X-ChYing-Session 请求头方案,改为 project_id + targets 归因;
      HTTPHistory 去除 SessionID 字段;新增 GetSessionHistory/GetSessionVulnerabilities;
      扫描会话持久化到 DB(MCPScanSession 模型)
    • MCP 工具:调整 repeater/intruder/history/session/vuln
    • 构建打包:补全 Windows(NSIS/MSIX)、Linux(nfpm/AppImage)、macOS(DMG) 配置与图标
    • pnpm 迁移:npm -> pnpm(lockfile、Taskfile、CI、文档)
    • 前端:样式重构、ProjectSelection 适配、HttpTrafficTable 泛型类型修复
    • 清理:移除 ui-ux-pro-max skill 与 cli-mcp-passive-scanner 设计文档
  • update

  • fix(mcp): fix session race condition, clean up dead params, add session_id to traffic_by_host

    • ConfigureSession/CloseSession: copy-on-write to avoid mutating shared pointers
    • Remove unused session_id params from get_traffic_detail and query_by_dsl
    • Add session_id param to get_traffic_by_host for API consistency

    Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • feat: add CLI entry point, Docker deployment files
    Add headless CLI binary (chying-cli) with cobra commands for running
    the passive proxy + MCP server without the GUI. Includes Dockerfile
    and docker-compose for containerized deployment.

    Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • feat(mcp): add session_id filter to existing tools, register new tools, configurable bind address
    Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • feat(mcp): add session manager, session tools, and realtime scan status tools
    Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • feat: add session_id field across DB models, proxy callbacks, and event pipeline
    Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

  • docs: add CLI + MCP passive scanner design spec and implementation plan

  • chore: 更新版本号到 v2.1.3
    Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

macOS Installation

If macOS shows "chying is damaged and can't be opened", run the following command in Terminal:

sudo xattr -cr /Applications/chying.app

Full Changelog: v2.1.3...v2.2.0