- Removed redundant state for available tags and replaced it with a computed property that consolidates tags from API and post items.
- Enhanced the tag filtering UI by maintaining the existing structure while improving the logic for tag selection and clearing.
- Updated the posts page to ensure consistent tag management across user and public views.
These changes improve the efficiency of tag management and enhance the user experience in filtering posts by tags.
- Added components for tag input and display, allowing users to create and manage tags for posts.
- Implemented backend support for tag persistence and filtering in post lists, enabling OR/AND logic for tag-based queries.
- Updated various pages and components to integrate tag functionality, including post creation, editing, and display in lists.
- Enhanced database schema to support tags and their relationships with posts.
These changes provide a comprehensive tagging system that improves content organization and discoverability across the application.
- Introduced a new function to open export downloads in a new tab, improving user experience for task downloads.
- Updated the export job service to use more precise checks for task expiration, enhancing reliability.
- Modified the .gitignore to include temporary files, ensuring a cleaner project structure.
These changes streamline the export process and improve the management of temporary files.
- Updated the media upload process to store files in the new `static/media` directory instead of `public/upload`.
- Adjusted related components and tests to reflect the new media URL structure, ensuring all references to media assets are consistent with the new path.
- Enhanced the environment configuration to support dynamic directory settings for media uploads and static assets.
- Improved documentation to outline the changes in media asset management and URL handling.
These changes streamline media management and improve the organization of static assets within the project.
- Updated the Vditor configuration to support real-time rendering and improved upload handling with error management.
- Introduced a new post preview draft feature, allowing users to preview posts in a new window before publishing.
- Enhanced the user interface for mobile responsiveness and added utility functions for managing post preview drafts.
These changes improve the markdown editing experience and streamline the post creation workflow.
- Introduced a new configuration option `showDiscoverInHeaderForGuest` to control the visibility of the "Discover" navigation link for guests.
- Updated the AppShell component to conditionally render the "Discover" link based on the user's login status and the new config option.
- Modified global configuration handling to include the new option, ensuring it is fetched and saved correctly.
- Enhanced middleware to allow guest access to the "Discover" route if the new config option is enabled.
These changes improve the user experience by providing guests with access to discover content while maintaining control over navigation visibility.
- Added pagination functionality to the users and posts management pages, allowing for better navigation through large datasets.
- Updated API endpoints to support pagination parameters and return total counts for users and posts.
- Introduced a reusable pagination component to enhance user experience and streamline page transitions.
These changes improve the overall usability of the admin interface by enabling efficient data handling and display.
Add ReaderLayout and ShowcaseLayout components to enhance the public profile page, allowing for modular display of posts, timeline, and reading sections. This change establishes a unified navigation hub, improving user experience with structured content previews and consistent API handling.
Made-with: Cursor
Unify public profile aggregation and route canonical handling so the home page acts as a navigation hub with consistent public-only counts, safer external links, and backward-compatible API fields.
Made-with: Cursor
- Updated SCSS for dark mode to use `:where()` for better specificity in styling `.markdown-body`.
- Added transparent background to highlighted code blocks in dark mode.
- Removed unnecessary navigation buttons from various pages to streamline the user interface.
- Introduced a new post preview page to allow users to view posts before publishing, with visibility handling for different post states.
These changes improve the visual consistency in dark mode and enhance the user experience when managing posts.
Add full export bundle download, auto-expire missing artifacts on task refresh, and provide task deletion actions in both API and export center UI.
Made-with: Cursor
Create the me export center page with task controls and expose API usage guidance so users can launch and track data export from the dashboard.
Made-with: Cursor
- Added card density options (compact and detailed) in the media page for improved layout flexibility.
- Introduced reading mode in the RSS page, allowing users to navigate through items with next/previous controls.
- Implemented visibility filtering in the timeline, enabling users to filter events based on visibility settings.
- Enhanced the event creation form with improved validation and quick submission functionality.
These updates improve user experience by providing more control over content display and interaction.
- Changed asset paths from `/public/assets` to `/public/upload` across various files to ensure consistency in media storage.
- Introduced visibility handling for posts, allowing for better control over comment visibility based on post status.
- Enhanced markdown export functionality with new utilities for exporting unlisted posts and normalizing image URLs.
- Updated tests to reflect changes in asset paths and visibility logic.
These updates improve the overall media management and user experience in handling post visibility and markdown exports.
- Updated SCSS styles for markdown elements, improving visual consistency and readability.
- Enhanced the appearance of code blocks with new background colors, borders, and shadows.
- Introduced responsive design adjustments for better mobile compatibility.
- Added new styles for headings, links, and blockquotes to improve overall aesthetics.
These changes significantly enhance the user experience when interacting with markdown content, making it more visually appealing and easier to read.
- Changed markdown background to transparent for better integration with surrounding elements.
- Enhanced the appearance of markdown code blocks with rounded corners, padding, and box shadows for improved readability.
- Updated font family for code elements to ensure consistency and better aesthetics.
- Commented out submit buttons in post creation and editing forms for future implementation.
These changes refine the visual presentation of markdown content and prepare the UI for upcoming features.
- Updated the layout of the admin configuration and user profile pages for better visual appeal and usability.
- Introduced rounded borders and background enhancements for containers and cards.
- Improved text visibility with highlighted styles and added informative descriptions.
- Consolidated action buttons into sticky footers for easier access to save functionality.
- Removed redundant elements and streamlined the form structure for a cleaner interface.
This update significantly enhances the user experience by providing a more modern and intuitive design.
- Added `ensureClientMeSynced` function to synchronize client session with server, improving user experience by reducing unnecessary API calls.
- Updated `AppShell`, `public.vue`, and other components to utilize the new synchronization method instead of the previous refresh mechanism.
- Introduced a new API endpoint for session handling, ensuring consistent user state across client and server.
- Refactored `useAuthSession` to manage client session state more effectively, enhancing overall authentication flow.
This update streamlines the authentication process and enhances the reliability of user session management.
- Introduced `GuestHomeSection` and `LoggedInHomeSection` components to provide tailored content for guests and logged-in users.
- Added a quick create button for logged-in users to facilitate easy post creation.
- Updated the AppShell component to include computed properties for visibility of the quick create button based on user login status.
- Refactored the main index page to utilize the new components, improving the overall layout and user engagement.
- Implemented a new utility function for normalizing post slugs to ensure consistent URL formatting.
This update significantly enhances the homepage experience for both guests and registered users, promoting user interaction and content creation.
Introduce an email field in the user profile, allowing users to input their email address. Implement email format validation on the server side to ensure proper formatting before saving. Update the profile form to include the email input, enhancing user experience and notification capabilities.
Made-with: Cursor
Expose login-state comment notify warnings in comment composer and show incomplete SMTP config status in admin settings to prevent misleading mail-send expectations.
Made-with: Cursor
Expose commentNotifyEnabled in profile page state, load it from /api/config/me with true fallback, and persist updates when saving profile settings.
Made-with: Cursor
Add an admin-only test email endpoint with SMTP config and admin email validation, plus a config-page action button to trigger test sends and minimal service tests for key 400 failure paths.
Made-with: Cursor
Restrict global config GET for non-admin users and always mask commentSmtpPass in responses, while preventing admin save from sending empty smtp passwords that would clear existing secrets.
Made-with: Cursor
Expose comment mail global config fields in the frontend composable and admin config page so admins can view and save notification mail settings.
Made-with: Cursor
- Revised the README to specify that the application currently only supports SQLite for the database.
- Removed the 'unlisted' option from the profile settings in the Vue component to streamline choices.
This update improves clarity in deployment instructions and user options.
- Added SCSS support with new global and common stylesheets.
- Introduced markdown styling for enhanced content presentation.
- Implemented a `usePageTitle` composable for dynamic document title management across various pages.
- Updated multiple pages to utilize the new title management system, improving SEO and user experience.
This update enhances the overall styling and usability of the application.
- Introduced user notes for media assets, allowing admins and users to add descriptions.
- Enhanced media asset listing with reference contexts, providing links to related content.
- Updated API endpoints to support note saving and retrieval.
- Modified database schema to include user notes and related fields.
- Improved search functionality to include user notes in media asset queries.
Made-with: Cursor
- Introduced new types for audit rows and reference details to improve data structure.
- Updated the media storage audit logic to include references for each asset, allowing for better tracking of media usage.
- Enhanced UI to display reference sources for media assets, clarifying the relationship between assets and their references.
- Improved cleanup descriptions and toast messages for better user understanding of actions taken.
Made-with: Cursor
- Added ImageCropModal component for cropping images before upload.
- Updated profile page to handle image cropping for avatar and header icon.
- Included vue-advanced-cropper as a dependency in package.json and bun.lock.
Made-with: Cursor
- Schema + migration 0007 rebuild users table with discover_visible DEFAULT true
- Profile form initial state matches (checkbox pre-checked before load)
- Journal when for 0007 set after 0006 so drizzle-kit migrate applies it
- Spec: document default opt-in
Made-with: Cursor