Lemon-miaow
1b49b4df06
fix: grant API the dedicated node-control socket group
2026-10-07 12:37:15 +08:00
Lemon-miaow
3327c13429
fix: register canonical SELinux socket path and pass staticcheck
2026-10-07 03:07:35 +08:00
Lemon-miaow
296c7bb274
feat: manage distributed node operations from Owner panel
2026-10-07 00:46:17 +08:00
Lemon-miaow
c8957cf191
feat(panel): expose distributed deployment in platform settings
2026-10-06 01:38:10 +08:00
Lemon-miaow
9d2de72c31
fix(panel): format RCON replies and hide connection log noise
2026-10-06 00:08:36 +08:00
Lemon-miaow
df19878c2a
refactor(panel): standardize interface copy in documentation style
2026-10-06 00:02:20 +08:00
Lemon-miaow
fa1b8a905d
fix(panel): standardize operational copy to documentation style
2026-10-05 23:08:22 +08:00
Lemon-miaow
a7d3ca4c9f
fix(panel): diagnose runtime failures and add owner recovery controls
2026-10-05 18:06:55 +08:00
Lemon-miaow
d7ae1e66c1
fix(panel): unify fixed headers and collapsible auth sources
2026-10-05 15:43:57 +08:00
Lemon-miaow
34b450bf2c
fix(panel): refine branding and login layout
2026-10-05 12:34:50 +08:00
Lemon-miaow
1cdec4dd79
docs: mark Felis as development-only after withdrawing releases
2026-10-05 02:06:02 +08:00
Lemon-miaow
862ff3929f
fix(ci): preserve installer compatibility with older releases
2026-10-05 00:23:35 +08:00
Lemon-miaow
30c37617c7
fix(panel): use supplied Felis logo throughout the interface
2026-10-05 00:00:16 +08:00
Lemon-miaow
a002607d47
assets: preserve supplied Felis icon kit
2026-10-04 23:50:01 +08:00
Lemon-miaow
61b283ae2f
feat(auth): add Owner authentication source settings
...
Manage Yggdrasil providers from the panel using durable platform settings, protected identity namespaces and atomic revisions. Apply changes to subsequent logins and profile lookups without restarting. Return operator-host logouts to the login method selection page.
2026-10-04 22:18:37 +08:00
Lemon-miaow
2c98e8b2ab
perf(panel): speed up file browsing and preserve loading forms
2026-10-04 20:18:11 +08:00
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