Commit Graph

250 Commits

Author SHA1 Message Date
admin e70ee3e22f fix(logger): preserve multiline browser logs 2026-06-18 16:09:56 +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 35c30ac31e feat(data): add paywall payment APIs 2026-06-18 14:55:54 +08:00
admin 567d3f9184 fix(logger): enable debug logs in tests 2026-06-18 14:42:51 +08:00
admin 7d756d2b50 chore(deploy): remove unused deployment scripts and configuration 2026-06-18 14:32:19 +08:00
admin e2a89ef063 style(chat): align external browser dialog 2026-06-18 14:30:59 +08:00
admin cf54bc742d fix(chat): limit external browser prompt daily 2026-06-18 14:23:31 +08:00
admin d190de4dda refactor(api): use dto barrel imports 2026-06-18 14:16:00 +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 428402d4b1 fix(deploy): detect service port with ss 2026-06-18 11:49:39 +08:00
admin b09795a7b8 fix(deploy): force stop existing next service 2026-06-18 11:35:26 +08:00
admin 172ef28060 feat(chat): prompt facebook users to open external browser 2026-06-18 10:59:13 +08:00
admin d2bced8889 feat(utils): add platform and browser detection helpers 2026-06-18 10:27:03 +08:00
admin e4b1690b45 fix(chat): redirect unauthenticated users from chat 2026-06-17 19:44:22 +08:00
admin bb40f3c042 feat(deploy): add script to kill processes on Next.js deployment ports 2026-06-17 19:39:41 +08:00
admin c7975a7aaf fix(manifest): update app name and short name to match branding 2026-06-17 18:58:26 +08:00
admin 237d2c6679 refactor(images): reorganize and replace user and voicemessage icons 2026-06-17 18:52:47 +08:00
admin 70956559b8 chore(deploy): organize post receive hook globals 2026-06-17 18:43:26 +08:00
admin 15d322962e chore(deploy): choose start port by branch 2026-06-17 18:25:16 +08:00
admin bded7497d2 fix(chat): show browser hint in development 2026-06-17 18:03:25 +08:00
admin 56b2c39ca5 fix(user): normalize last message timestamp 2026-06-17 17:47:07 +08:00
admin 7f8e327582 chore(deploy): install dependencies before build 2026-06-17 17:40:01 +08:00
admin 5d66cef85c refactor(dto): move app models into dto layer 2026-06-17 17:34:55 +08:00
admin f0b5275c55 refactor(sidebar): comment out user info section and membership option 2026-06-17 17:30:16 +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 a969030f40 fix(chat): prevent guest quota reset on read failures 2026-06-17 17:22:45 +08:00
admin afba85e809 fix(auth): update routing for subscription access 2026-06-17 17:11:34 +08:00
admin d074f1a813 fix(auth): hide email option in other sign-in dialog 2026-06-17 17:07:53 +08:00
admin b34533b242 refactor(auth): use icon library for provider icons 2026-06-17 16:58:24 +08:00
admin 08d512d9d6 chore(githooks): remove pre-push hook script 2026-06-17 16:46:45 +08:00
admin a1864c2421 refactor(fonts): use woff2 athelas assets 2026-06-17 16:37:23 +08:00
admin 24100b128c chore(githooks): run pre release before push 2026-06-17 16:33:37 +08:00
admin f39e7e0672 fix(pwa): suppress install dialog in in-app browsers 2026-06-17 16:19:21 +08:00
admin 62468ffc6a fix(theme): use next font athelas variable globally 2026-06-17 16:07:10 +08:00
admin 5c26ad9d5b refactor(splash): remove Athelas font references from CSS files 2026-06-17 16:05:20 +08:00
admin f7201fa654 fix(chat): make send button circular 2026-06-17 15:54:05 +08:00
admin a6ee0d5e24 refactor(env): centralize app environment detection 2026-06-17 15:31:15 +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
admin 0d2a515e51 fix(sidebar): redirect to splash screen after logout 2026-06-17 14:35:28 +08:00
admin 1d7d9cfbfc fix(chat): hydrate user avatar after auth restore 2026-06-17 14:23:07 +08:00
admin 287affa34a refactor(app): move route screens out of components
Exclude test and spec files from generated barrels so page imports do not load test modules at runtime.
2026-06-17 14:13:42 +08:00
admin cda76a1651 fix(splash): keep login button text on one line 2026-06-17 13:06:56 +08:00
admin c3f2f8d954 fix(sidebar): trigger logout from click 2026-06-17 12:59:48 +08:00
admin 1152491088 refactor(repositories): use barrel imports 2026-06-17 12:09:40 +08:00
admin d41b3c4473 refactor(schemas): extract nullable-default helpers to shared file
The three defensive Zod helpers (stringOrEmpty, numberOrZero,
booleanOrFalse) used by user.ts are general-purpose Zod utilities
that any schema may need — they're not user-specific. The original
inline declaration in user.ts had two downsides:

1. Any new schema (chat, auth, metrics, etc.) that needs the same
   'null | undefined → default scalar' pattern would have to
   duplicate the helper.

2. The long defensive-parse comment block (11 lines) lived inside
   user.ts and didn't explain the helpers' general purpose.

Move them to src/data/schemas/nullable-defaults.ts (top-level
sibling of auth/, chat/, metrics/, user/ subdirs) so any schema
can import them. Keep the original explanation verbatim at the
top of the new file.

Bundled in this commit:
- user.ts imports the helpers from the new file (drops 11 lines
  of comment + 3 const declarations)
- 3 auto-generated barrel index files regenerated by barrelsby
  to pick up the new exports (chat/, subscription/, stores/user/)
2026-06-17 12:05:09 +08:00