admin
|
b6fdc912ae
|
feat(chat): sync multi-role backend APIs
|
2026-07-20 11:29:54 +08:00 |
|
admin
|
b3ebd5cf3b
|
feat(characters): use local character catalog
|
2026-07-17 16:03:18 +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
|
20d07023e4
|
refactor(stores): standardize state machine structure
|
2026-07-15 11:19:08 +08:00 |
|
admin
|
836ae95940
|
refactor: canonicalize TypeScript and Tailwind syntax
|
2026-07-14 19:06:47 +08:00 |
|
admin
|
0033625866
|
perf(bundle): replace broad storage and utils imports
|
2026-07-14 18:13:55 +08:00 |
|
admin
|
81d6489978
|
feat(analytics): add behavior and payment funnel tracking
|
2026-07-14 16:54:13 +08:00 |
|
admin
|
3a4f24cb06
|
feat(payment): implement coffee tip plans and update payment flow
|
2026-07-14 11:48:46 +08:00 |
|
admin
|
37ae152abb
|
refactor: scope providers by route and use XState selectors
|
2026-07-13 19:07:53 +08:00 |
|
admin
|
0258d8819c
|
fix(subscription): preserve vip original price
|
2026-07-07 15:08:47 +08:00 |
|
admin
|
65d972fbb4
|
feat(errors): add centralized exception handling
|
2026-07-03 12:55:45 +08:00 |
|
admin
|
489554cd78
|
fix(payment): consume first recharge offer after payment
|
2026-07-03 10:54:46 +08:00 |
|
admin
|
d4de1370e8
|
feat(payment): implement first recharge offer functionality and UI updates
|
2026-07-02 14:39:09 +08:00 |
|
admin
|
cd25fa35f2
|
fix(subscription): preselect pay channel before navigation
|
2026-07-02 11:38:47 +08:00 |
|
admin
|
760e4fe343
|
refactor(app): tighten chat and sync boundaries
|
2026-07-01 14:03:25 +08:00 |
|
admin
|
5d9ed7e027
|
refactor(stores): tighten chat and payment boundaries
|
2026-07-01 10:12:19 +08:00 |
|
admin
|
e7a9e7abe5
|
feat(chat): unlock paid messages before payment
|
2026-06-30 18:56:17 +08:00 |
|
admin
|
01a17fbdc9
|
fix(payment): fail order polling after timeout
|
2026-06-30 10:37: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
|
b7779878cf
|
feat(chat): unlock history after payment
|
2026-06-29 10:53:52 +08:00 |
|
admin
|
b6f18a1ef3
|
refactor(payment): remove vip status flow
|
2026-06-26 18:48:22 +08:00 |
|
admin
|
49b67064f7
|
feat(subscription): load vip and credit plans from api
|
2026-06-26 15:09:27 +08:00 |
|
admin
|
6081f2896a
|
test(stores): add state machine coverage
|
2026-06-25 13:28:08 +08:00 |
|
admin
|
9a3c8f0d12
|
fix(payment): allow renewing active subscriptions
|
2026-06-22 18:48:21 +08:00 |
|
admin
|
01ef89452d
|
Revert "fix(payment): allow new orders after paid state"
This reverts commit c6b65f0b3a.
|
2026-06-22 18:09:54 +08:00 |
|
admin
|
c6b65f0b3a
|
fix(payment): allow new orders after paid state
|
2026-06-22 18:00:54 +08:00 |
|
admin
|
21b9954351
|
feat(payment): restore ezpay return orders
|
2026-06-22 17:31:04 +08:00 |
|
admin
|
5ed43a37ce
|
feat(subscription): add payment channel selector
|
2026-06-22 16:14:34 +08:00 |
|
admin
|
5bf98e9452
|
feat(subscription): support Stripe payment element
|
2026-06-18 18:03:36 +08:00 |
|
admin
|
7354afe93d
|
refactor(ui): extract auth and avatar components
|
2026-06-18 17:14:02 +08:00 |
|
admin
|
a347b39001
|
feat(payment): connect payment service flow
|
2026-06-18 15:40:59 +08:00 |
|