Commit Graph

90 Commits

Author SHA1 Message Date
NotiBot 04402c6b65 fix: right-side content cutoff on tasks page
continuous-integration/drone/push Build is passing
- SidebarInset: use min-w-0 + overflow-x-hidden instead of w-full
- Calendar: measure container width instead of viewport width
- Remove unnecessary max-w-screen-2xl from main content area
2026-02-03 23:25:57 +01:00
NotiBot 08a9e349f2 Fix: overflow-x-hidden von Wrapper/Main entfernt — schnitt rechte Seite ab
continuous-integration/drone/push Build is passing
Nur noch overflow-x:clip auf #root + overflowX:clip auf TaskCard-Wrapper.
Die gestapelten overflow-hidden auf 3 Ebenen haben Content rechts abgeschnitten.
2026-02-03 17:00:19 +01:00
NotiBot 1f314b60aa Fix: overflow-hidden aus TasksWithCalendar entfernt — schnitt Elemente rechts ab
continuous-integration/drone/push Build is passing
2026-02-03 16:44:44 +01:00
NotiBot 200659ee96 Fix: overflow-x:clip statt overflow:hidden — verhindert Scroll ohne Content abzuschneiden
continuous-integration/drone/push Build is passing
2026-02-03 16:34:05 +01:00
NotiBot 90eb8a0465 Fix: Sauberer horizontal-scroll Fix ohne destruktive CSS-Regeln
continuous-integration/drone/push Build is passing
- Entfernt max-width:100vw (inkludiert Scrollbar-Breite = Bug)
- Entfernt * {max-width:100%} (bricht Flexbox/Grid Layouts)
- Stattdessen: width:100% + overflow-x:hidden auf body/#root
2026-02-03 16:24:40 +01:00
NotiBot 68777ca051 Fix: Horizontales Scrollen auf Mobilgeräten endgültig behoben
continuous-integration/drone/push Build is passing
- TaskCard: motion.div in overflow-hidden Wrapper gepackt
- TaskCard: overscrollBehaviorX auf motion.div gesetzt
- TaskCard: Titel und Badge-Zeile mit max-w-full/overflow-hidden abgesichert
- TasksWithCalendar: Negative Margins (-mx-4/-mx-6) am Calendar entfernt
- TasksWithCalendar: overflow-x-hidden auf Scrollable Task List
- index.css: overscroll-behavior-x: none global auf html/body/#root
- index.css: max-width: 100% als globale Absicherung gegen Overflow
2026-02-03 15:22:22 +01:00
NotiBot 8e8b96fcde Horizontalen Scroll verhindern: Lange Task-Titel werden überall abgeschnitten
continuous-integration/drone/push Build is passing
- Globales overflow-x: hidden auf html/body/#root in index.css
- App.tsx: overflow-x-hidden und min-w-0 auf Hauptcontainer
- TaskCard: Eltern-Task-Titel mit truncate/min-w-0 im Flex-Layout
- KanbanBoard: min-w-0 overflow-hidden auf Spalten-Cards
- FiveMinuteStarter: truncate auf Task-Titel
- HyperfocusGuard: truncate auf Task-Buttons
- TaskBreakdownModal: truncate auf Task- und Subtask-Titel
- NotificationsPage: truncate + min-w-0 auf Benachrichtigungs-Titel
2026-02-03 14:59:40 +01:00
NotiBot 79d5fae97c Label-Filter hinzufügen und Responsive-Bug auf der Tasks-Seite beheben
continuous-integration/drone/push Build is passing
- Label-Filter-Dropdown auf der Tasks-Übersichtsseite hinzugefügt (Tag-Icon, zeigt alle Labels mit Farbpunkt)
- Responsive-Bug behoben: Breakpoint-Mismatch bei negativen Margins (sm:-mx-6 → md:-mx-6) verursachte horizontales Scrollen zwischen 640-768px
- overflow-x-hidden auf den Hauptcontainer gesetzt
- Alle Select-Trigger mit min-w-0, truncate und shrink-0 Icons versehen für bessere Responsivität
2026-02-03 14:10:29 +01:00
NotiBot 064e978fc5 fix: API key generation button - URL mismatch (apikey → api-key)
continuous-integration/drone/push Build is passing
Frontend was calling /api/user/apikey but backend route is /api/user/api-key.
Button did nothing because requests returned 404.
2026-02-03 11:39:58 +01:00
NotiBot 6a10f4c47b fix: resolve all client-side TypeScript compilation errors
continuous-integration/drone/push Build is passing
2026-02-03 10:54:20 +01:00
Paul Nothaft c1f7a13c0e chore: Update logo and icon assets
continuous-integration/drone/push Build is passing
Updated favicon, app icons, and PWA icons with refreshed designs.
Added new icon-circle-tight.png variant.
2026-01-20 08:12:19 +01:00
Paul Nothaft ad50b97f44 feat: Add Mark as Done button to task details modal
continuous-integration/drone/push Build is passing
Add a "Mark as Done" button next to the Save button in the task details
modal. When clicked, if no time has been tracked for the task, a dialog
prompts the user to enter time spent before marking the task as done.
The dialog supports both clock-style (hours/minutes pickers) and manual
(decimal hours) time entry.
2026-01-19 22:12:23 +01:00
Paul Nothaft 88cd2a5c88 feat: Implement TaskFlow logos and icons throughout the application
continuous-integration/drone/push Build is passing
- Add favicon files (16x16 to 256x256, .ico)
- Add PWA icons (128, 256, 512, 1024)
- Add apple-touch-icon for iOS
- Add transparent icons for loading screens
- Add horizontal logo with tagline for auth page
- Update HTML head with proper favicon links
- Update PWA manifest with correct icon references
- Update sidebar header with branded icon
- Update mobile header with branded icon
- Update auth/login pages with logo display
- Update loading state with branded splash screen
- Update 404 page with logo header
- Update email template to use proper logo URL
- Update service worker and push notifications to use correct icons
2026-01-19 21:40:09 +01:00
Paul Nothaft f91978c078 feat: Add Web Push notifications and multiple UX improvements
continuous-integration/drone/push Build is failing
- Add PWA manifest and service worker for push notifications
- Implement VAPID key generation and push subscription management
- Add push notification API endpoints (/api/push/*)
- Add push_subscriptions table to database schema
- Update notification settings UI with push support and iOS hints
- Fix translation issue showing "{ task } created" - add missing keys
- Fix mobile sidebar visibility for iOS home screen app
- Change default task filter from "all" to "open" (excludes done tasks)
- Add "Open" filter option to show only todo + inProgress tasks
2026-01-19 20:53:13 +01:00
Paul Nothaft 9bfc9e2f96 fix: AI chat loading indicator persists until response received
continuous-integration/drone/push Build is passing
- Add separate isWaitingForResponse state to track loading
- Set to true before mutation, false only in onSuccess/onError
- Combine with mutation.isPending for reliable isLoading state
- Typing indicator now stays visible throughout entire AI request
2026-01-17 10:15:58 +01:00
Paul Nothaft 2a98ebdf9f fix: Multiple ADHD/Focus Tools fixes
continuous-integration/drone/push Build is passing
Switch/Checkbox Styling:
- Exclude switches and checkboxes from larger-targets CSS
- Fix checkbox square aspect ratio when ADHD mode enabled
- Prevent padding from being applied to form controls

Quick Wins Count:
- Use settings.quickWinThreshold instead of hardcoded 15
- Match same filtering logic as QuickWinList component

Back Button Navigation:
- Use window.history.back() instead of setLocation('/')
- Works correctly when navigating from ADHD dashboard to sub-pages

Time Tracking (Break Reminder):
- Track only active browser time using Page Visibility API
- Reset accumulated time after 8 hours of inactivity
- Store/restore active time in localStorage properly
- No more 1500+ hour counts from leaving browser open

Sources:
- https://ui.shadcn.com/docs/theming (shadcn theming)
- https://ui.shadcn.com/docs/tailwind-v4 (Tailwind v4 updates)
2026-01-16 23:01:26 +01:00
Paul Nothaft b4e7cce651 fix: Add cache control headers and improve typing indicator
continuous-integration/drone/push Build is passing
- Add proper cache control headers in static.ts
- HTML files: no-cache to always get fresh version
- Assets: long cache with immutable (content-hashed filenames)
- Improve typing indicator animation (larger dots, faster animation)
2026-01-16 16:53:34 +01:00
Paul Nothaft 5ac64b437b fix: AI chat loading indicator and auto-refresh tasks
continuous-integration/drone/push Build is passing
- Add animated typing indicator (bouncing dots) when AI is processing
- Show "Thinking..." status in chat header while processing
- Add translations for AI chat (en/de): title, welcome, placeholder, thinking, error
- Auto-refresh tasks, labels, and user data after AI response
- Disable input field while AI is processing
- Fix translation keys to use ai.chat.* namespace
2026-01-16 16:15:02 +01:00
Paul Nothaft f165ae52e6 fix: Mobile responsiveness for Focus Tools & AI chat improvements
continuous-integration/drone/push Build is passing
Mobile Responsiveness:
- Fix headers on all Focus Tools pages (responsive text sizes, proper spacing)
- Fix BodyDoublingLobby form grid (stacks on mobile)
- Add shrink-0 and min-w-0 to prevent flex overflow issues

AI Chat Improvements:
- Add labelName parameter to createTask tool for easier label assignment
- Auto-match or create labels when labelName is provided
- Improve system prompt to act immediately without confirmation
- Clearer instructions about using tools and handling labels
- Better support for Ollama models with function calling
2026-01-16 15:58:00 +01:00
Paul Nothaft 7ce4f7efdc feat: Add Focus Tools (ADHD-friendly productivity features)
continuous-integration/drone/push Build is passing
- Add Focus Tools dashboard with collapsible help section
- Implement Quick Wins page for tasks under 15 minutes
- Add Single Task Focus mode to reduce overwhelm
- Create Body Doubling page for virtual co-working
- Add visual timer, break reminders, and energy tracking
- Implement hyperfocus protection alerts
- Add ADHD settings panel with customizable options
- Include full English and German translations
- Fix larger touch targets CSS to not break button layouts
- Add Playwright tests for Focus Tools features
2026-01-15 21:20:04 +01:00
paul 74ffef48d3 feat: Add Time Tracking page with analytics and time distribution charts
continuous-integration/drone/push Build is passing
- Add TimeTrackingPage with pie/bar charts for time spent per label
- Add task_time_logs schema for tracking time entries
- Add /api/analytics/time-distribution endpoint
- Update sidebar navigation with time tracking link
- Update App routing for new pages
- Fix routine blocker and settings card issues
- Add German translations for analytics

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 23:50:10 +01:00
paul 877d0c897e Fix: Mobile responsiveness audit (modals, views, sidebar) & Critical bug fixes (registration, orphan tasks)
continuous-integration/drone/push Build is passing
2025-12-17 15:06:13 +01:00
paul 2579df0b89 feat: Enhance task filtering, smart scheduling, audit logs and translations
continuous-integration/drone/push Build is passing
2025-12-17 14:26:54 +01:00
paul 9819d8db0b feat: Notifications page, Sidebar layout fixes, and Achievements enhancements
continuous-integration/drone/push Build is failing
- implemented /notifications page with overdue/upcoming alerts
- Fixed sidebar scrolling in collapsed mode
- Moved notification button to sidebar footer
- Enhanced Achievements page with streak stats and tooltips
- Improved XP history to show task titles
- Added missing translations (en/de)
- Removed top bar header
- Fixed Docker environment routing
2025-12-17 10:06:36 +01:00
paul 7b79015ac2 fix(routine): resolove routine blocker logic bug and white screen
continuous-integration/drone/push Build is passing
feat(gamification): add streak bonuses, tooltip, and improved history details

fix(ep): resolve double counting ep bug

ui: update app icon and translations
2025-12-15 23:17:59 +01:00
paul 9736864425 feat: Complete AI Chat Agent, Admin Settings (MCP/AI), and Translations
continuous-integration/drone/push Build is passing
2025-12-15 21:52:36 +01:00
paul 71d5c825c5 refactor(ui): move MCP settings to dedicated admin tab and increase prod db timeout
continuous-integration/drone/push Build is passing
2025-12-15 16:28:47 +01:00
paul e8d9d0c686 feat: Add AI subtask reproduction script, refactor Admin MCP settings UI, update Vite config, and add i18n gamification rules.
continuous-integration/drone/push Build is passing
2025-12-15 16:20:47 +01:00
paul bc40969ad7 feat: implement automated versioning and update docs
continuous-integration/drone/push Build is passing
2025-12-15 16:06:38 +01:00
paul d1736c5991 feat: enhance audit logging, add MCP settings, and production docker setup
continuous-integration/drone/push Build is passing
- Implemented comprehensive audit logging for Tasks, Users, Settings, Goals, Labels, AI Chat, and Rewards.
- Added Admin UI for MCP Server settings and Audit Logs.
- Created docker-compose-production.yml with Traefik configuration.
- Fixed backend bugs (missing storage methods, route closure).
- Added Audit Logging Guidelines.
2025-12-15 15:53:31 +01:00
paul fdf321cde9 fix(client): Remove duplicate imports in AiSettingsCard
continuous-integration/drone/push Build is passing
2025-12-12 08:57:51 +01:00
paul a184115d28 feat: Enhanced Ollama Integration (Model Fetching/Pulling)
continuous-integration/drone/push Build is passing
2025-12-12 08:57:30 +01:00
paul 93063f772d fix: Consolidate Admin Settings UI
continuous-integration/drone/push Build is passing
2025-12-12 08:50:21 +01:00
paul 5d8976b1cd feat: Implement AI Chat Agent, Email Notifications, and UI enhancements
continuous-integration/drone/push Build is passing
2025-12-12 08:35:48 +01:00
paul ccfb674318 feat: add social features, leaderboard, auth enhancements, and admin fixes
continuous-integration/drone/push Build is passing
- Implement Social Features: Shared Tasks, Global Access, Privacy Settings (Leaderboard/Searchable).
- Add Leaderboard Page and API.
- Enhance Auth: Support Email/Username login, explicit duplicate registration errors.
- Fix: Admin login password hash regression.
- Refactor: Move to wouter for routing, add Admin Dashboard and User Management.
- Add Setup Wizard.
- Update UI with Sidebar and Gamification elements.
2025-12-10 14:04:26 +01:00
paul-nothaft d5b045158a Add missing translations for project templates and task details
continuous-integration/drone/push Build is passing
Adds new translation keys for project templates and task details in `en.json` and `de.json`, and updates `ProjectTemplate.tsx` to use these translations.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ceced2fc-aa46-458d-ba87-ddd4b7bb1518
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/659922a9-0087-461c-90dd-6d9a58b81d4d/ceced2fc-aa46-458d-ba87-ddd4b7bb1518/iGgwDyZ
2025-10-24 11:26:17 +00:00
paul-nothaft 102315fa7c Add translations for various project management features
Integrate i18n translation keys for project template page elements, including column titles, buttons, dialogs, and input fields, within the ProjectTemplate component.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ceced2fc-aa46-458d-ba87-ddd4b7bb1518
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/659922a9-0087-461c-90dd-6d9a58b81d4d/ceced2fc-aa46-458d-ba87-ddd4b7bb1518/HdLXOOf
2025-10-24 11:00:26 +00:00
paul-nothaft 284223bdcc Add translations for project templates and navigation to settings
Introduce new translations for project template creation and editing, and add a button to navigate back to the settings page from the ProjectTemplate component.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ceced2fc-aa46-458d-ba87-ddd4b7bb1518
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/659922a9-0087-461c-90dd-6d9a58b81d4d/ceced2fc-aa46-458d-ba87-ddd4b7bb1518/LNMKOrA
2025-10-24 10:26:16 +00:00
paul-nothaft 16c097b3f0 Add ability to manage task labels and create project templates
Refactors the settings page to include CRUD operations for task labels, integrates template creation navigation, and removes the appearance section.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ceced2fc-aa46-458d-ba87-ddd4b7bb1518
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/659922a9-0087-461c-90dd-6d9a58b81d4d/ceced2fc-aa46-458d-ba87-ddd4b7bb1518/LNMKOrA
2025-10-24 10:21:30 +00:00
paul-nothaft b9b3572a02 Make the app logo and favicon match smartphone app icon styles
continuous-integration/drone/push Build is passing
Update the logo image className in App.tsx to include rounded-lg for a softer, app-icon-like appearance.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ceced2fc-aa46-458d-ba87-ddd4b7bb1518
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/659922a9-0087-461c-90dd-6d9a58b81d4d/ceced2fc-aa46-458d-ba87-ddd4b7bb1518/E3NLe8e
2025-10-24 09:41:44 +00:00
paul-nothaft f6c4d1332c Update application to use new custom logo and favicon
Replace placeholder logo in header with new custom image, update index.html with new favicon and apple-touch-icon, and update replit.md with logo details.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ceced2fc-aa46-458d-ba87-ddd4b7bb1518
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/659922a9-0087-461c-90dd-6d9a58b81d4d/ceced2fc-aa46-458d-ba87-ddd4b7bb1518/E3NLe8e
2025-10-24 09:40:16 +00:00
paul-nothaft a9efeeafbf Add missing translations for task management features
Integrates i18next for internationalization, adding translated strings for task details, search, filters, and calendar views in both English and German.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ceced2fc-aa46-458d-ba87-ddd4b7bb1518
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/659922a9-0087-461c-90dd-6d9a58b81d4d/ceced2fc-aa46-458d-ba87-ddd4b7bb1518/E3NLe8e
2025-10-24 09:33:15 +00:00
paul-nothaft 9c8ec283ed Add a weekly task view to help users organize their week
Introduces a new "Week List" view accessible via the bottom navigation. This view displays tasks scheduled for the current week, allowing users to filter, sort, and manage them. The implementation includes new components for the week list view and integrates internationalization support for English and German.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ceced2fc-aa46-458d-ba87-ddd4b7bb1518
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/659922a9-0087-461c-90dd-6d9a58b81d4d/ceced2fc-aa46-458d-ba87-ddd4b7bb1518/R3zkvYP
2025-10-24 09:09:25 +00:00
paul-nothaft 037d3f4d73 Add right-click context menus for task and calendar interactions
Integrates context menus on the task card and calendar views, providing options to edit, start/stop timers, and change task status.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ceced2fc-aa46-458d-ba87-ddd4b7bb1518
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/659922a9-0087-461c-90dd-6d9a58b81d4d/ceced2fc-aa46-458d-ba87-ddd4b7bb1518/R3zkvYP
2025-10-24 08:50:06 +00:00
paul-nothaft 94bb2b599d Enable right-click context menus for calendar tasks
Modify `CalendarView.tsx` to remove `pointer-events-none` from the parent Badge component, allowing right-click interactions on calendar task badges.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ceced2fc-aa46-458d-ba87-ddd4b7bb1518
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/659922a9-0087-461c-90dd-6d9a58b81d4d/ceced2fc-aa46-458d-ba87-ddd4b7bb1518/7gWYrTe
2025-10-24 08:44:25 +00:00
paul-nothaft 4a5a59fb34 Add context menu to calendar view for task management
Integrates context menu functionality into the CalendarView component, allowing task management via right-click (desktop) or long-press (mobile), mirroring the existing task list menu options. Includes handlers for task update, edit, delete, and timer start/stop.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ceced2fc-aa46-458d-ba87-ddd4b7bb1518
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/659922a9-0087-461c-90dd-6d9a58b81d4d/ceced2fc-aa46-458d-ba87-ddd4b7bb1518/7gWYrTe
2025-10-24 08:05:12 +00:00
paul-nothaft 7870d0b31e Improve task management with quick delete and complete options
Add tooltip functionality for quick delete and toggle complete actions on TaskCard component, and update translations.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ceced2fc-aa46-458d-ba87-ddd4b7bb1518
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/659922a9-0087-461c-90dd-6d9a58b81d4d/ceced2fc-aa46-458d-ba87-ddd4b7bb1518/7gWYrTe
2025-10-24 07:47:41 +00:00
paul-nothaft 037256401f Add quick ways to complete and delete tasks
Implement a checkbox for marking tasks as done and a delete button directly on the TaskCard component, enhancing user interaction.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ceced2fc-aa46-458d-ba87-ddd4b7bb1518
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/659922a9-0087-461c-90dd-6d9a58b81d4d/ceced2fc-aa46-458d-ba87-ddd4b7bb1518/nn5bWKE
2025-10-24 07:45:11 +00:00
paul-nothaft 814163b07f Add functionality to delete tasks with a confirmation dialog
Implement task deletion with optimistic UI updates, confirmation dialogs using Shadcn UI's AlertDialog, and API integration for backend task removal. Includes i18n support for delete confirmation messages.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ceced2fc-aa46-458d-ba87-ddd4b7bb1518
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/659922a9-0087-461c-90dd-6d9a58b81d4d/ceced2fc-aa46-458d-ba87-ddd4b7bb1518/nn5bWKE
2025-10-24 06:12:45 +00:00
paul-nothaft 8fe1c66d70 Improve task management by adding translations for all app features
Implement i18n support by adding new translation keys for Calendar, Kanban Board, and TaskCard components, and update existing translations in de.json and en.json.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ceced2fc-aa46-458d-ba87-ddd4b7bb1518
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/659922a9-0087-461c-90dd-6d9a58b81d4d/ceced2fc-aa46-458d-ba87-ddd4b7bb1518/nn5bWKE
2025-10-24 06:05:04 +00:00