Commit Graph
3 Commits
Author SHA1 Message Date
jkooe 43275ae7a0 feat(ci): Gitea Actions 构建完整版 APK 并发布 Release;App 内更新检查
Build APK / build (push) Canceled after 7m12s
- .gitea/workflows/build.yml:打 tag 触发构建。代码取当前 ref,素材目录单独从 full-assets 分支叠加
  (main 保持 ~8MB 不追踪 assets_hq/assets_small/assets_net,缺它们构建出来的包宠物是空白的)。
  用 secret 注入的固定 keystore 签 release 包,构建后发布 APK + version.json 到 Gitea Release。
- app/build.gradle.kts:签名改为从环境变量读取(KEYSTORE_PATH / KEYSTORE_PASSWORD / KEY_ALIAS /
  KEY_PASSWORD),本地无 keystore 时回退 debug 签名;versionCode 支持 CI 注入,保证单调递增
  (更新机制要求新包 versionCode 严格大于已装版本,否则系统拒绝覆盖安装)。
- UpdateChecker.kt:读 Gitea Release API 按 versionCode 判版本 → 下载并校验 SHA256 → 经自带
  ApkProvider(content://)拉起系统安装器。项目零第三方依赖,用不了 androidx FileProvider,
  故自带一个只读 ContentProvider(只暴露 cacheDir/update 下的 .apk,路径取 basename 防穿越)。
- MainActivity 设置页新增「关于 / 检查更新」入口,下载前先检查「安装未知来源应用」授权。
- AndroidManifest 新增 REQUEST_INSTALL_PACKAGES 与 ApkProvider 声明。
- .gitignore 增加 *.jks / *.keystore / keystore.properties,防止签名文件误入库。
2026-11-09 17:16:41 +08:00
jkooe 2853b1bb1d fix(memory): 记忆整理重构为四动作冲突消解,并修复两处数据安全缺陷
旧实现 consolidate() 用「相似→内容取更长」,实测会把「主人喜欢咖啡」与「主人不喝咖啡了」合并后保留旧内容(新事实被吞)。根因不是相似度阈值,是缺少「矛盾」与「冗余」的语义分类。

- 新增 ReconcileEngine:ADD/SUPERSEDE/UPDATE/NOOP 四动作,纯 JVM 可测
- 新增 MemoryPersistence:三态读(Ok/Absent/Corrupt)、损坏即只读、主键与备份同 Editor 原子提交、独立文件备份(atomic move)
- 新增 DeterministicExtractor / MemoryModel:结构化五元组抽取,抽取失败一律降级为「不可比」
- MemoryStore:consolidate 换核、add/applyOps 走 reconcile、审计 200->1024、MAX_CARDS 300->600
- FloatingPetService:写入被拒时不推进 seed_memory_v,否则 8 条种子卡会静默覆盖用户记忆
- MainActivity:整理移出主线程、列表分片渲染、失败可见(Log.e + FAILED 审计)、损坏态显示「读取失败」
- 新增 60 条单测(44 引擎 + 16 持久化)

本提交同时修复:合并正文被 token 重组改坏(数据损失)、supersededBy 写成字符串 "null" 导致遗忘分支从未生效、R4 合并逐次累加导致 600 卡场景 JSON 膨胀至 35MB 并整理失败、存储解析失败被当作空导致记忆静默重置为 8 条种子卡。
2026-11-09 17:16:41 +08:00
mtfyun 7d2e8fed8e 小鲸娘 v1.0:悬浮宠物完整工程
- 106 动画 + 2366 表情包 + 语义标签
- 三层记忆 / 心情系统 / 9 可配置插件 / 10 技能
- DeepSeek 对话直连 + MCP/HTTP 接入 + 接入文档
- 动画随机链 + 物理引擎 + 贴边碰撞校准
- 大资源(动画webp/表情图)由 scripts/ 再生成,不入库
2026-11-08 08:07:09 +00:00