When users switched from Tencent COS to managed storage and saved, the UI would
incorrectly show Tencent COS as the active provider on reload, and uploads would
fail because the wrong storage backend was being used.
Root cause: The `getActiveStorageProvider` method had a fallback behavior that
automatically set and persisted the first provider as active when only one
provider existed. This caused the managed storage selection to be overwritten.
Changes:
- Remove auto-persist fallback in getActiveStorageProvider (setting.service.ts)
- Add proper validation for managed storage subscription (storage-setting.service.ts)
- Reorder storage resolution to check managed storage first (photo-storage.service.ts)
- Add getActivePlanSummaryForTenant with Creem subscription validation (storage-plan.service.ts)
- Update dashboard UI to handle provider state correctly (StorageProvidersManager.tsx)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Added a new section for getting started with the official SaaS, highlighting its benefits and ease of use.
- Expanded the self-hosting section to clarify requirements and provide a tip for users to consider the SaaS option.
- Included links to official documentation for further guidance on setup and advanced usage.
- Updated related links to reflect the official SaaS and documentation resources.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a comprehensive `DEVELOPMENT.md` guide for contributors and self-hosters, detailing workspace layout and common commands.
- Updated `README.md` to include links to the new development guide and improved deployment instructions.
- Added new documentation files covering architecture, builder pipeline, configuration, and deployment strategies.
- Implemented new storage provider documentation for Backblaze B2, Eagle, GitHub, and local storage options.
- Enhanced the UI components with new features, including a navigation context and improved theme handling.
- Removed outdated GitHub Action deployment documentation.
Signed-off-by: Innei <tukon479@gmail.com>
- Replaced the existing GNU AGPL v3 license with the new Attribution Network License (ANL) v1.0 in the LICENSE file.
- Updated package.json files to reflect the new license.
- Modified README.md to reference the new license.
- Adjusted various package.json files to remove outdated license entries.
- Added new dependencies and updated existing ones in pnpm-lock.yaml.
- Refactored onboarding components and improved UI consistency across the dashboard.
- Introduced new hooks and components for better onboarding experience.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a new LICENSE file with the MIT License for the project.
- Updated the copyright notice in the README.md to reflect the Afilmory Team as the copyright holder for 2025.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a new feature highlighting the Interactive Map Explorer, which provides geographic visualization of photos using GPS coordinates from EXIF data with MapLibre.
Signed-off-by: Innei <tukon479@gmail.com>
- Removed outdated setup instructions and configuration examples from README.md to streamline documentation.
- Updated site.config.ts by removing unused social media fields for a cleaner configuration structure.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced automatic conversion for TIFF format in image processing.
- Updated the description of Fujifilm simulation settings to "Fujifilm Recipe" for clarity.
- Added a new feature for sharing images to social media or embedding via iframe.
Signed-off-by: Innei <tukon479@gmail.com>
- Replaced the repository configuration in `builder.config.example.json` with S3 storage settings, including bucket and endpoint details.
- Removed the social and feed sections from `config.example.json` to simplify the configuration structure.
- Updated the README to reflect changes in the author section and added optional comments for clarity.
Signed-off-by: Innei <tukon479@gmail.com>
- Removed the repository configuration section from the README to streamline documentation.
- Updated the build workflow to create a photos manifest JSON file before running the Vite build, enhancing the build process.
Signed-off-by: Innei <tukon479@gmail.com>
- Added functionality to push updated manifests to a remote Git repository after building.
- Introduced a Git token configuration in the builder settings to authenticate pushes.
- Enhanced the CLI to handle remote repository synchronization, including cloning and pulling updates.
- Updated the builder to return detailed results on whether updates occurred during the build process.
- Revised documentation to reflect new configuration options and usage instructions.
Signed-off-by: Innei <tukon479@gmail.com>
- Added a link to the Chinese version of the README in the English version.
- Updated feature descriptions in both English and Chinese, changing "Smart Tags" to "File System Tags" for clarity.
- Included a new image in the Chinese README for better visual appeal.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated the SSR routing to conditionally load development and production handlers based on the NODE_ENV variable.
- Introduced a new dev.ts file to handle requests in development mode, including asset proxying and HTML response generation.
- Removed the not-found.tsx file and streamlined the photoId route logic for better maintainability.
- Added support for Open Graph and Twitter meta tags in the production handler for improved SEO.
- Updated README with new S3 endpoint configuration.
Signed-off-by: Innei <tukon479@gmail.com>
- Changed the customDomain value from "cdn.example.com" to "https://cdn.example.com" in both English and Chinese README files for clarity and security.
Signed-off-by: Innei <tukon479@gmail.com>
- Added a centered logo image to the README for enhanced visual appeal.
- Updated project title formatting to align with the new branding.
- Included OpenGraph metadata information for improved social media sharing capabilities.
Signed-off-by: Innei <tukon479@gmail.com>
- Changed project name and title from "Photo Gallery" to "Afilmory" across multiple files including configuration, README, and web manifest.
- Updated descriptions and URLs to reflect the new branding.
- Adjusted OG image plugin and favicon generation scripts to align with the new project name.
Signed-off-by: Innei <tukon479@gmail.com>
- Translated the README content to English, enhancing accessibility for a broader audience.
- Updated feature descriptions and technical architecture sections for clarity and consistency.
- Added a new README.zh.md file for Chinese-speaking users, maintaining the same structure and information as the English version.
Signed-off-by: Innei <tukon479@gmail.com>
- Bumped versions of several packages including zod (3.25.63), tailwindcss (4.1.10), tsx (4.20.2), and others to their latest releases for improved performance and security.
- Updated @types/node and @types/react to 24.0.1 and 19.1.8 respectively in various package.json files to ensure compatibility with the latest TypeScript features.
- Adjusted dependencies in the builder and webgl-viewer packages to reflect the latest versions.
Signed-off-by: Innei <tukon479@gmail.com>
- Updated repository URLs in package.json and README.md to reflect the new project name.
- Changed project names in wrangler.jsonc files for SSR and web applications.
- Added "Afilmory" to the cSpell dictionary in VSCode settings.
Signed-off-by: Innei <tukon479@gmail.com>
- Changed project structure section to a quick start guide with a focus on Docker deployment.
- Removed detailed Vercel deployment instructions for a more streamlined README.
- Added a link to the Docker deployment documentation.
Signed-off-by: Innei <tukon479@gmail.com>
- Added avatar configuration to the author section in config.example.json and README.md.
- Integrated @radix-ui/react-avatar package for avatar rendering in the MasonryHeaderMasonryItem component.
- Updated pnpm-lock.yaml and package.json to include @radix-ui/react-avatar dependency.
- Removed loading text from index.html for a cleaner UI.
- Adjusted photo-loader.ts to use the workdir for manifest path.
Signed-off-by: Innei <tukon479@gmail.com>
- Added a new package `@photo-gallery/data` to manage photo data and metadata.
- Updated various components to utilize the new photoLoader from the data package.
- Adjusted dependencies in `pnpm-lock.yaml` and `package.json` files to include the new package.
- Refactored imports across the application to streamline photo data access.
Signed-off-by: Innei <tukon479@gmail.com>
- Introduced a new DateRangeIndicator component to display the date range and location of visible photos.
- Integrated the DateRangeIndicator into the MasonryRoot component, enhancing the user interface for both mobile and desktop views.
- Implemented a custom hook, useVisiblePhotosDateRange, to calculate the date range of currently visible photos.
- Updated README to reflect the new project name and description.
Signed-off-by: Innei <tukon479@gmail.com>