admin
|
2394f9031a
|
refactor(assets): relocate character avatars
|
2026-07-17 14:30:11 +08:00 |
|
admin
|
ae97366a4a
|
refactor(data): replace schema classes with readonly models
|
2026-07-17 13:21:40 +08:00 |
|
admin
|
3437312167
|
fix(chat): clarify daily free chat limit
|
2026-07-17 12:47:39 +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
|
19d36ed5bf
|
refactor(data): establish API contract guardrails
CI / Quality and Bundle Budgets (push) Has been cancelled
|
2026-07-16 20:09:30 +08:00 |
|
admin
|
acabf165cd
|
refactor(chat): consolidate unlock state
|
2026-07-16 19:49:08 +08:00 |
|
admin
|
b5990bca8b
|
refactor(viewport): centralize browser metrics
|
2026-07-16 19:43:03 +08:00 |
|
admin
|
40c6de5a06
|
fix(feedback): rename eyebrow class to successEyebrow for consistency
|
2026-07-16 19:00:04 +08:00 |
|
admin
|
37f45f0736
|
feat(feedback): add problem reporting flow
|
2026-07-16 18:30:34 +08:00 |
|
admin
|
4981de9b18
|
fix(private-room): preserve payment return route
|
2026-07-16 18:06:15 +08:00 |
|
admin
|
b64a90f0e3
|
fix(chat): calibrate Facebook IAB keyboard fallback
|
2026-07-16 17:39:50 +08:00 |
|
admin
|
ffd988bf95
|
fix(chat): stabilize Facebook keyboard fallback
|
2026-07-16 17:17:34 +08:00 |
|
admin
|
f8934b1412
|
fix(chat): update target gap value for keyboard layout adjustment
|
2026-07-16 16:51:57 +08:00 |
|
admin
|
d84899fc82
|
fix(chat): adjust bottom inset values and fallback delay for keyboard avoidance
|
2026-07-16 16:48:28 +08:00 |
|
admin
|
514297f469
|
fix(chat): scope keyboard avoidance to Facebook IAB
|
2026-07-16 16:41:02 +08:00 |
|
admin
|
54b9031622
|
fix(chat): restore Facebook keyboard avoidance
|
2026-07-16 16:28:10 +08:00 |
|
admin
|
9d04176e90
|
test(chat): enable virtual keyboard overlay experiment
|
2026-07-16 15:52:00 +08:00 |
|
admin
|
31eda84ea9
|
test(chat): enable resizes-content keyboard experiment
|
2026-07-16 15:29:46 +08:00 |
|
admin
|
8b6bcab05c
|
refactor(chat): remove keyboard compatibility layer
|
2026-07-16 14:36:33 +08:00 |
|
admin
|
aec7cee9cf
|
feat(chat): add keyboard diagnostics
|
2026-07-16 14:05:48 +08:00 |
|
admin
|
5934d48034
|
fix(chat): replace Android keyboard workaround
|
2026-07-16 13:18:26 +08:00 |
|
admin
|
0409d55d7f
|
fix(tip): remove coffee tier labels
|
2026-07-16 12:02:26 +08:00 |
|
admin
|
0b96b5ed95
|
test(auth): cover PSID external entry login
|
2026-07-16 11:55:03 +08:00 |
|
admin
|
764bb5a862
|
fix(chat): unify insufficient credits prompt
|
2026-07-16 11:37:30 +08:00 |
|
admin
|
cf239a51de
|
fix(chat): keep sent messages in view
|
2026-07-15 19:14:36 +08:00 |
|
admin
|
47876484fc
|
refactor(chat): centralize unlock coordination
|
2026-07-15 19:11:59 +08:00 |
|
admin
|
590dee417b
|
refactor(payment): centralize route lifecycle
|
2026-07-15 18:47:01 +08:00 |
|
admin
|
7dce1b5d4c
|
feat(subscription): highlight popular plans
|
2026-07-15 18:30:18 +08:00 |
|
admin
|
c37a2f9040
|
feat(chat): implement pull-to-refresh functionality and pagination for chat history
|
2026-07-15 18:19:35 +08:00 |
|
admin
|
05ca15be48
|
perf(client): defer chat persistence dependencies
|
2026-07-15 17:58:06 +08:00 |
|
admin
|
c277b3e6ca
|
feat(tip): add selectable coffee gift tiers
|
2026-07-15 17:00:25 +08:00 |
|
admin
|
e1a43a641b
|
fix(chat): place browser hint between header actions
|
2026-07-15 15:39:27 +08:00 |
|
admin
|
58ca40a728
|
fix(chat): keep browser hint expanded and readable
|
2026-07-15 13:00:58 +08:00 |
|
admin
|
3f3d1a0203
|
feat(subscription): add VIP renewal price notice
|
2026-07-15 11:50:44 +08:00 |
|
admin
|
f60daf061d
|
fix(chat): keep message list anchored to bottom
|
2026-07-15 10:25:08 +08:00 |
|
admin
|
836ae95940
|
refactor: canonicalize TypeScript and Tailwind syntax
|
2026-07-14 19:06:47 +08:00 |
|
admin
|
5bec04a970
|
refactor(payment): share checkout dialogs
|
2026-07-14 18:23:08 +08:00 |
|
admin
|
0033625866
|
perf(bundle): replace broad storage and utils imports
|
2026-07-14 18:13:55 +08:00 |
|
admin
|
e270be9bd9
|
perf(payment): parse route params on the server
|
2026-07-14 17:48:20 +08:00 |
|
admin
|
f58f47e0a5
|
fix(chat): fit unlocked voice bubble content
|
2026-07-14 17:27:03 +08:00 |
|
admin
|
3c48aa7909
|
fix(analytics): exclude chat send button tracking
|
2026-07-14 16:59:13 +08:00 |
|
admin
|
df6bb663c1
|
refactor(chat): reuse fullscreen back button
|
2026-07-14 16:54:26 +08:00 |
|
admin
|
81d6489978
|
feat(analytics): add behavior and payment funnel tracking
|
2026-07-14 16:54:13 +08:00 |
|
admin
|
8eaea17156
|
fix(auth): stabilize hydration-dependent UI
|
2026-07-14 13:27:41 +08:00 |
|
admin
|
b6551b6a5a
|
fix(splash): prevent latest message hydration mismatch
|
2026-07-14 12:34:49 +08:00 |
|
admin
|
538af6d45f
|
feat(private-room): migrate to album APIs
|
2026-07-14 12:30:22 +08:00 |
|
admin
|
3a4f24cb06
|
feat(payment): implement coffee tip plans and update payment flow
|
2026-07-14 11:48:46 +08:00 |
|
admin
|
f9c15bd91f
|
fix(splash): reuse latest chat message preview
|
2026-07-14 11:28:23 +08:00 |
|
admin
|
b4904e738b
|
perf: defer heavy modules and add performance baselines
Lazy-load Stripe and the chat reply animation, remove the unused Lottie runtime, and add repeatable bundle and Web Vitals baseline tooling.
|
2026-07-14 10:55:08 +08:00 |
|