Commit Graph

16 Commits

Author SHA1 Message Date
WaterRain
75a5c8f81e
fix: 对抗审查修复5项问题
1. BalanceCache.put() 并发写丢失 — read-modify-write 搬进 dataStore.edit{} 互斥锁
2. Widget VectorDrawable → PNG — 生成 ic_opencode_go_logo_widget.png 和 ic_codex_logo_widget.png
3. SimpleDateFormat 线程安全 — 共享实例改为每次调用创建局部实例
4. 增量同步按 workspace 过滤 — 新增 getIdsByWorkspace() 避免跨 workspace ID 碰撞
5. Codex amount 语义统一为 usedPct — balance_cache 版本 v2→v3 旧缓存失效

Doc: AGENTS.md/README.md 同步更新(›→>、RemoteViews PNG文件名、增量同步描述)
2026-07-07 05:40:16 +00:00
WaterRain
814ae61f01
feat: 使用小技巧系统 + 小组件点击提示 + 图表默认tooltip + 添加小组件权限检测
- 新增 AppTips.kt:13条操作技巧,Dashboard随机展示一条hint,设置页TipsScreen查看全部
- 小组件左上角加 › 箭头提示可点击进APP,其他区域点切换服务
- 图表默认选中最后一根柱子,tooltip首次可见
- 添加小组件二次确认弹窗 + Manifest权限 + MIUI AppOps检测
- Dashboard首次进入显示长按拖拽排序提示横幅
- NavHost新增Tips路由
- 同步AGENTS.md和README.md
2026-07-07 01:57:52 +00:00
WaterRain
86aaef9a60
docs: sync AGENTS.md and README.md for Room migration + refactors
AGENTS.md:
- Tech stack: DataStore → Room + DataStore
- UsageCache: DataStore JSON → Room DAO, auto-migration from old DataStore
- ChartSettingsStore: add StateFlow, remove runBlocking
- Data flow: insertAll persist/invalidateCache → Room DAO insert (IGNORE)
- RefreshBalanceUseCase: add retryOnTransientError note

README.md:
- Architecture diagram: UsageCache DataStore → Room
- Feature table: 内存缓存 → Room 数据库
- Dependency table: remove Jsoup, add Room
- Project structure: local/ updated with Room files
2026-07-07 00:27:31 +00:00
WaterRain
8469f01354
docs: sync AGENTS.md and README.md for Ollama Pro integration
- AGENTS.md: add Ollama to project overview, service list, data flow,
  widget service count (3→4), credential echo coverage, dashboard item count (7→8),
  fix widget refresh flow (DEEPSEEK+OPENCODE_GO → selectedService+DEEPSEEK)
- README.md: add Ollama to title, features, download requirements,
  architecture diagram, project structure; mark Jsoup as unused}
2026-07-06 22:57:38 +00:00
WaterRain
9cfb962bc8
Add predictive back navigation polish 2026-07-02 22:29:09 +00:00
WaterRain
4e5dda5521
docs: 同步自定义日期和用量入口说明 2026-07-01 23:18:31 +00:00
WaterRain
1d98d4dee1
docs: 同步Codex凭据回显修复记录
AGENTS.md 新增「凭据回显红线」警示段落,防止后续新增凭据类型时遗漏 load() 回显分支。
2026-07-01 20:50:22 +00:00
WaterRain
9a7c0284a1
docs: 同步拖拽排序和Widget切换文档
- AGENTS.md: 首页布局新增拖拽排序详细设计(中心命中、offset让位、坐标补偿)
- AGENTS.md: 服务新增文案统一标注
- AGENTS.md: Widget段更新三服务切换和刷新优化
- README.md: 特性表更新拖拽排序和Widget服务切换
2026-07-01 15:23:30 +00:00
WaterRain
4cbf593983
feat: add Codex/ChatGPT Plus service with auth.json import and auto token refresh
- New ServiceType.CODEX with CodexCredential (access_token + refresh_token + expiresAt)
- CodexRepository: query chatgpt.com/backend-api/wham/usage, auto refresh token 60min before expiry
- Import full auth.json in settings, supports automatic OAuth token refresh
- ChatGPT favicon SVG icon (ic_codex_logo.xml)
- Dashboard card shows 5h/Weekly usage windows with reset times
- Update AGENTS.md and README.md with Codex service info
2026-07-01 04:59:52 +00:00
WaterRain
1d11aa8ed2
fix: 连点左上角返回导致空页面/旧页面残影卡在上层的导航过渡 bug
Some checks failed
Release / build (push) Has been cancelled
根因三重:
① mutableStateOf 写入触发 NavHost 重组,干扰 AnimatedContent 过渡状态机
② popExitTransition=None 字面零帧,连续 pop 时退出 composable 未从 layout 树清除
③ popExitTransition=None + 默认 popEnter(700ms) 不匹配,第二次 pop 中断进入动画

修复:
- PopGuard 普通对象替代 mutableStateOf,不触发 NavHost 重组
- popExitTransition=fadeOut(tween(1)),极短非零帧确保 composable 正确移除
- popEnterTransition=EnterTransition.None,返回导航瞬时完成
- previousBackStackEntry 空值检查 + popBackStack() 返回值检查
2026-06-29 05:09:57 +00:00
WaterRain
2ab5f2f342
docs+nav: sync AGENTS.md 导航过时内容 + guardedPop 围栏方案
- AGENTS.md: AnimatedContent → when(pane) 原子切换
- AGENTS.md: 新增 Compact guardedPop 机制说明 + 已知连点空页面 Bug
- RainyTokenNavHost.kt: Compact 用 guardedPop(150ms) + popExitTransition=None
- Expanded 局部 NavHost 同步加 popExitTransition=None(预防性)
2026-06-29 04:20:52 +00:00
WaterRain
ea9f6f7e72
feat: 平板自适应全面适配 — BoxWithConstraints 双窗格 + 文档同步
P0 — 容器宽度自适应布局:
- 新增 WindowSizeUtils.kt (rememberWindowSizeClass 封装)
- 添加 material3-window-size-class 依赖
- DashboardScreen: BoxWithConstraints >600dp 卡片双列
- UsageDetailScreen/UsageChartScreen: >700dp 图表并排
- UsageDataScreen/UsageOverviewScreen: 移除全局 WindowSizeClass

P1 — 双窗格导航:
- RainyTokenNavHost 拆分 CompactNavHost/ExpandedLayout
- Expanded 模式: 左侧 35% Dashboard + 右侧 65% AnimatedContent
- 右侧内置子路由(图表⇄总览⇄数据) + Settings 局部 NavHost
- Compact 模式: 原 NavHost 一字未改,零回归

文档同步:
- AGENTS.md: 新增自适应断点说明 + 双窗格导航图
- README.md: 新增平板适配特性条目
- 项目记忆: 更新概述 + 删除旧 WIP 记录
2026-06-29 02:06:04 +00:00
WaterRain
26693c92d4
feat: 12小时10分钟粒度 + UTC时区切换持久化 + 自动降级 + 刻度优化
Some checks failed
Release / build (push) Has been cancelled
- 新增 LAST_12H_10MIN 枚举及 aggregate10Min 聚合器(10分钟桶)
- ChartSettingsStore 持久化 UTC 偏好,跨会话保留
- 自动降级链:5h无数据→12h→7天→当月(用户手动选择后关闭降级)
- niceCeil 加细阈值,图表刻度不再太空
- setWorkspace 保留 useUtc8,CCGO 切换不丢失
- UTC 按钮追加 Snackbar 反馈 + "点击切换"提示
- 文档同步:AGENTS.md / README.md
2026-06-27 03:49:44 +00:00
WaterRain
cc7aecc331
feat: CCGO 用量功能 + 首页布局修复 + 文档同步
- 新增 CommandCode Go (CCGO) 用量抓取与展示
- CCGO 输入 token 语义修正(inputTokens = tokensIn - cacheRead)
- 清除数据按钮迁移至 CCGO 详情页顶栏(带倒计时二次确认)
- 移除三个 ViewModel 的 init 自动加载,改为 LaunchedEffect 显式触发
- 修复 hiltViewModel key 碰撞导致 CCGO 详情页无限加载
- 首页 LazyColumn 改为 Column + verticalScroll + PullToRefreshBox
- OCGO/CCGO 页面 autoLoad 参数隔离重复 load
- AGENTS.md / README.md 文档同步更新
2026-06-26 20:37:07 +00:00
WaterRain
9d2a7c7a0c
docs: 同步 MIUI Widget + 深色模式 + 一键添小组件到文档 2026-06-19 15:22:28 +00:00
WaterRain
3aca009290
🎉 RainyToken — AI 余额查询 APP
- Jetpack Compose + Material 3 仪表盘
- DeepSeek REST API 余额查询
- OpenCode Go WebView 抓取用量
- 3 张 Canvas 图表(消耗/请求/Token)
- 原始记录分页浏览
- DataStore + 内存缓存
- 桌面小组件
2026-06-16 01:46:03 +00:00