- Replaced all instances of the placeholder image path from "/static/images/placeholder.jpg" to "/static/images/replaceable_template_image.png".
- Added a new Nginx location block for serving app data with a long cache expiration.
- Enhanced the image generation service to return the new template image when generation fails.
- Updated various services and endpoints to ensure consistent handling of asset paths, including resolving backend asset URLs.
- Removed Electron-specific checks from several components to streamline API calls and improve compatibility with web deployments.
- Improved error handling and logging in the PDF export process.
- Adjusted Next.js configuration for API routing to ensure proper asset serving in Docker environments.
- Update sync-presentation-export script to read version from package.json instead of export-version.json.
- Change entrypoint from index.js to index.cjs for CommonJS compatibility.
- Implement logic to ensure CommonJS entrypoint is created if missing.
- Modify ExportTaskService to resolve entrypoint path dynamically.
- Remove inline Puppeteer PDF export logic in favor of bundled export package.
- Add runtime availability checks and sync script execution in start.js.
- Introduce helper functions for output path normalization and entrypoint resolution.
- Updated docker-compose.yml to allow disabling embedded Ollama via environment variable.
- Refactored Dockerfile and Dockerfile.dev for improved dependency management and installation process.
- Enhanced FastAPI migration scripts to handle orphaned Alembic revisions and added new database migration logic.
- Improved error handling in background tasks and Codex authentication endpoints.
- Added support for font file uploads with better validation and extraction of font names.
- Introduced new image search functionality with support for Pexels and Pixabay APIs.
- Introduced functions to handle legacy database stamping and migration.
- Added a new Alembic migration script for initializing the database schema.
- Enhanced the migration process to check for unversioned databases and apply necessary stamps before upgrades.
- Created new migration files for adding a theme column to presentations.
- Added a new method `_generate_codex` to LLMClient for generating responses using the Codex Responses API.
- Refactored tool handling to support structured tool calls and improved error handling during Codex interactions.
- Updated the client initialization for Codex to streamline the generation process.
- Enhanced message processing to accommodate new input formats and recursion for tool calls.
- Introduced CodexLLMAdapter to handle structured and unstructured LLM calls via the Codex Responses API.
- Implemented methods for converting tool formats and building request bodies for Codex.
- Refactored LLMClient to utilize CodexLLMAdapter, enhancing tool call handling and response processing.
- Updated LLMToolCallsHandler to support Codex as a valid LLM provider.
- Enhanced schema utilities for better JSON schema handling.
- Implemented a new method to create an AsyncOpenAI client specifically for Codex.
- Added functionality to convert Codex event responses into a dictionary format for easier consumption.
- Updated the streaming methods to utilize the new Codex client and handle API errors gracefully.
- Improved logging for debugging purposes during Codex interactions.
- Refactored message handling in the slide content generation function for clarity and efficiency.
- Added Codex authentication endpoints and logic for OAuth flow.
- Updated Docker configuration to expose port 1455 for Codex callback.
- Enhanced user configuration model to include Codex-related fields.
- Integrated Codex selection into the LLM provider UI.
- Implemented token management and refresh logic for Codex.
- Added utility functions for handling Codex OAuth tokens and state management.