Skip to content

Releases: DeconstructedCube/APS2api

v1.2.0 - 引入 SQLite 持久化、重构主题及粘性节点池机制,全面修复流式与并发调度稳定性

Choose a tag to compare

@Scluzlep Scluzlep released this 20 Jul 18:46
af8e492

新特性 (Features)

前端与 UI

  • 主题与背景:
    • 重构背景预设模块功能,支持持久化保存自定义纯色与渐变预设,并增加删除背景接口。
    • 动态读取并加载历史上传的所有背景图片。
    • 切换背景时自动提取主色调并应用到主题变量,动态生成背景玻璃和描边等颜色以跟随主题色。
    • 改进主题色提取算法并替换 CSS 中写死的发光与阴影颜色。
  • 管理面板设置项:
    • 前端增加请求超时设置项,并提取为可配置项。
    • 设置页并发数补充 max/min 限制及文案。
    • 增加设置页未保存离开拦截及挽留弹窗功能,优化未保存修改时的模态框选项。
  • 节点与测速模块:
    • 支持前端即时暂停、恢复与终止全局批量测速。
    • 增加按延迟降序排序和导出所有节点功能。
  • 日志与控制面板:
    • 将日志定时自动刷新升级为毛玻璃 Pill Toggle 样式并默认打开,在加载页时同步状态。
    • 优化日志表格自适应排版、截断与定时自动刷新。
    • 恢复运行日志页面功能。
  • 其他 UI 优化:
    • 重构颜色选择器,支持移动端手势与自适应弹出位置。
    • 前端集成完善,支持多端同步背景及功能对齐。
    • 实现前端管理员密码修改。

⚙️ 后端与核心功能

  • 节点池管理:
    • 粘性节点池:支持逐出失败节点、循环遍历、竞速降级、后台收集及管理面板展示。
  • 请求与代理:
    • 简化代理设置并实现了浏览器指纹伪装 (browser spoofing)。
    • 移植 sukaka/gcli2api 随机指纹库以对抗 PVP 探针。
    • 拒绝处理带有 sk-your-key-here 默认密钥的请求。
  • 日志与持久化:
    • 引入 SQLite 持久化 nodes 和 node_health 数据。
    • 支持本地日志文件写入及 TUI 日志控制台优化。
    • 后台设置接口放行 debug_mode 字段。

问题修复

  • 核心调度与并发:
    • 修复多工具并发调用报错、避免非重试性错误无限重试并优化 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 x64
  • vertex-proxy-windows-386.zip — Windows 32 位 / 老机器
  • vertex-proxy-linux-amd64.zip — Linux x86_64
  • vertex-proxy-linux-386.zip — Linux 32 位 / 老机器
  • vertex-proxy-linux-arm64.zip — Linux ARM64
  • vertex-proxy-linux-arm32.zip — Linux ARM 32 位
  • vertex-proxy-android-arm64.zip — Android / Termux arm64
  • vertex-proxy-darwin-amd64.zip — Mac Intel
  • vertex-proxy-darwin-arm64.zip — Mac Apple Silicon

相关

v1.1.1 — 节点导入兼容性、429 软冷却与 Android 构建修复

Choose a tag to compare

@BaiMeou BaiMeou released this 22 Jun 05:00
9efecf9

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 与构建 commit 9efecf9

下载

  • vertex-proxy-windows-amd64.zip — Windows x64
  • vertex-proxy-windows-386.zip — Windows 32 位 / 老机器
  • vertex-proxy-linux-amd64.zip — Linux x86_64
  • vertex-proxy-linux-386.zip — Linux 32 位 / 老机器
  • vertex-proxy-linux-arm64.zip — Linux ARM64
  • vertex-proxy-linux-arm.zip — Linux ARM 32 位
  • vertex-proxy-android-arm64.zip — Android / Termux arm64
  • vertex-proxy-darwin-amd64.zip — Mac Intel
  • vertex-proxy-darwin-arm64.zip — Mac Apple Silicon

相关

v1.1.0 — 纯被动遥测 + 规则版本哈希追踪

Choose a tag to compare

@BaiMeou BaiMeou released this 20 Jun 09:32
v1.1.0
6ba571b

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 x64
  • vertex-proxy-windows-386.zip — Windows 32 位 / 老机器
  • vertex-proxy-linux-amd64.zip — Linux x86_64
  • vertex-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 Intel
  • vertex-proxy-darwin-arm64.zip — Mac Apple Silicon

🔗 相关

v1.0.9 - 远程熔断 + 规则文件 + 反诈播报 + 一键部署

Choose a tag to compare

@BaiMeou BaiMeou released this 20 Jun 07:35
v1.0.9
451b094

v1.0.9

🛡️ 远程熔断系统

  • 中央控制面板可远程管理所有实例(活跃用户统计、趋势图、熔断开关、IP 封禁)
  • 所有实例定期查询熔断状态,开启后立即停止服务

📜 使用规则文件

  • 首次启动必须输入 yes 同意使用规则
  • 规则嵌入二进制,无法被篡改

⚠️ 反诈启动播报

🔧 一键部署脚本

  • 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 — 工具调用修复 + 全平台二进制

Choose a tag to compare

@BaiMeou BaiMeou released this 19 Jun 04:15
v1.0.6
d2db4bf

本次更新

🔧 工具调用修复(重要)

修复了带参数约束或多轮场景下工具调用不生效的问题:

  • 数值约束转字符串: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 — 优化节点连接机制与底层引擎重构

Choose a tag to compare

@DeconstructedCube DeconstructedCube released this 19 Jun 02:47

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 — 增强节点管理功能,规范化全局日志

Choose a tag to compare

@DeconstructedCube DeconstructedCube released this 14 Jun 10:32

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 — 流式生图/工具修复 + 错误友好化 + 多轮改图

Choose a tag to compare

@BaiMeou BaiMeou released this 14 Jun 03:14
a214997

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 — 开箱即用部署包

Choose a tag to compare

@BaiMeou BaiMeou released this 13 Jun 22:44
fc503d6

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 — 正确性修复

Choose a tag to compare

@BaiMeou BaiMeou released this 13 Jun 22:19
13e964b

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 x64
  • vertex-proxy-linux-amd64 — Linux x86_64
  • vertex-proxy-linux-arm64 — Linux ARM64(Android/Termux 可用)

单二进制,下载即跑(配置见 README)。