|
|
1be1948f49
|
build: 集成 Spotless 8.5.1 代码格式化工具
- 在版本目录中添加 spotless 插件 8.5.1
- 配置 Kotlin 源码和 Gradle Kotlin DSL 脚本格式化
- 使用 ktlint 引擎,启用 trimTrailingWhitespace 和 endWithNewline
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-22 16:37:29 +08:00 |
|
|
|
dd072730f1
|
fix: 年视图 pageYear 使用 settledPage 计算,修复滑动切换时年份闪烁
pageYear = yearViewYear + (page - settledPage) 代替 currentPage,
因为 yearViewYear 由 settledPage 驱动,两者始终同步。
用 currentPage 会在滑动过半时出现不匹配,导致小月份
短暂显示错误年份数据。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-22 16:09:42 +08:00 |
|
|
|
2fc89d08c7
|
fix: 修复年视图翻页后共享元素转场动画失效
- 移除 baseYearForPager 和 scrollToPage(START_PAGE)
- HorizontalPager 的 pageYear 改用 yearViewYear + 相对偏移计算
- snapshotFlow 改为跟踪 settled page 差值更新 yearViewYear
- 避免再次进入年视图时强制滚动导致动画期间重组
Fixes #8
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-22 15:46:50 +08:00 |
|
|
|
ca02784d39
|
fix: 月视图和年视图添加背景色,修复共享元素过渡动画
在 CalendarMonthView 的月视图和年视图根布局添加
.background(MaterialTheme.colorScheme.background),确保共享元素
过渡时非共享元素有正确的背景动画(fade+slide)。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-22 14:15:44 +08:00 |
|
|
|
0cdac663c9
|
refactor: 移除 fling 速度阈值,改用 spring 动画驱动折叠过渡
- ViewModel onDragEnd/onExpandDragEnd 移除 velocity 参数
- BottomCard 移除 VelocityTracker,简化回调签名
- CalendarMonthView 添加 animateFloatAsState spring 动画
- 更新单元测试:移除 fling 测试,调整阈值边界
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-22 13:36:58 +08:00 |
|
|
|
7f9db1dc1d
|
perf: 聚合 CalendarUiState 减少 Compose 重组
- ViewModel 新增 CalendarUiState 数据类,通过 combine + stateIn
将 6 个独立 StateFlow 合并为单一 uiState 流
- CalendarMonthView 从 5 个分散 collectAsState 改为单个
uiState.collectAsState,减少重组次数
- CalendarPagerArea 改为显式传参,解耦对 ViewModel 的直接引用
- CalendarMonthPage 中 DayCell 外层包裹 key(dayData.date),
稳定跨帧重组
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-22 11:09:05 +08:00 |
|
|
|
baedf878b4
|
perf: 动画性能优化 + 性能追踪工具
- CalendarMonthPage: 提取 WeekRow 子 Composable,graphicsLayer → offset + alpha
- DayCell: updateTransition → 独立 animateFloatAsState/animateColorAsState,
共享 MutableInteractionSource 减少重组
- CalendarMonthView/WeekPager: graphicsLayer → offset + alpha,共享 interactionSource
- DEVELOPMENT.md: 补充性能追踪使用说明
- scripts/profile.sh: 新增 Perfetto trace 一键抓取脚本
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-22 10:29:58 +08:00 |
|
|
|
fb7e19ddc9
|
test: Wave 4 — 补充 fling 速度阈值交互测试
- test: onDragEnd 高速上滑强制折叠(无视 progress 阈值)
- test: onDragEnd 高速下滑强制展开(无视 progress 阈值)
- test: onExpandDragEnd 高速下滑强制展开
- test: onExpandDragEnd 高速上滑保持折叠
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-21 18:18:34 +08:00 |
|
|
|
6f4d62b78f
|
refactor: Wave 3 — ViewModel 解耦 Compose 运行时,迁移到 StateFlow
- refactor: CalendarViewModel 从 mutableStateOf/Animatable 迁移到 StateFlow
- refactor: 继承 Android ViewModel,使用 viewModelScope 管理生命周期
- refactor: 拖拽/动画方法改为同步修改 StateFlow(移除协程 launch)
- refactor: onDragEnd/onExpandDragEnd 实现 fling 速度阈值判断
- refactor: BottomCard 解耦为纯参数驱动
- refactor: CalendarMonthView 使用 viewModel() + collectAsState()
- test: 适配 StateFlow API,139 测试全部通过
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-21 18:16:20 +08:00 |
|
|
|
774e03a928
|
refactor: Wave 2 — LunarCache 可注入化 + 重复计算提取
- refactor: LunarCache 从 object 单例改为 class + Mutex,方法改为 suspend
- refactor: DayCell 参数注入 lunarCache,remember → produceState
- refactor: 提取 MonthGridInfo/getMonthGridInfo 到 CalendarUtils
- refactor: CalendarViewModel init 块和 getMonthDays 复用 getMonthGridInfo
- refactor: calculateWeeksCount 委托给 getMonthGridInfo
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-21 17:58:35 +08:00 |
|
|
|
bf28008d17
|
refactor: Wave 1 — 构建清理、测试修复、文档修正、a11y 改进
- build: 清理版本目录死依赖(appcompat、core、material3)
- build: 精简 ProGuard keep 规则,仅保留热点路径和第三方库
- refactor: 重命名 PredictiveBackHandler → AppPredictiveBackHandler
- test: formatLunarDate 精确断言 + 闰月测试
- test: 统一测试命名风格(下划线),Unconfined → StandardTestDispatcher
- docs: 修正文档为纯 Android + Jetpack Compose 描述
- feat(a11y): 添加可访问性语义标注(WeekdayHeader heading、BottomCard 拖拽描述)
- feat: 为 DayCell、MonthHeader、WeekdayHeader、BottomCard 添加 @Preview
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-21 17:51:12 +08:00 |
|
|
|
2bd7d5ee19
|
perf: 移除临时性能监控日志,保留 Perfetto trace 标记
清理 ViewModel 和各 UI 组件中用于调试的 println 性能日志、
重组计数器和 System.nanoTime() 计时代码。正式的
composeTraceBeginSection/EndSection Perfetto/Systrace 标记继续保留,
用于生产环境性能分析。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-21 11:46:12 +08:00 |
|
|
|
98f3b71c4f
|
perf: 升级 Macrobenchmark 至 1.4.1,适配新 API 并重新生成 Baseline Profile
- benchmarkMacro 1.3.4 → 1.4.1
- BaselineProfileGenerator: 使用 Direction 枚举替代坐标 swipe;
用 executeShellCommand 绕过 startActivityAndWait(模拟器 software renderer
不支持 gfxinfo framestats,会导致 amStartAndWait 超时)
- updateBaselineProfile task: 适配 1.4+ 的 startup-prof.txt 文件名格式,
使用 layout.buildDirectory 预先计算路径(configuration cache 兼容)
- 重新生成 baseline-prof.txt(全量 AOT 覆盖)
- benchmark build type 设为 isDebuggable=true(配合模拟器运行)
- 将 Baseline Profile 使用文档从 README 迁移至 DEVELOPMENT.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-21 11:37:37 +08:00 |
|
|
|
2771e3733b
|
perf: 集成 Macrobenchmark 模块,自动生成全量 Baseline Profile
- 新增 :macrobenchmark 模块,提供自动 Baseline Profile 生成
- 扩展 proguard-rules.pro,保留所有业务类方法名确保 profile 匹配
- 全量 AOT 覆盖:冷启动 + 交互路径(年视图、周折叠、关于页等)
- app/build.gradle.kts 新增 benchmark 构建类型
- README 简化 Baseline Profiles 维护指南
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-21 10:50:01 +08:00 |
|
|
|
6582d5970e
|
perf: 集成 Baseline Profiles,优化启动性能与文档
- 添加 core/proguard-rules.pro 保留关键类方法签名
- 添加 core/src/main/baseline-prof.txt 预编译热点路径
- 引入 androidx.profileinstaller 依赖
- LunarCache 新增 formatLunarDate() 复用缓存数据
- BottomCard 使用 remember 缓存农历描述避免重复计算
- CalendarMonthView 延迟一帧显示 BottomCard,避免首帧阻塞
- README 补充 Baseline Profiles 维护指南与性能监控说明
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-21 10:22:43 +08:00 |
|
|
|
6aefaf33a6
|
perf: 提取农历/节气计算为 LunarCache LRU 缓存,添加启动预计算
- 新增 LunarCache 单例,LinkedHashMap(accessOrder=true) 实现 LRU 语义,
@Synchronized 保护并发,容量 800 条,超限时淘汰 20%
- CalendarViewModel init 中在 Default 线程预计算当前月前后各 1 个月
- DayCell 移除内联 computeDayCellInfo 和 mutableMap 缓存,统一使用 LunarCache
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-21 09:50:48 +08:00 |
|
|
|
f6b5e62284
|
perf: 添加组件级性能监控日志
- CalendarViewModel: toggle/select 方法耗时打点
- CalendarMonthPage/CalendarPager/WeekPager/YearGridView: 重组次数与耗时日志
- CalendarMonthView: 使用 graphicsLayer 驱动 BottomCard 滑入动画
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-20 18:31:48 +08:00 |
|
|
|
27ba4f9f54
|
refactor: 月→年视图切换时不再强制展开折叠态
折叠状态下直接切换视图,sharedElement 从周视图缩小到
MiniMonth 的转场更自然。同时修复了重复的 trace begin。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-20 16:50:31 +08:00 |
|
|
|
2028897ce3
|
docs: 同步 AGENTS.md 文档,反映纯 Android 项目结构
- 更新所有层级 AGENTS.md 中的模块描述(:app / :core)
- 移除 KMP/iOS 相关引用,统一为纯 Android + Jetpack Compose
- 同步构建命令和测试路径
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-20 16:46:17 +08:00 |
|
|
|
e1345cc071
|
feat: 年月视图转场添加 BottomCard 滑入动画和淡入淡出效果
- CalendarMonthView: 为 BottomCard 添加滑入/淡出动效
- 优化 AnimatedContent 过渡:fade + slideInVertically/slideOutVertically
- YearGridView: 提取 sharedKey 变量
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-20 16:46:09 +08:00 |
|
|
|
9ad619c105
|
feat: 优化年月视图共享元素转场动画
- 月→年切换时自动展开折叠状态
- 将 sharedElement 精确绑定到日历网格区域
- YearGridView 为每个 MiniMonth 添加共享元素转场
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-20 16:17:16 +08:00 |
|
|
|
f5cc4ef2e5
|
refactor: 完成纯 Android 迁移,清理旧 KMP 模块并添加 app/core 新模块
- 删除遗留的 androidApp/、shared/ 等 KMP 结构文件
- 将新的 app/、core/ 纯 Android 模块纳入版本控制
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-20 15:55:08 +08:00 |
|
|
|
cf9315cfe3
|
feat: US-007~010 实现年月视图共享元素转场动画
- 引入 SharedTransitionLayout + AnimatedContent 管理月/年视图切换
- 使用 sharedBounds + rememberSharedContentState 标记共享元素
- 转场动画 400ms,FastOutSlowInEasing
- 添加 compose-animation 依赖支持 SharedTransition API
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-20 15:17:18 +08:00 |
|
|
|
c19916c2ec
|
fix: US-006 修复构建错误,首次构建验证通过
- 移除 androidApp/shared 中已弃用的 kotlinOptions 块
- material3 改为通过 Compose BOM 管理版本
- 清理残留的 composeResources 目录
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-20 14:58:06 +08:00 |
|
|
|
0806c11fcc
|
refactor: US-002~005 迁移为纯 Android 项目
- shared/build.gradle.kts: KMP 库 → Android Library,使用 Compose BOM
- androidApp/build.gradle.kts: 移除 CMP 插件,使用标准 Android App 配置
- 源码目录: commonMain → main, commonTest → test
- expect/actual 内联: Platform.kt + ComposeTrace.kt 合并为普通实现
- 资源迁移: 152 个 GIF + app_icon → assets/
- 删除: iosApp/、androidMain/、commonMain/、commonTest/
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-20 14:51:59 +08:00 |
|
|
|
d3229f90d0
|
refactor: US-001 清理 Gradle 根配置,移除 KMP/CMP 插件和依赖
- build.gradle.kts: 移除 composeMultiplatform、kotlinMultiplatform 插件
- settings.gradle.kts: 移除 JetBrains maven 仓库
- libs.versions.toml: CMP 依赖替换为 AndroidX Compose BOM
- Licenses.kt: 更新依赖列表
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-20 14:47:56 +08:00 |
|
|
|
d0f4980e01
|
fix: 修复快速滑动时折叠/展开失效,改用 progress 阈值判定
- 移除 velocity 判定:change.position 是本地坐标,卡片移动会导致
velocityTracker 计算的速度方向错误,快速滑动时被误判方向而回弹
- onDragEnd 改为 progress > 0.3f 判定折叠,onExpandDragEnd 改为
progress < 0.7f 判定展开
- 修复 onDrag/onExpandDrag 的 race condition:将 _collapseAnimatable.value
的读取从 launch 外部移到协程内部,避免快速滑动时多回调并发读到旧值
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-20 14:14:18 +08:00 |
|
|
|
df0aa16d8e
|
feat: 新增关于页面与开源许可页面
- 新增 AboutActivity、LicensesActivity 及对应的 Slide 转场动画
- MainActivity 接入 CalendarMonthView,支持导航到关于页面
- 移除 composeResources 下的 AGENTS.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-20 13:55:21 +08:00 |
|
|
|
50a42be9bc
|
docs: 新增项目各目录 AGENTS.md 文档
为各模块和子目录添加 AGENTS.md,便于 AI 助手理解项目结构。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-20 13:26:19 +08:00 |
|
|
|
68e6748735
|
docs: 新增 CHANGELOG.md,记录 1.0.0 版本完整变更历史
按主题分类整理从项目初始化到当前版本的所有变更:
- 项目基础架构与工程配置
- 日历核心视图系统(月/周/年)
- 折叠动画与手势交互
- 中式日历(农历、节气、节日)
- 个人排班系统
- 视觉设计与动画系统
- 底部卡片与信息展示
- 页面导航与预测性返回手势
- 性能优化与构建测试
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-20 01:38:48 +08:00 |
|
|
|
933918ae96
|
style: 格式化代码,移除未使用的 import
- App.kt: 换行长函数调用参数
- AboutScreen.kt / LicensesScreen.kt: 移除未使用的 Color import
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-20 01:30:55 +08:00 |
|
|
|
5d038932d9
|
feat: 年视图标题栏改为农历干支年份+「今年」按钮,移除箭头导航
- YearHeader 从 Row 改为 Column 布局
- 移除左右箭头年份切换,改为横向滑动翻页
- 添加农历干支+生肖年显示(如「丙午马年」)
- 非当前年份时显示「今年」按钮,点击快速返回今年
- 同步移除 AppInfo.VERSION(已由动态版本号替代)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-20 01:28:36 +08:00 |
|
|
|
841a186e0f
|
fix: 返回动画使用 snapTo 消除残留过渡
预测性返回动画结束后直接 snapTo(0f),避免 spring 动画残留。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-20 01:11:26 +08:00 |
|
|
|
380056bf48
|
feat: 底部卡片显示班次状态提示
根据选中日期的班次类型(WORK/OFF)在底部卡片展示对应提示语。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-20 01:11:24 +08:00 |
|
|
|
a0b1b4b569
|
feat: 支持动态版本号生成与读取
- build.gradle.kts 根据 baseVersion + git hash + buildDate 生成 versionName
- gradle.properties 添加 app.version.base=1.0.0
- 新增 expect/actual getAppVersion(),Android 从 PackageInfo 读取,iOS 从 NSBundle 读取
- AboutScreen 使用 getAppVersion() 替代硬编码 AppInfo.VERSION
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-20 01:11:12 +08:00 |
|
|
|
5bb0cc7071
|
chore: 更新应用图标资源,添加 WebP 格式并同步各平台
- 替换所有尺寸的 app_icon.png 为新版设计
- 新增 composeResources app_icon.webp
- 同步 Android mipmap 和 iOS AppIcon 资源
- 更新 getAppIconUri 缓存版本号 (?v=2)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-20 00:56:10 +08:00 |
|
|
|
557390068e
|
fix: 图标颜色适配 MaterialTheme 主题色
将 AboutScreen、LicensesScreen 返回箭头和 CalendarMonthView 菜单图标的
硬编码 Color.White 替换为 MaterialTheme.colorScheme 对应主题色,
使图标在深色/浅色主题下均能正确显示。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-20 00:41:21 +08:00 |
|
|
|
9d0d8bbfb0
|
Merge pull request #5 from xunrua/main
预测性返回
|
2026-05-20 00:14:14 +08:00 |
|
meyou
|
6ef51a4879
|
refactor: 迁移至官方 PredictiveBackHandler,移除 navigationevent-compose 依赖
使用 androidx.activity.compose.PredictiveBackHandler (Flow<BackEventCompat> 模式)
替换 JetBrains NavigationBackHandler,提升设备兼容性。
|
2026-05-19 23:47:29 +08:00 |
|
meyou
|
6542362f6f
|
fix: 预测性返回兼容性、跟手感与防重入
- 添加 BackHandler 降级,确保 OPPO/ColorOS 等设备基本返回可用
- handleBack 加 isHandlingBack 防重入,避免双 handler 触发
- 完成动画改用 spring 替代 tween,根据手势释放位置自然调速
- dismiss/reveal 变换使用二次缓动(progress²),小幅滑动更柔和跟手
|
2026-05-19 23:35:43 +08:00 |
|
meyou
|
4219527428
|
fix: 修复预测性返回手势失效和结束闪屏
- 移除 enabled 条件中的 backProgress == 0f,该条件在手势开始时
会立即禁用 handler 导致系统直接执行返回
- 将 handleBack 结尾的 snapTo(0f) 改为 animateTo(0f, tween(100))
避免进度瞬间跳变引起的闪屏
|
2026-05-19 23:20:42 +08:00 |
|
meyou
|
911b8f2293
|
fix: 返回动画结束时 alpha 完全归零,消除闪屏
|
2026-05-19 22:34:02 +08:00 |
|
meyou
|
bde143a25b
|
feat: 迁移 NavigationBackHandler + 替换应用图标
- 将 PredictiveBackHandler 迁移到 NavigationBackHandler (navigationevent-compose 1.0.1)
- 添加 org.jetbrains.androidx.navigationevent:navigationevent-compose 依赖
- 提取 applyDismissTransform/applyRevealTransform/applyEnterTransform 辅助函数
- 替换所有密度的启动图标和关于页图标
- 移除旧的自适应图标 XML 配置
|
2026-05-19 22:24:26 +08:00 |
|
meyou
|
bde922080a
|
feat: 预测性返回动画 — Box 分层布局替换 AnimatedContent
- 用 Box 三层堆叠替代 AnimatedContent,底层页面始终可见
- 返回手势跟手驱动顶层页面滑移+缩放+圆角+阴影,底层同步放大显现
- Animatable 驱动手势提交/取消的平滑过渡动画
- 前向导航从右侧滑入,底层页面同步缩小
|
2026-05-19 21:12:02 +08:00 |
|
promise
|
7fc333eef4
|
Merge branch 'DefectingCat:main' into main
|
2026-05-19 20:03:44 +08:00 |
|
|
|
e5ce11128a
|
style: 代码清理 — 移除未使用的 import 和变量
- Platform.android.kt: 移除未使用的 kotlinx.coroutines.launch import
和未使用的 scope 变量
- CalendarMonthView.kt: 移除未使用的 density 变量
- App.kt: 格式化缩进
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-19 18:29:41 +08:00 |
|
|
|
c651a74b9f
|
refactor: 提取 CalendarPagerArea 与 BottomCardArea 独立 Composable
将 CalendarMonthView 中翻页区域与底部卡片逻辑提取为独立
Composable,减少主函数复杂度,移除不再使用的尺寸测量状态。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-19 18:24:51 +08:00 |
|
promise
|
a9c4fe493b
|
Merge branch 'DefectingCat:main' into main
|
2026-05-19 18:14:50 +08:00 |
|
|
|
fc3c8ec882
|
feat: Android 13+ 预测性返回手势(Predictive Back)
- BackHandler 升级为 PredictiveBackHandler expect/actual
- Android 13+ 启用系统级预测返回,跟手阶段同步位移/缩放页面
- Android 低版本回退至普通 BackHandler
- iOS 保持空实现(无系统返回手势)
- 页面返回动画统一 250ms 时长,提升流畅感
- AndroidManifest 启用 enableOnBackInvokedCallback
|
2026-05-19 17:58:49 +08:00 |
|
|
|
58ab7eab4e
|
feat: 页面切换添加滑入滑出动效
使用 AnimatedContent 为 Main/About/Licenses 导航添加方向感知的
slide + fade 转场动画,向前导航从右滑入,返回从左滑入。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-19 17:45:24 +08:00 |
|