Releases: TokenDanceLab/metapi-go
Release list
v0.6.3
Changelog
All notable changes to MetAPI-Go will be documented in this file.
格式基于 Keep a Changelog,
版本号遵循 Semantic Versioning。
v0.6.3 — 2026-07-07
Fixed
- 修复后台 Admin API 被重复挂载成
/api/api/*的生产路由问题,恢复/api/settings/auth/info、站点、账号、签到等管理接口的正常访问。 - 登录页增加登录前明暗/跟随系统主题切换,并修复深色模式下品牌面板、链接和图标对比度。
v0.6.2 — 2026-07-07
Fixed
- 修复根路径 WebUI 被非
/v1代理别名鉴权拦截的问题,确保嵌入式 SPA fallback 正常返回前端页面。 - 修复嵌入式前端文件系统路径兼容性,支持
web/dist作为 embed 根。 - 稳定 routing golden 与加权随机测试,避免 Windows CRLF checkout 和单次随机抽样导致 CI 偶发失败。
v0.6.1 — 2026-07-07
Fixed
- CI/CD secret scan 改用开源 gitleaks CLI,避免 organization 仓库被
gitleaks/gitleaks-action@v2license gate 阻断发布。
v0.6.0 — 2026-07-07
Security
- CI/CD 发布门禁加入 gitleaks、Go module 校验、race 测试、PostgreSQL integration 测试、前端 typecheck/test/build 和生产依赖 audit。
- CD 镜像发布前执行 Docker smoke test;发布镜像启用 provenance 和 SBOM。
- 测试和文档中的 PostgreSQL DSN 改为运行时拼接,减少 secret scanner 噪声。
- 站点自定义 headers 过滤
Authorization、Cookie、New-API-User、Content-Type、Content-Length、Host等保留头,避免覆盖运行时认证语义。
Fixed
/v1/*数据面接入数据库路由和真实上游选择,不再停留在未配置 stub 行为。- 上游代理支持站点/账号代理、自定义 headers、失败记录和非流式可重试 failover。
- AnyRouter 禁用 NewAPI 风格 token 管理端点,避免错误调用
/api/token。 - API-key/proxy-only 账号不再执行签到或余额上游调用,禁用状态判断改为大小写不敏感。
- 账号 session rebind、manual models、account token 默认值维护补齐事务和错误处理,失败路径回滚。
Added
- 覆盖 SQLite 和 PostgreSQL 的账号、签到、余额、AnyRouter、代理上游和路由选择回归测试。
- 运行时说明明确当前支持 SQLite 单节点和 PostgreSQL 部署;Redis 尚未集成。
v0.5.0 — 2026-07-05
Security
- Admin/proxy token 比较改用
crypto/subtle.ConstantTimeCompare(防时序攻击) - CI 启用
errcheck、staticcheck、ineffassignlinter - CI 测试启用
-race(data race 检测) /debug/vars移至 admin auth 保护后(此前无认证暴露)- 安全响应头中间件:
X-Content-Type-Options,X-Frame-Options,Referrer-Policy,CSP - AES 密钥派生不再 fallback 到
AUTH_TOKEN(独立默认值)
Fixed
- 代理出口
http.DefaultClient(零超时)→ 接入RuntimeExecutor(90s 超时 fallback) - 6 处 OAuth
panic()→return error - SSE 流式响应
WriteTimeout: 60s截断问题 →SetWriteDeadline禁用 - 13 处
log.Printf→slog.Warn/Error - DB 连接池补充
ConnMaxLifetime(5min) +ConnMaxIdleTime(2min) usage_aggregationgoroutine re-panic 修复(不再能崩进程)CheckinScheduler.Stop()data race 修复- CI:
golangci-lint-action@v6Go 1.25 不兼容 →go install最新版 golangci-lint全项目 zero warning
Added
/metricsPrometheus 端点(零依赖 text format)RequestID中间件(X-Request-Idheader + 日志关联)handler/shared/errors.go:APIError结构化错误类型- git pre-push hook(
.githooks/pre-push):自动跑vet + test -race - Claude Code push guard(
~/.claude/hooks/metapi-go-push-guard.sh) AGENTS.mdCI Discipline 规范
Tests
- 8 个零覆盖包全部补齐测试(最低 50%,最高 100%)
- 新增 3 个 e2e 场景:并发代理、auth 时序安全、rate limit 拒绝
e2e测试包总数:4 → 5 文件
v0.4.0 — 2026-07-05
Fixed
- 6 轮 audit 全部修复
- PG 兼容:
INSERT OR IGNORE→ON CONFLICT DO NOTHING - Cron 5 字段 → 6 字段自动转换
sqlx.BindDriver时序修复(?→$N占位符重绑定)
v0.3.0 — 2026-07-04
Changed
- goroutine 泄漏修复
- JSON 性能优化
- 包命名规范化
config.Validate()10 项启动校验
v0.2.0 — 2026-07-04
Added
- 限流中间件(admin 100rps, OAuth 10rps)
- RWMutex 假桩替换为真实
sync.RWMutex - DB 事务包裹 usage aggregation batch
store.Close()优雅关机
v0.1.0 — 2026-07-03
Added
- MetAPI TypeScript → Go 完整重写初始发布
- 27 表双数据库(SQLite + PostgreSQL)
- 14 平台适配器
- 4 协议流式转换
- 15 后台调度任务
- 单二进制 + Docker 部署
Full Changelog: v0.6.2...v0.6.3
v0.6.2
Changelog
All notable changes to MetAPI-Go will be documented in this file.
格式基于 Keep a Changelog,
版本号遵循 Semantic Versioning。
v0.6.2 — 2026-07-07
Fixed
- 修复根路径 WebUI 被非
/v1代理别名鉴权拦截的问题,确保嵌入式 SPA fallback 正常返回前端页面。 - 修复嵌入式前端文件系统路径兼容性,支持
web/dist作为 embed 根。 - 稳定 routing golden 与加权随机测试,避免 Windows CRLF checkout 和单次随机抽样导致 CI 偶发失败。
v0.6.1 — 2026-07-07
Fixed
- CI/CD secret scan 改用开源 gitleaks CLI,避免 organization 仓库被
gitleaks/gitleaks-action@v2license gate 阻断发布。
v0.6.0 — 2026-07-07
Security
- CI/CD 发布门禁加入 gitleaks、Go module 校验、race 测试、PostgreSQL integration 测试、前端 typecheck/test/build 和生产依赖 audit。
- CD 镜像发布前执行 Docker smoke test;发布镜像启用 provenance 和 SBOM。
- 测试和文档中的 PostgreSQL DSN 改为运行时拼接,减少 secret scanner 噪声。
- 站点自定义 headers 过滤
Authorization、Cookie、New-API-User、Content-Type、Content-Length、Host等保留头,避免覆盖运行时认证语义。
Fixed
/v1/*数据面接入数据库路由和真实上游选择,不再停留在未配置 stub 行为。- 上游代理支持站点/账号代理、自定义 headers、失败记录和非流式可重试 failover。
- AnyRouter 禁用 NewAPI 风格 token 管理端点,避免错误调用
/api/token。 - API-key/proxy-only 账号不再执行签到或余额上游调用,禁用状态判断改为大小写不敏感。
- 账号 session rebind、manual models、account token 默认值维护补齐事务和错误处理,失败路径回滚。
Added
- 覆盖 SQLite 和 PostgreSQL 的账号、签到、余额、AnyRouter、代理上游和路由选择回归测试。
- 运行时说明明确当前支持 SQLite 单节点和 PostgreSQL 部署;Redis 尚未集成。
v0.5.0 — 2026-07-05
Security
- Admin/proxy token 比较改用
crypto/subtle.ConstantTimeCompare(防时序攻击) - CI 启用
errcheck、staticcheck、ineffassignlinter - CI 测试启用
-race(data race 检测) /debug/vars移至 admin auth 保护后(此前无认证暴露)- 安全响应头中间件:
X-Content-Type-Options,X-Frame-Options,Referrer-Policy,CSP - AES 密钥派生不再 fallback 到
AUTH_TOKEN(独立默认值)
Fixed
- 代理出口
http.DefaultClient(零超时)→ 接入RuntimeExecutor(90s 超时 fallback) - 6 处 OAuth
panic()→return error - SSE 流式响应
WriteTimeout: 60s截断问题 →SetWriteDeadline禁用 - 13 处
log.Printf→slog.Warn/Error - DB 连接池补充
ConnMaxLifetime(5min) +ConnMaxIdleTime(2min) usage_aggregationgoroutine re-panic 修复(不再能崩进程)CheckinScheduler.Stop()data race 修复- CI:
golangci-lint-action@v6Go 1.25 不兼容 →go install最新版 golangci-lint全项目 zero warning
Added
/metricsPrometheus 端点(零依赖 text format)RequestID中间件(X-Request-Idheader + 日志关联)handler/shared/errors.go:APIError结构化错误类型- git pre-push hook(
.githooks/pre-push):自动跑vet + test -race - Claude Code push guard(
~/.claude/hooks/metapi-go-push-guard.sh) AGENTS.mdCI Discipline 规范
Tests
- 8 个零覆盖包全部补齐测试(最低 50%,最高 100%)
- 新增 3 个 e2e 场景:并发代理、auth 时序安全、rate limit 拒绝
e2e测试包总数:4 → 5 文件
v0.4.0 — 2026-07-05
Fixed
- 6 轮 audit 全部修复
- PG 兼容:
INSERT OR IGNORE→ON CONFLICT DO NOTHING - Cron 5 字段 → 6 字段自动转换
sqlx.BindDriver时序修复(?→$N占位符重绑定)
v0.3.0 — 2026-07-04
Changed
- goroutine 泄漏修复
- JSON 性能优化
- 包命名规范化
config.Validate()10 项启动校验
v0.2.0 — 2026-07-04
Added
- 限流中间件(admin 100rps, OAuth 10rps)
- RWMutex 假桩替换为真实
sync.RWMutex - DB 事务包裹 usage aggregation batch
store.Close()优雅关机
v0.1.0 — 2026-07-03
Added
- MetAPI TypeScript → Go 完整重写初始发布
- 27 表双数据库(SQLite + PostgreSQL)
- 14 平台适配器
- 4 协议流式转换
- 15 后台调度任务
- 单二进制 + Docker 部署
Full Changelog: v0.6.1...v0.6.2
v0.6.1
Changelog
All notable changes to MetAPI-Go will be documented in this file.
格式基于 Keep a Changelog,
版本号遵循 Semantic Versioning。
v0.6.1 — 2026-07-07
Fixed
- CI/CD secret scan 改用开源 gitleaks CLI,避免 organization 仓库被
gitleaks/gitleaks-action@v2license gate 阻断发布。
v0.6.0 — 2026-07-07
Security
- CI/CD 发布门禁加入 gitleaks、Go module 校验、race 测试、PostgreSQL integration 测试、前端 typecheck/test/build 和生产依赖 audit。
- CD 镜像发布前执行 Docker smoke test;发布镜像启用 provenance 和 SBOM。
- 测试和文档中的 PostgreSQL DSN 改为运行时拼接,减少 secret scanner 噪声。
- 站点自定义 headers 过滤
Authorization、Cookie、New-API-User、Content-Type、Content-Length、Host等保留头,避免覆盖运行时认证语义。
Fixed
/v1/*数据面接入数据库路由和真实上游选择,不再停留在未配置 stub 行为。- 上游代理支持站点/账号代理、自定义 headers、失败记录和非流式可重试 failover。
- AnyRouter 禁用 NewAPI 风格 token 管理端点,避免错误调用
/api/token。 - API-key/proxy-only 账号不再执行签到或余额上游调用,禁用状态判断改为大小写不敏感。
- 账号 session rebind、manual models、account token 默认值维护补齐事务和错误处理,失败路径回滚。
Added
- 覆盖 SQLite 和 PostgreSQL 的账号、签到、余额、AnyRouter、代理上游和路由选择回归测试。
- 运行时说明明确当前支持 SQLite 单节点和 PostgreSQL 部署;Redis 尚未集成。
v0.5.0 — 2026-07-05
Security
- Admin/proxy token 比较改用
crypto/subtle.ConstantTimeCompare(防时序攻击) - CI 启用
errcheck、staticcheck、ineffassignlinter - CI 测试启用
-race(data race 检测) /debug/vars移至 admin auth 保护后(此前无认证暴露)- 安全响应头中间件:
X-Content-Type-Options,X-Frame-Options,Referrer-Policy,CSP - AES 密钥派生不再 fallback 到
AUTH_TOKEN(独立默认值)
Fixed
- 代理出口
http.DefaultClient(零超时)→ 接入RuntimeExecutor(90s 超时 fallback) - 6 处 OAuth
panic()→return error - SSE 流式响应
WriteTimeout: 60s截断问题 →SetWriteDeadline禁用 - 13 处
log.Printf→slog.Warn/Error - DB 连接池补充
ConnMaxLifetime(5min) +ConnMaxIdleTime(2min) usage_aggregationgoroutine re-panic 修复(不再能崩进程)CheckinScheduler.Stop()data race 修复- CI:
golangci-lint-action@v6Go 1.25 不兼容 →go install最新版 golangci-lint全项目 zero warning
Added
/metricsPrometheus 端点(零依赖 text format)RequestID中间件(X-Request-Idheader + 日志关联)handler/shared/errors.go:APIError结构化错误类型- git pre-push hook(
.githooks/pre-push):自动跑vet + test -race - Claude Code push guard(
~/.claude/hooks/metapi-go-push-guard.sh) AGENTS.mdCI Discipline 规范
Tests
- 8 个零覆盖包全部补齐测试(最低 50%,最高 100%)
- 新增 3 个 e2e 场景:并发代理、auth 时序安全、rate limit 拒绝
e2e测试包总数:4 → 5 文件
v0.4.0 — 2026-07-05
Fixed
- 6 轮 audit 全部修复
- PG 兼容:
INSERT OR IGNORE→ON CONFLICT DO NOTHING - Cron 5 字段 → 6 字段自动转换
sqlx.BindDriver时序修复(?→$N占位符重绑定)
v0.3.0 — 2026-07-04
Changed
- goroutine 泄漏修复
- JSON 性能优化
- 包命名规范化
config.Validate()10 项启动校验
v0.2.0 — 2026-07-04
Added
- 限流中间件(admin 100rps, OAuth 10rps)
- RWMutex 假桩替换为真实
sync.RWMutex - DB 事务包裹 usage aggregation batch
store.Close()优雅关机
v0.1.0 — 2026-07-03
Added
- MetAPI TypeScript → Go 完整重写初始发布
- 27 表双数据库(SQLite + PostgreSQL)
- 14 平台适配器
- 4 协议流式转换
- 15 后台调度任务
- 单二进制 + Docker 部署
Full Changelog: v0.6.0...v0.6.1
v0.6.0
Changelog
All notable changes to MetAPI-Go will be documented in this file.
格式基于 Keep a Changelog,
版本号遵循 Semantic Versioning。
v0.6.0 — 2026-07-07
Security
- CI/CD 发布门禁加入 gitleaks、Go module 校验、race 测试、PostgreSQL integration 测试、前端 typecheck/test/build 和生产依赖 audit。
- CD 镜像发布前执行 Docker smoke test;发布镜像启用 provenance 和 SBOM。
- 测试和文档中的 PostgreSQL DSN 改为运行时拼接,减少 secret scanner 噪声。
- 站点自定义 headers 过滤
Authorization、Cookie、New-API-User、Content-Type、Content-Length、Host等保留头,避免覆盖运行时认证语义。
Fixed
/v1/*数据面接入数据库路由和真实上游选择,不再停留在未配置 stub 行为。- 上游代理支持站点/账号代理、自定义 headers、失败记录和非流式可重试 failover。
- AnyRouter 禁用 NewAPI 风格 token 管理端点,避免错误调用
/api/token。 - API-key/proxy-only 账号不再执行签到或余额上游调用,禁用状态判断改为大小写不敏感。
- 账号 session rebind、manual models、account token 默认值维护补齐事务和错误处理,失败路径回滚。
Added
- 覆盖 SQLite 和 PostgreSQL 的账号、签到、余额、AnyRouter、代理上游和路由选择回归测试。
- 运行时说明明确当前支持 SQLite 单节点和 PostgreSQL 部署;Redis 尚未集成。
v0.5.0 — 2026-07-05
Security
- Admin/proxy token 比较改用
crypto/subtle.ConstantTimeCompare(防时序攻击) - CI 启用
errcheck、staticcheck、ineffassignlinter - CI 测试启用
-race(data race 检测) /debug/vars移至 admin auth 保护后(此前无认证暴露)- 安全响应头中间件:
X-Content-Type-Options,X-Frame-Options,Referrer-Policy,CSP - AES 密钥派生不再 fallback 到
AUTH_TOKEN(独立默认值)
Fixed
- 代理出口
http.DefaultClient(零超时)→ 接入RuntimeExecutor(90s 超时 fallback) - 6 处 OAuth
panic()→return error - SSE 流式响应
WriteTimeout: 60s截断问题 →SetWriteDeadline禁用 - 13 处
log.Printf→slog.Warn/Error - DB 连接池补充
ConnMaxLifetime(5min) +ConnMaxIdleTime(2min) usage_aggregationgoroutine re-panic 修复(不再能崩进程)CheckinScheduler.Stop()data race 修复- CI:
golangci-lint-action@v6Go 1.25 不兼容 →go install最新版 golangci-lint全项目 zero warning
Added
/metricsPrometheus 端点(零依赖 text format)RequestID中间件(X-Request-Idheader + 日志关联)handler/shared/errors.go:APIError结构化错误类型- git pre-push hook(
.githooks/pre-push):自动跑vet + test -race - Claude Code push guard(
~/.claude/hooks/metapi-go-push-guard.sh) AGENTS.mdCI Discipline 规范
Tests
- 8 个零覆盖包全部补齐测试(最低 50%,最高 100%)
- 新增 3 个 e2e 场景:并发代理、auth 时序安全、rate limit 拒绝
e2e测试包总数:4 → 5 文件
v0.4.0 — 2026-07-05
Fixed
- 6 轮 audit 全部修复
- PG 兼容:
INSERT OR IGNORE→ON CONFLICT DO NOTHING - Cron 5 字段 → 6 字段自动转换
sqlx.BindDriver时序修复(?→$N占位符重绑定)
v0.3.0 — 2026-07-04
Changed
- goroutine 泄漏修复
- JSON 性能优化
- 包命名规范化
config.Validate()10 项启动校验
v0.2.0 — 2026-07-04
Added
- 限流中间件(admin 100rps, OAuth 10rps)
- RWMutex 假桩替换为真实
sync.RWMutex - DB 事务包裹 usage aggregation batch
store.Close()优雅关机
v0.1.0 — 2026-07-03
Added
- MetAPI TypeScript → Go 完整重写初始发布
- 27 表双数据库(SQLite + PostgreSQL)
- 14 平台适配器
- 4 协议流式转换
- 15 后台调度任务
- 单二进制 + Docker 部署
Full Changelog: v0.5.0...v0.6.0
v0.5.0 — Production Hardening (2026-07-05)
v0.5.0 — 2026-07-05
🔒 Security
- Admin/proxy token 比较改用
crypto/subtle.ConstantTimeCompare(防时序攻击) - CI 启用
errcheck、staticcheck、ineffassignlinter +-race检测 /debug/vars移至 admin auth 保护后- 安全响应头中间件:X-Content-Type-Options, X-Frame-Options, Referrer-Policy, CSP
- AES 密钥派生独立默认值,不再 fallback 到 AUTH_TOKEN
🐛 Fixed
- 代理出口
http.DefaultClient(零超时)→ RuntimeExecutor(90s fallback) - 6 处 OAuth panic → return error
- SSE WriteTimeout 60s 截流 → SetWriteDeadline 禁用
- 13 处 log.Printf → slog
- DB 连接池 ConnMaxLifetime + ConnMaxIdleTime
- usage_aggregation re-panic + CheckinScheduler data race 修复
- CI golangci-lint Go 1.25 兼容
✨ Added
- /metrics Prometheus 端点 · RequestID 中间件 · APIError 类型
- pre-push git hook (.githooks/pre-push) · Claude Code push guard
- AGENTS.md CI Discipline 规范
🧪 Tests
- 8 零覆盖包补齐(最低 50%,最高 100%)· +3 e2e 场景
v0.4.0 — 6-Round Audit Complete (2026-07-05)
6 轮 audit 全部修复:PG 兼容(INSERT OR IGNORE → ON CONFLICT DO NOTHING)、Cron 5→6 字段转换、sqlx.BindDriver 时序修复。
v0.3.0 — Stabilization (2026-07-04)
goroutine 泄漏修复、JSON 性能优化、包命名规范化、config.Validate() 10 项启动校验。
v0.2.0 — 10 Critical Audit Fixes (2026-07-04)
限流中间件、真实 sync.RWMutex、DB 事务包裹、优雅关机。
v0.1.0 — Initial Go Rewrite (2026-07-03)
MetAPI TypeScript → Go 完整重写初始发布。27 表双数据库、14 平台适配器、4 协议流式转换、15 后台调度。