Skip to content

Releases: tall-1997/daidai-panel-native

呆呆面板本机版 v2.0.7

Choose a tag to compare

@github-actions github-actions released this 29 Sep 16:40

v2.0.7 - 2026-09-29

仪表盘

  • Android 面板 CPU 占用不再固定为 0。优先读取 cpufreq,读不到时采样 /proc/stat,再退回负载均值。

UI

  • 个人资料页的头像按钮和分区卡片不再上下贴在一起。
  • Android 运行时不支持提示卡补上下边距,避免和下方卡片贴死。

正式版已通过正式签名、x86_64 模拟器运行时验证与发布 APK 摘要一致性门禁。
ARM64 真机验证仍缺少自托管 runner,本次不以真机证据宣称 ARM64 已覆盖。

呆呆面板本机版 v2.0.6

Choose a tag to compare

@github-actions github-actions released this 29 Sep 10:23

v2.0.6 - 2026-09-29

UI

  • 默认 MIUIX 使用 HyperOS 色板:浅色灰底白卡片、蓝色强调;深色黑底灰卡片。
  • 页面、卡片、强调色、进度和输入光标统一从 AppVisualPalette 读取。Liquid Glass 仍使用翠绿,成功和运行状态不并入品牌色。

发行

  • GitHub Release 只发布安装包和 android-update.json,不再附带 .sha256 文件。安装包摘要仍在发布前校验,并写进更新清单供应用内更新使用。

依赖

  • 未配置的 Linux 镜像按发行版走国内源;客户机没有 CA 证书时,pip/npm 使用可信主机、重试和 HTTP。
  • TypeScript 健康检查加载随包的 5.6.3,不再调用客户机里不存在的 tsc。

正式版已通过正式签名、x86_64 模拟器运行时验证与发布 APK 摘要一致性门禁。
ARM64 真机验证仍缺少自托管 runner,本次不以真机证据宣称 ARM64 已覆盖。

呆呆面板本机版 v2.0.5

Choose a tag to compare

@github-actions github-actions released this 29 Sep 02:47

v2.0.5 - 2026-09-29

脚本与依赖

  • 脚本启动前自动识别 Python、Node.js 和 TypeScript 第三方依赖。
  • 缺失依赖按运行时版本加锁安装,成功后持久化到共享依赖环境,后续脚本直接复用。
  • 依赖安装失败时阻止脚本执行,并返回明确的安装日志。
  • 新增 Android/Linux PTY 交互终端和 rootfs 配置/下载入口。

安全与兼容性

  • 修复 Android runtime 自定义下载源 SSRF 与 tar 软链越界写入风险。
  • 修复 Windows 服务端构建中的 Unix PTY 平台编译问题。
  • 修复任务导入协议、任务配置字段和脚本运行超时处理。

UI

  • 修复键盘弹出、固定高度弹窗、长路径下拉框和动态文本导致的布局溢出。

正式版已通过正式签名、x86_64 模拟器运行时验证与发布 APK 摘要一致性门禁。
ARM64 真机验证仍缺少自托管 runner,本次不以真机证据宣称 ARM64 已覆盖。

呆呆面板本机版 v2.0.4

Choose a tag to compare

@github-actions github-actions released this 25 Sep 02:38

v2.0.4 - 2026-09-25

脚本

  • TypeScript 脚本运行修复:兜底内联转译器仅在 typescript 模块存在时启用;依赖兼容映射固定 typescript@5.6.3,规避 TypeScript 7 原生发行版缺少 CJS transpileModule API 导致的必然失败。

环境变量

  • 新建与改名接口增加名称校验:拒绝空名称、非法格式(须为字母/数字/下划线且不以数字开头)与运行时保留名,防止无效变量破坏备份等功能。

任务

  • 创建任务时拒绝空命令,与前端表单校验保持一致。

依赖

  • POST /api/deps 请求缺少 names 数组时返回 400 与契约提示,不再静默返回空结果。

通知

  • 通知权限被拒(POST_NOTIFICATIONS_DENIED)返回 403 而非 500,渠道故障返回 503,语义更准确。

发布工程

  • 修复正式版发布门禁:release-runtime-contract.json 显式声明 stable_emulator_matrix(api30-x86_64-4k),发布校验器在 stable 通道改用该矩阵验证同一次构建的 x86_64 模拟器运行时证据。此前契约仍指向云 runner 无法运行的 ARM64 模拟器矩阵 api35-16k,导致 stable 发布校验始终找不到证据文件(v2.0.3 正式版发布因此失败)。物理设备证据边界保持如实记录。

正式版已通过正式签名、x86_64 模拟器运行时验证与发布 APK 摘要一致性门禁。
ARM64 真机验证仍缺少自托管 runner,本次不以真机证据宣称 ARM64 已覆盖。

呆呆面板本机版 v2.0.2

Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Sep 01:21

v2.0.2 - 2026-09-22

安全

  • 订阅拉取只允许 http/https,并在每一跳重新校验地址,拒绝跳到 file: 或内网目标。
  • Git 远程地址与分支不再接受以 - 开头的主机名或引用,clone/pull 在 URL 前使用 --。
  • 通知出站拒绝回环、链路本地和私网地址,并关闭自动跳转。
  • 备份上传、下载和恢复限制在备份目录内;脚本路径拒绝 ..、控制字符和响应头注入。
  • Node/Python 资源解压拒绝写出目标目录。
  • OpenAPI Secret、本机 token 改为常量时间比较;鉴权失败不再回显 token 前缀。
  • 查看 OpenAPI Secret 必须校验当前管理员密码,不再使用任意用户密码。
  • 终端、脚本、订阅至少需要 operator;备份和 config.sh 至少需要 admin。任务、环境变量、依赖、通知和日志的写操作需要 operator。
  • 检查更新改为读取本仓库 tall-1997/daidai-panel-native 的已发布版本,更新清单按标签下载,不再依赖 /releases/latest。
  • 登录页把链路本地地址和运营商级 NAT 地址按本机地址处理,默认使用 http。

日志流

  • 依赖日志流在安装仍进行时改为要求客户端重连,不再把进行中的状态当成终态,导致一打开依赖日志就显示“安装成功”;日志行按纯文本回放并附带稳定 id:,重连不会重复堆叠同一行。
  • 订阅拉取日志流改为纯文本行加 id: 游标,拉取进行中持续重连跟随,真正结束才发送 finished,空闲时发送 not_running,不再一打开就标记已完成;日志页面也不再渲染 done 帧的载荷(避免每次重连插入一行 reconnect)。

Android

  • cron 的 5/10 这类「起点/步长」按标准从起点步进到字段上限,不再只在起点触发一次。
  • Python 运行时自带的 OpenSSL 库文件名与 SONAME 对齐为 libcrypto_python.so/libssl_python.so,避免按文件名遮蔽系统 libcrypto.so/libssl.so,修复 proot 内系统 libcurl 因缺失 OpenSSL 1.0 符号导致的链接失败;同时补上 Python _ssl/_hashlib 需要的 libcrypto.so.3/libssl.so.3 兼容副本。

依赖

  • 取消正在安装或卸载的依赖时会终止对应进程,不再只改状态、让安装结束后把状态覆盖回成功或失败。
  • 修复 Python 依赖已经安装成功、验证却失败的问题。websocket-client 的模块名是 websocket,不再误当成 websocket_client。安装和验证使用同一个 rootfs Python 与 site-packages;发行包若声明了自己的顶层模块,也按该模块验证。

说明

  • 仓库介绍和文档改为只描述本仓库的 Android 本机版,不再保留其他仓库的 Docker、Windows 或 Magisk 下载说明。

安装包

  • ARM64:daidai-panel-native-2.0.2-prerelease-arm64.apk
  • x86_64:daidai-panel-native-2.0.2-prerelease-x86_64.apk

本版本为预发行。请从本仓库 Release 下载安装包,不要使用其他仓库的 Docker、Magisk 或旧版 APK。

Prerelease 已通过版本、正式签名、证书指纹与 CI 构建门禁。
ARM64 Android 真机验证仍为 blocked 边界,release evidence 与 runtime gates 保持 pending。

呆呆面板本机版 v2.0.1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Sep 15:23

v2.0.1 - 2026-09-18

Android 本地 fallback

  • Git 订阅支持 ssh_key_id:私钥写入应用私有目录并注入 GIT_SSH_COMMAND,拉取结束后删除临时钥。
  • 新增 PUT /subscriptions/{id}/refresh;定时调度按 cron 拉取已启用订阅,进行中的拉取会被跳过。
  • pull/stop 会强制结束正在运行的 git 进程。
  • 备份恢复进度按解密、校验、切脚本、提交数据库、收尾上报 active/status/stage/message/percent。
  • capabilities.limits 改为真实上限(任务日志 500、脚本运行 200、备份 5、并发 2、队列 32、缓存 64MiB、调试 7200 秒)。
  • 脚本/任务运行签发 2 小时会话 token 注入 DAIDAI_TOKEN,结束后撤销。
  • TypeScript 优先使用 ts-node,其次 tsc,最后才回退 transpileModule。
  • 格式化工具缺失时返回 warning/message,不再静默保持原文。
  • /api/system/check-update 读取 GitHub linzixuanzz/daidai-panel latest;失败时软降级。
  • /sponsors 拉取公开赞助源并缓存 10 分钟,失败返回 unavailable。
  • 登录仅在 two_factor_required=true 时进入 TOTP 流程,补齐本地 RFC 6238 实现。

Flutter

  • 登录挑战响应识别两步验证,避免 4xx 被误报成网络错误。
  • 任务表单与 cron 模板展示下次执行时间和解析结果。
  • 调度器宿主状态补充 task views、panel settings、health check 等平台能力声明。

Prerelease 已通过版本、正式签名、证书指纹与 CI 构建门禁。
ARM64 Android 真机验证仍为 blocked 边界,release evidence 与 runtime gates 保持 pending。

呆呆面板本机版 v2.0.0

Choose a tag to compare

@github-actions github-actions released this 11 Sep 11:14

v2.0.0 - 2026-09-11

稳定性与并发修复

  • 脚本执行流式输出改为 io.Writer 回收并配合 WaitDelay 兜底,修复 Wait 与管道读取并发导致的尾部日志丢失与数据竞争(内联脚本、订阅 hook 共用同一实现)。
  • 定时任务全局调度器/执行器改用原子指针访问,消除并发读写的竞态。
  • JWT 密钥生成移动到数据目录解析之后,并补齐生成失败的错误处理。
  • 通知发送计数改为原子 UPDATE 自增,消除读-改-写竞态;Webhook 出站安全校验下沉到拨号层按解析结果 IP 校验,消除 DNS 重绑定 TOCTOU 窗口。
  • CORS 拒绝日志改为有界存储避免内存无限增长,并停止放行 Origin: null。

CLI 与运行时契约

  • ddp env set 仅更新显式传入的字段,新增 --enabled/--disabled,不再清空未传的分组、备注和启用状态。
  • 任务等待补充默认超时与超时报错,日志读取改为保留末尾并按需截断,只读命令不再触发迁移。
  • 运行时契约校验补齐顶层 artifacts 字段,修复 x86_64 冒烟证据在严格反序列化下解析失败。

Android

  • 修复 PRoot 工作目录误绑 / 覆盖 rootfs 根的问题,系统包安装工作目录修正为 /workspace;修正 ELF p_align 偏移读取错误。
  • rootfs 校验值下载兼容 Alpine 的 <archive>.sha256 裸哈希格式,修复此前校验地址恒 404 的问题。
  • 面板健康检查加入 TTL 缓存与 single-flight,避免公开接口同步执行 PRoot 造成资源耗尽。
  • Python 运行时统一到 3.14,失败不再永久缓存,pip 引导校验退出码;运行时 fallback 元数据版本同步为 3.14。

Flutter

  • 修复批量设置分组时已有分组无法取消选中的问题。
  • 补齐各对话框临时 TextEditingController 的释放,消除内存泄漏。

Prerelease 已通过版本、正式签名、证书指纹与 CI 构建门禁。
ARM64 Android 真机验证仍为 blocked 边界,release evidence 与 runtime gates 保持 pending。

呆呆面板本机版 v1.0.20

Choose a tag to compare

@github-actions github-actions released this 07 Sep 13:45

v1.0.20 - 2026-09-07

x86_64 本地运行时与 CI 门禁

  • 新增 x86_64 Ubuntu 本地运行时(含 Alpine musl rootfs 制作与按需切换),打通 CI x86_64 模拟器全链路 smoke,作为 ARM64 真机 evidence 的行为代理。
  • NDK 自编译 PRoot 全面重建:接入 Termux PRoot 体系,处理 talloc/loader/libc 特性声明与 Android shmem 兼容定义、去除不受支持的 loader/sysvipc 标志,恢复并校验 seccomp 路径。
  • 原生 bsdiff 补丁器替换并修正 BSDIFF 缓冲区长度类型;rootfs 符号链接解包前先清理已存在的占位项。
  • Android 单 ABI 打包、Flutter split ABI 过滤分离;打包原生运行时字节在构建中保持原样。
  • x86 Node 运行时修复 UTF-8 切片(禁用损坏的 TextDecoder 行为)并关闭 V8 JIT;闪退诊断与系统盘故障可读日志。
  • 借 harness 参考加固:proot 每次调用显式 --link2symlink;apt 安装加入 dpkg --configure -a 恢复与 DPkg::Lock::Timeout/Acquire::Retries;rootfs 缺 ca-certificates 时 apt 源回退 http(装好证书后下次启动自动恢复 https);诊断新增 host_page_size_bytes 与 proot_elf_load_max_align(16K 页预检)。

依赖与任务可靠性

  • POST /deps 依赖安装与 DELETE /deps 卸载异步化:立即返回 201/200 并登记 operation,后台更新依赖行状态,避免客户端读超时误判为失败(修复 SocketTimeoutException)。
  • pip 卸载补充 --break-system-packages;依赖安装/卸载/重装 operation 补齐,支持本地 wheel/tarball 元数据解析与类型标注。
  • 任务 run/停止的 operation 日志链、env 详情 GET /api/v1/envs/{id}、env 更新响应完整性、资源创建统一返回 201。
  • 脚本目录统一迁移到 local-panel/scripts;Android ICU 兼容转义补花括号与数组展开场景;shell 版本探测改用 /bin/bash。
  • 任务运行日志暴露完整异常因果链,smoke 诊断可回读任务日志并识别存储 DB。

门禁与发布

  • x86_64 模拟器 smoke 全链路(启动 → 安装 → 28 步骤执行 → evidence/产物归档),失败 run 保留证据便于诊断。
  • 运行时版本契约按矩阵 ABI 区分:ARM64 保持与 runtime_evidence 冻结版本精确一致,x86_64 代理矩阵仅校验行为(命令、退出码与输出格式),修复模拟器资产重建导致的版本漂移误报。

Prerelease 已通过版本、正式签名、证书指纹与 CI 构建门禁。
ARM64 Android 真机验证仍为 blocked 边界,release evidence 与 runtime gates 保持 pending。

呆呆面板本机版 v1.0.19

Choose a tag to compare

@github-actions github-actions released this 27 Aug 17:54

v1.0.19 - 2026-08-28

Ubuntu 本地实例与后台恢复

  • 本地 Linux 环境统一为 Ubuntu 24.04(noble,glibc)。
  • rootfs 内置 bash、Python、pip、Node.js、npm、pnpm、Git、curl、OpenSSH client 和 CA 证书。
  • 修复 Android 后台、锁屏及面板进程回收后的 Binder、Core listener 和本地端口自动恢复。
  • 本地请求在 Core 恢复后自动切换到新的 loopback endpoint。
  • 修复 Android PRoot DNS 配置、系统目录绑定权限和 cron idle-stop 竞态。
  • 加强 Kotlin、Flutter、Android runtime smoke、发布签名与校验和门禁。

当前正式包支持 Android API 24 及以上的 ARM64 设备。

呆呆面板本机版 v1.0.18

Choose a tag to compare

@github-actions github-actions released this 27 Aug 14:50

v1.0.18 - 2026-08-27

登录链路可靠性(浏览器面板)

  • 修复登录 401 被误判为 token 过期进入刷新流程,导致「密码错误/账号锁定/两步验证」提示全部失效。
  • 修复 refresh 无超时导致的 isRefreshing 死锁(登录转圈卡死到 30s Network Error 根因)。
  • Network Error / 超时归一化为中文提示「网络异常,请检查连接」。
  • checkInit 与版本检查加超时,不再无限卡「正在加载...」。
  • 路由守卫瞬时网络错误不再强制登出用户。
  • 登录防重复提交。
  • 默认账号 admin / admin123 已在 README 标注。

后台定时任务可靠性

  • Cron 任务按 ID 去重,队列满时延迟重入队,不再静默丢弃定时任务。
  • 非持久化调度模式也通过 WorkManager 周期唤醒执行定时任务(作为持续调度的降级补充)。
  • 定时备份改为异步执行,不再阻塞 cron 调度判断。
  • 设备资源受限(电量/存储/内存/高温)时暂停低优先级备份并通知用户。

临时前台会话体验

  • 浏览器面板临时会话不再随返回 App 自动结束,改为通知栏「关闭」按钮手动结束。
  • 临时会话通知使用独立标题「呆呆面板浏览器面板」与「关闭」按钮,与持久化调度区分。

安全

  • access_token 24 小时过期、refresh_token 轮换,泄露后不再长期有效。
  • Open API 限流改用 datetime 比较并原子化,修复并发突破与凌晨计数偏差;日志记录真实状态码(成功 200 / 超限 429)。
  • 头像上传增加 5MB 大小与 jpg/png/gif/webp 类型白名单。
  • 畸形 JSON 请求返回 400 而非 500,且不再回显内部错误信息。
  • 修复 userJson 硬编码 admin 导致的角色隔离失效。

健壮性与优化

  • 前台面板轮询在健康状态下降到 5 分钟,失败自动回退高频。
  • Dashboard 进度条 clamp 与生命周期感知,避免后台耗电与越界崩溃。
  • 应用锁 40000 轮哈希移到后台 isolate,避免低端设备卡顿。
  • 日志批量删除加页数上限,避免运行中任务持续产生日志导致死循环。
  • 生物识别异常兜底,避免 MissingPluginException 红屏。
  • SSE 短暂 inactive 不主动断开,避免下拉通知栏群涌重连。
  • 数据库过期记录定期清理(调用日志 30 天、安全审计/登录日志 90 天、过期会话与 token)。
  • 端口探测地址与监听地址统一为 0.0.0.0,修复探测不一致。
  • 硬编码英文错误文案统一为中文。

本 Release 已通过版本、正式签名、证书指纹、运行时契约与 CI 构建门禁。
GitHub 云 runner 不支持 ARM64 Android 模拟器,附件证据将对应 ARM64 设备矩阵记录为 blocked,等待真机补充验证。