Repository navigation
Releases: DeconstructedCube/APS2api
Release list
v1.2.0 - 引入 SQLite 持久化、重构主题及粘性节点池机制,全面修复流式与并发调度稳定性
新特性 (Features)
前端与 UI
- 主题与背景:
- 重构背景预设模块功能,支持持久化保存自定义纯色与渐变预设,并增加删除背景接口。
- 动态读取并加载历史上传的所有背景图片。
- 切换背景时自动提取主色调并应用到主题变量,动态生成背景玻璃和描边等颜色以跟随主题色。
- 改进主题色提取算法并替换 CSS 中写死的发光与阴影颜色。
- 管理面板设置项:
- 前端增加请求超时设置项,并提取为可配置项。
- 设置页并发数补充 max/min 限制及文案。
- 增加设置页未保存离开拦截及挽留弹窗功能,优化未保存修改时的模态框选项。
- 节点与测速模块:
- 支持前端即时暂停、恢复与终止全局批量测速。
- 增加按延迟降序排序和导出所有节点功能。
- 日志与控制面板:
- 将日志定时自动刷新升级为毛玻璃 Pill Toggle 样式并默认打开,在加载页时同步状态。
- 优化日志表格自适应排版、截断与定时自动刷新。
- 恢复运行日志页面功能。
- 其他 UI 优化:
- 重构颜色选择器,支持移动端手势与自适应弹出位置。
- 前端集成完善,支持多端同步背景及功能对齐。
- 实现前端管理员密码修改。
⚙️ 后端与核心功能
- 节点池管理:
- 粘性节点池:支持逐出失败节点、循环遍历、竞速降级、后台收集及管理面板展示。
- 请求与代理:
- 简化代理设置并实现了浏览器指纹伪装 (browser spoofing)。
- 移植 sukaka/gcli2api 随机指纹库以对抗 PVP 探针。
- 拒绝处理带有
sk-your-key-here默认密钥的请求。
- 日志与持久化:
- 引入 SQLite 持久化
nodes和node_health数据。 - 支持本地日志文件写入及 TUI 日志控制台优化。
- 后台设置接口放行
debug_mode字段。
- 引入 SQLite 持久化
问题修复
- 核心调度与并发:
- 修复多工具并发调用报错、避免非重试性错误无限重试并优化 ID 冲突。
- 修复重试时直接修改原始 payload 导致的工具参数翻倍问题。
- 修复并发非流式 map 竞争恐慌、流式收尾多余帧及升级 TLS 指纹。
- 修复流式请求多节点并发竞速导致的 map 并发读写恐慌。
- 修复
StreamParallel在全部节点失败时未向外抛出最后报错导致静默返回 200 的 bug。 - 修复流式截断 & 200 空回系列问题。
- 关池时粘性节点 prepend 竞速及 Add() 守卫回退修复。
- 节点与前端交互:
- 修复后台节点按延迟降序排序失效的问题。
- 修复多节点测速导致浏览器异常终止的问题。
- 优化批量测速暂停后的轮询终止逻辑及按钮样式同步。
- 关闭并发请求池时自动清除其依赖的子选项状态。
- 鉴权与主题适配:
- 优化修改密码校验拦截,避免原密码错误时异常登出并正确回显错误。
- 修复未登录状态下无法拉取主题背景导致回落默认颜色的问题。
- 放行
/assets/路由,修复从 Canvas 提取同源背景图主题色时报 401 Unauthorized 的问题。
- 其他细节修复:
- 修复前端控制台代理回显、移动端空列表重叠及并发输入上限问题。
- 修复自定义字体颜色不生效及 Docker 环境下日志未写入文件的问题。
- 修复 settings API 缺失
parallel_pool_retry_enabled字段的问题。 - 修复状态追踪面板 UI 打印及终端横幅展示逻辑。
- 修复测试代码中的变量遮蔽错误。
重构与优化
- 核心代码重构:
- 将 Token 计算由远端替换为离线预估 (replaced remote token counting with offline estimation)。
- 拆分超大文件为模块化结构,优化了设置页面与粘性池逻辑。
CompleteChat改用所有候选跑完再选最优的策略(非流式)。- 优化流扫描缓冲与健康更新,升级 Go 1.26.5 修复漏洞。
- 移除合并相邻同角色消息的功能。
- 配置与依赖整理:
- 移除
Getter方法的Get前缀以符合 Go 命名规范并实现静态 Provider,全面适配主入口及所有子模块接口。 - 节点保存重构为调用
config.ConfigDir。 - 同步内置默认模型列表与配置文件。
- 精简 TokenPool、状态文件迁移至
config/state/。 - 清理代码文件首空行与未使用依赖。
- 移除
- UI 与遥测:
- 彻底移除遥测收集代码及前端设置项。
- 引入命令行状态追踪面板,重构终端 UI 渲染引擎并移除
uilive依赖。
构建与日常维护
- Docker 与环境:
- 在
docker-compose.yml中增加资源目录与日志目录的持久化挂载。 - 完善
.gitignore与.dockerignore排除 SQLite 数据库及日志。 - 迁移
agreed-rules-docker.txt到config/state/目录。
- 在
- 代码规范与维护:
- 变更版权所有者为 Deconstructed_Cube 并清除代码文件中的版权声明。
- 引入 Windows 环境 PowerShell 构建发布脚本。
- 统一调色板重置按钮与吸管工具按钮样式并添加文字说明。
- 全面修复 golangci-lint 规范问题并调整了 lint 检查规则。
- 清理富有 AI 味的优雅关闭提示及残留的
test_uuid.go。
下载
vertex-proxy-windows-amd64.zip— Windows x64vertex-proxy-windows-386.zip— Windows 32 位 / 老机器vertex-proxy-linux-amd64.zip— Linux x86_64vertex-proxy-linux-386.zip— Linux 32 位 / 老机器vertex-proxy-linux-arm64.zip— Linux ARM64vertex-proxy-linux-arm32.zip— Linux ARM 32 位vertex-proxy-android-arm64.zip— Android / Termux arm64vertex-proxy-darwin-amd64.zip— Mac Intelvertex-proxy-darwin-arm64.zip— Mac Apple Silicon
相关
- 官方 Discord: https://discord.gg/odysseia
- 官方 DIscord 频道: https://discord.com/channels/1134557553011998840/1494652033242894446
v1.1.1 — 节点导入兼容性、429 软冷却与 Android 构建修复
v1.1.1 — 节点导入兼容性、429 软冷却与 Android 构建修复
本次是 v1.1.0 之后的小版本,聚焦订阅导入兼容性、高并发可用性,以及全平台发布包完整性。
新增与优化
- 扩展 Clash / V2RayN / SIP008 等订阅导入兼容性,保留 TLS、Reality、WebSocket、插件等关键字段。
- 为 Termux / Android 环境补充 DNS fallback,遥测 HTTP 客户端也复用该能力。
- 引入 429 软冷却:把上游限流视作短期配额信号,避免节点被硬淘汰。
- 优化对冲竞速失败接力与 Token 池急救填充,改善上游波动时的可用性。
- 拆分 Linux arm64 与 Android arm64 发布包;Android arm64 使用 NDK CGO 构建。
修复
- 过滤无效 Clash proxy 对象,避免缺少 server/port 的对象或
select这类订阅组被误导入节点池。 - 修复 release 脚本在没有 Android NDK 时会阻断其它平台包构建的问题。
版本显示
- 构建版本通过
-ldflags注入为v1.1.1,匿名遥测 / 监控面板上报的version字段会显示v1.1.1。 - 根路径
/返回的2.0-go是接口标识,不是 release 版本号。
验证
go test ./...scripts/build-release.sh v1.1.1,本地已配置 Android NDK r28c 并产出 Android arm64 包- zip 结构检查通过
- Windows amd64 二进制抽检包含
v1.1.1与构建 commit9efecf9
下载
vertex-proxy-windows-amd64.zip— Windows x64vertex-proxy-windows-386.zip— Windows 32 位 / 老机器vertex-proxy-linux-amd64.zip— Linux x86_64vertex-proxy-linux-386.zip— Linux 32 位 / 老机器vertex-proxy-linux-arm64.zip— Linux ARM64vertex-proxy-linux-arm.zip— Linux ARM 32 位vertex-proxy-android-arm64.zip— Android / Termux arm64vertex-proxy-darwin-amd64.zip— Mac Intelvertex-proxy-darwin-arm64.zip— Mac Apple Silicon
相关
- 官方 Discord: https://discord.gg/odysseia
- 公开统计页: https://stat.baimeow.icu
- 反诈提示:本软件完全免费,如果你为它付了任何钱(购买、手工费、部署费等),你被骗了。
v1.1.0 — 纯被动遥测 + 规则版本哈希追踪
v1.1.0 — 纯被动遥测 + 规则版本哈希追踪
本次升级聚焦透明、被动、可关闭的匿名遥测,不引入任何远程控制能力。
⚠️ 升级要点(请阅读)
- 规则文件已更新(含详细遥测披露段落 + Docker 部署同意指引),所有用户在 v1.1.0 首次启动时需要重新同意一次。
- Docker 用户首次启动时无法交互同意,请按部署指南或日志提示在挂载目录创建
config/agreed-rules-docker.txt文件,写入程序打印的"规则版本哈希",然后重启容器。 - 裸机/Linux/macOS/Windows 用户只需重新输入一次
yes。 - 匿名遥测默认开启,可在管理面板「设置」页面或
config/config.json中设置"telemetry_enabled": false一键关闭。
✨ 新增
纯被动匿名遥测(v1.0 的 kill switch 已完全移除)
- 服务端只接收数据,不下发任何指令——无远程关停、无用户封禁、无任何远程控制能力。
- 上报内容(全部为非敏感的运行环境信息):
- 匿名实例 ID(本地随机生成的 32 位字符,与你的身份无关)
- 软件版本号 / 平台(如
linux/amd64)/ Go 运行时版本 - 二进制文件 SHA256(用于识别正版与篡改版)
- CPU 核心数 / 内存大小(GB)
- 是否运行在容器内 / 是否在 Termux(Android)
- 系统时区 / 系统语言(用于粗粒度的地理与语言分布统计)
- 软件首次启动时间 / 启动次数
- 不收集:IP、MAC、主机名、用户名、API 密钥、对话内容、请求内容、文件路径、进程列表、网络配置。
- 公开统计页面:https://stat.baimeow.icu(无密码、纯展示)
显眼的遥测开关
- 管理面板「设置」页面顶部置顶的"📡 匿名遥测"卡片,含开关、说明文字与公开统计页链接。
- 默认开启;关闭后立即生效,重启即可断开心跳。
规则版本哈希追踪
- 规则文件内嵌进二进制时,编译期会算出 SHA256 前 16 位作为版本哈希。
- 规则文件只要发生变化(哪怕只改一个字),旧的同意记录立即失效,用户必须重新确认。
- 提示语会带"
⚠️ 规则已更新"提醒,避免用户漏看新内容。
Docker 文件同意路径
- 自动检测
/.dockerenv与/proc/1/cgroup,识别容器环境。 - Docker 内不走 stdin 交互,改为读取挂载的
config/agreed-rules-docker.txt文件。 - 文件内容包含当前规则哈希即视为同意(容错多行/空白)。
- 此机制仅在 Docker 容器内严格生效,裸机部署仍走交互式
yes。
🔥 移除
- 完全移除 v1.0 的 kill switch(远程关停)功能——本程序不应该有任何后门式的远程控制。
- 所有相关 API 端点、客户端轮询逻辑、中央控制面板的"封禁/关停"按钮全部清除。
🐛 修复
- 中控统计页面的图表与数据现在完整展示(趋势 / 版本 / 平台 / 时区 / 语言 / Go 版本 / 容器&Termux 计数)。
- 各类已知 UI 细节修复。
📦 下载
vertex-proxy-windows-amd64.zip— Windows x64vertex-proxy-windows-386.zip— Windows 32 位 / 老机器vertex-proxy-linux-amd64.zip— Linux x86_64vertex-proxy-linux-386.zip— Linux 32 位 / 老机器vertex-proxy-linux-arm.zip— Linux ARM 32 位(树莓派 0/1/2/3 32 位系统)vertex-proxy-android-arm64.zip— Android/Termux 及 Linux ARM64(鸿蒙 4.x 老版本)vertex-proxy-darwin-amd64.zip— Mac Intelvertex-proxy-darwin-arm64.zip— Mac Apple Silicon
🔗 相关
- 官方 Discord:https://discord.gg/odysseia
- 公开统计页:https://stat.baimeow.icu
- 反诈提示:本软件完全免费,如果你为它付了任何钱(购买、"手工费"、"部署费"等),你被骗了。
v1.0.9 - 远程熔断 + 规则文件 + 反诈播报 + 一键部署
v1.0.9
🛡️ 远程熔断系统
- 中央控制面板可远程管理所有实例(活跃用户统计、趋势图、熔断开关、IP 封禁)
- 所有实例定期查询熔断状态,开启后立即停止服务
📜 使用规则文件
- 首次启动必须输入 yes 同意使用规则
- 规则嵌入二进制,无法被篡改
⚠️ 反诈启动播报
- 每次启动提示「本软件完全免费,如果你花钱购买了,你被骗了」
- 官方渠道:https://discord.gg/odysseia
🔧 一键部署脚本
- setup.sh(Linux/macOS/Android)+ setup.bat(Windows)
- 交互式引导:端口、API Key、代理、开机自启
🐛 修复
- Termux SSL 证书自动探测
- 错误信息改为「请联系开发者」
- context key 规范化
📦 8 平台
Windows amd64/386 · Linux amd64/386/arm/arm64 · macOS amd64/arm64
首次启动需要同意使用规则,输入 yes 继续。
v1.0.6 — 工具调用修复 + 全平台二进制
本次更新
🔧 工具调用修复(重要)
修复了带参数约束或多轮场景下工具调用不生效的问题:
- 数值约束转字符串:
minItems/maxItems/minLength/maxLength/minProperties/maxProperties现按 Vertex 原生 Schema 规范转为字符串,之前以数字提交会被静默忽略导致参数约束丢失、模型不调用工具。 - 保留 Gemini 支持的字段:不再错误剥离
default/nullable/examples(这些是 Gemini Schema 官方规范字段)。 - 未知 type 兜底:非标准 type(如
any)回退为STRING,避免整个工具声明被忽略。 - 多轮工具结果合并:合并相邻同 role 的消息,修复多轮工具调用时连续
role=function导致的 400。
📦 全平台开箱即用包
本次提供 9 个平台的预编译包,解压即用(含配置示例 + 启动脚本 + 部署指南):
| 平台 | 包 |
|---|---|
| Windows 64 位 | vertex-proxy-windows-amd64.zip |
| Windows 32 位 | vertex-proxy-windows-386.zip |
| Linux x86_64 | vertex-proxy-linux-amd64.zip |
| Linux 32 位 | vertex-proxy-linux-386.zip |
| Linux ARM64 | vertex-proxy-linux-arm64.zip |
| Linux ARM(32 位/树莓派) | vertex-proxy-linux-arm.zip |
| macOS Intel | vertex-proxy-macos-amd64.zip |
| macOS Apple Silicon | vertex-proxy-macos-arm64.zip |
| Android / Termux (ARM64) | vertex-proxy-android-arm64.zip |
🐳 Docker 部署
仓库内含 Dockerfile + docker-compose.yml,一行启动:
```bash
docker compose up -d
```
详见仓库 部署指南.md 的「用 Docker 跑」章节。
v1.0.5 — 优化节点连接机制与底层引擎重构
Vertex AI Proxy v1.0.5
1. 底层引擎替换 (Core Engine Replacement)
- 依赖替换:将内置代理核心从
sing-box全面替换为mihomo(v1.19.27),作为新的底层网络代理引擎。 - 配置简化:实现了基于
mihomo的adapter.ParseProxy的代理节点解析和 Dialer 的创建,大幅简化了之前手动构造配置的流程。
2. 节点连接机制优化 (Transport & Connection Optimization)
- 节点逻辑优化:若节点加载失败则直接报错熔断,避免静默直连。
- 代理资源管理:更新了代理实例缓存机制,支持 GC 定期回收空闲超过 30 分钟的代理实例。
3. 节点解析增强 (Node Codec Enhancements)
- vmess 协议增强:新增支持解析
network属性 (WS/gRPC) 及其相关参数;支持 TLS 自动配置;修正alter_id为alterId。 - shadowsocks 协议增强:适配了两种用户信息 Base64 编码格式,并支持解析 URI Fragment 作为节点名称。
- 通用字段调整:统一将
server_name修正为sni,insecure改为skip-cert-verify,适配新代理引擎的配置规范。 - 节点名称补全:在面板拉取订阅时,会尝试自动补全提取节点名称。
4. 前端卡顿与并行 Bug 修复 (Frontend & Parallel Execution Fixes)
- 前端重构与优化:拆分了原来庞大的
admin.html,解决前端卡顿问题。 - 并行问题修复:修复了并行节点检测 Bug,以及实际请求时并行节点调度失效的问题。
5. 错误处理与工具修复 (Error Handling & Tool Fixes)
- Gemini 工具调用:修复了 Gemini 格式工具调用时的问题。
- 内存泄漏修复:修复了部分潜在的内存泄漏问题。
- 错误重试与熔断:优化了请求重试逻辑,遇到严重的内部网络错误或不可重试的异常时立即执行熔断。
- Lint 警告与小问题:修复了一系列未处理错误的 lint 警告,移除了冗余的
validUTF8Body校验,修复了 Windows 与 Linux 打包脚本行为不一致的问题。
许可证
PolyForm Noncommercial License 1.0.0 — 非商业用途。
解压即用,配置示例与分平台部署指南均在包内。
v1.0.4 — 增强节点管理功能,规范化全局日志
Vertex AI Proxy v1.0.4
1. 节点管理功能增强 (Node Management Enhancements)
- 批量操作:新增了对节点列表的“全选”多选框,并加入了三个批量操作按钮(批量启用、禁用、删除节点)。
- 文件导入:新增了文件上传控件,支持从本地文件导入节点配置,提供了“追加”和“替换”两种导入模式。
- 节点状态展示优化:为节点列表增加了复选框列;细化了节点类型的展示名称映射;增强了错误信息和延迟的展示。
- 测试进度反馈:“测试全部节点”功能增加了实时的进度条和文本提示,提升了用户体验。
- 配置解析增强:支持智能识别并解析 Clash Yaml 格式的配置文件;支持对内联 Yaml 属性解析的支持。
- 并发控制:在测试所有节点时,限制最大并发数为 10,避免过多连接同时发起到外部导致被封或资源耗尽。
2. 全局日志规范化 (Logging Standardization)
为了方便在生产环境和开发过程中区分日志来源,在整个项目中统一在日志输出中添加了模块前缀(如 [vproxy], [Admin], [Server] 等)。
3. 构建与脚本补充 (Build & Scripts)
- PowerShell 构建脚本:新增了
scripts/build-release.ps1,方便 Windows 用户执行一键编译打包发布版本。 - Gitignore 更新:增加了对
*.code-workspace文件的忽略。
4. 核心组件修复与调整 (Core Logic Fixes & Tweaks)
- Sing-Box 适配器:修复了由于 Sing-Box 内部 API 变动导致的
service.ContextWith类型问题。 - JSON 解析器:优化了清理 JSON 字符串的方法。
- API 认证读取:遍历文件后增加了对扫描错误的检查。
- Codec 调整:现在能更鲁棒地处理 URI 中附带的 query parameters,避免解析 Base64 失败。
5. 测试用例补充 (Tests)
新增并修改了多个测试文件以保证代码质量。
许可证
PolyForm Noncommercial License 1.0.0 — 非商业用途。
解压即用,配置示例与分平台部署指南均在包内。
v1.0.3 — 流式生图/工具修复 + 错误友好化 + 多轮改图
Vertex AI Proxy v1.0.3
修复
- 流式生图与工具调用不再被丢弃:上游流式每个 part 带空默认值(
text:""+ 空 inlineData/functionCall),用text键存在判类型会误判——改为按值非空判断。流式下生图模型和工具调用现在正常返回。(金丝雀实测 pass) - 多轮改图支持:模型上一轮生成的 markdown data-URI 图片会重新解析为 inlineData,同一对话内连续生图/改图不再被 400 拒。
- 错误返回更友好:报错附上游真实原因(如"size exceeds maximum"、"model not found"),不再是笼统的"请求参数有误"。
- image_size/n 参数校验点名:返回值告诉用户哪个参数无效、合法范围是什么。
许可证
PolyForm Noncommercial License 1.0.0 — 非商业用途。
下载
解压即用,配置示例与分平台部署指南均在包内。
v1.0.2 — 开箱即用部署包
Vertex AI Proxy v1.0.2
开箱即用的分平台部署包
本版起提供预编译压缩包,下载解压即用,无需自己编译。每个包都内置配置示例、启动脚本与完整的 部署指南.md:
| 下载 | 适用 |
|---|---|
vertex-proxy-windows-amd64.zip |
Windows x64(双击 启动.bat 即可) |
vertex-proxy-linux-amd64.zip |
Linux x86_64(VPS / 服务器,附 systemd 服务模板) |
vertex-proxy-android-arm64.zip |
Android(Termux) / 树莓派 / ARM64 Linux |
首次使用:解压 → 编辑 config/api_keys.txt 填入你的 sk- 密钥 → 运行(Windows 双击 启动.bat,Linux ./start.sh,Termux sh start.sh)。首次启动会自动生成管理员密码并打印在日志里,用它登录 http://<地址>:2156/admin/ 管理面板。详细步骤见包内 部署指南.md。
其它改动
- README 配置表订正(移除已不存在的字段、更正默认值)。
- 示例配置端口与内置默认值对齐(2156)。
- 用
.gitattributes锁定换行符,确保 shell 脚本在 Linux/Termux 上正确执行。
程序功能与 v1.0.1 一致(无运行时行为变更),本版仅新增部署包与文档。
v1.0.1 — 正确性修复
Vertex AI Proxy v1.0.1
一批正确性/协议修复:
- 修复多字节字符乱码:假流式按字符(rune)切分,中文/emoji 不再被切断成乱码(U+FFFD)。
- 流式 SSE model 字段:安全拦截分支的 chunk 不再缺失 model 字段(符合 OpenAI 协议)。
- Gemini 错误状态:流式错误事件返回真实 gRPC 状态(RESOURCE_EXHAUSTED/UNAUTHENTICATED 等)而非一律 INTERNAL。
- 工具 schema:转换时保留非标准 schema 属性值,不再丢失。
- 管理面板密码:登录与改密码输入统一去首尾空格,避免误判登录失败。
下载
vertex-proxy-windows-amd64.exe— Windows x64vertex-proxy-linux-amd64— Linux x86_64vertex-proxy-linux-arm64— Linux ARM64(Android/Termux 可用)
单二进制,下载即跑(配置见 README)。