Skip to content

chore(deps): bump actions/checkout from 4 to 7 - #6

Closed
dependabot[bot] wants to merge 107 commits into
mainfrom
dependabot/github_actions/actions/checkout-7
Closed

dependabot[bot] wants to merge 107 commits into
mainfrom
dependabot/github_actions/actions/checkout-7

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 27, 2026 •

Copy link
Copy Markdown

Bumps actions/checkout from 4 to 7.

Release notes

Sourced from actions/checkout's releases.

v7.0.0

What's Changed

New Contributors

Full Changelog: actions/checkout@v6.0.3...v7.0.0

v6.1.0

What's Changed

https://github.blog/changelog/2026-06-18-safer-pull_request_target-defaults-for-github-actions-checkout/ for more details about this breaking change

Full Changelog: actions/checkout@v6.0.3...v6.1.0

v6.0.3

What's Changed

New Contributors

Full Changelog: actions/checkout@v6...v6.0.3

v6.0.2

What's Changed

Full Changelog: actions/checkout@v6.0.1...v6.0.2

v6.0.1

What's Changed

... (truncated)

Changelog

Sourced from actions/checkout's changelog.

Changelog

v7.0.1

v7.0.0

v6.0.3

v6.0.2

v6.0.1

v6.0.0

v5.0.1

v5.0.0

v4.3.1

v4.3.0

v4.2.2

v4.2.1

... (truncated)

Commits

zyr20121219 added 5 commits September 27, 2026 13:40
- 13-module Gradle project (M1-M5 complete), cloud CI via GitHub Actions
- Rust terminal kernel + NEON hot paths; scrollback mmap fallback
- Self-built PRoot engine; graphical distro/package/monitor/wizard suite
- .mox signed package format + plugin store; built-in AI agent
- GPL-3.0 LICENSE; bilingual README (zh + en); push guide & script
- Repo excludes termux-src reference clone and build artifacts
- 新增 CODE_OF_CONDUCT.md(贡献者公约 2.0 中文版)
- 新增 SECURITY.md(漏洞报告渠道 + 安全边界说明)
- 新增 CHANGELOG.md(Keep a Changelog 格式,记录 0.5.0 里程碑)
- 新增 CONTRIBUTING.md(贡献指南)
- CI 修复:移除 android-actions/setup-android@v3(新版 cmdline-tools
  已无 tools 包导致 sdkmanager exit 1),改用 runner 预装 SDK;
  NDK 安装改为显式 cmdline-tools 路径且已装则跳过
- 合并重复的 setup-gradle 步骤
- 'on-success' 是 v4 的 cache-cleanup 取值,v3 只接受 true/false
- 升级到 gradle/actions/setup-gradle@v4 并改用 cache-cleanup: on-success,
  同时消除 Node 20 弃用警告
- 顺带补齐 issue/PR 模板与 dependabot 配置
@dependabot @github

dependabot Bot commented on behalf of github Sep 27, 2026

Copy link
Copy Markdown
Author

Labels

The following labels could not be found: ci, dependencies. Please create them before Dependabot can add them to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

zyr20121219 added 24 commits September 27, 2026 19:52
Namespace 'com.moxsh.plugin.float' 不是合法 Java 包名(float 是关键字)。
包与目录更名为 com.moxsh.plugin.floating,模块路径 :plugins:plugin-float 不变。
shared 的 ExecutionEngine 依赖 terminal-core 的内核类(方向正确);
terminal-core 无任何源码引用 shared,其依赖声明导致
Circular dependency between :shared and :terminal-core。
AArch64 不允许 [x0, x4, #1] 三元素寻址。改为先 add x11, x0, x4
计算地址寄存器,再用 [x11, #N] 立即数偏移加载。
已用 aarch64-linux-gnu-as 2.42 本地汇编验证通过。
- pty.rs: TIOCSCTTY 用 as _ 按目标平台推断(android aarch64 上
  ioctl 的 request 是 c_int,c_ulong 强转会 E0308)
- ptrace.rs: WIFEXITED/WSTOPSIG 等在新 libc 已是安全函数,去掉
  多余 unsafe
- translate.rs: 未使用的 rest 绑定改 is_some() 判断(逻辑等价,
  214 行本就重算了一次)
- ring.rs: 去掉多余的 mut
- build.rs: 声明 rustc-check-cfg 消除 unexpected_cfgs 警告
- app/build.gradle.kts: release signingConfig 从 KEYSTORE_* 环境变量读取,
  本地无 keystore 时回退 debug 签名;versionName 对齐 0.5.0
- Glass.kt: glassBlur 是 Modifier 扩展函数,误作顶层函数调用导致
  Unresolved reference,改为正确的链式调用
插件体系升级(plugin-core 新增 5 个文件):
- PluginPermissions: 权限清单 v2(9 个新权限:manage_sessions/
  read_screen/post_notification/clipboard/vibrate/network/storage/
  register_skill/subscribe_events),运行期 fail-fast 校验
- PluginEvent/PluginEventBus: 全局事件总线(命令/输出/会话/开机,
  主线程分发,COW 线程安全)
- SkillRegistry: AI 技能运行期注册表(联动 D18 工具调用)
- PluginApi: 七域能力门面(sessions 多会话+屏幕快照 / ui 反馈 /
  fs 私有目录+MediaStore 导出 / net 受控 HTTP / store KV /
  events 订阅 / skills 注册),权限 16 字节内核单元布局对齐
- MoxPlugin: 推荐基类(生命周期 onLoad/onUnload/onEvent + 权限声明)
- PluginHost: 挂事件总线,新增 createApi 工厂;修复 feed→write

构建修复:
- Glass.kt: glassBlur 改用 Modifier.blur(API31+ 生效低版本自动
  no-op,语义等价),绕开 graphicsLayer/renderEffect 解析失败
- 全部 11 个模块 Compose BOM 改为显式版本(ui/runtime 1.6.8、
  material3 1.2.1、icons-extended 1.6.8),消除镜像解析不确定性
- MoxPackage.kt: 注释文本中 payload/** 的 /** 被 Kotlin 当作嵌套
  块注释开启(Kotlin 块注释可嵌套),致整文件配对错乱报 Missing '}'/
  Unclosed comment
- CompatShim.kt: 两个命令表均为 Set,相加结果也是 Set,函数签名
  List<String> 不匹配,补 toList()
- MoxPackage.kt 修复 117 行 KDoc 内嵌 payload/** 触发 Kotlin 嵌套注释吞代码
- BootstrapInstaller 按 ABI 实例化源(4 架构 sha256 经 GitHub Release digest 核实)
- extractZip:条目相对 $PREFIX 根 + SYMLINKS.txt(← 分隔)重建符号链接
- initialize 写自研 login/覆盖 profile(官方版硬编码 com.termux 不可用)
- fixTextShebangs 批量修正脚本文本硬编码前缀(NUL 探测防误伤 ELF)
- ExecutionEngine.DEFAULT_SHELL 动态化:login 就绪即起自有环境
- BootstrapInstaller: companion object 嵌入 standalone object 非法(run 20 根因),
  成员提升为 object 直接成员
- ExecutionEngine 新增 SessionListener 钩子(会话开/关回调,plugin 侧注册)
- PluginHost: 会话事件桥接 v2 事件总线;MoxPlugin 装载重载(注入 PluginApi + onLoad);
  runLocal/RemoteCommand 发布 CommandExecuted
- app 新增 PluginManager 装配:5 个内置玻璃插件注册 + 事件桥(plugin-core/boot/widget 依赖)
- PluginPanelScreen:整屏渲染已注册玻璃插件卡片(GlassContent 自含外壳)
- MoxshRoot 标签栏新增 ✦ 入口;三态分支接入插件面板
- BootstrapState.onReady 钩子(shared 不感知 plugin,方向反转防循环依赖)
- PluginManager 装配 BootCompleted 发布:bootstrap 就绪即广播全插件
- DemoGlassPlugin 补 Modifier/dp import
- ExecutionEngine.write 返回 Boolean(runLocalCommand 误用其作布尔判断)
- NetApi.Response 移出 inner class(Kotlin 禁止 inner 内嵌 data class)→ HttpResponse
- readBytes(estimated) 已是 error 级弃用 → 自实现 readLimited 限量读
- StorageApi 不再跨 inner class 调 FsApi.privateDir(平行 inner 不可见),自建同契约路径
- BootCommandStore/StoreRepository: KDoc 内路径通配符 /* 触发 Kotlin 嵌套注释
- PackageManagerScreen 补 launch import;DistroManagerScreen 回调内 withContext → Handler post
- OnboardingWizard Triple(2参) → Pair;AgentTools 函数类型调用去命名参数
- MainActivity: bootstrap 玻璃进度卡 + Ready 后自动开会话 + Failed 重试
- ExecutionEngine.activeSessionId 跟踪;PluginHost.runLocalCommand 写活跃会话
- CanvasTerminal: DrawScope.density 即 Float(误连点);补 nativeCanvas 扩展 import
- FloatGlassPluginContract: 补 Modifier import
- ResourceMonitorScreen: 删除跨包错误 import(GlassConfirmDialog 是同模块 internal)
- 删除 PUSH_GUIDE/clone.sh/push_to_github.sh(内部操作文件,不应入库)
- 全文档清除沙箱/CodeBuddy/workspace 字样(SECURITY.md 的 Android 沙箱为技术名词保留)
- README 双语:'100% 自研/零复用' → 'AI 辅助生成 + clean-room',新增 AI 辅助声明
- CHANGELOG 0.5.0 描述、roadmap M6 状态按事实修正
- 根 .gitignore 补 *.apk/*.aab
- P0 OverflowBuffer 扩容:数据迁移遗漏(直接 munmap 旧映射)+ truncate 清零,
  双重导致扩容即丢全部回滚历史;补 grow 回归测试
- P1 Pty Drop 阻塞 waitpid → WNOHANG 轮询 + 超时升级 SIGKILL(防 ANR)
- Cargo.toml 四依赖精确锁版(=x.y.z,与 Cargo.lock 双保险)
- 加 #![deny(unsafe_op_in_unsafe_fn)]:24 个 unsafe 函数体显式包裹(SAFETY 注释)
- 本地 cargo test 102 全绿
- pty.rs Drop: waitpid 阻塞改 WNOHANG 轮询 + 500ms 优雅期 + SIGKILL 升级(P1)
- ring.rs: mmap 扩容先迁移旧数据再 munmap(P0);补扩容历史保留回归测试
- crypto.rs: 补 SHA-256 NIST 向量(空/abc/448/896/百万a/55字节边界)与 HMAC RFC 4231 四例
- lib.rs: 加 deny(unsafe_op_in_unsafe_fn);unsafe fn 体内显式 unsafe 块
- pty.rs build_environ: 同上适配
- Cargo.toml: 四个依赖精确版本锁死(=x.y.z)

本地验证:cargo check 通过;cargo test --lib 102/102 通过
- .github/workflows/build.yml: 从远程恢复(本地重建的历史缺此文件,缺失会导致
  push 不再触发 APK 构建——CI 的源头文件必须进仓库)
- .github/workflows/rust-check.yml: terminal-core 质量门(test/clippy/audit/
  aarch64 交叉 check);clippy 暂为警告级,存量 31 条清理后升 -D warnings
- moxpkg.rs: 补「恶意 symlink 条目防御性跳过」回归测试(防御逻辑已在 extract_to,
  测试用 append_link 构造逃逸样本钉住行为)
- MainActivity: GlassSurface 非 BoxScope,align(Center) 改 wrapContentSize
- PluginManager: float -> floating 旧包名残留
- TerminalView: 补 nativeCanvas 扩展 import
- screen.rs wcwidth P2 重写:零宽/组合符/变体选择符/肤色修饰符返回 0,
  补常用 emoji EAW=W 与 CJK 扩展/西夏文范围(二分查找表)
- crypto.rs 补 NIST 百万 a 向量
- moxsh/.github/ 下的 workflow GitHub Actions 不识别,rust-check 一直没生效;
  移到根目录后 test/clippy/audit/aarch64 交叉 check 才会真正跑起来
- 删除 moxsh/.github/workflows/build.yml(与根重复)
- 新增 coverage job:tarpaulin 行覆盖率 → job summary 表格
zyr20121219 and others added 15 commits September 30, 2026 19:20
- MainActivity.kt 使用了裸 File / FileOutputStream 但未导入 java.io.*
- LoginActivity.kt 引用 R.string 等资源,但 package 为 com.moxsh.auth,
  与 R 所在包 com.moxsh 不同包,必须显式 import com.moxsh.R
- 已按模块 namespace 全量复查 R 引用,其余文件均无此问题
上一笔用 git add -A 时把本地 clone 的仓库副本(moxsh-plugins / moxsh-suite /
moxsh-terminal / podroid-ref)以 gitlink(160000) 形式写入索引,并带入了
node_modules 与 podroid-ui-src 的设计稿导出文件。均已从索引移除(本地文件保留),
并在 .gitignore 中显式忽略这些路径,避免再次误纳。
:app:minifyReleaseWithR8 报 Missing classes detected:
Tink(经 androidx.security:security-crypto 传递依赖)引用了
com.google.errorprone.annotations.* 与 javax.annotation.* 两组仅编译期可见的注解,
release classpath 中没有它们,R8 默认视为硬错误直接中止打包。
这些类运行期从不加载,缺失无功能影响,按 R8 自身生成的 missing_rules.txt 建议
以 -dontwarn 精确抑制。
在 origin/main 最新代码之上落地(远端已含设计系统 MoxshTokens/MoxshComponents 与 CI 修复):
- 重构 MainActivity:MoxshGlassTheme 玻璃外壳 + 三页导航(终端/分类/设置)
- 新增会话抽屉 SessionDrawer(环境色点/长按改名/退出码红色删除线+结束)
- 新增底部导航 MoxshBottomNav(设置带 AI 角标)+ MoxshPage 枚举
- 新增控制中心 ControlCenter(V/音量键呼出)、AI 面板 AiPanel(U 键呼出)
- 新增分类页 CategoryHub + 图形包管理器/资源监控/新手引导四件套
- 新增 app 共享玻璃组件 GlassWidgets,复用设计系统 GlassSurface/GlassTokens
- 修复: sp 单位导入缺失、showPluginsTemp 先使用后声明
针对 run 37170891092 / issue #36 的全部 e: 报错逐项修复:
- MainActivity: 补 key/KeyEvent 导入;FAB 移入 Box 使 align 处于 BoxScope
- GlassWidgets: GlassButton/GlassChip 的 onClick 移到末参,恢复 trailing-lambda
- MoxshBottomNav: 补 border 导入
- ResourceMonitorScreen: Gauge 加 modifier 参数,weight 在 Row 调用点传入
- ControlCenter: CcTile/WBtn 加 modifier 参数,weight 在 Row 调用点传入
- PackageManagerScreen: 补 SnapshotStateList 导入
- SessionDrawer: 补 ExperimentalFoundationApi 导入并给 SessionRow 加 @OptIn

本地 check_kotlin_lexer.py 通过(98 文件 0 问题)。
针对 run 37171966621 / issue #37:
- 补 androidx.compose.ui.input.key.type 与 .key 扩展属性导入
  (KeyEvent.type/key 在所用 Compose 版本里是扩展属性,非成员)
- 将 androidx.compose.runtime.key 别名为 composableKey,避免与 .key 扩展属性命名冲突
- TerminalPage 新增 onToggleCtrl/onToggleAlt 回调参数;MoxshRoot 传入翻转 var 的回调;
  TerminalPage 内 GlassBottomBar 改为透传回调,消除对 val 参数重新赋值的
  'Val cannot be reassigned' 错误

本地 check_kotlin_lexer.py 通过(98 文件 0 问题)。
需求:登录增加邮箱注册,但邮箱注册必须同时登录 GitHub。

安全设计(授权码绝不进客户端):
- 邮箱验证码由后端 mox-id Worker 用 SMTP 授权码发出,授权码只存在于
  Worker 环境变量 / wrangler secret,绝不进 APK、绝不进公开仓库
- 客户端仅持有 email_api_base(服务地址,公开信息),经 local.properties
  经buildConfig 注入,与 github_client_id 同级
- 本仓库公开、APK 公开分发可反编译,内置授权码等于公开交出邮箱

强绑定 GitHub:
- 发码与校验两个请求均强制带 Authorization: Bearer <GitHub token>
- 后端以 token 解析出的 login 作为邮箱归属主体,无法伪造他人身份批量注册
- 未登录 GitHub 时客户端卡片禁用并提前拦截,不发起任何请求
- 退出登录/退出设置页时同步解除邮箱绑定;未登录态不暴露任何邮箱信息

新增:
- EmailAuthClient:发码/校验客户端,含邮箱校验、频控倒计时、错误映射(HttpURLConnection 零新依赖)
- EmailBindingStore:绑定邮箱加密存储(EncryptedSharedPreferences AES-256)
- EmailSignUpCard:液态玻璃风注册卡片,复用 GlassSurface/GlassTokens/GlassButton
- docs/email-auth.md:接口契约 + 部署步骤 + 安全要求
- docs/mox-id-email-worker.reference.ts:Worker 参考实现

本地自检:check_kotlin_lexer.py 101 文件 0 问题;check_secrets.py 通过;
已确认授权码字面量未写入仓库任何文件。
## 修正上一版的方案缺陷

上一版用139 邮箱 SMTP 授权码在 Cloudflare Worker 上发验证码,
**部署后根本发不出邮件**,原因是两条硬约束:
  1. Cloudflare Workers 硬性封锁出站 25 端口
  2. Worker 的 send_email 绑定(Email Routing)只能发给 Cloudflare
     已验证的转发地址,发不到任意用户邮箱
同时 139/163 系个人邮箱 SMTP 只允许个人收发,程序化发验证码必然被风控
(每日额度 / IP 频率 / 并发三重限制),Cloudflare 出口 IP 信誉更差。

## 新的双路径设计

**路径 A(默认、推荐)**用 GitHub 已验证邮箱一键绑定
  - App 直连 GitHub /user/emails,取 primary + verified 邮箱直接绑定
  - 不发邮件 => 不存在发信限流 / IP 信誉 / 端口限制问题
  - 不依赖后端 => 装上APK 即用,无需部署任何服务
  - 可信度更高:邮箱真实性由 GitHub 出具verified 证明
  - 新增 GitHubVerifiedEmail.kt;EmailBindingStore 记录来源(verified)

**路径 B(补充)** 用其他邮箱收验证码时才需要
  - 改用专业事务邮件服务 HTTPS API(Resend)发信,替代不可行的 SMTP
  - 已部署上线:https://mox-id-email.3042980037.workers.dev
  - D1 mox-id 表结构已建(email_codes / email_rate_limit /
    email_breaker / email_bindings)
  - 三维限流 + 熔断,保护发信域名/IP 信誉:
    账号 5封/小时、IP 10封/小时 + 30封/天、目标邮箱 3封/小时(防轰炸)、
    账号与 IP 各 60s 冷却、连续失败 5 次熔断 15 分钟
  - 冷却键以 SHA-256 存储,不存明文 IP / login

两条路径都强绑定 GitHub:卡片未登录时禁用,请求层缺 token 直接 401,
后端以 token 解析出的 login 作为邮箱归属主体,客户端无法伪造身份批量注册。

## 验证

- tsc --noEmit 干净
- 进程内集成测试 11/11 通过(wrangler getPlatformProxy,走真实代码路径)
  · 过程中修掉两个真实 bug:/health 被 405 拦截导致无法探活;
    db.batch() 数组里混入已 run() 的 Promise 导致熔断重置失效
- check_kotlin_lexer.py:102 文件 0 问题
- check_secrets.py 通过;CF 真实 token/account_id 零泄漏
- check_secrets.py 补 node_modules 排除项,消除依赖目录误报

删除上一版发不出邮件的参考实现 docs/mox-id-email-worker.reference.ts
## 1. 新增 deploy-edge.yml:用 CI 里的 Cloudflare 凭证部署 mox-id
- 此前 Worker 是手动部署,凭证散在本地 env。现改为:
  push 到 main 且改动 edge/** 时,由 GitHub Actions 用仓库 Secrets
  (CLOUDFLARE_API_TOKEN / CLOUDFLARE_ACCOUNT_ID,已在仓库配置)自动部署。
- verify 阶段:npm ci → tsc 类型检查 → 进程内集成测试(11 项,getPlatformProxy)。
- deploy 阶段:d1 execute 同步表结构(幂等 IF NOT EXISTS)→ 按需注入
  RESEND_API_KEY / MAIL_FROM → wrangler deploy。
- PR 只跑 verify 做门禁,不部署;workflow_dispatch 可手动触发。
- 启用路径 B 需在仓库 Settings 加 Secret RESEND_API_KEY + Variable MAIL_FROM。

## 2. 修复 build.yml:发布 APK 注入 EMAIL_API_BASE
- 原 build 不写 local.properties,导致 BuildConfig.EMAIL_API_BASE 退回占位符,
  发布的 APK 路径 B 连不上 mox-id 服务。
- 编译前写入 local.properties 的 email_api_base,缺省用已知部署地址,
  可由仓库 Variable EMAIL_API_BASE 覆盖(已设置)。地址为公开 workers.dev 子域,非机密。

## 3. docs/email-auth.md:部署章节改为 CI 流程说明

验证:两个 workflow YAML 经 yaml.safe_load 校验合法;verify 阶段步骤已本地
复跑通过(tsc 干净 + 集成测试 11/11,mail_configured=false 优雅降级)。
@dependabot
dependabot Bot force-pushed the dependabot/github_actions/actions/checkout-7 branch from 6edb856 to 1554a39 Compare October 5, 2026 02:53
codecloud-dev and others added 9 commits October 5, 2026 10:55
GitHub 的 if 条件不允许使用 secrets 上下文,原 deploy-edge.yml 在步骤
if 里写了 `${{ secrets.RESEND_API_KEY != '' }}`,导致整个工作流解析失败、
建不出任何 job(run 直接 failure,jobs 为空)。

改为把“是否注入”的判断移入 run 的 bash:job 级 env 已注入
RESEND_API_KEY / MAIL_FROM,为空则跳过,避免触发 secrets 上下文限制。
## 用户要求
"获取 GitHub 邮箱后不强制 GitHub 登录,也可以填密码" —— 邮箱注册去掉
GitHub 登录硬门槛,主路径改为邮箱 + 密码独立注册;GitHub 已验证邮箱降为
可选的免密快捷方式。

## 改动
- EmailSignUpCard.kt
  · 移除 `if (!loggedIn) 整张卡片禁用` 门槛,主表单(邮箱 + 密码)始终可用。
  · 新增密码输入框(KeyboardType.Password)+ 注册按钮;校验邮箱格式与
    密码 ≥ 8 位,PBKDF2 派生后写入 EmailBindingStore(来源 = PASSWORD)。
  · GitHub 已验证邮箱改为「登录后才显示」的折叠快捷方式(非必需)。
  · 验证码通道改为「登录 + 后端已配置」才显示的折叠高级选项。
  · 已绑定态按来源展示徽章:GitHub 已验证 / 密码注册 / 验证码验证。
- EmailBindingStore.kt
  · 解耦 GitHub:get() 不再以 SessionStore.isLoggedIn 为前置。
  · 新增 Source 枚举(GITHUB/PASSWORD/CODE)、save(source, hash, salt)、
    verifyPassword()、hasPassword()、hashPassword()/newSaltB64()(PBKDF2)。
- LoginActivity.kt:退出 GitHub 不再清除邮箱(邮箱已是独立账号)。
- AuthConfig/EmailAuthClient/GitHubVerifiedEmail:同步更新「必须绑定 GitHub」
  的旧注释为「不强制、GitHub 为可选来源」。
- 中英文案:新增 mox_email_email_hint / password_hint / password_short /
  register / registered / invalid,删除 mox_email_requires_github 等。
- docs/email-auth.md:三方式模型、Section 4 重写为「邮箱是独立账号」。

## 验证
- check_kotlin_lexer.py:102 文件 0 问题
- check_secrets.py:通过
- 两个 strings.xml 经 ElementTree 解析合法
- 已删除 string key 无任何残留引用
- 本地无 Android SDK/Gradle 缓存,全量编译交由 CI(build.yml)验证
GlassButton 的 onClick 是普通 lambda,不能调用 @composable 的 stringResource。
改用 ctx.getString(R.string.mox_email_invalid)。CI 构建因此报错,本地无
Android SDK 无法预编译,已用 CI 验证捕获。
## 用户要求
"补一个用邮箱+密码登录的入口页,让独立账号真正能在设备上登录",并参考成熟登录页做扎实。

## 改动
- 新增 EmailSessionStore.kt
  · 持久化「当前登录中的邮箱」(EncryptedSharedPreferences),与注册凭据分离:
    退出只清会话、保留 EmailBindingStore 凭据以便重登。
- 新增 MoxAccount.kt(统一身份门面)
  · isLoggedIn / label / type / logout 归一 GitHub 与邮箱两种身份;
    云同步等需后端鉴权的能力仍绑定 GitHub token(SyncClient / MoxshApplication)。
- LoginActivity.kt:GitHub / 邮箱 双 Tab
  · 邮箱 Tab 为成熟登录页:邮箱+密码、密码框眼睛图标显隐、实时格式/非空校验
    并标红、失败统一提示「邮箱或密码错误」、记住登录(重启仍在线)。
  · 内置「注册」折叠区(EmailSignUpCard),注册成功即自动登录。
  · GitHub 设备流原逻辑完整保留为独立内容。默认 Tab:已存在邮箱账号则进邮箱。
- EmailSignUpCard.kt:抽出公共 GlassField/GlassPasswordField;密码框加显隐;
  新增 onRegistered 回调(供登录页注册后自动登录)。
- GlassWidgets.kt:新增公开 GlassField / GlassPasswordField(含眼睛显隐)。
- Glass.kt:GlassTokens 加 strokeError 错误态描边色。
- SettingsScreen.kt:账号区改用 MoxAccount,修「邮箱依附 GitHub」过时注释,
  退出不再误清注册凭据;GitHub 账号才显示「撤销授权」。
- 双语文案 + docs/email-auth.md 7.1 节:邮箱账号登录说明。

## 设计参考
androidx 官方登录最佳实践:状态化校验、密码显隐用 Icons.Filled.Visibility
尾随图标、登录 UI 状态建模;复用项目玻璃风组件保持视觉一致。

## 验证
- check_kotlin_lexer.py:104 文件 0 问题
- check_secrets.py:通过
- 双 strings.xml 经 ElementTree 解析合法(各 67 条)
- 16 个新 string key 双语齐全且被 kt 正确引用
- 本地无 Android SDK/Gradle,全量编译交由 CI(build.yml)验证
- KeyboardOptions 导入统一为 androidx.compose.ui.text.input(GlassWidgets/EmailSignUpCard/TerminalView)
- SettingsScreen 补 stringResource 与 com.moxsh.R 导入
- EmailSignUpCard 注册回调改用局部非空 val,规避委托属性智能转型失败
- versionName 0.5.0→0.6.2、versionCode→62;build.yml 发布目标同步为 v0.6.2
- CHANGELOG 新增 0.6.2 条目(邮箱密码独立登录 + 上述修复)
…dOptions 位于 foundation.text)

CI 实测 ui.text.input.KeyboardOptions 在此 Compose 版本不可解析;已统一为
androidx.compose.foundation.text.KeyboardOptions。SettingsScreen 导入与
EmailSignUpCard 智能转型修复经 CI 验证已生效。
- build.yml / local.properties.sample:mox-id 服务地址默认改中性自定义域
  mox-id-email.moxsh.app(原 mox-id-email.3042980037.workers.dev 含站长 QQ 号,已泄露),
  并同步更新仓库 Variable EMAIL_API_BASE
- edge/mox-id/wrangler.jsonc:D1 database_id 由明文改为 {{D1_DATABASE_ID}} 环境变量引用,
  本地放 .dev.vars(已 gitignore),CI 经仓库 Variable 注入;同步在 deploy-edge.yml 两处
  job 注入 D1_DATABASE_ID,并设置仓库 Variable,避免明文写死公开仓
- docs/architecture.md:版本号 v0.4 · 草案 → v0.6.2(与已发布 App 对齐)
- 关闭 6 个过期 CI 失败 bot issue(#35-#40,当前 main 构建已全绿)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/github_actions/actions/checkout-7 branch from 1554a39 to d6b130f Compare October 6, 2026 04:03
@dependabot @github

dependabot Bot commented on behalf of github Oct 6, 2026

Copy link
Copy Markdown
Author

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot
dependabot Bot deleted the dependabot/github_actions/actions/checkout-7 branch October 6, 2026 08:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants