Commit Graph
376 Commits
Author SHA1 Message Date
Lemon-miaow 296c7bb274 feat: manage distributed node operations from Owner panel 2026-10-07 00:46:17 +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 862ff3929f fix(ci): preserve installer compatibility with older releases 2026-10-05 00:23:35 +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 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 2e4f118939 feat(login): 未绑定 Owner 时说明原因和绑定方式 2026-10-02 19:38:36 +08:00
Lemon-miaow 8d78d245b2 fix(updater): 官方仓库 404 不再提示私有仓库 2026-10-02 18:12:29 +08:00
Lemon-miaow 47a2dec4bc fix(setup): 绑定码可重试并说明连接方式 2026-10-02 17:07:53 +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 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
flyemoji c0ee75efe4 fix(panel): mark the webview acknowledgement cookie secure 2026-09-29 14:08:23 +09:00
flyemoji 118e3bc0c4 fix(rcon): refuse an oversize command before its length wraps 2026-09-29 14:08:04 +09:00
flyemoji 3922aae9a7 fix(api): require reauthentication for changes to own email and passkeys; update OpenAPI descriptions 2026-09-29 13:39:35 +09:00
Lemon-miaow ab4d8c2bf7 test(staticcheck): 删掉没人调用的 mustRead 和一次没被读的赋值 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 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 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 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 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 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 56a4bbcf4c refactor(api): 删掉没有调用方的 QuotaAvailable,修正 passkey last_used_at 的过时注释 2026-09-27 14:20:20 +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