- Introduced new ContactAvatar and ContactAvatarPicker components for enhanced avatar management in contact views.
- Updated ContactDetailView and ContactFormView to utilize the new avatar components, improving user experience when adding or editing contacts.
- Enhanced ContactHoverCard and ContactRow components to display avatars, providing a more visually appealing interface.
- Added loading and error states in ContactsListView for better user feedback during data fetching.
- Implemented a new ContactsLoadState component to handle loading and error scenarios in the contacts list.
- Updated package.json to include @formkit/auto-animate for improved UI animations.
- Introduced functions to normalize and analyze snippet text, including checks for legal footers, leading separators, and boilerplate detection.
- Added HTML entity decoding and improved CSS snippet detection.
- Updated the snippet selection logic to better filter and polish previews, ensuring cleaner output for email snippets.
- Created a .cursorignore file to manage local environment files.
- Updated .env.example to reflect changes in the public app URL.
- Modified the gmail workspace configuration to include the drive-suite path.
- Enhanced email view components to support attachment handling and fallback for plain text bodies.
- Improved user experience by updating attachment display logic and integrating inline attachment support.
Move mail, compose, contacts, and accounts off mocks onto REST + WS.
Add client, auth store, IDB-backed query cache, offline queue, and
sync bar; hybrid Zustand for UI-only state. Settings still local until
backend has preferences API.
- Added Playwright as a dependency for end-to-end testing, including necessary scripts in package.json.
- Created a Playwright configuration file to define test settings and browser options.
- Implemented a new GitHub Actions workflow for automated end-to-end testing on push and pull request events.
- Updated .gitignore to exclude Playwright test results and reports.
- Added initial end-to-end tests for mail functionalities, including composing, sending, and searching messages.
- Created CLAUDE.md to outline the vision, architecture, and key features of the Ultimail project, including client and backend responsibilities.
- Added a workspace configuration file for easier project management, linking the frontend and backend directories.
- Introduced CSS animations for splash screen elements including aurora drift, logo float, loader progress, and card breathing effects.
- Implemented a new FirstLaunchSplash component in layout to display the splash screen on the initial app launch.
- Updated theme initialization script to manage splash screen visibility based on local storage state.