33 Commits
Author SHA1 Message Date
tbphp aa558e2ee2 fix(docker): include modern route metadata (#681)
* fix(docker): include modern route metadata and git

* fix(docker): remove unneeded builder git
2026-09-17 22:17:40 +08:00
tbphp 93ab48772e fix(docker): 修复源码镜像构建输入 (#497) 2026-08-30 00:39:34 +08:00
tbphp 5c16ed84b3 feat(windows): 增加原生服务安装包 (#493)
* feat(windows): 增加原生服务安装包

* fix(windows): 收紧服务安装与升级流程

* fix(windows): 固定服务安装路径与语言资源

* fix(windows): 等待安装器进程完成

* fix(windows): 清理首次安装失败残留
2026-08-29 23:26:23 +08:00
tbphp d4bbb9193a feat: 升级 Go 与 SDK 版本 (#485)
* feat(gateway): 升级 SDK 并封口兼容合同

* fix: 修正升级后的格式与模型过滤

* fix(ci): 更新 Go 漏洞扫描器

* fix(gateway): 拒绝非标准服务层级字段
2026-08-27 22:48:16 +08:00
tbphp a6e019b612 fix(release): 修复 Alpine OpenSSL 漏洞扫描阻断 (#474)
* fix(release): 升级 Alpine OpenSSL 运行时依赖

* fix(release): 固定 Alpine OpenSSL 安全补丁版本
2026-08-26 18:10:23 +08:00
tbphp 1bc4c7fead perf(release): 镜像复用预编译产物 + GOPROXY 网络容错 (#467)
* fix(ci): GOPROXY 在网络错误时回退到直连源

默认的 GOPROXY=https://proxy.golang.org,direct 用逗号分隔,只在收到
404/410 时才回退到下一个源;proxy.golang.org 的瞬时网络故障(如
HTTP/2 stream INTERNAL_ERROR)会直接让整个 job 失败,默认配置里的
direct 后备源在最需要它的场景下形同虚设。

改用竖线分隔,任何错误(含网络错误)都回退。实验验证:
- 逗号:首个源 EOF -> 直接失败,不尝试第二个源
- 竖线:首个源 EOF -> 成功回退并完成下载

ci.yml、release.yml 以 workflow 级 env 统一设置;Dockerfile 内的
go mod download 走同一问题,一并设置。不引入第三方镜像源,避免为
发布链路增加新的信任方。

* perf(release): 镜像打包复用预编译产物,不再重复编译

publish-images 此前在 Docker 内从 go mod download 开始重新编译 Go 与
Web(两个平台各一次,实测 216s),而 build-binaries 早已交叉编译出
gpt-load-linux-amd64/arm64——正是镜像需要的那两个文件。

Dockerfile 拆出共享的 runtime stage,两条打包路径都以它为基:
- source-build:默认 target,自包含源码构建,供本地与用户自建使用,
  必须保持在文件末尾,否则默认构建会落到 prebuilt 而要求预编译产物
- prebuilt:发布用,直接 COPY 预编译二进制

runtime 配置只定义一次,避免两套配置各自漂移。GitHub artifact 不保留
可执行位,prebuilt 用 COPY --chmod=0755 显式恢复。

发布证据链:新增 prebuilt-image-smoke,在发布前用与 publish-images
完全相同的打包路径做 smoke 与 Trivy 扫描,并加入 publication-preflight
的 needs;docker-smoke 继续覆盖源码自包含路径,两者不可互相替代。
release-docker-smoke.sh 新增 RELEASE_SMOKE_BUILD_TARGET 支持指定 target。

container_contract_test.go 原用「最后一个 FROM」定位 runtime 契约,多
stage 后不再成立,改为定位共享 runtime stage,并新增两条断言:每个可
发布 stage 必须派生自 runtime、除 runtime 外不得再有直接以 alpine 为基
的 stage,防止新增路径绕开全部 runtime 断言。已反向验证两条断言均能
拦截对应的破坏方式。

本地验证:prebuilt 镜像实跑 release-docker-smoke.sh 全流程通过(含
非 root 运行、数据目录权限、健康检查、Web UI、认证边界);删除
release/ 后默认 target 仍能正常源码构建。

* fix(release): prebuilt smoke 覆盖 arm64,补全发布前验证

publish-images 推送 linux/amd64 与 linux/arm64 两个平台,两条 prebuilt
路径 COPY 的是不同的二进制,但此前 prebuilt-image-smoke 只在 x86_64
runner 上验证了 amd64,arm64 打包路径没有发布前验证。

改为双架构矩阵,arm64 使用原生 ubuntu-24.04-arm runner(仓库在
native-artifact-smoke 已有先例)而非 QEMU:QEMU 模拟下的启动行为不能
代表真实 arm64 运行时。同时按架构精确下载单个产物,不再整批拉取。

另外让 RELEASE_SMOKE_BUILD_TARGET 的校验错误信息带上实际传入的值,
便于排查 CI 环境变量配置问题。

本地在 arm64 主机上实跑 prebuilt smoke 全流程通过。
2026-08-24 22:26:58 +08:00
tbphp 70b1afb995 chore(license): 补齐第三方许可证声明与发布分发 2026-08-19 13:28:49 +08:00
tbphp ef0459c347 feat(subscription): 接入 Antigravity 订阅渠道 2026-08-17 20:25:57 +08:00
tbphp f5fe38ac4d feat(claude): 接入 OAuth 订阅渠道 2026-08-16 17:21:50 +08:00
tbphp 647f3e88f1 fix: 收口订阅发现与构建安全基线 2026-08-16 08:51:43 +08:00
tbphp 21082ac739 feat(subscription): 接入 Codex 订阅账号 2026-08-14 08:41:02 +08:00
tbphp 6f6f7c3efc refactor(channel): 切换为 Bifrost 渠道执行架构 2026-08-10 08:22:15 +08:00
tbphp b91bd5edf5 refactor(router): 统一路由注册与回退 2026-07-30 11:49:28 +08:00
tbphp a6a25a571b chore(deps): 升级依赖与构建安全基线 2026-07-29 10:59:52 +08:00
tbphp b89dd9471e fix(v2): 完成全量审查修复 2026-07-28 11:24:29 +08:00
tbphp 910b7bcbd3 build: 改用非 root 持久化容器 2026-07-27 05:13:38 +08:00
tbphp 5e03b5055b fix(ci): 允许 vue-demi 构建脚本 2026-07-23 17:27:04 +08:00
tbphp ecb1b6e1bb feat(web): 建立 M3 单二进制前端骨架 2026-07-23 08:54:26 +08:00
tbphp 8725b033dc fix(m0): 收口工程基建与运行时安全边界 2026-07-16 11:33:59 +08:00
tbphp f7abc8f327 refactor(v2): 切换 2.0 启动骨架并移除 1.x 代码树 2026-07-15 19:25:45 +08:00
tbphp 275cc508e0 fix(security): 修复 Dependabot 安全告警 (pgx + 前端依赖) (#414)
* fix(deps): 升级 pgx/v5 至 5.9.2 并同步 Go 至 1.25

修复 GHSA-9jj7-4m8r-rfcm (CVE-2026-33816, critical, 内存安全)
和 GHSA-j88v-2chj-qfwx (CVE-2026-41889, low, SQL 注入)。

pgx v5.9.x 要求 go 1.25.0,因此一并把 go.mod、CI 工作流、
Dockerfile 中的 Go 版本声明从 1.24 抬到 1.25。

* fix(web): 升级前端依赖修复 12 个 npm 安全告警

通过 npm audit fix 在 semver 范围内升级 lockfile,未改 package.json:
- rollup 4.57→4.60 修复路径穿越文件写入 (GHSA-mw96-cpmx-2vgc)
- vite 6.4.1→6.4.2 修复路径穿越与 WS 文件读取
- minimatch 3.1.2/9.0.5→3.1.5/9.0.9 修复 ReDoS
- picomatch 2.3.1/4.0.3→2.3.2/4.0.4 修复方法注入与 ReDoS
- flatted 3.3.3→3.4.2 修复原型污染
- lodash/lodash-es 4.17.23→4.18.1 修复模板注入与原型污染
- postcss 8.5.6→8.5.14 修复 XSS

npm audit 已确认 0 vulnerabilities。
2026-05-05 09:28:46 +08:00
tbphp b0e156b424 build: Update docker build 2026-02-16 09:26:29 +08:00
tbphp c5c705f176 chore: Upgrade dependencies and align Go 1.24 documentation (#388)
* chore: Upgrade dependencies and align Go 1.24 documentation

* chore: Align Go 1.24 across CI and Docker build
2026-02-15 22:54:03 +08:00
tbphp 2fdd963613 refactor: 端口调整 2025-07-14 14:08:05 +08:00
tbphp 586f135d80 feat: 构建版本 2025-07-13 04:16:17 +08:00
tbphp af967cab2e feat: docker 构建调整 2025-07-13 02:39:20 +08:00
tbphp 43fea407a9 feat: docker 构建 2025-07-12 23:06:19 +08:00
tbphp d5ebbf10f5 feat: 路由优化 2025-07-01 00:13:01 +08:00
tbphp 731315144e feat: 前端搭建-未完成 2025-06-29 21:59:32 +08:00
tbphp 8ecdbccc2a fix: docker file 2025-06-10 11:14:21 +08:00
tbphp 63581d0556 feat: github action 2025-06-07 12:11:06 +08:00
tbphp 8a4cb65bad fix: project name 2025-06-07 00:07:59 +08:00
tbphp 219c068dbf init 2025-06-06 21:45:01 +08:00