Lemon-miaow
4d8e9af240
feat(cli): apply coordinated updates during maintenance
2026-10-04 17:36:21 +08:00
Lemon-miaow
cb3ed94026
fix(panel): streamline system settings and server creation
...
Use shared action buttons and default to the login space. Allow staff to save startup-only experience settings while running and request a durable restart through the existing operator flow.
Grant the API PVC list permission needed to detect retained worlds before server creation, and show internal failures with a request ID. Cover permission, maintenance, restart and UI behavior with regression checks.
2026-10-04 16:26:03 +08:00
Lemon-miaow
e67896979e
feat(cli): show download progress and copy setup links
2026-10-04 15:49:21 +08:00
Lemon-miaow
e4a2a6339a
fix(panel): place login space before lobby tab
2026-10-04 12:58:07 +08:00
Lemon-miaow
77c1e7404f
fix(panel): refine login and lobby settings layout
2026-10-04 12:56:46 +08:00
Lemon-miaow
10bd2ddad0
feat: customize login and lobby spaces from the panel
2026-10-04 12:38:39 +08:00
Lemon-miaow
efbbe27629
feat: initialize panel access before linking Minecraft accounts
...
Configure connection and storage before creating or resuming the one-time Owner login. Remove Minecraft prerequisites from setup and preserve established login credentials.
Let staff preview and confirm roles from configured authentication sources using the existing account-link storage and game UUID mapping. Retain in-game code proof for players, add client-version and lobby guidance, and support NodePort passkey origins.
2026-10-04 03:05:05 +08:00
Lemon-miaow
75845d8f58
docs: add website and documentation entry points
2026-10-02 22:22:15 +08:00
Lemon-miaow
2e4f118939
feat(login): 未绑定 Owner 时说明原因和绑定方式
2026-10-02 19:38:36 +08:00
Lemon-miaow
9139c5bd35
fix(bootstrap): 重跑时修复中断的安装
2026-10-02 18:49:29 +08:00
Lemon-miaow
8d78d245b2
fix(updater): 官方仓库 404 不再提示私有仓库
2026-10-02 18:12:29 +08:00
Lemon-miaow
80141deeb5
fix(bootstrap): 重跑时接管残留的源码目录
2026-10-02 18:12:20 +08:00
Lemon-miaow
47a2dec4bc
fix(setup): 绑定码可重试并说明连接方式
2026-10-02 17:07:53 +08:00
Lemon-miaow
d2a6b6ec73
feat(bootstrap): 安装结束后引导进入设置向导
2026-10-02 17:07:52 +08:00
Lemon-miaow
94cbd7e120
ci(e2e): 上游下载被拒时跳过
2026-10-02 16:08:56 +08:00
Lemon-miaow
ce8c7893fe
docs: 重写 README
2026-10-02 16:08:42 +08:00
Lemon-miaow
109701a276
fix(ci): 修正分布式实现的 staticcheck 错误
...
迁移 CLI 不再遮蔽 BeginMigration 的错误,拒绝启动时正确返回失败。规范节点批准错误文案和归档 HTTP 状态常量;tar.Reader 已将旧普通文件类型归一化,无需引用已弃用常量。
验证:CI 固定版本 staticcheck 全量通过;cmd/felis、archivetransfer、backup、distributed 的 go test -race 通过。
2026-10-01 20:06:08 +08:00
Lemon-miaow
b01aae77a2
fix(bootstrap): 在源码构建后安装分布式节点防火墙
...
首次源码安装或旧发布版升级时,等待新二进制构建完成后调用 node firewall;worker 的源码安装也按所请求的版本重新构建。补充安装顺序回归检查和 main 接入说明,更新单机默认与多节点运维边界。
验证:Linux VM 上 bootstrap shell 测试全量通过;go test ./cmd/felis;shell 语法和 git diff --check。
2026-10-01 19:57:17 +08:00
Lemon-miaow
adf563ffe3
feat(distributed): 支持单主控多节点部署和停服迁移
...
复用现有 k3s 调度和 Job 生命周期,增加 worker 接入与批准、受保护节点身份、归档传输、持久迁移锁及活动 PVC 切换;同步管理员 API、CLI、面板和隔离规则。分布式模式默认关闭,保持单机兼容。
验证:Go 全量测试与 vet;面板 874 个测试、lint/build;Linux VM 安装器测试、清单服务端 dry-run、网络命名空间防火墙实测。A/B/C 三机 WireGuard、Velocity 和迁移验收仍待完成。
2026-10-01 19:48:37 +08:00
Lemon-miaow
26e817f2c9
perf(bootstrap): k3s 以 GOGC=50 运行,Velocity 1G 以内改用串行回收和 C1,基础设施空载压到约 1 GB
2026-09-29 19:06:37 +08:00
Lemon-miaow
a25553413c
perf(bootstrap): Velocity 堆从 64M 起步不再预占,Docker 及其 containerd 用完即停且不随开机启动
2026-09-29 19:06:37 +08:00
Lemon-miaow
ab4d8c2bf7
test(staticcheck): 删掉没人调用的 mustRead 和一次没被读的赋值
2026-09-29 03:25:26 +08:00
Lemon-miaow
6644046016
fix(panel): 搜索框的停顿计时只在搜索词变了才起,列表刚加载就翻的页不再被拉回第一页
2026-09-29 03:25:26 +08:00
Lemon-miaow
3c0322a5c6
test(pgint): 只读绑定账号的测试角色带密码登录,CI 的 PG 要求密码验证
2026-09-29 02:28:50 +08:00
Lemon-miaow
01cd69692f
test(watchdog): 状态文件先拨回上一轮的时间,Linux 粗粒度 mtime 下备用文件不再和它同刻
2026-09-29 02:28:50 +08:00
Lemon-miaow
20c4ae5567
test(exports): 等待浏览器的导出上传在子测试内取走并等它返回,-race 下不再和下一个子测试改领取时限撞车
2026-09-29 02:28:50 +08:00
Lemon-miaow
d31fbae3cf
test(i18n): 语言检测用例每个都从空存储开始,Node 22 下不再读到模块加载时缓存的英文
2026-09-29 02:28:50 +08:00
Lemon-miaow
6b5bd7055b
test(bootstrap): 原子写入残留临时文件的检查改用 glob,shellcheck 不再报 ls | grep
2026-09-29 02:28:50 +08:00
Lemon-miaow
9b4c9bf4b5
ci(ci): ci 可手动触发,推送时没跑成的提交能补跑
2026-09-29 02:15:30 +08:00
Lemon-miaow
94864473ce
fix(files): 服务器运行时下载文件的拒绝说明改为先停服再操作文件
2026-09-29 01:45:43 +08:00
Lemon-miaow
2b9cd1869c
fix(files): 编辑器保存和打开也逐跳核对 SHA-256,途中变了的内容不写盘也不打开
2026-09-29 01:43:37 +08:00
Lemon-miaow
cb3065da1d
fix(files): 模组包上传也逐段核对 SHA-256、长文件名能写、卡住的导出按时停掉、世界被占用时文件页说明原因并等它结束
2026-09-29 01:26:24 +08:00
Lemon-miaow
1d1549cea2
feat(files): 大文件分片上传、停服解压 zip 先列冲突再覆盖、文件和文件夹可下载;导出和下载不再带出 RCON 密码与转发密钥
2026-09-28 22:44:03 +08:00
Lemon-miaow
3abf146321
test(cli): 服务器清单导出期限测试给第一次调用留够启动时间,忙时不再误报
2026-09-28 22:43:43 +08:00
Lemon-miaow
5dffadb40d
feat(backups): 主人和管理员可下载单个备份、导出停服世界,字节经一次性票据从导出 Job 流式转给浏览器,备份按 sha256 核对
2026-09-28 00:58:42 +08:00
Lemon-miaow
34b81ee8fe
feat(schedules): 每台服务器可设计划任务,按星期和时区定时发命令、重启、停服、开服或备份,重启和备份前可在游戏内提醒
2026-09-27 22:48:49 +08:00
Lemon-miaow
e8ff8f2fe5
feat(cli): 新增 felis status、doctor 和 support-bundle,一屏看全平台、按区域列出问题、打出脱敏诊断包
2026-09-27 21:11:35 +08:00
Lemon-miaow
c97dadc904
docs(cli): felis 用法说明写上 files 的全部操作和服务器 pod 的 egress-gate
2026-09-27 20:11:23 +08:00
Lemon-miaow
ab9a6f0bdb
fix(operator): 服务器 pod 先等出站围栏生效再启动镜像,新 pod 第一个请求不再能连到内网
2026-09-27 20:10:41 +08:00
Lemon-miaow
051cc1c9f5
feat(files): 文件管理可新建、建目录、删除、重命名和上传,写入内容拆成多个环境变量不再超内核单变量上限
2026-09-27 19:58:28 +08:00
Lemon-miaow
b6751eac0f
feat(backups): 主人和管理员可删除单个备份,归档由 reaper 下一轮删除、异地副本随下次同步删除,恢复可能在读时拒绝
2026-09-27 18:09:49 +08:00
Lemon-miaow
db7fbfec46
fix(preflight): 探测 k3s 安装器在 SELinux 主机上要用的 rpm.rancher.io,运维手册列出 FELIS_ARTIFACT_DIR 安装仍要放行的地址,README 不再说内网主机能装
2026-09-27 17:34:48 +08:00
Lemon-miaow
cc0672557c
fix(bootstrap): 下载发布版二进制改为普通语句调用,回退看 HAVE_PREBUILT_BINARY,errexit 覆盖替换 HOST_BIN 的步骤;旧二进制备份没拷完就删掉
2026-09-27 17:24:33 +08:00
Lemon-miaow
b959c560cc
fix(test): 测试脚本有失败就 exit 1,256 个失败不再回绕成通过;非 registry 镜像不推送的断言改按带 --config 的 push 行匹配
2026-09-27 17:17:01 +08:00
Lemon-miaow
7718879bcd
fix(bootstrap): 新生成的 offsite 密钥只写到终端,安装输出和日志里只给出读取命令
2026-09-27 17:14:03 +08:00
Lemon-miaow
9fd699e301
ci(alerts): 用固定版本的 promtool 3.15.0 检查告警规则并跑规则单测
2026-09-27 17:06:20 +08:00
Lemon-miaow
125ba1c3a0
test(e2e): 按 bootstrap.sh 列出的全部 timer 检查启用且在等待,另查备份和 watchdog 首轮运行成功及 OnFailure 单元存在
2026-09-27 17:03:35 +08:00
Lemon-miaow
e97a73e539
test(e2e): 升级任务先往发布版库里写 12 张表的种子行,升级后逐行比对并检查序列位置
2026-09-27 16:59:18 +08:00
Lemon-miaow
95f4e79ff2
fix(bootstrap): 没有 IPv4 默认路由时从 hostname -I 取第一个 IPv4 地址,跳过 IPv6
2026-09-27 16:42:58 +08:00
Lemon-miaow
840d339760
fix(dbbackup): 备份新鲜度按最新的 daily 包算,手动或异地包不再掩盖停掉的定时任务
2026-09-27 16:40:50 +08:00
Lemon-miaow
46f99a7104
fix(watchdog): 状态文件写不进时把状态留在 /run 下的后备文件,下一轮读较新的一份,同一封告警不再每 2 分钟重发
2026-09-27 16:23:33 +08:00
Lemon-miaow
a32e8c19f7
fix(api): 契约检查对请求体按字段严格比对且不看 Content-Type,补上 approve 的 expected_digest 请求体
2026-09-27 16:14:52 +08:00
Lemon-miaow
de5fbb7283
fix(panel): LuckPerms 页在手机上玩家栏按内容收高、列表在卡内滚动,选中玩家的面板落在首屏
2026-09-27 16:08:21 +08:00
Lemon-miaow
7b28434068
fix(panel): scan_document_not_kept 按界面语言说明,不再透出后端英文
2026-09-27 15:59:13 +08:00
Lemon-miaow
2c6e29fa0d
fix(panel): 收到角色拒绝的 403 时限频重读身份,被降权的管理员随即失去管理页
2026-09-27 15:57:31 +08:00
Lemon-miaow
5282d55214
fix(panel): 侧栏用户卡按界面语言显示角色名,身份未读到时显示横线
2026-09-27 15:53:51 +08:00
Lemon-miaow
68387a3b12
fix(panel): LuckPerms 撤销失败提示改为“撤销失败:原因”
2026-09-27 15:51:29 +08:00
Lemon-miaow
d308a5edb1
fix(panel): 构建对话框的提交选择器说明读取失败并可重试,服务端搜索找到最新 100 条之外的提交
2026-09-27 15:49:42 +08:00
Lemon-miaow
ec861c10e0
fix(panel): 镜像页构建卡显示真实构建总数并链到构建页,读不到时显示横线
2026-09-27 15:44:10 +08:00
Lemon-miaow
5d95dc6b6b
fix(panel): 玩家页四个名单加载失败时带上具体原因
2026-09-27 15:41:26 +08:00
Lemon-miaow
d13d99ed75
fix(panel): 我的提交页轮询审核与构建进度,构建进行中走快档,重读失败保留列表并提示
2026-09-27 15:38:10 +08:00
Lemon-miaow
c0228f4e86
fix(panel): 文件页目录请求按序号落地,先点的目录慢回来不再盖掉后点的目录
2026-09-27 15:35:16 +08:00
Lemon-miaow
e129b04c67
fix(panel): 备份页轮询服务器状态,立即备份按去向判断并在已有备份或回档时等待,重读失败保留页面
2026-09-27 15:31:40 +08:00
Lemon-miaow
9df1178022
fix(panel): 建服对话框每次打开重读镜像白名单,编辑或重开时清掉旧错误,读不到白名单时说明并可重试
2026-09-27 15:28:45 +08:00
Lemon-miaow
c1bf1a81a2
fix(panel): 服务器列表的刷新按钮只为自己的点击转圈和禁用,后台轮询时保持可点
2026-09-27 15:25:22 +08:00
Lemon-miaow
b6357ad68b
fix(panel): 可认领的服务器行去掉点不了的控制台按钮,管理员在认领旁保留唤醒和控制台
2026-09-27 15:23:48 +08:00
Lemon-miaow
50ec181177
fix(panel): 服务器列表无匹配时给出真的清除筛选按钮,清掉搜索和状态筛选并回到第一页
2026-09-27 15:21:20 +08:00
Lemon-miaow
f6d586ed0c
fix(panel): 服务器列表每页 20 台,可按名称、状态或在线人数排序,轮询时行序不再跳动
2026-09-27 15:19:45 +08:00
Lemon-miaow
9910c78709
fix(limbo): 登录门聊天和 /link 回复里的网址可以直接点击打开
2026-09-27 15:13:08 +08:00
Lemon-miaow
1e42e9a87b
fix(velocity): 休眠服 MOTD 按唤醒策略说明谁能唤醒,闲置回收期间加入给出回收提示
2026-09-27 15:02:16 +08:00
Lemon-miaow
249d675bd7
fix(operator): 每次运行首次就绪后留 3 分钟到达窗口再开始空服计时,停服或重启时清掉旧计时
2026-09-27 14:53:40 +08:00
Lemon-miaow
32534e3d56
fix(velocity): 同一玩家同时只跑一个授权和唤醒,排队中再点同一服直接告知
2026-09-27 14:42:28 +08:00
Lemon-miaow
67028727ae
fix(velocity): 传送没连上且后端没给理由时重新排队重拨,最多三次
2026-09-27 14:32:30 +08:00
Lemon-miaow
56a4bbcf4c
refactor(api): 删掉没有调用方的 QuotaAvailable,修正 passkey last_used_at 的过时注释
2026-09-27 14:20:20 +08:00
Lemon-miaow
4839d52f88
fix(api): passkey 的 RP ID 按面板主机推导,只配 root_domain 的部署也能用 passkey
2026-09-27 14:18:33 +08:00
Lemon-miaow
e9e9a7a622
fix(api): 收到 API 时钟的 repo 写操作一律用它打时间戳,不再和 PG now() 混用
2026-09-27 14:15:03 +08:00
Lemon-miaow
e491e063cf
fix(api): 消费 op-login 请求时要求已审批,fake 同步
2026-09-27 14:04:34 +08:00
Lemon-miaow
009e81b4cf
fix(api): op-login finish 拒绝审批后被停用或删除的账号
2026-09-27 14:00:33 +08:00
Lemon-miaow
1124413876
fix(api): setup 链接在同一事务里消费并建会话,存储故障回 500 且链接仍可重试
2026-09-27 13:55:56 +08:00
Lemon-miaow
26d997cb40
fix(submit): 本地上传存储在 rename 前 fsync 文件、rename 后 fsync 目录
2026-09-27 13:46:51 +08:00
Lemon-miaow
c54bd2d9eb
fix(submit): 上传途中投稿被撤回或删除时,由上传自己删掉刚落地的 blob
2026-09-27 13:43:41 +08:00
Lemon-miaow
372c8972f9
fix(submit): 已批准的投稿不再占上传者的存储额度,只计入存储总量
2026-09-27 13:38:34 +08:00
Lemon-miaow
0d485992c6
fix(operator): 服务器停服或删除时丢掉内存里的 RCON 失败计数
2026-09-27 13:34:42 +08:00
Lemon-miaow
c272e2ea24
fix(operator): 回到 Starting 时清掉 readySignalAt,每次启动都记入启动时长指标
2026-09-27 13:32:25 +08:00
Lemon-miaow
67a7e27f8d
fix(api): 服务器显示名称限 64 个可见字符,拒绝换行、控制符和不可见格式符
2026-09-27 13:30:28 +08:00
Lemon-miaow
b8da4e2318
fix(api): ownerOnly/adminOnly 包在已有的包装外层,路由的每层门禁都生效
2026-09-27 13:22:18 +08:00
Lemon-miaow
fef8d962c9
fix(api): UserDetail 读不到绑定账号时返回错误,不再显示为未绑定
2026-09-27 13:18:37 +08:00
Lemon-miaow
01408014b2
fix(api): quantityToMB 按 MiB 向上取整,配额不再少算零头
2026-09-27 13:16:49 +08:00
Lemon-miaow
2c5a85a033
fix(api): 调整资源先在 owner 的认领锁内核配额并写缓存再 patch 集群,集群拒绝时缓存回到集群的大小
2026-09-27 13:15:18 +08:00
Lemon-miaow
7f203b9245
fix(api): ListUsers 的 total 按同一组过滤条件计数,面板不再翻出空页
2026-09-27 13:01:12 +08:00
Lemon-miaow
e91886822c
fix(api): mc_uuid 统一校验为 UUID,非法值返回 400 bad_mc_uuid 并按规范形式存储
2026-09-27 12:57:40 +08:00
Lemon-miaow
5b0686dc06
fix(api): 停服时 CR 已不存在返回 404 not_found,与唤醒一致
2026-09-27 12:49:46 +08:00
Lemon-miaow
f692725bed
fix(migrate): 兑换迁移码在双方认领锁下检查目标配额,超出返回 403 migrate_quota_exceeded 且码不消耗
2026-09-27 12:46:49 +08:00
Lemon-miaow
fe48319866
test(watchdog): 整轮巡检测试覆盖集群告警保持、dry-run、主机 relay 密码、按配置检查与状态存不下,收件人查询移入 watchdog 并加 pgint 契约
2026-09-27 12:33:11 +08:00
Lemon-miaow
f9312118c9
test(bootstrap): 先校验再执行改为实跑 download_release_binary,按日志核对顺序与拒绝后不执行
2026-09-27 12:24:57 +08:00
Lemon-miaow
d7afdb4124
test(platform): NetworkPolicy 求值器按规范处理 ipBlock、空 From、表达式选择器与端口范围
2026-09-27 12:14:37 +08:00
Lemon-miaow
dfc2dd8888
fix(e2e): 查最新 release 时 gh 出错让步骤失败,只有 release not found 才跳过发布版任务
2026-09-27 12:10:44 +08:00
Lemon-miaow
28fd20c791
feat(backup-now): 一次备份全部世界的命令,补扩盘/数据盘与计划内迁机指南
2026-09-27 12:08:03 +08:00
Lemon-miaow
64476b0171
fix(store): 新 pod 首次连库在网络策略放行前重试
2026-09-27 12:08:03 +08:00
Lemon-miaow
7b91f7c6c3
fix(reaper): 只清理备份库的 CronJob 用命名空间默认 SA,e2e 实跑一次 reaper
2026-09-27 12:08:03 +08:00