Commit Graph

23 Commits

Author SHA1 Message Date
admin 8bb1e21886 fix(chat): isolate pending flows and cancel stale requests 2026-07-20 10:31:27 +08:00
admin ae97366a4a refactor(data): replace schema classes with readonly models 2026-07-17 13:21:40 +08:00
admin eac3d8f0a7 refactor(data): merge DTO models into schemas 2026-07-17 12:47:18 +08:00
admin 2796010971 feat(characters): support character-scoped conversations 2026-07-17 11:42:31 +08:00
admin bb0d9244c0 refactor(rsc): narrow client module boundaries 2026-07-14 18:39:56 +08:00
admin 0033625866 perf(bundle): replace broad storage and utils imports 2026-07-14 18:13:55 +08:00
admin 4083cf0b6c refactor: remove obsolete config and cross-layer exports
Drop the temporary static-generation retry override and stale hydration suppression. Refresh outdated Next.js and migration comments, and stop re-exporting Result through the storage layer.
2026-07-13 18:45:59 +08:00
admin b126b83c4c fix(chat): isolate cached data by identity
Scope message and media caches to the active user or guest identity. Preserve identity snapshots across async chat flows and discard legacy unscoped message data during the IndexedDB upgrade.
2026-07-13 16:54:34 +08:00
admin 3752b3b729 feat(chat): add promotional external entry flow 2026-07-13 12:43:18 +08:00
admin 8312d08653 fix(chat): apply unlocked voice audio url 2026-07-10 11:15:59 +08:00
admin c20769b6a3 fix(chat): make cached media load on safari 2026-07-01 20:13:56 +08:00
admin 617f1d4777 fix(chat): preserve locked message content on unlock 2026-07-01 10:47:55 +08:00
admin 5f94105bc6 fix(chat): update unlock response contract 2026-06-30 18:15:39 +08:00
admin 9cff16e2d9 refactor(chat): tighten media cache boundaries 2026-06-30 16:12:02 +08:00
admin ccd2d6bd48 feat(media): implement caching for chat media and update components to use cached media 2026-06-30 15:59:33 +08:00
admin 6e51cb7d16 Refactor: Remove original Dart references from comments across multiple files
- Updated comments in various components, schemas, and repositories to remove references to original Dart files.
- Ensured consistency in documentation while maintaining the context of the code.
2026-06-29 11:31:21 +08:00
admin 1ebd29d1ed refactor: remove unused subscription plans and router files 2026-06-29 10:56:08 +08:00
admin 455204e1e4 feat(chat): add history unlock api 2026-06-26 19:27:56 +08:00
admin ebd44c4980 feat(chat): add private message unlock flow 2026-06-23 13:21:57 +08:00
admin 35c30ac31e feat(data): add paywall payment APIs 2026-06-18 14:55:54 +08:00
admin 0d0dabaace refactor(utils): add barrel exports 2026-06-18 11:58:50 +08:00
admin 1152491088 refactor(repositories): use barrel imports 2026-06-17 12:09:40 +08:00
admin 982d9ba790 refactor(data): add I*Repository interfaces and depend on them in stores
为 /src/data/repositories/ 下每个仓库类增加对应的接口契约,
接口文件存放在独立的 interfaces/ 子目录中。

改动:
- 新建 4 个接口文件 (iauth_repository / ichat_repository /
  imetrics_repository / iuser_repository),纯 type-only,方法签名
  与实现类完全一致
- 4 个实现类加 implements I{Name}Repository 子句,编译器自动校验契约
- 3 个 stores 文件 (auth / chat / user state machines) 改为依赖接口
  类型:通过 `const xxxRepo: I{Name}Repository = xxxRepository` 局部别名,
  actor 内部调用全部走别名
- barrelsby.json 加入 interfaces/ 目录,让自动 barrel 能覆盖
- Auto-regenerated repositories/index.ts 与 interfaces/index.ts

参照 storage 层已有的 IAuthStorage / IChatStorage / IUserStorage 模式。

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-11 17:02:49 +08:00