admin
934b92502b
fix(chat): clear limit prompt after payment
2026-06-29 11:27:39 +08:00
admin
2207301ccb
refactor(sidebar): remove unused store
2026-06-29 10:58:15 +08:00
admin
b7779878cf
feat(chat): unlock history after payment
2026-06-29 10:53:52 +08:00
admin
58cd2a7545
feat(user): sync entitlement snapshot
2026-06-29 10:37:37 +08:00
admin
1b73c3ac10
refactor(chat): remove private unlock machine flow
2026-06-26 19:17:29 +08:00
admin
b6f18a1ef3
refactor(payment): remove vip status flow
2026-06-26 18:48:22 +08:00
admin
e9fc001a6f
refactor(chat): remove vip websocket session flow
2026-06-26 18:35:26 +08:00
admin
49b67064f7
feat(subscription): load vip and credit plans from api
2026-06-26 15:09:27 +08:00
admin
3a85c1d46f
fix(auth): use uuid device id outside production
2026-06-26 13:14:01 +08:00
admin
58236453ed
fix(chat): track replies by queued batch
2026-06-26 11:42:17 +08:00
admin
fe85af0cd7
fix(chat): queue outgoing messages
2026-06-26 11:11:43 +08:00
admin
6081f2896a
test(stores): add state machine coverage
2026-06-25 13:28:08 +08:00
admin
0bff65dd32
feat(docs): add simplified API documentation for chat messages
2026-06-25 12:06:49 +08:00
admin
8d956bc95d
fix(chat): render locked voice messages correctly
2026-06-25 12:04:38 +08:00
admin
cd836cda43
feat(chat): add voice message bubbles
2026-06-25 11:13:25 +08:00
admin
c288148c12
fix(chat): remove dynamic upgradeHint for daily limit message
2026-06-24 18:18:21 +08:00
admin
42c03f8901
feat(chat): migrate chat protocol to lock detail
2026-06-24 14:06:30 +08:00
admin
3e766a0ecd
fix(chat): preserve private send response fields
2026-06-24 11:02:15 +08:00
admin
f80b5215a9
feat(chat): log websocket traffic
2026-06-24 10:48:36 +08:00
admin
a571867620
fix(chat): hide text for ai image messages
2026-06-24 10:19:30 +08:00
admin
bfbf7ee91a
feat(app): improve payment and paywall UX
2026-06-24 10:02:22 +08:00
admin
f14b8a48d2
fix(chat): handle guest total limit
2026-06-23 15:14:17 +08:00
admin
7dd4878d7d
fix(chat): constrain auth state transitions
2026-06-23 14:10:59 +08:00
admin
ebd44c4980
feat(chat): add private message unlock flow
2026-06-23 13:21:57 +08:00
admin
6bcc070ba1
refactor(chat): rely on server message limits
2026-06-23 11:20:48 +08:00
admin
d81abd6efd
feat(chat): support ai photo viewing
2026-06-23 10:34:02 +08:00
admin
9a3c8f0d12
fix(payment): allow renewing active subscriptions
2026-06-22 18:48:21 +08:00
admin
27021f9328
fix(chat): normalize message date headers
2026-06-22 18:23:50 +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
6ff1accad5
refactor(chat): split sessions by vip status
2026-06-22 15:11:57 +08:00
admin
61fd4ca916
feat(chat): handle daily message paywall
2026-06-22 10:46:17 +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
1fc1635341
chore: wire release hook and service updates
2026-06-18 16:18:52 +08:00
admin
d87bfcc859
refactor(chat): remove commented-out code in guestSession
2026-06-18 15:47:24 +08:00
admin
a347b39001
feat(payment): connect payment service flow
2026-06-18 15:40:59 +08:00
admin
812a3e41b9
refactor(logging): centralize console output
2026-06-18 13:34:19 +08:00
admin
f600e11d55
refactor(auth): centralize login status sync
2026-06-18 12:52:49 +08:00
admin
0d0dabaace
refactor(utils): add barrel exports
2026-06-18 11:58:50 +08:00
admin
172ef28060
feat(chat): prompt facebook users to open external browser
2026-06-18 10:59:13 +08:00
admin
e4b1690b45
fix(chat): redirect unauthenticated users from chat
2026-06-17 19:44:22 +08:00
admin
5d66cef85c
refactor(dto): move app models into dto layer
2026-06-17 17:34:55 +08:00
admin
67d0bd5cd0
refactor(hooks): remove unused PWA install and visibility hooks
...
refactor(package): remove deprecated dev:proxy script
fix(user): ensure user-auth-sync is exported in index
2026-06-17 17:27:18 +08:00
admin
afba85e809
fix(auth): update routing for subscription access
2026-06-17 17:11:34 +08:00
admin
977c0905bd
refactor(chat): remove redundant auth state management from ChatScreen documentation
...
refactor(chat): update guest chat quota logic to use isProduction utility
fix(user): add TODO for user initialization event on login status change
2026-06-17 15:30:36 +08:00
admin
b67beaeae6
refactor(auth): remove dead AuthReset event
...
AuthReset was declared in the AuthEvent union and handled in
auth-machine.idle.on with `assign(() => initialState)`, but
nothing in the codebase actually dispatches it anymore.
History of dispatch sites (now all gone):
- sidebar-screen.tsx previously dispatched AuthReset post-logout
alongside router.replace(ROUTES.chat) — that was simplified to
just dispatch AuthLogoutSubmitted, the state machine's
loggingOut state now does the context reset itself in onDone
via the same `assign(() => initialState)` action.
- chat-screen / splash / auth screens never dispatched it.
- The /auth screen's pendingRedirect-based redirect loop doesn't
need it (the redirect is one-shot, not a state that needs
resetting).
So the event handler is unreachable. Remove the type member
from auth-events.ts and the handler from auth-machine.ts.
No behavior change: the only path that 'reset auth state' was
already covered by loggingOut.onDone.
Verified via `grep -rn 'AuthReset' src/`: only 2 hits remain
after this commit — both are the type declaration and the
machine handler, which is now also gone (zero hits).
2026-06-17 15:13:44 +08:00
admin
bda1605ce7
fix(auth): redirect to splash after logout
2026-06-17 15:07:16 +08:00