Skip to content

Releases: Sacilave/antigravity-proxy

Release list

v2.5

Choose a tag to compare

@github-actions github-actions released this 16 Oct 09:24

✨ 新功能 (Features)

  • launcher: add dedicated proxy entry, config protection, and resilience tests (v2.5) (45f9275)
    • 入口解耦:在桌面与开始菜单创建独立命名的代理恢复入口(如「Antigravity (代理)」),避免 Squirrel 更新器重写官方同名快捷方式导致恢复失效
    • 快捷方式所有权保护:通过 COM 组件校验 TargetPath,严禁误删官方原生快捷方式,支持两者安全并存
    • 多语言平滑迁移:支持中文/英文/俄文三种语言快捷方式的无痕互迁,清理历史旧版本孤儿死链
    • 配置保护:启动器对已存在的 config.json 增加运行态保护,绝不抹除用户自定义端口(如 10808 等)
    • 自动化容灾测试:新增 test-resilience.ps1 全真模拟更新器清空与重置场景,7 项严苛用例 100% 通过
    • 文档与版本:三语 README 同步更新机制说明,版本号递增至 v2.5

🐛 Bug 修复 (Bug Fixes)

  • launcher: support cli release directory and prevent option P crash

♻️ 代码重构 (Refactoring)

  • launcher: unify setup entry to setup.bat with tri-lingual and cli-ide adaptation
    • Unify multiple bat scripts into single setup.bat (Windows) and setup.sh (Linux) in root
    • Add full tri-lingual i18n support (zh/en/ru) with auto-detection and runtime switching
    • Add auto-adaptation between Desktop IDE and Console CLI packages
    • Sync build, packaging, and compatibility test assertions
    • Refine Method A documentation across README.md, README_EN.md, and README_RU.md

📝 文档更新 (Documentation)

  • sync launcher guide in build.ps1 usageDoc

v2.4.99

Choose a tag to compare

@github-actions github-actions released this 30 Sep 10:28

✨ 新功能 (Features)

  • launcher: add cross-platform auto-healing launcher, shortcut installer and release updater
  • proxy: 增强DLL加载卸载日志记录和进程创建诊断
    • 新增docs/oauth-detach-diagnosis.md,记录OAuth回跳与DLL卸载日志诊断流程
    • 创建scripts/collect-oauth-diagnostics.ps1诊断采集脚本,支持时间窗筛选和敏感信息遮蔽
    • 脚本功能包括:收集DLL版本、协议注册、进程信息、IDE日志等证据
    • 提供双快照回放建议和证据判定边界说明
    • 在DllMain中区分协议启动和普通启动,记录启动类型信息
    • 根据lpvReserved参数区分进程终止detach和动态卸载,分别记录不同日志
    • 添加FormatHexDword、BuildCreateProcessDiagnosticContext等诊断工具函数
    • 替换ResumeThread调用为ResumeCreatedProcessThread,记录线程恢复结果
    • feat(hooks): 改进CreateProcess钩子的进程创建日志记录
    • 在CreateProcessA/W钩子中使用统一的诊断上下文格式化进程创建信息
    • 避免将完整命令行中的URL或令牌写入日志,仅记录安全的进程元数据
    • 更新注入成功/失败日志,使用更精确的诊断上下文描述
    • 保持原有恢复时机,增加ResumeThread结果的诊断记录
  • cli: add dbghelp shim for agy injection
  • config-web: improve layout and routing hints
  • routing: add rule-based routing and web config tool
  • hooks: 添加代理连接绕过机制和进程注入过滤
    • 在Config类中添加targetProcesses字段,支持指定目标进程列表
    • 实现ShouldInject方法,支持大小写不敏感的进程名匹配
    • 支持完全匹配和不带扩展名匹配两种方式
    • 在配置加载时读取target_processes数组配置项
    • 添加本地回环地址绕过,避免代理死循环
    • 添加代理端口自连接绕过,防止代理自连接
    • 在CreateProcessW钩子中实现进程名提取和过滤检查
    • 只对目标进程列表中的进程进行DLL注入
    • 非目标进程跳过注入并正常启动
    • build(version): 为所有构建配置添加UTF-8编译选项
    • 在Debug、Release、MinSizeRel、RelWithDebInfo配置中
    • 添加/utf-8编译选项以支持中文字符
    • docs(config): 更新配置文件格式和编译时间信息
    • 重新排列配置文件字段顺序
    • 更新编译时间戳到最新构建时间
    • 保持配置文件结构的完整性和可读性

🐛 Bug 修复 (Bug Fixes)

  • launcher: support cli release directory and prevent option P crash
  • scope Winsock/IOCP hooks to network subprocesses only
    • Antigravity's Electron main process and its identically-named child
    • processes load version.dll via DLL search order. The original proxy
    • installed full Winsock/IOCP hooks everywhere, which broke the loopback
    • HTTPS/gRPC connection between the UI and the language server
    • ('tls: unknown certificate', 'Lost connection to the language server').
    • Injector mode:
    • Antigravity.exe / Antigravity IDE.exe: only CreateProcessA/W hooks
    • (needed to keep injecting child processes), no network hooks.
    • language_server.exe / node.exe: full network hooks -> SOCKS5 proxy.
    • Adds IsAntigravityHostProcessName() classification, Install(bool)
    • hook scoping, LLVM-MinGW .def link compat and static CRT options.
  • cli: load proxy hooks synchronously in dbghelp shim
  • injection: align child process injection logs with actual outcome
    • Return detailed failure reasons from InjectDll for API, wait, and exit-code failures
    • Use the returned reason in CreateProcessW/A failure logs and keep success logs on true inject only
    • Improve troubleshooting accuracy without changing injection control flow

    • fix(injection): 校准子进程注入日志与真实结果一致
    • 在 InjectDll 中返回 API、等待状态与退出码等失败原因
    • 在 CreateProcessW/A 失败日志中输出具体原因,仅在真实成功时记录成功日志
    • 不改变注入控制流程,只提升排障可观测性
  • build: harden cache-mismatch recovery for PowerShell 5.1
  • build: auto-recover from CMake cache path mismatch
    • Detect CMake cache/source path mismatch during configure and retry once after cleaning build directory
    • Prevent build failure when repository is moved to a different absolute path
    • Keep normal configure/build flow unchanged for clean workspaces
    • fix(build): 自动恢复 CMake 缓存路径不匹配问题
    • 在配置阶段检测 CMake 缓存/源码路径不匹配并清理后重试一次
    • 解决仓库迁移到新绝对路径后构建直接失败的问题
    • 对干净工作区保持原有配置和编译流程不变
  • hooks: 修复 Windows SDK 弃用警告
    • 移除路由规则中不支持的 ports 配置项
    • 添加已知问题说明:FakeIP 与 direct 规则中同时使用 domains 和 ports 的历史问题
    • 补充 IPv6 模式优先级说明文档
    • 解决旧版本中 FakeIP + direct + domains + ports 组合使用时的连接失败问题
    • 将 WSAPROTOCOL_INFOA 替换为 WSAPROTOCOL_INFOW 避免 C4996 警告
    • 相应更新 getsockopt 调用使用 SO_PROTOCOL_INFOW 常量
  • README: 更新文档中的配置示例和已知问题说明
    • 添加BUILD_TESTS选项用于构建单元测试,默认关闭,包含IPv6解析器的测试用例
    • 移除了配置示例中的ports字段,新增已知问题章节,说明FakeIP与
    • direct规则中domains和ports同时配置的问题,并补充IPv6模式的优先级说明
  • hooks: 优化UDP连接阻断错误码和日志信息
    • 新增 child_injection_mode 配置选项,支持 "filtered"(默认) 和 "inherit" 两种模式
    • 新增 child_injection_exclude 排除列表,支持大小写不敏感的子串匹配
    • 实现 IsChildInjectionExcluded 和 ShouldInjectChildProcess 方法
    • 添加 ToLowerCopy 工具函数用于字符串大小写转换
    • 更新 CreateProcess 钩子以支持新的注入逻辑
    • 将UDP阻断错误码从 WSAENETUNREACH 改为 WSAEACCES,更准确反映策略阻断性质
    • 更新UDP阻断日志信息,明确说明WSA错误码为策略阻断返回而非真实网络故障
    • 改进CreateProcess钩子中的日志输出,区分过滤模式和排除列表导致的跳过情况
  • config: 调整默认配置提升调试体验
    • 新增CreateProcessA函数钩子,补全ANSI路径支持,降低子进程漏注入概率
    • 改进进程注入逻辑,添加注入结果验证机制,区分成功/失败状态
    • 优化远程线程等待逻辑,避免UAF(Use After Free)安全问题
    • 添加详细的注入成功/失败日志记录,便于故障排查
    • 将默认日志级别从info调整为debug,便于排障时获得更直观的信息
    • 移除端口白名单限制,默认允许所有端口走代理,解决QUIC/HTTP3相关问题
    • 更新配置文档中的默认值描述,保持一致性
    • docs: 更新配置说明文档
    • 同步更新build.ps1中的配置注释和表格说明
    • 补充UDP阻断日志的详细说明,包括QUIC重试相关的注意事项
    • chore(memory): 整理记忆文件结构并迁移数据
    • 将原有context.md、patterns.md、preferences.md、rules.md移至backup目录
    • 创建memories.json存储结构化记忆数据,包含规则、偏好和上下文信息
    • 移除旧版metadata.json文件
  • routing: remove duplicate method declarations
  • fakeip: 实现跨进程共享映射解决FakeIP多进程场景问题
    • 添加UpdateConnectExContext函数,在ConnectEx完成后更新socket连接上下文,
    • 避免send操作报WSAENOTCONN错误
    • 在HandleConnectExCompletion和DetourConnectEx中集成连接状态检查
    • 修复IOCP状态检查缺失问题,失败事件直接清理上下文,成功事件才执行握手
    • 添加共享内存机制支持跨进程FakeIP映射,使用命名文件映射和互斥锁
    • 实现SharedPut和SharedGet方法用于进程间映射数据同步
    • 在GetDomain未命中时从共享映射回填本地缓存
    • 解决"解析在A进程、连接在B进程"导致的FakeIP未命中问题
    • docs: 更新技术债务文档和优化规格文档
    • 添加TD-008和TD-009修复记录,标记为已修复状态
    • 更新fakeip-optimization-spec.md中的修复计划和风险点分析
    • 调整修复优先级建议,反映最新的技术债务状况
  • fakeip: 修复IsFakeIP潜在data race和边界网段检查
    • 修复了GetQueuedCompletionStatusEx和GetQueuedCompletionStatus函数中
    • 未检查OVERLAPPED_ENTRY.Internal状态码的问题。现在会检查IOCP完成
    • 状态,只有STATUS_SUCCESS=0时才执行握手,连接失败时清理上下文并
    • 跳过,避免影响整个事件批次。
    • 同时在DoProxyHandshake中添加socket连接状态预检,使用
    • getpeername()确保socket已成功连接到代理服务器。
    • 为IsFakeIP函数添加互斥锁保护,避免读取m_mask和m_baseIp时的
    • data race问题。同时增加边界检查,当CIDR网段过小时(<=2)给出警告。
  • fakeip: 修复FakeIP初始化的线程安全问题
    • 实现基于CatalogEntryId的ConnectEx trampoline映射管理,解决多Provider
    • 环境下不同Provider返回不同函数指针的问题
    • 添加Socket类型检测,仅对TCP(SOCK_STREAM)连接应用代理逻辑,避免
    • 误影响UDP/QUIC等协议
    • 优化IPv6 v4-mapped地址处理,确保FakeIP回填的兼容性
    • 改进WSAIoctl中ConnectEx hook的安装逻辑,支持按Provider去重安装
    • 使用std::call_once实现线程安全的延迟初始化,避免多线程环境下
    • 的数据竞争
    • 优化IP地址分配逻辑,提升初始化时机的可靠性
    • chore(hooks): 增强运行时配置日志记录
    • 添加一次性运行时配置摘要输出,便于现场问题排查
    • 改进FakeIP命中但映射缺失时的警告日志
    • 优化ConnectEx completion处理中的字节数统计
  • build: 更新构建配置中的进程名称匹配规则
    • 添加SockaddrToString函数将sockaddr转换为可读地址格式,便于日志排
    • 查
    • 实现强制IPv4模式,阻止IPv6直连以避免绕过代理
    • 在非IPv4连接时记录详细地址信息到日志
    • 改进ConnectEx异步操作的错误处理机制
    • 修复GetQueuedCompletionStatusEx中可能的空指针访问问题
    • 优化握手失败时的错误码设置和上下文清理逻辑
    • 移除language_server_windows.exe中的.exe扩展名,确保进程匹配正
    • 确工作
    • chore(metadata): 更新项目元数据时间戳
  • hooks: 优化FakeIP功能避免IP字面量冲突
    • 添加了PID和TID信息到所有日志消息中,以便在多进程/多线程环境下更好地定位日志来源。
    • 引入了Windows API支持以获取进程和线程ID。
    • 修改了getaddrinfo钩子实现,添加了IP字面量检测,确保纯IP地址不走FakeIP逻辑,
    • 避免与回环绕过逻辑冲突并保持原始解析语义。移除了手动构造ADDRINFO结构的复杂实现,
    • 改为使用原始函数处理FakeIP地址字符串。
    • refactor(hooks): 减少非目标进程的日志输出
    • 添加了跳过注入进程的去重记录机制,避免相同进程名的日志重复输出,
    • 仅在首次遇到时记录跳过注入的进程信息。
    • locale(config): 本地化配置错误消息
    • 将配置文件加载相关的错误和成功消息从英文翻译为中文,
    • 提升用户体验的一致性。
    • docs(rules): 更新开发规范强调禁止生成文档
    • 在开发规范中明确强调禁止生成总结性Markdown/README文档、
    • 测试脚本/测试代码,以及禁止编译运行操作。
  • socks5: 改进SOCKS5认证错误处理和日志记录
    • 新增HTTP CONNECT代理协议支持,扩展代理连接功能。
    • 添加HttpConnect.hpp头文件,实现HTTP CONNECT客户端类
    • 在Hooks.cpp中集成HTTP CONNECT握手逻辑
    • 支持SOCKS5和HTTP CONNECT两种代理协议类型
    • 优化SOCKS5错误处理和日志记录
    • HTTP CONNECT协议流程:
    • 客户端发送CONNECT请求建立隧道
    • 代理服务器响应200 Connection Established
    • 后续数据直接转发形成TCP隧道
    • 增强SOCKS5认证失败时的错误信息输出
    • 添加WSA错误码和响应详情记录
    • 提供更详细的调试信息用于问题排查
  • 修复编译错误 add:新增编译脚本

⚡ 性能优化 (Performance)

  • hooks: 优化 socket 类型判断和路由日志输出
    • 添加了 -Verbose 参数用于输出详细的编译日志,-SkipTests 参数用于在 CI
    • 场景中显式跳过测试步骤。更新了 PowerShell 脚本的 CmdletBinding 支持,
    • 改进了构建过程中的详细信息显示,并在 README.md 中补充了相关使用说明。
    • 统一 socket 类型判定入口,避免热路径重复 getsockopt 调用。
    • 实现路由决策日志限流机制,避免高并发场景下大量日志 I/O 影响性能,
    • 超过阈值后仅在调试级别输出日志。
    • refactor(hooks): 重构 UDP 代理上下文创建逻辑
    • 将阻塞 I/O 操作移到互斥锁外部执行,降低 g_udpProxyMtx 竞争。
    • 优化并发场景下的上下文初始化处理,避免资源浪费。
    • feat(network): 增强代理握手超时预算管理
    • 握手预算采用 connect/send/recv 的总和,避免多阶段各自完整超时导致
    • 整体阻塞过长。添加默认预算值 5000ms 保障超时控制。
    • docs: 更新开发文档和待改进项状态
    • 更新 DEVELOPMENT.md 中待改进项的完成状态,将已完成项目标记为 [x]。
    • 更新配置工具相关文档说明,添加自动漂移检测说明注释。
    • 调整 DNS 优化方案文档,移除已废弃的自定义 DNS 功能。
  • hooks: 增强日志输出便于诊断
    • 在 README.md 和 README_EN.md 中添加了详细的故障排查指南
    • 包含快速诊断流程图、日志检查方法、代理软件排查步骤
    • 添加系统环境排查和对比排查指导
    • 列出已知兼容性问题和解决方案
    • 在运行时配置摘要中增加 Winsock 版本信息
    • 修改代理握手成功日志级别为 Info,便于排查问题
    • 在 SOCKS5 隧道建立成功日志中添加 BND 地址类型和端口信息
    • chore(metadata): 更新项目元数据统计

♻️ 代码重构 (Refactoring)

  • launcher: unify setup entry to setup.bat with tri-lingual and cli-ide adaptation (ddb80b4)
    • Unify multiple bat scripts into single setup.bat (Windows) and setup.sh (Linux) in root
    • Add full tri-lingual i18n support (zh/en/ru) with auto-detection and runtime switching
    • Add auto-adaptation between Desktop IDE and Console CLI packages
    • Sync build, packaging, and compatibility test assertions
    • Refine Method A documentation across README.md, README_EN.md, and README_RU.md
  • build: 添加RunTests参数支持CTests回归测试
    • 新增 scripts/package-release.ps1 脚本,用于生成IDE和CLI独立的发布压缩包
    • 修改 .github/workflows/build.yml 和 release.yml,实现每个架构只编译一次,
    • 然后生成互不混装的IDE/CLI产物
    • 更新 README.md 文档,说明新的四套独立压缩包下载方式
    • 添加压缩包内容校验,确保IDE/CLI文件隔离
    • 升级actions依赖版本并优化工作流并发控制
    • 在 build.ps1 中新增 -RunTests 参数,用于构建并运行 CTest
    • 修改脚本逻辑,支持显式的测试开关控制
    • 更新文档说明测试相关用法
    • 确保CI场景下能够执行回归测试验证
    • chore(docs): 更新发布目录隔离相关的文档说明
    • 修正 docs/config-web.md 中关于Release资产打包的描述
    • 更新 docs/issues-113-130-compatibility-analysis.md
    • 中的发布目录隔离实现说明
    • 同步更新README中关于Release包结构的描述
  • main: 重构加载提示逻辑支持条件提示和日志目录操作
    • 将uiLoadNotify配置项的默认值从"none"改为"once",使每个版本成功加载时提示一次
    • 新增版本标识功能,通过DLL文件路径、大小和修改时间生成唯一标识
    • 实现加载成功标记机制,在log目录创建marker文件记录已提示的成功版本
    • 优化失败提示消息,增加错误排查建议和日志目录打开选项
    • 添加UTF-8转宽字符辅助函数用于Windows API调用
    • 实现DLL身份识别功能获取模块文件信息作为版本标识
    • 新建标记文件操作函数用于记录和验证版本提示状态
    • 修改消息框显示逻辑,失败时始终提示,成功时按版本控制提示次数
    • refactor(logger): 暴露日志目录路径供加载提示使用
    • 新增GetLogDirectoryPath方法对外暴露日志目录路径
    • 便于加载提示功能直接访问日志目录进行排障操作
  • hooks: 本地化日志消息为中文
    • 添加了GetTimestamp方法为所有日志消息添加时间戳,同时增加了
    • Debug和Warn日志级别,将日志输出重定向到文件。
    • 将所有日志消息从英文翻译为中文,包括代理连接、SOCKS5握手、
    • HTTP CON...
Read more