RWDai
dbec85344d
Fix Rust CI toolchain setup
2026-05-15 01:20:36 +08:00
fawney19
a7e71624e3
ci: align release channels and speed rust checks
2026-05-14 14:09:27 +08:00
Kayphoon
6d2fcf12cd
feat(install): add macOS native one-click install with launchd
...
- Release workflow builds macos-amd64/macos-arm64 tarballs on native runners
- install.sh detects Darwin, downloads macos-* assets, installs LaunchDaemon
- Dedicated _aether service account (dscl), env root:_aether 0640
- Launchd stdout/stderr in /var/log/aether (root-owned dir, service-writable files)
- Wrapper script parses env literally without shell expansion
- Auto-prune old releases (default keep 3)
- README documents macOS launchd commands
2026-05-12 15:36:29 +08:00
fawney19
6ef0bd9488
fix(ci): clean stale release drafts before publish
2026-05-07 16:30:39 +08:00
fawney19
fd44906bb7
fix provider pool quota status handling
2026-05-07 11:28:44 +08:00
fawney19
01c9f9be49
ci: rename release workflow
2026-05-07 09:46:35 +08:00
fawney19
3d9f189f0e
ci: publish prerelease images to pre tag
2026-05-07 09:12:59 +08:00
fawney19
a83aa928a0
ci: parallelize rust checks and guard prereleases
2026-05-07 03:51:58 +08:00
fawney19
4bd49d0d7a
Add unified install script and release packaging
2026-05-06 20:03:07 +08:00
fawney19
fce7e959e5
Add multi-database data layer
...
Introduce aether-data-schema and driver-specific schema generation for Postgres, MySQL, and SQLite.
Split data backends, lifecycle, repositories, and gateway runtime integration across database drivers.
Verified with cargo fmt --all --check, cargo clippy --workspace --all-targets -- -D warnings, and cargo test --workspace.
2026-05-05 18:27:36 +08:00
fawney19
cb5b8ee1ee
Use Rust build metadata for system version
2026-05-03 22:06:16 +08:00
fawney19
ab54881eb0
ci: 固定 macOS runner 版本并确保 Rust target 安装
2026-04-19 01:21:21 +08:00
fawney19
54d77598ae
ci(rust): 将环境变量提升至全局,各 job 添加 toolchain 显示步骤
2026-04-17 01:58:12 +08:00
fawney19
0bcfc7d352
fix(ci): 将 rustfmt/clippy 组件安装改为独立 rustup 步骤
2026-04-17 01:53:59 +08:00
fawney19
dde02e6111
fix(ci): 恢复 rust-toolchain@stable,版本由 rust-toolchain.toml 控制
2026-04-17 01:17:29 +08:00
fawney19
aadc6b665c
chore: 锁定 Rust 版本为 1.95.0,统一本地与 CI 环境
2026-04-17 01:15:16 +08:00
fawney19
67a2ca6e31
perf(gateway): 为 dashboard 接口添加短时响应缓存
...
新增 DashboardResponseCache,对 stats/daily_stats/provider_status
三个接口按用户维度缓存 15-30 秒,减少重复数据库查询。
2026-04-15 03:03:20 +08:00
fawney19
a4e7ac1df6
feat(proxy): 重构 Proxy 节点管理与隧道系统
...
- 重构 proxy_nodes 管理端,支持节点注册、心跳、隧道生命周期管理
- 增强 tunnel 嵌入式 hub 和隧道协议
- 重构 aether-proxy 配置、隧道客户端、心跳和调度机制
- 调整 admin OAuth/配额/导入等处理器的参数传递
- 扩展数据迁移模块
- 补充 proxy nodes、OAuth、配额、系统导入等测试
- 更新前端 proxy nodes 视图和 API
2026-04-14 22:51:02 +08:00
RWDai
37bb120d20
feat(aether-proxy): 支持 Alpine 主机服务安装与 musl 发布 ( #291 )
...
* feat(aether-proxy): 支持 Alpine 主机服务安装与 musl 发布
* fix(aether-proxy): address alpine support review findings
2026-04-13 17:20:22 +08:00
fawney19
b0f068cc5d
ci(rust): 移除冗余的 build_release job,测试已覆盖编译
2026-04-11 15:33:04 +08:00
fawney19
f68c67021c
refactor(build): 切换到 musl 交叉编译 + distroless 镜像方案
...
- docker-publish.yml: 改为 cross 交叉编译 amd64/arm64 musl 静态二进制,
前端在 CI 独立构建, buildx 组装多架构镜像
- Dockerfile.app: 从 139 行容器内编译简化为 24 行纯 COPY 打包
- Dockerfile.app.local: 移除 jemalloc 动态链接 (LD_PRELOAD/libjemalloc2)
- aether-gateway: 引入 tikv-jemallocator 静态链接 jemalloc
2026-04-11 12:21:33 +08:00
fawney19
b901a6ffc7
chore: 移除废弃的 build-hub workflow,格式化测试代码
2026-04-09 14:01:37 +08:00
fawney19
b0b40c16ff
feat: 全栈功能增强 - 扩展 provider/pool 管理、完善调度与数据层、重构前端 Pool 页面
...
后端:
- 扩展 pool_admin payloads 和 provider query models,增强 endpoint key 管理
- 完善 scheduler-core 候选排序与请求候选逻辑
- 增强 usage-runtime 写入、provider-transport 网络层与 OAuth 刷新
- 改进 AI pipeline 响应转换与流式处理
- 扩展 global_models/provider_catalog 数据层查询能力
- 增强 video-tasks-core 多 provider 支持
- 新增大量集成测试覆盖 pool/keys/provider_query/frontdoor
前端:
- 重构 PoolManagement 页面,拆分状态管理/对话框逻辑到独立模块
- 新增 poolAdvancedDialog/poolSchedulingDialog/poolManagementState/poolMobilePresentation 工具函数及测试
- 改进 Dialog 组件与 provider tabs 显示
部署:
- 更新 Rust CI workflow 和 Dockerfile 构建配置
Closes #275
Co-authored-by: AAEE86 <ppk0227@hotmail.com >
2026-04-09 13:51:50 +08:00
fawney19
1d9c77522a
refactor: 移除 Python 后端源码,全面迁移至 Rust gateway 架构
...
- 删除全部 Python 源码 (src/) 及 Alembic 迁移脚本,归档至 _deprecated_py_src/
- 重构 Rust gateway ai_pipeline: 拆分 planner/finalize 模块,新增 contracts/adaptation 层
- 重组 handlers 模块为 admin/public/proxy/internal/shared 子模块结构
- 新增 executor 模块,引入 Rust 原生数据库迁移 (aether-data/migrations)
- 简化 CI/Docker 构建流程,移除 base image 二级构建,统一为单一 app image
- 移除 Python 相关基础设施文件 (entrypoint.sh, gunicorn_conf.py, Dockerfile.base)
2026-04-03 16:26:16 +08:00
fawney19
d735b6316f
feat: 引入 Rust executor/gateway sidecar 及 Python 侧双后端适配
...
- 新增 Rust workspace crates: aether-contracts, aether-executor, aether-gateway
- aether-executor: 支持 Unix Socket/TCP 双传输模式,处理同步/流式上游请求
- aether-gateway: 作为本地主入口代理,集成 /api/internal/gateway/resolve 认证预解析
- Python 侧新增 ExecutionPlan 契约和 RustExecutorClient,各 handler 支持
executor_backend=rust 时将可序列化请求转发给 Rust executor 执行
- 重构 dev.sh 支持 executor/gateway 进程编排与生命周期管理
- 新增 internal gateway 路由,提供 resolve/passthrough 端点
- handler 层(chat/cli/video/endpoint_checker 等)全面适配 Rust executor 回退逻辑
- pipeline 层支持 trusted auth context 跳过重复认证
- 新增 Rust CI workflow 及对应测试用例
2026-03-21 12:57:09 +08:00
fawney19
127b4e11de
ci(hub): 移除 build-hub workflow 中的 Docker 构建和推送步骤
2026-03-12 15:34:09 +08:00
fawney19
dc440f1507
fix(ci): 修正 deploy-pages action 版本号 (deploy-pages@v4, upload-pages-artifact@v3)
2026-03-12 10:41:26 +08:00
fawney19
5c732f844a
chore(ci): 升级 GitHub Actions 版本,解决 Node.js 20 弃用警告
...
- actions/checkout v4 → v5
- actions/upload-artifact v4 → v5
- actions/download-artifact v4 → v5
- actions/setup-node v4 → v5
- actions/configure-pages v4 → v5
- actions/upload-pages-artifact v3 → v4
- actions/deploy-pages v4 → v5
- docker/build-push-action v5 → v6
- Node.js 版本 20 → 22
2026-03-12 10:34:29 +08:00
fawney19
310355bcc1
fix(ci): 修复多架构Docker镜像构建,arm64覆盖amd64问题
...
分开push到同一tag会导致后者覆盖前者manifest。
改为先按digest分别push,再用imagetools合并为多架构manifest。
2026-03-02 13:59:25 +08:00
fawney19
ab07d83aaf
fix(ci): 使用认证的gh CLI替代未认证curl调用GitHub API
...
download-hub步骤使用未认证的curl获取release列表,
频繁触发GitHub API速率限制导致构建失败。
改用gh CLI自带GITHUB_TOKEN认证避免此问题。
2026-03-02 13:41:05 +08:00
fawney19
01df063cc1
feat(ci,alembic): Hub Docker镜像构建发布,数据库迁移并发安全加固
...
- build-hub.yml 新增 Docker job,构建多架构镜像推送至 GHCR 和 Docker Hub
- build-hub/build-proxy Release 名称简化为 tag 名
- alembic/env.py 使用 PostgreSQL advisory lock 防止多进程并发迁移竞态
- 迁移脚本改用 ADD/DROP COLUMN IF NOT EXISTS 替代 inspector 检查
2026-03-02 13:24:58 +08:00
fawney19
0564893c4f
refactor: Hub二进制改为Docker构建时下载,优化部署流程与worker初始化
...
- Dockerfile: 移除COPY预编译二进制,改为构建时通过HUB_TAG从GitHub Release下载
- CI: 移除artifact上传/下载步骤,通过build-args传递Hub tag
- deploy.sh: 重构参数解析,支持--hub-tag指定版本,跟踪tag变化触发重建
- build.sh: 新增--image模式支持构建并推送Hub Docker镜像
- hub.rs: worker连接时同步所有节点在线状态,避免状态不一致
- proxy_nodes: 启动时主动建立Hub worker连接,消除懒连接窗口期
- docker-compose.yml: app镜像支持APP_IMAGE环境变量配置
- README: 更新部署文档,推荐本地构建方式
2026-03-02 11:24:14 +08:00
fawney19
5b9d9452c9
fix: 修改hub构建方式
2026-03-02 04:05:40 +08:00
fawney19
039a18c243
feat(tunnel): 引入 aether-hub 帧路由器,支持多 worker 共享 tunnel 连接
...
新增 Rust 实现的 aether-hub 服务,作为 Docker 容器内部 WebSocket 帧路由器,
解决多 Gunicorn worker 进程间 tunnel 连接隔离问题。
主要改动:
- 新增 aether-hub Rust 项目,实现 proxy/worker 双向帧路由与 stream_id 重映射
- 新增 HubConnectionManager/HubTunnelTransport,worker 通过 Hub 转发 tunnel 帧
- 新增 create_tunnel_transport 工厂函数,按运行环境自动选择 Hub 或直连模式
- 新增 NODE_STATUS 广播机制,Hub 实时通知所有 worker 节点连接状态变化
- CI/CD 新增 build-hub job,Dockerfile 集成 Hub 二进制,deploy.sh 适配 Hub 构建
- 默认 GUNICORN_WORKERS 从 4 降为 2
2026-03-02 02:43:14 +08:00
fawney19
5da9197eee
feat(proxy): CI 添加 Docker 构建推送和 README 自动更新,HardwareTooltip 增强字段兼容
...
- build-proxy workflow 新增 docker job 构建多架构镜像推送 GHCR/Docker Hub
- build-proxy workflow 新增 update-readme job 自动更新下载链接表格
- Dockerfile 改用预编译二进制替代多阶段 Rust 编译
- 新增 docker-compose.yml 简化部署
- .env.example 精简为必要配置项
- README 补充 Docker 部署说明和下载表格标记
- HardwareTooltip 兼容 camelCase/snake_case 字段名,添加 pickRecord 辅助函数和原生 tooltip 回退
2026-02-22 01:13:03 +08:00
fawney19
9647d95759
feat: delegate 协议改为 header 元数据 + gzip 压缩 body 直传
...
- delegate wire format 从 JSON body 改为 HTTP headers 传递元数据
(X-Delegate-Method/Url/Headers),上游请求体 gzip 压缩后直传,
减少跨国代理传输耗时
- Rust 侧新增 gzip 解压(含 decompression bomb 防护 50MB 上限)
- 升级模块从 GitHub API asset 下载改为公开 release URL 直链,
GITHUB_TOKEN 变为可选
- 前端适配新 timing 字段,展示压缩率与 wire_size/body_size
- CI release notes 改用 generate_release_notes 自动生成
2026-02-11 16:34:18 +08:00
fawney19
f22d2efb9d
refactor: 优化 CI 缓存隔离与镜像标签策略,重构 Nginx 为白名单路由模式
...
- CI: 按 scope 隔离 base/app 构建缓存,app 层使用 no-cache-filters 确保前端每次重建
- CI: 镜像标签改为 semver 优先,支持 pre/fix 预发布标签,启用 latest=auto
- Nginx: 从 try_files + @backend 回退模式改为白名单路由(api/v1/health → 后端,其余 → SPA)
2026-02-09 16:04:54 +08:00
fawney19
6d95822e19
fix(ci): macOS amd64 改用 macos-latest 交叉编译
...
macos-13 (Intel) runner 已被 GitHub 下线
2026-02-07 12:52:25 +08:00
fawney19
01653efa84
ci: 添加 aether-proxy 多平台自动编译与 README 文档
...
- 新增 GitHub Actions workflow,推送 proxy-v* tag 自动编译 5 个平台
(linux-amd64, linux-arm64, macos-amd64, macos-arm64, windows-amd64)
- 编译产物自动发布到 GitHub Releases 并生成 SHA256 校验文件
- 新增 aether-proxy README,包含部署、配置、后台运行等完整说明
2026-02-07 12:52:25 +08:00
fawney19
b88fb6273b
refactor: Antigravity/Codex 服务重构为插件化适配器架构
...
- 将 Antigravity 和 Codex 从独立模块迁移至 src/services/provider/adapters/ 插件体系
- 新增 provider_types 和 oauth_token 模块,移除 maintenance_scheduler 中的 OAuth 定时刷新
- 增强 admin API:扩展 keys 和 provider_query 端点,新增 dashboard 路由
- 大幅增强 ProviderDetailDrawer 组件,新增 AntigravityQuotaDialog
- 改进 handler 基类(chat/cli)和错误分类器
- 优化 fetch_scheduler 和 upstream_fetcher
- 前端 UI 组件清理和优化
- 更新测试以匹配新模块结构
2026-02-06 16:37:06 +08:00
fawney19
5b9ba06af6
feat: base image hash 改用依赖指纹,上游流式策略改为三态按钮
...
CI 和 deploy.sh 的 base image hash 计算从整文件 cat 改为
tomllib 提取 pyproject.toml 依赖指纹,避免仅改注释或工具配置
触发不必要的 base 重建;前端将上游流式策略从 Select 下拉改为
头部三态循环按钮(跟随请求/固定流式/固定非流),点击即保存。
2026-02-05 17:20:34 +08:00
fawney19
f2e62dd197
feat: 添加版本更新检查功能
...
- 后端新增 /api/admin/system/check-update 接口,从 GitHub Tags 获取最新版本
- 前端新增 UpdateDialog 组件,管理员登录后自动检查更新并弹窗提示
- 同一会话内只检查一次,点击"稍后提醒"后 24 小时内不再提示
- CI 和 deploy.sh 自动生成 _version.py 版本文件
2026-01-08 03:01:54 +08:00
fawney19
c2ddc6bd3c
refactor: optimize Docker build with multi-stage and slim runtime base image
2025-12-19 15:51:21 +08:00
fawney19
c69a0a8506
refactor: remove stream smoothing config from system settings and improve base image caching
...
- Remove stream_smoothing configuration from SystemConfigService (moved to handler default)
- Remove stream smoothing UI controls from admin settings page
- Add AdminClearSingleAffinityAdapter for targeted cache invalidation
- Add clearSingleAffinity API endpoint to clear specific affinity cache entries
- Include global_model_id in affinity list response for UI deletion support
- Improve CI/CD workflow with hash-based base image change detection
- Add hash label to base image for reliable cache invalidation detection
- Use remote image inspection to determine if base image rebuild is needed
- Include Dockerfile.base in hash calculation for proper dependency tracking
2025-12-19 13:09:56 +08:00
fawney19
b3fbe00657
feat: add version management with setuptools-scm
...
- Configure hatch-vcs for automatic version generation from git tags
- Update pyproject.toml to use dynamic versioning
- Add src/_version.py for runtime version access
- Update src/__init__.py to import version from _version
- Add __APP_VERSION__ to frontend vite config
- Add version script to frontend package.json
- Update CI workflows to trigger on version tags instead of branches
2025-12-14 00:16:03 +08:00
fawney19
2dce4102b0
fix: 添加 404.html 支持 SPA 路由刷新
2025-12-11 20:10:01 +08:00
fawney19
3b05f0b269
ci: 更新 Docker 镜像名称配置
2025-12-11 18:52:13 +08:00
fawney19
9142473640
refactor: 优化 Docker 构建流程,分离 CI/本地开发镜像配置
2025-12-11 18:31:53 +08:00
fawney19
4275e6ec6b
ci: 调整 Docker 构建工作流,移除 pull_request 触发器
2025-12-11 18:19:46 +08:00
fawney19
3b8a55adea
docs: 更新部署文档和配置,支持预构建镜像和本地构建两种方式
2025-12-11 18:16:19 +08:00