admin
d189a18f03
chore(deps): add pino logger dependency
...
Add pino v10.3.1 to project dependencies for structured logging support, along with its transitive dependencies (pino-abstract-transport, pino-std-serializers, quick-format-unescaped, atomic-sleep, etc.).
2026-06-11 14:23:30 +08:00
admin
d0df7296cc
chore: add build:start script to package.json for streamlined deployment
2026-06-11 10:29:17 +08:00
admin
b02262fd4a
chore: update pnpm configuration to allow all built dependencies
2026-06-10 17:23:19 +08:00
admin
956dd11ccc
chore: configure pnpm to allow build scripts for next and tailwindcss
...
Allow pnpm to run build scripts for next, @tailwindcss/postcss, and tailwindcss by adding the onlyBuiltDependencies configuration. This is required to prevent pnpm from blocking post-install build scripts for these packages.
2026-06-10 16:52:55 +08:00
admin
4e27b4c512
build: drop next-pwa and switch to default Next 16 build
2026-06-10 14:24:51 +08:00
admin
cd693b75ae
feat: integrate PWA support with @ducanh2912/next-pwa
...
Configure Progressive Web App capabilities for production builds, enabling offline support and installability. PWA is disabled in dev to avoid HMR conflicts, and switches the build to webpack since PWA tooling requires it.
2026-06-10 13:18:26 +08:00
admin
a4b902893e
refactor(auth): migrate social login to next-auth
2026-06-10 10:26:45 +08:00
admin
6e64ed35f4
chore(deps): add unstorage and migrate ChatStorage to use SpAsyncUtil
2026-06-09 18:13:55 +08:00
admin
5e645b003e
feat: add xstate state management for user state
...
Introduce xstate v5 and @xstate/react to manage user authentication and profile state. Implement userMachine with actors for initialization, fetching, and logout operations, along with actions for updating user data and clearing state.
2026-06-09 17:26:16 +08:00
admin
8cab34864e
feat(ui): migrate Flutter UI library to Next.js 16 (App Router)
...
Migrate all 87 Dart files from /Users/chase/Documents/cozsweet/lib/ui/
to TypeScript React components, replacing Flutter-native features with
Web equivalents and reimplementing the BLoC pattern with React
Context + useReducer.
Highlights
- 1:1 BLoC -> Context+useReducer+side-effects mapping for auth, chat,
user, and sidebar features (4 providers wired in root-providers.tsx)
- 500px MobileShell primitive eliminates per-screen layout boilerplate
- Headless Dialog primitive (createPortal + ESC + scroll lock) powers
quota / pwa-install / username / pronouns / subscription / other-options
dialogs
- New integrations/: facebook-sdk, google-identity, pwa-install,
media-recorder (Web Speech API + MediaRecorder), browser-detect,
chat-websocket (singleton), message-queue (throttled send)
- CSS Modules + existing design tokens (no new styling system);
extended with breakpoints.css and dimensions.css
- Custom hooks: useBreakpoint (useSyncExternalStore),
useFullVisibility (IntersectionObserver), usePwaInstall,
usePullToRefresh
- Vitest + jsdom; 15 unit tests (chat-reducer, auth-validators)
- React 19.2.4, Next.js 16.2.7, Zod 4, lottie-react, classnames
Workarounds
- next.config.ts: experimental.staticGenerationRetryCount = 0 to
bypass Next.js 16.2.7 /_global-error workStore prerender bug
- src/app/global-error.tsx: required Client Component
- src/types/globals.d.ts: centralized window.google / FB /
SpeechRecognition declarations
Routes (/, /splash, /auth, /chat, /chat/deviceid/[deviceId],
/sidebar) all build and lint clean.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2026-06-09 13:39:49 +08:00
Claude
b362945195
feat(auth): migrate Flutter IAuthPlatform to Next.js 16 SDK service layer
...
Adds the third-party social login SDK integration layer (Google + Facebook),
mirroring the Flutter `IAuthPlatform` interface from
`lib/data/services/auth/`. The platform produces identity tokens only; callers
use the existing `authRepository.googleLogin / facebookLogin /
facebookIdLogin` (already migrated) to complete the login.
Architecture (event-bridge pattern):
- `IAuthPlatform` is plain TypeScript (no React dependency)
- `WebAuthPlatform` dispatches DOM `CustomEvent`s; `AuthPlatformBridge`
("use client" component) hosts the React SDK hooks and resolves promises
- `MockAuthPlatform` returns hardcoded tokens when
`NEXT_PUBLIC_USE_MOCK_AUTH=true` (mirrors Dart `kDebugMode` branch)
SDK choices:
- `@react-oauth/google@0.13 .5` for Google
- `@greatsumini/react-facebook-login@3.4.0` (maintained fork of
archived `react-facebook`, React 19 compatible) for Facebook
- For Google: uses raw GIS `google.accounts.id.initialize` + `prompt` API
since `@react-oauth/google` does not expose an `id_token` flow variant
(existing `GoogleLoginRequest.idToken` field expects JWT id_token)
Files added:
- src/data/services/auth/{auth_platform,web_auth_platform,
mock_auth_platform,auth_event_bridge,auth_bridge_component,
initialize_google_auth,initialize_facebook_auth,global.d.ts,index}.ts(x)
- src/data/schemas/auth/facebook_user_data.ts (Zod schema)
- src/data/dto/auth/facebook_user_data.ts (DTO class)
Files modified:
- package.json, pnpm-lock.yaml: added 2 deps
- .env.example: 4 new NEXT_PUBLIC_* env vars
- barrelsby.json: registered src/data/services[/auth] directories
- implementation_plan.md: appended third-party auth section
- src/data/dto/{auth,chat,metrics,user}/index.ts: regenerated barrels
- src/data/schemas/{auth,chat,metrics,user}/index.ts: regenerated barrels
Files deleted:
- src/data/storage/index.ts: pre-existing TS2308 conflict (sync + async
`AuthStorage` both re-exported from auto-generated barrel; no consumer
uses the barrel — all imports use direct paths)
Scope (per user direction):
- Client SDK integration only; no React hook/context, no UI, no Apple
- Platform produces tokens; caller drives `authRepository` / `authApi`
- v1 single-popup semantics (concurrent popups overwrite)
- Bridge component is code-ready but NOT mounted in
`src/app/layout.tsx`; next-step UI migration wires the provider chain
Verified: `npx tsc --noEmit` (0 errors), `pnpm lint` (0 errors),
`pnpm build` (Next.js 16.2.7 + Turbopack compiled successfully).
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2026-06-09 11:13:14 +08:00
admin
90fe892995
feat(assets): add chat typing indicator lottie animation
2026-06-08 17:36:22 +08:00
admin
f4e1c30051
feat(api): migrate HTTP layer to ofetch with token interceptor
2026-06-08 15:52:27 +08:00
admin
d7943f5f06
refactor(models): migrate 28 data models to Zod schema-driven pattern
2026-06-08 14:50:20 +08:00
admin
c22b90c7f4
feat: setup barrelsby for automatic barrel file generation
...
Add barrelsby as a dev dependency with a `generate-barrels` npm script and a `barrelesby.json` config targeting `./src`. This automates creation of barrel/index files to simplify imports across the project.
2026-06-08 13:07:37 +08:00
admin
14d6e7c41e
chore: configure project with src/ directory structure and tooling
...
- Move app files into src/ directory following Next.js convention
- Add baseUrl: src/ to tsconfig.json for path resolution
- Add .vscode/launch.json with debug configs for dev/build/start/lint
- Add lint:fix npm script to package.json
2026-06-08 11:04:42 +08:00
admin
6e15715e67
Initial commit from Create Next App
2026-06-05 19:09:20 +08:00