Repository navigation
Releases: Sacilave/antigravity-proxy
Releases · Sacilave/antigravity-proxy
Release list
v2.5
✨ 新功能 (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
✨ 新功能 (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...