Commit Graph

48 Commits

Author SHA1 Message Date
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 225d232763 fix(auth): handle logout and refresh results
Propagate storage Result failures through logout, guest restoration, token refresh, and user state actors. Clear invalid sessions after failed automatic refreshes and cover both business and guest flows.
2026-07-13 17:23:54 +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 4682b4bf3f refactor(chat): simplify paid message lock state 2026-07-13 15:20:07 +08:00
admin 3752b3b729 feat(chat): add promotional external entry flow 2026-07-13 12:43:18 +08:00
admin 53801490e5 feat(auth): add facebook identity psid login 2026-07-10 17:10:55 +08:00
admin 2e60bf64e6 feat(auth): rename facebookIdLogin to facebookAsidLogin and update related references 2026-07-10 16:35:38 +08:00
admin dfcb06f5a9 feat(auth): add psid field to various login request DTOs and schemas 2026-07-10 16:33:29 +08:00
admin 8312d08653 fix(chat): apply unlocked voice audio url 2026-07-10 11:15:59 +08:00
admin c46b9b4cdd feat(private-room): connect moments feed
Docker Image / Build and Push Docker Image (push) Successful in 9m29s
2026-07-08 16:29:08 +08:00
admin b5bf81de59 refactor(api): remove unused network endpoints 2026-07-07 16:29:21 +08:00
admin c739cc5b6e refactor(auth): fold guest restore into logout 2026-07-03 17:04:19 +08:00
admin 8f17ea9c9f fix(auth): return to guest session on logout 2026-07-03 16:14:04 +08:00
admin 79324defcf refactor(auth): remove username fallback 2026-07-03 15:00:10 +08:00
admin 8a586e4471 refactor(errors): classify auth and browser failures 2026-07-03 13:20:16 +08:00
admin 489554cd78 fix(payment): consume first recharge offer after payment 2026-07-03 10:54:46 +08:00
admin c20769b6a3 fix(chat): make cached media load on safari 2026-07-01 20:13:56 +08:00
admin 5f9df58dbe fix(chat): downgrade media prefetch cache failures 2026-07-01 16:53:11 +08:00
admin 617f1d4777 fix(chat): preserve locked message content on unlock 2026-07-01 10:47:55 +08:00
admin ed109f25a0 refactor(chat): split machine and repository flows 2026-06-30 19:16:33 +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 61504050e5 fix(auth): trim email and username in emailLogin method 2026-06-30 15:15:35 +08:00
admin a99a6e056d feat(auth): persist login provider for restored sessions 2026-06-30 12:50:18 +08:00
admin 768b24774d fix(auth): replace hardcoded platform name with dynamic platform detection 2026-06-30 12:05:44 +08:00
admin 0bae53bfba feat: implement lazy singleton pattern for repository instances and update related imports 2026-06-29 17:25:41 +08:00
admin e372d58b4c feat(payment): sync plans and add coins rules 2026-06-29 14:11:50 +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 58cd2a7545 feat(user): sync entitlement snapshot 2026-06-29 10:37:37 +08:00
admin 455204e1e4 feat(chat): add history unlock api 2026-06-26 19:27:56 +08:00
admin 49b67064f7 feat(subscription): load vip and credit plans from api 2026-06-26 15:09:27 +08:00
admin abf6d5ae88 feat(auth): mark test accounts in login requests 2026-06-26 14:05:53 +08:00
admin 42c03f8901 feat(chat): migrate chat protocol to lock detail 2026-06-24 14:06:30 +08:00
admin ebd44c4980 feat(chat): add private message unlock flow 2026-06-23 13:21:57 +08:00
admin d81abd6efd feat(chat): support ai photo viewing 2026-06-23 10:34:02 +08:00
admin 35c30ac31e feat(data): add paywall payment APIs 2026-06-18 14:55:54 +08:00
admin 812a3e41b9 refactor(logging): centralize console output 2026-06-18 13:34:19 +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 9ffa30cc03 style: remove markdown bold syntax from code comments
Remove `**...**` emphasis markers from inline comments and JSDoc blocks across
auth and chat components, machine mappers, and quota helpers. These are
plain code comments, not rendered markdown, so the bold syntax was noise.

Files touched:
- src/app/auth/components/auth-screen.tsx
- src/app/chat/components/chat-header.tsx
- src/app/chat/components/chat-screen.tsx
- chat machine mapper / quota helpers

No functional or behavioral changes.
2026-06-16 14:06:31 +08:00
admin 7bc21c1864 chore(auth): add debug logging to guest login flow
Add console.log instrumentation across the guest login pipeline (auth-machine, authRepository, authApi) to trace request lifecycle and surface Zod parsing failures with detailed issue info. Useful for diagnosing lastMessageAt schema mismatches.
2026-06-12 16:21:21 +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
admin 016bc6fd2c fix:修复所有的包导入错误问题 2026-06-09 18:30:49 +08:00
admin 6e64ed35f4 chore(deps): add unstorage and migrate ChatStorage to use SpAsyncUtil 2026-06-09 18:13:55 +08:00
admin 904cb3638a refactor(data): move Result utility to utils and simplify API
Relocate the Result type from `@/data/result` to `@/utils/result` and
replace the discriminated-union API (`kind`/`value`) with a simpler
boolean-based API (`success`/`data`) across all repositories and
storage classes for improved readability and consistency.
2026-06-09 10:34:40 +08:00
admin a240f5965d feat(data): add repository layer with Auth/Chat/User/Metrics + shared Result<T>
引入仓库层(`src/data/repositories/`),对齐原 Dart `lib/data/repositories/`
的四个仓库:Auth(hybrid: API+AuthStorage+UserStorage)、Chat(hybrid:
API+LocalChatStorage via Dexie)、User(纯远程)、Metrics(纯远程)。

同步抽取 4 个 `*_api.ts` 中重复的 envelope-unwrap 代码到
`src/data/api/response_helper.ts`,失败时抛 `ApiError`(之前抛裸 Error)。

新建 `src/data/result.ts` 提供仓库层统一 `Result<T>`(`{success,data}` 形态),
与 `src/data/storage/result.ts`(`{kind,value}` 形态)并存。

更新 `barrelsby.json` 让 `src/data/repositories/` 加入 barrel 生成。
2026-06-08 19:28:02 +08:00