- Update Login.vue to enhance the overall layout by adjusting the container's height and centering.
- Refine padding and width settings to ensure a more consistent appearance across different screen sizes.
- Import `computed` and `useRoute` from Vue and Vue Router.
- Add a computed property to control the visibility of the navbar based on the current route.
- Update the App.vue template to conditionally render the navbar and footer only when not on the login page.
- Update LoginDialog.vue to improve maximum width settings for better adaptability across different screen sizes.
- Adjust Login.vue to refine container padding and centering, ensuring a more consistent layout on various devices.
- Adjust NostrFeed.vue to enhance the scroll area height for better adaptability across screen sizes.
- Update Home.vue to refine the container's padding and width for improved layout consistency on various devices.
- Update Navbar.vue to enhance spacing and responsiveness for logo and navigation items.
- Adjust App.vue to ensure consistent padding and layout for the header and navigation.
- Refine button sizes and text scaling for better usability across different screen sizes.
- Introduce ProfileDialog.vue to display user information and account settings.
- Integrate ProfileDialog into Navbar.vue for easy access to user profile.
- Implement logout functionality within the ProfileDialog, enhancing user experience.
- Remove unnecessary async handling in logout functions across UserProfile.vue and Navbar.vue.
- Integrate `useRouter` for consistent redirection to the login page after logout.
- Update `logout` method in useAuth.ts to clear local state without an API call.
- Integrate `useRouter` in `UserProfile.vue` and `useAuth.ts` to manage navigation after logout.
- Update `handleLogout` in `Navbar.vue` to reflect that redirection is now handled within the `auth.logout()` function.
- Replace logo image in Navbar.vue with a new asset and adjust dimensions for better responsiveness.
- Modify logo size in Login.vue to improve layout and maintain visual consistency across the application.
- Introduce a new logo asset for branding.
- Update LoginDialog.vue to include routing for successful login and registration.
- Modify Navbar.vue to integrate LoginDialog and manage its visibility.
- Revise Login.vue to update the logo and welcome title, along with routing enhancements post-login and registration.
- Replace identity management with a new authentication system across the application.
- Update App.vue to integrate LoginDialog and remove PasswordDialog.
- Modify Navbar.vue to handle user authentication state and logout functionality.
- Enhance Home.vue to display user information upon login.
- Implement routing changes in index.ts to enforce authentication requirements for protected routes.
- Update sendAdminAnnouncement to support multiple configured admin pubkeys and improve console output for clarity.
- Add new script send_posts_from_configured_admins.js to send posts from multiple admins for testing purposes.
- Implement PWAInstallPrompt component to guide users in installing the app, including handling installation status and browser compatibility.
- Integrate PWAInstallPrompt into Home.vue for improved user experience.
- Replace random key generation with the web-push library for generating cryptographically secure VAPID keys.
- Update console output to guide users on adding keys to their environment configuration.
- Enhance error handling for VAPID key generation issues.
- Add web-push dependency to package.json and package-lock.json for proper functionality.
- Change app manifest details to reflect new branding for "Ario - Nostr Community Hub".
- Add new properties to the manifest, including categories and language support.
- Refactor identity handling in IdentityDialog and PasswordDialog components for improved profile initialization.
- Update event creation functions in events.ts to use the correct event type from nostr-tools.
- Add a notification manager to handle push notifications and integrate with Nostr events.
- Create a push notification service to manage subscription and permission requests.
- Introduce components for notification settings and permission prompts in the UI.
- Update Nostr store to manage push notification state and enable/disable functionality.
- Enhance NostrFeed to send notifications for new admin announcements.
- Implement test notification functionality for development purposes.
- Update Navbar to close the mobile menu when opening the identity dialog.
- Add debug logging to IdentityDialog to track changes in the dialog's open state.
- Adjust styling for mobile menu and dialog content for better responsiveness.
- Add PWA metadata including app ID, categories, and language settings.
- Enhance configuration for better integration with social and utility features.
- Update Navbar to close the mobile menu when opening the identity dialog.
- Add debug logging to IdentityDialog to track changes in the dialog's open state.
- Adjust styling for mobile menu and dialog content for better responsiveness.
- Refactor useNostr composable to utilize a centralized Pinia store for connection state and client management.
- Update NostrFeed and App components to leverage the new store-based approach for relay configuration and client instantiation.
- Remove direct relay URL handling from components, improving maintainability and consistency across the application.
- Introduce a new config module to manage Nostr relays, admin pubkeys, and API settings.
- Update components to utilize the centralized config instead of environment variables directly.
- Refactor relevant files to improve maintainability and reduce reliance on environment variables.
- Add logging of the hex public key to provide more context during note sending.
- Include instructions for making a note an admin post by adding the hex pubkey to the .env file.
- Replace the previous get() method with a subscription approach to retrieve multiple events from relays.
- Implement event collection with a timeout to ensure all stored events are fetched before closing the subscription.
- Adjust the format of collected events to match expected structure.
- Bump nostr-tools version from 2.10.4 to 2.15.0, updating resolved URL and integrity hash.
- Clean up optionalDependencies section in nostr-tools entry.
- Introduce `send_admin_note.js` for sending community announcements to Nostr relays.
- Implement `send_test_note.js` for testing note sending with specified private key and relay URL.
- Enhance `NostrFeed.vue` to filter notes based on admin pubkeys and display appropriate titles and descriptions for different feed types.
- Update `Home.vue` to use the announcements feed type for the Nostr feed component.
## Core Identity Management
- Add secure key generation and import functionality
- Implement AES-GCM encryption with PBKDF2 key derivation
- Create password-protected identity storage
- Add browser-compatible crypto utilities (no Buffer dependency)
## User Interface
- Build identity management dialog with tabs for setup and profile
- Add navbar integration with user dropdown and mobile support
- Create password unlock dialog for encrypted identities
- Integrate vue-sonner for toast notifications
## Nostr Protocol Integration
- Implement event creation (notes, reactions, profiles, contacts)
- Add reply thread detection and engagement metrics
- Create social interaction composables for publishing
- Support multi-relay publishing with failure handling
- Add profile fetching and caching system
## Security Features
- Web Crypto API with 100k PBKDF2 iterations
- Secure random salt and IV generation
- Automatic password prompts for encrypted storage
- Legacy support for unencrypted identities
## Technical Improvements
- Replace all Buffer usage with browser-native APIs
- Add comprehensive error handling and validation
- Implement reactive state management with Vue composables
- Create reusable crypto utility functions
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add Electron Forge configuration in forge.config.js for packaging and building the app
- Create main Electron entry point in main.cjs for application initialization
- Update package.json scripts for Electron development and building
- Add necessary Electron dependencies to package.json
- Modify .gitignore to exclude build artifacts and temporary files
- Refactor Footer and Navbar components to remove unused imports
- Enhance NostrFeed component by removing unnecessary connection logic
- Update i18n setup for better type safety and locale management
- Refactor Home component to clean up unused code
- Extend Nostr store to manage account state with TypeScript interfaces
- Change project title from "Atitlán Directory" to "Ariège Hub" in index.html
- Update app title in meta tags for PWA support
- Add @tanstack/vue-table dependency for enhanced table management
- Refactor ConnectionStatus component to improve status variant logic
- Enhance useEvents composable for better error handling and sorting
- Add 'events' translation to Spanish and French locales
- Create a new Pinia store for Nostr state management