Commit Graph

  • 8e1e5b998e 🛠️ Add support for nullable recurrence interval in API and tests: master HolgerHatGarKeineNode 2026-07-01 09:39:10 +02:00
  • 9884fd25de ⬆️ Upgrade spatie/laravel-permission to v8, league/glide to v4, laravel/mcp to v0.8 (#3) The Ben 2026-06-30 13:49:49 +00:00
  • 7e37a7a889 ⬆️ Upgrade spatie/laravel-permission to v8, league/glide to v4, laravel/mcp to v0.8 upgrade/majors-2026-06-30 HolgerHatGarKeineNode 2026-06-30 15:09:22 +02:00
  • 306997a3cf ⬆️ Upgrade JS dependencies HolgerHatGarKeineNode 2026-06-30 14:25:48 +02:00
  • 2822b9fe27 ⬆️ Upgrade composer dependencies HolgerHatGarKeineNode 2026-06-30 14:25:48 +02:00
  • a2a640809a Refactor components and models: HolgerHatGarKeineNode 2026-06-29 22:20:01 +02:00
  • beaf028c1d 🎨 Add AVIF logo support to Meetups and tests HolgerHatGarKeineNode 2026-06-29 21:16:56 +02:00
  • 473b7880a7 ⬆️ Upgrade JS dependencies HolgerHatGarKeineNode 2026-06-29 19:26:34 +02:00
  • 99c5cb2b9e ⬆️ Upgrade composer dependencies HolgerHatGarKeineNode 2026-06-29 19:26:34 +02:00
  • 02b1c161d3 ⬆️ Upgrade JS dependencies HolgerHatGarKeineNode 2026-06-28 17:11:58 +02:00
  • 75fdaffdb4 ⬆️ Upgrade composer dependencies HolgerHatGarKeineNode 2026-06-28 17:11:58 +02:00
  • 31c1b9355a 🐛 Target mobile sidebar toggle via data-test (Flux overrides aria-label) HolgerHatGarKeineNode 2026-06-26 21:10:02 +02:00
  • 219f5f083b 🔧 Expect 201 Created from Passport dynamic client registration (RFC 7591) HolgerHatGarKeineNode 2026-06-26 18:34:35 +02:00
  • 02b4518170 ⬆️ Upgrade JS dependencies HolgerHatGarKeineNode 2026-06-26 18:34:35 +02:00
  • fb78fb46a3 ⬆️ Upgrade composer dependencies HolgerHatGarKeineNode 2026-06-26 18:34:35 +02:00
  • 4c9dec42f2 Add service disclaimer component and Nostr validation links HolgerHatGarKeineNode 2026-06-25 14:12:21 +02:00
  • dc1d679e4b Add leader-based permissions to Meetup event tests and editable scope HolgerHatGarKeineNode 2026-06-17 20:05:39 +02:00
  • 7c142fb37a 🔤 Fix quotes in German translations for Meetup operation descriptions HolgerHatGarKeineNode 2026-06-17 18:37:08 +02:00
  • 276016eed7 Handle non-numeric values in selected filter for Country API and add corresponding tests HolgerHatGarKeineNode 2026-06-17 09:56:25 +02:00
  • a051188907 Add next_event to Lecturer API responses and tests HolgerHatGarKeineNode 2026-06-16 23:37:15 +02:00
  • ffcee850ca Add leader management functionality for Meetups HolgerHatGarKeineNode 2026-06-16 23:11:24 +02:00
  • 9f8fda294a Implement leadership-based permissions for Meetup management HolgerHatGarKeineNode 2026-06-16 22:04:34 +02:00
  • 39af153f52 🖼️ Replace Manipulations::FIT_CROP with `Fit HolgerHatGarKeineNode 2026-06-16 16:37:08 +02:00
  • ae5eae576c Introduce places:cleanup command to remove unused venues and cities HolgerHatGarKeineNode 2026-06-16 16:32:57 +02:00
  • 29628b41e9 Add lecturer cleanup job and update profile update functionality HolgerHatGarKeineNode 2026-06-16 14:40:40 +02:00
  • c3028b8260 Add attendee count helpers and enhance Meetup API responses HolgerHatGarKeineNode 2026-06-15 22:45:28 +02:00
  • 0a1d177fc4 Add RSVP functionality for Meetup Events HolgerHatGarKeineNode 2026-06-15 22:10:10 +02:00
  • e55967e9ac Add removeFromMine functionality to Meetups API for removing meetups from a user's "My Meetups" list HolgerHatGarKeineNode 2026-06-15 21:28:01 +02:00
  • 4b6cf95932 🖼️ Implement Logo/Avatar Uploads & Recurrence UI in Mobile App HolgerHatGarKeineNode 2026-06-15 19:32:56 +02:00
  • 1518611bdb - 🏗️ Introduced CoursePolicy and CourseEventPolicy for authorization. - Added StoreCourseRequest and UpdateCourseRequest for structured validation. - Introduced StoreCourseEventRequest and UpdateCourseEventRequest for consistent request validation. - 🖼️ Created CourseResource and CourseEventResource for API responses. - 🔄 Refactored CourseController and CourseEventController to use Policies and FormRequests. - Added dedicated uploadLogo and uploadAvatar API endpoints with shared media validation. - 🚀 Improved API by aligning Course and CourseEvent behavior with other entities. HolgerHatGarKeineNode 2026-06-15 15:06:07 +02:00
  • 119deb4f5c Add addToMine functionality to Meetups API for adding meetups to a user's "My Meetups" list HolgerHatGarKeineNode 2026-06-15 00:10:21 +02:00
  • ac1abc4435 🔄 Replace ilike/like with whereLike and orWhereLike across views and remove macros for cleaner, driver-agnostic querying HolgerHatGarKeineNode 2026-06-14 01:43:34 +02:00
  • f93190f029 Add whereLike and orWhereLike macros for driver-agnostic case-insensitive searches HolgerHatGarKeineNode 2026-06-14 01:32:03 +02:00
  • 6239842b15 🖼️ Add "Close" translation across languages and introduce lightbox functionality for **KI-Assistent** images HolgerHatGarKeineNode 2026-06-14 00:50:59 +02:00
  • 19dee6356a 🖼️ Replace outdated screenshots with new **KI-Assistent** images and update asset paths HolgerHatGarKeineNode 2026-06-14 00:38:07 +02:00
  • a353d7e089 🔗 Add **KI-Assistent** guide for integrating EINUNDZWANZIG with Claude.ai HolgerHatGarKeineNode 2026-06-14 00:32:53 +02:00
  • 8fd4900138 🔠 Standardize brand name casing to **EINUNDZWANZIG** across translations, controllers, views, and configurations HolgerHatGarKeineNode 2026-06-13 23:53:11 +02:00
  • d07b141b40 🎨 Add logo field to meetups API responses and fetch media relations for meetups HolgerHatGarKeineNode 2026-06-13 22:56:10 +02:00
  • 8d7b1515d8 Update MeetupController to use pivot memberships for "My Meetups" in both listing and detail views HolgerHatGarKeineNode 2026-06-13 22:42:33 +02:00
  • b6f5d57530 🔄 Update flag asset paths for cities, venues, and countries across API and tools HolgerHatGarKeineNode 2026-06-12 18:09:54 +02:00
  • 0b454dfc80 🧪 Add API tests and update controllers for city and venue details HolgerHatGarKeineNode 2026-06-12 18:00:14 +02:00
  • 6a2958c90a 🧪 Add API tests and update controllers for detailed course and lecturer data HolgerHatGarKeineNode 2026-06-12 17:16:53 +02:00
  • f9b3428865 Add DELETE /api/mobile/token so the app can revoke its token on logout HolgerHatGarKeineNode 2026-06-12 15:12:38 +02:00
  • 54c959d18e Return the signed event to the app via custom scheme, not a browser page HolgerHatGarKeineNode 2026-06-12 01:14:01 +02:00
  • 76787a1bee Render the handoff page directly instead of 302-redirecting to /app/auth HolgerHatGarKeineNode 2026-06-12 00:29:44 +02:00
  • 4fa4a84b7d Launch the Nostr signer via an intent:// URL with extras HolgerHatGarKeineNode 2026-06-11 23:28:32 +02:00
  • 76894a6634 Require a user tap to launch the Nostr signer (fixes Amber malformed) HolgerHatGarKeineNode 2026-06-11 22:54:40 +02:00
  • 7e491326a9 Build the Nostr signer URI in the browser, not server-side HolgerHatGarKeineNode 2026-06-11 22:40:57 +02:00
  • 58c7e410b0 Add headless Nostr launcher page for the mobile app HolgerHatGarKeineNode 2026-06-11 22:08:17 +02:00
  • 64a5fcd9f1 Make the mobile login page Lightning-only HolgerHatGarKeineNode 2026-06-11 21:51:01 +02:00
  • c30f1932e4 Use window.nostr (NIP-46/Amber bunker) on the mobile login page HolgerHatGarKeineNode 2026-06-11 20:47:02 +02:00
  • 7531f28f22 Add verified App Link handoff and mobile token exchange endpoint HolgerHatGarKeineNode 2026-06-11 19:51:14 +02:00
  • 4aba1514e9 Make the NIP-55 signer callback robust against Amber URL rewriting HolgerHatGarKeineNode 2026-06-11 18:43:59 +02:00
  • 07169dfee6 Add mobile app auth flow with Sanctum token handoff via deep link HolgerHatGarKeineNode 2026-06-11 18:01:50 +02:00
  • f5cf85b438 Add restore_point functionality to Meetups HolgerHatGarKeineNode 2026-06-10 10:56:38 +02:00
  • 8c68b19138 Add Super-Admin tools for managing any model HolgerHatGarKeineNode 2026-06-08 13:39:04 +02:00
  • 3a507cced2 Enhance meetup association and permissions management HolgerHatGarKeineNode 2026-06-08 11:59:02 +02:00
  • dc2b828777 Add SearchMeetupsTool for duplication prevention HolgerHatGarKeineNode 2026-06-08 11:10:29 +02:00
  • ab8b91a0af Ensure all tools fit on a single tools/list page HolgerHatGarKeineNode 2026-06-08 10:54:18 +02:00
  • b6f05bca41 Add ResolvesEntities concern for name-based ID resolution HolgerHatGarKeineNode 2026-06-08 10:35:16 +02:00
  • dc05299e5a 🎨 Implement dark mode styles for authorization view HolgerHatGarKeineNode 2026-06-08 09:48:26 +02:00
  • d0544bfac9 Add OAuth functionality, MCP tools, and feature tests HolgerHatGarKeineNode 2026-06-08 09:37:00 +02:00
  • 3cad5f5636 **Enhance input validation and error handling across APIs** HolgerHatGarKeineNode 2026-06-08 02:53:44 +02:00
  • 3b93e22e95 **Add authenticated API endpoints for managing Meetups, Cities, Venues, and Lecturers** HolgerHatGarKeineNode 2026-06-08 01:58:37 +02:00
  • 7510946f38 **Add public API documentation access and navigation links** HolgerHatGarKeineNode 2026-06-08 01:34:00 +02:00
  • d1b7352fca 🛠️ **Fix config serialization and optimize caching** HolgerHatGarKeineNode 2026-06-08 01:13:23 +02:00
  • 3875e127e4 🔥 **Remove Highscore and Bindle features** HolgerHatGarKeineNode 2026-06-08 01:08:07 +02:00
  • 351dd87fa9 **Enhance API functionality and localizations** HolgerHatGarKeineNode 2026-06-08 00:09:59 +02:00
  • 5a325b1b28 Merge pull request #2 from HolgerHatGarKeineNode/feature/api-course-event-write-endpoints The Ben 2026-06-07 21:26:07 +00:00
  • 08e42ad42c docs(media): add API token settings screenshot for PR feature/api-course-event-write-endpoints HolgerHatGarKeineNode 2026-06-07 22:56:39 +02:00
  • 4c81e20529 feat(settings): API token management UI for users HolgerHatGarKeineNode 2026-06-07 22:56:28 +02:00
  • a3062f6c4e feat(api): authenticated course & course-event write endpoints HolgerHatGarKeineNode 2026-06-07 22:14:29 +02:00
  • 3a8775fa52 🛡️ **Add robust Livewire payload validation and throttling** - Implemented handling for CorruptComponentPayloadException to prevent logging noise and improve exception management. - 🛠️ Added IP-based throttling (120 requests/min) for the /livewire/update endpoint with middleware integration for better traffic control. - Introduced unit tests to validate throttle settings and middleware application. - 🧪 Enhanced tests for ensuring silent handling of corrupt payload scenarios and reduced log noise. HolgerHatGarKeineNode 2026-06-04 11:45:02 +02:00
  • 256f677fe0 🐛 **Handle Livewire exploit probes gracefully** - Added detection for Livewire exploit probes (DirectlyCallingLifecycleHooksNotAllowedException and magic method MethodNotFoundException) to prevent 500 errors. - 🛠️ Updated exception handling to return a 400 response for probe requests. - 🔇 Suppressed logging of exploit probe exceptions to reduce noise. - Added tests to verify 400 responses, logging suppression, and correct handling of legitimate exceptions. HolgerHatGarKeineNode 2026-06-02 18:27:54 +02:00
  • 51680c70e4 ⬆️ **Update dependencies in composer.lock** Upgraded several dependencies: - guzzlehttp to 7.11.0 - laravel/framework to v13.13.0 - laravel/horizon to v5.47.1 - Other minor updates including livewire, psysh, symfony components, and spatie/laravel-medialibrary. HolgerHatGarKeineNode 2026-06-02 18:00:08 +02:00
  • e05ee8965d **Add tests for LangCountry data resolution and Latvian overrides** - Introduced LangCountryDataAvailabilityTest to validate data file availability and integrity for allowed lang-country codes. - 🛠️ Added Latvian (lv-LV) override JSON file with localized settings and validation. - 🧪 Verified graceful switching between lang-country sessions in tests. HolgerHatGarKeineNode 2026-05-24 22:09:26 +02:00
  • e244c14f55 🌐 **Add and enhance localizations for multiple languages** - Added and synced new translations across pt, nl, de, and lv language files. - 🛠️ Fixed missing and duplicate strings in multilingual JSON files. - Standardized formatting and indentation of validation.php (Latvian). HolgerHatGarKeineNode 2026-05-24 21:57:40 +02:00
  • 35ddad365c **Add Latvian translations and enhance localization support** - Added Latvian (lv) JSON translations and validation/password localization files. - 🛠️ Updated lang-country config to include lv-LV and centralized language definitions. - 🌐 Extended sidebar and navigation with new translatable strings. - Introduced 72px width customization for the sidebar layout. - Improved timezone mapping in Nostr publishing commands (added Europe/Riga). - 🛠️ Refactored language selector to dynamically source available languages from the config. HolgerHatGarKeineNode 2026-05-20 11:45:50 +02:00
  • e3f8c4c232 🐛 **Handle MissingFileUploadsTrait exceptions gracefully** - Added detection logic for MissingFileUploadsTraitException to prevent 500 errors. - 🛠️ Updated exception handling to return a 400 response for these scenarios. - 🔇 Suppressed logging of MissingFileUploadsTraitException to reduce noise. - Added tests to verify 400 responses and absence of log entries. HolgerHatGarKeineNode 2026-05-20 10:54:12 +02:00
  • 03aacdb8ff 🐛 **Handle stale compiled view exceptions gracefully** - Added detection logic to identify missing compiled view files and avoid 500 errors. - 🛠️ Updated exception handling to return 503 with Retry-After for stale compiled views. - 🔇 Prevented logging of stale compiled view exceptions to reduce noise. - Added tests to validate 503 responses, Retry-After headers, and logging suppression. HolgerHatGarKeineNode 2026-05-20 00:42:13 +02:00
  • 8a3f90fc3d 🐛 **Handle stale Livewire asset exceptions gracefully** - Added detection logic for stale Livewire asset patterns to avoid 500 errors. - 🛠️ Updated exception handling to return 404 for stale asset requests. - 🔇 Prevented logging of stale asset exceptions to avoid unnecessary noise. - Added tests to verify 404 responses and absence of log entries for stale asset scenarios. HolgerHatGarKeineNode 2026-05-20 00:31:02 +02:00
  • 1f574ae5c8 🔧 **Add .codegraph config & update dependencies** - Added .codegraph/config.json for file inclusion/exclusion in analytics. - ⬆️ Bumped versions of guzzlehttp, laravel/framework, laravel/horizon, shiki, nostr-tools, and other dependencies in composer.lock and yarn.lock. - 🖼️ Enhanced file upload validation and preview support by including .avif MIME type in livewire components and configuration. - Added tests to ensure .avif is supported across file upload forms. HolgerHatGarKeineNode 2026-05-20 00:22:53 +02:00
  • 308cd8a611 🚀 **Automate Meetup Activity Recalculation** - Introduced recalculateActivity method in Meetup model to centralize activity and event timestamp updates. - Added MeetupEventObserver to trigger activity recalculation on event save/delete. - Updated /meetups:update-activity command to leverage the new model method for cleanup. - Enhanced tests to cover various MeetupEvent scenarios affecting activity states. HolgerHatGarKeineNode 2026-05-17 18:13:37 +02:00
  • 71a4898303 🎉 **Introduce meetup activity management** - Added is_active and last_event_at fields to meetups with migration. - Enhanced UI: Display Aktiv/Inaktiv badges and last event dates across dashboard, tables, and maps. - Introduced /meetups:update-activity command to manage activity flags and timestamps. - Validated latitude/longitude to prevent 0,0 inputs in city creation and updates. - Updated factories and tests to include meetup activity states (active, inactive). HolgerHatGarKeineNode 2026-05-17 17:57:16 +02:00
  • bf9654de87 🔄 **Refactor and extend meetup membership-based authorization** - Updated authorizeAccess to restrict meetups.edit views and updates to users in "My-Meetups". - Attached creators to meetup_user pivot for default membership. - Adjusted related tests to validate membership-based edit permissions. HolgerHatGarKeineNode 2026-05-17 17:28:17 +02:00
  • 9582880dbf 🔒 **Enforce authorization for meetup edit and update views** Added authorizeAccess method to restrict access to the meetup's creator, ensuring proper authorization during view rendering and updates. HolgerHatGarKeineNode 2026-05-17 15:12:49 +02:00
  • 52276ee682 🗑️ **Remove redundant Laravel Boost guidelines** Deleted unused Laravel Boost guideline files (laravel-boost.md and laravel-boost.mdc) to clean up the repository. HolgerHatGarKeineNode 2026-05-17 15:08:01 +02:00
  • 57b1b21c8f 🛠️ **Remove redundant authorization call in meetup update method** Streamlined the update method by eliminating the unnecessary authorizeAccess invocation. HolgerHatGarKeineNode 2026-05-05 10:00:31 +02:00
  • 8b3005c63b 🛠️ **Remove unnecessary authorization logic from meetup edit view** Simplified component by eliminating redundant authorizeAccess method. HolgerHatGarKeineNode 2026-05-05 09:59:40 +02:00
  • e7d1a949e8 **Nostr Login:** Improved user feedback and accessibility for login flow. BT 2026-05-04 00:43:50 +02:00
  • 686be7e8f7 **Nostr Login:** Prevented session race conditions during login flow. BT 2026-05-04 00:36:00 +02:00
  • dc723855df **Nostr Login:** Improved CSRF token handling during login flow. BT 2026-05-04 00:15:37 +02:00
  • 2efc88a7f8 **Nostr Login:** Added server-side fallback for fresh challenges and improved client-side challenge resolution. BT 2026-05-03 23:53:46 +02:00
  • bd7d39c1d7 **Nostr Login:** Enhanced error handling and removed unused auth-error event binding. BT 2026-05-03 23:41:49 +02:00
  • 0f26bae9a6 **Nostr Login:** Improved error handling and compatibility for Nostr login flow. BT 2026-05-03 23:12:38 +02:00
  • 81d310257b Merge pull request #1 from HolgerHatGarKeineNode/claude/fix-security-flaws-vZgBB The Ben 2026-05-03 18:15:53 +00:00
  • a363c99453 🔥 **Cleanup & Tests:** Removed the obsolete auth.register component and its related route, feature tests, and browser tests. Disabled public registration and added tests to ensure /register returns a 404. Added new tests for service, lecturer, city, venue, and meetup CRUD flows. BT 2026-05-03 20:09:07 +02:00
  • a4cbb10604 🔥 **Cleanup:** Removed obsolete .junie guideline files and MCP configuration. **Tests:** Added helper function makeSignedNostrLoginEvent for generating NIP-42 signed login events. Updated related tests in Feature/Auth/NostrLoginTest.php to use this helper. 🚀 **Livewire Testing:** Enhanced authorization checks and added specific creator-based mounts for meetups.edit. Improved tests for MeetupMountTest and EditMeetupTest. 🎨 **Style:** Standardized request()->route() to lowercase country codes across multiple Blade templates for consistency. 🛠️ **Config:** Updated vite.config.js formatting for improved readability in ignored paths. BT 2026-05-03 18:36:14 +02:00
  • cf330016a3 📚 **Docs & 🛠️ Config:** - **Docs:** Added new test enforcement guidelines to .junie/guidelines.md and AGENTS.md for improved code quality. - **Config:** Updated vite.config.js to ignore view cache changes and ensure faster reloads under server.watch. - **Dependencies:** Upgraded multiple Yarn dependencies including updates to @emnapi, @shikijs, @tailwindcss, and more for better performance and stability. BT 2026-05-03 15:21:01 +02:00
  • d46c0161fe security: medium-severity fixes (proxies, ssrf, uploads, lnurl, github_data) Claude 2026-05-03 12:57:57 +00:00